diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index bb97247b6a..0000000000 --- a/.eslintignore +++ /dev/null @@ -1,9 +0,0 @@ -dist/ -lib/binaryen.js -lib/parse/index.js -build/ -raw/ -tests/parser/ - -# FIXME: Tagged template literal tests with invalid escapes -tests/compiler/templateliteral.ts diff --git a/.eslintrc.cjs b/.eslintrc.cjs deleted file mode 100644 index 3ba62e3992..0000000000 --- a/.eslintrc.cjs +++ /dev/null @@ -1,268 +0,0 @@ -/* global module */ - -module.exports = { - root: true, - parser: "@typescript-eslint/parser", - plugins: [ - "@typescript-eslint", - ], - extends: [ - "eslint:recommended", - "plugin:@typescript-eslint/eslint-recommended", - "plugin:@typescript-eslint/recommended", - ], - parserOptions: { - ecmaVersion: 2020, - sourceType: "module", - ecmaFeatures: {} - }, - globals: { - "globalThis": "readonly", - "BigInt64Array": "readonly", - "BigUint64Array": "readonly", - "WebAssembly": "readonly", - "FinalizationRegistry": "readonly", - "fetch": "readonly", - "URL": "readonly", - "console": "readonly" - }, - - // === General rules ========================================================= - - rules: { - // Omitted semicolons are hugely popular, yet within the compiler it makes - // sense to be better safe than sorry. - "semi": "error", - - // Our code bases uses 2 spaces for indentation, and we enforce it here so - // files don't mix spaces, tabs or different indentation levels. - "indent": ["error", 2, { - "SwitchCase": 1, - "VariableDeclarator": "first", - "offsetTernaryExpressions": true, - "ignoredNodes": [ // FIXME: something's odd here - "ConditionalExpression > *", - "ConditionalExpression > * > *", - "ConditionalExpression > * > * > *" - ] - }], - - // This is mostly visual style, making comments look uniform. - "spaced-comment": ["error", "always", { - "markers": ["/"], // triple-slash - "exceptions": ["/"] // all slashes - }], - - // This tends to be annoying as it encourages developers to make everything - // that is never reassigned a 'const', sometimes semantically incorrect so, - // typically leading to huge diffs in follow-up PRs modifying affected code. - "prefer-const": "off", - - // 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", - - // Quite often, dealing with multiple related cases at once or otherwise - // falling through is exactly the point of using a switch. - "no-fallthrough": "off", - - // 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 }], - - // Functions are nested in blocks occasionally, and there haven't been any - // problems with this so far, so turning the check off. - "no-inner-declarations": "off", - - // Quite common in scenarios where an iteration starts at `current = this`. - "@typescript-eslint/no-this-alias": "off", - - // Interferes with tests and 64-bit literals - "@typescript-eslint/no-loss-of-precision": "off", - - // Disabled here, but enabled again for JavaScript files. - "no-unused-vars": "off", - - // Disabled here, but enabled again for TypeScript files. - "@typescript-eslint/no-unused-vars": "off" - }, - overrides: [ - - // === JavaScript rules ==================================================== - - { - env: { - "browser": true, - "amd": true, - "node": true, - "es6": true - }, - files: [ - "**/*.js", - "bin/*" - ], - rules: { - // We are testing both ESM and UMD, so don't limit us. - "@typescript-eslint/no-var-requires": "off", - - // This rule does not behave well in JS files. - "@typescript-eslint/explicit-module-boundary-types": "off", - - // Enforcing to remove function parameters on stubs makes code less - // maintainable, so we instead allow unused function parameters. - "no-unused-vars": [ - "warn", { - "vars": "local", - "args": "none", - "ignoreRestSiblings": false - } - ], - - "@typescript-eslint/no-loss-of-precision": "error", - } - }, - - // === TypeScript rules ==================================================== - - { - files: [ - "**/*.ts" - ], - rules: { - // Enforcing to remove function parameters on stubs makes code less - // maintainable, so we instead allow unused function parameters. - "@typescript-eslint/no-unused-vars": [ - "warn", { - "vars": "local", - "varsIgnorePattern": "^[A-Z](?:From|To)?$", // ignore type params - "args": "none", - "ignoreRestSiblings": false - } - ] - } - }, - - // === AssemblyScript rules (extends TypeScript rules) ===================== - - { - files: [ - "**/assembly/**/*.ts", - "src/**/*.ts", - "lib/parse/src/**/*.ts" - ], - rules: { - // Namespaces are quite useful in AssemblyScript - "@typescript-eslint/no-namespace": "off", - - // There is actually codegen difference here - "@typescript-eslint/no-array-constructor": "off", - - // Sometimes it can't be avoided to add a @ts-ignore - "@typescript-eslint/ban-ts-comment": "off", - - // Utilized to achieve portability in some cases - "@typescript-eslint/no-non-null-assertion": "off", - } - }, - - // === Compiler rules (extends AssemblyScript rules) ======================= - - { - files: [ - "src/**/*.ts", - "std/assembly/**/*.ts" - ], - rules: { - // There is an actual codegen difference here - TODO: revisit - "no-cond-assign": "off", - - // Not all types can be omitted in AS yet - TODO: revisit - "@typescript-eslint/no-inferrable-types": "off", - - // Used rarely to reference internals that are not user-visible - "@typescript-eslint/triple-slash-reference": "off", - - // The compiler has its own `Function` class for example - "no-shadow-restricted-names": "off", - "@typescript-eslint/ban-types": "off" - } - }, - - // === Standard Library rules (extends AssemblyScript rules) =============== - - { - files: [ - "std/assembly/**/*.ts" - ], - rules: { - // We are implementing with --noLib, so we shadow all the time - "no-shadow-restricted-names": "off", - - // Similarly, sometimes we need the return type to be String, not string - "@typescript-eslint/ban-types": "off" - } - }, - - // === Standard Definition rules (extends TypeScript rules) ================ - - { - files: [ - "std/**/*.d.ts" - ], - rules: { - // Often required to achieve compatibility with TypeScript - "@typescript-eslint/no-explicit-any": "off", - - // Interfaces can be stubs here, i.e. not yet fully implemented - "@typescript-eslint/no-empty-interface": "off", - - // Definitions make use of `object` to model rather unusual constraints - "@typescript-eslint/ban-types": "off" - } - }, - - // === Compiler Definition rules (extends TypeScript rules) ================ - - { - files: [ - "./dist/*.d.ts" - ], - rules: { - // Our definitions are complicated, and all attempts to describe them - // as modules have failed so far. As such, we re-export namespaces. - "@typescript-eslint/no-namespace": "off", - "@typescript-eslint/triple-slash-reference": "off" - } - }, - - // === Test rules (extends TypeScript rules) =============================== - - { - files: [ - "./tests/compiler/**/*.ts", - "./lib/loader/tests/assembly/**/*.ts" - ], - rules: { - // Tests typically include unusual code patterns on purpose. This is - // very likely not an extensive list, but covers what's there so far. - "no-empty": "off", - "no-cond-assign": "off", - "no-compare-neg-zero": "off", - "no-inner-declarations": "off", - "no-constant-condition": "off", - "use-isnan": "off", - "@typescript-eslint/no-namespace": "off", - "@typescript-eslint/no-unused-vars": "off", - "@typescript-eslint/no-empty-function": "off", - "@typescript-eslint/no-non-null-assertion": "off", - "@typescript-eslint/no-extra-semi": "off", - "@typescript-eslint/no-inferrable-types": "off", - "@typescript-eslint/ban-types": "off", - "@typescript-eslint/triple-slash-reference": "off", - "@typescript-eslint/ban-ts-comment": "off", - "@typescript-eslint/no-extra-non-null-assertion": "off", - "@typescript-eslint/no-empty-interface": "off" - } - }, - ] -}; diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml new file mode 100644 index 0000000000..9002e311df --- /dev/null +++ b/.github/workflows/pr.yml @@ -0,0 +1,20 @@ +name: PR + +on: + pull_request: + types: [opened, edited, synchronize] + +jobs: + check-title: + runs-on: ubuntu-latest + steps: + - name: Check PR Title Prefix + id: title-check + uses: actions/github-script@v9 + with: + script: | + const prefs = ["feat", "fix", "breaking", "chore"]; + const title = context.payload.pull_request.title.toLowerCase(); + const hasValidPrefix = prefs.some(prefix => title.startsWith(`${prefix}:`)); + if (!hasValidPrefix) + core.setFailed("PR title must start with 'feat:', 'fix:', 'breaking:' or 'chore:'"); diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index a8b2d99a46..269112457d 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -10,19 +10,19 @@ jobs: name: Packages if: github.repository == 'AssemblyScript/assemblyscript' runs-on: ubuntu-latest + permissions: + id-token: write + contents: write steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v6 with: ref: main fetch-depth: 0 - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v6 with: node-version: current - name: Install dependencies - run: | # npm>=7 is currently broken: https://github.com/npm/cli/issues/1973 - npm -g install npm@6 - npm -v - npm ci + run: npm ci - name: Build packages run: | VERSION=$(npx aspublish --version) @@ -49,7 +49,6 @@ jobs: - name: Publish packages env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - NPM_TOKEN: ${{ secrets.NPM_TOKEN }} run: | node ./scripts/prepublish if [ $(node -pe "require('./package.json').version") != "0.0.0" ]; then diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 86853b6993..9278bfd6aa 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -6,7 +6,7 @@ jobs: stale: runs-on: ubuntu-latest steps: - - uses: actions/stale@v8 + - uses: actions/stale@v10 with: stale-issue-message: 'This issue has been automatically marked as stale because it has not had recent activity. It will be closed in one week if no further activity occurs. Thank you for your contributions!' stale-issue-label: 'stale' @@ -17,6 +17,6 @@ jobs: exempt-draft-pr: true exempt-all-milestones: true exempt-all-assignees: true - days-before-issue-stale: 30 - days-before-pr-stale: 60 + days-before-issue-stale: 60 + days-before-pr-stale: 120 days-before-close: 7 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 4ccc5889bd..f9d2f7db0a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -4,12 +4,15 @@ on: branches: - main pull_request: +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true jobs: check: name: "Check" runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v6 - name: "Check that distribution files are unmodified" if: github.event_name == 'pull_request' run: | @@ -29,8 +32,8 @@ jobs: os: ["ubuntu", "macos", "windows"] node_version: ["current", "lts/*"] steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 + - uses: actions/checkout@v6 + - uses: actions/setup-node@v6 with: node-version: ${{ matrix.node_version }} - name: Install dependencies @@ -49,8 +52,8 @@ jobs: matrix: target: ["debug", "release"] steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 + - uses: actions/checkout@v6 + - uses: actions/setup-node@v6 with: node-version: current - name: Install dependencies @@ -70,10 +73,8 @@ jobs: runs-on: ubuntu-latest needs: check steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 - with: - node-version: 21-v8-canary + - uses: actions/checkout@v6 + - uses: actions/setup-node@v6 - name: Install dependencies run: npm ci --no-audit - name: Build @@ -88,8 +89,8 @@ jobs: runs-on: ubuntu-latest needs: check steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 + - uses: actions/checkout@v6 + - uses: actions/setup-node@v6 with: node-version: current - name: Install dependencies @@ -113,8 +114,8 @@ jobs: runs-on: ubuntu-latest needs: check steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 + - uses: actions/checkout@v6 + - uses: actions/setup-node@v6 with: node-version: current - name: Install dependencies @@ -131,10 +132,10 @@ jobs: runs-on: ubuntu-latest needs: check steps: - - uses: actions/checkout@v3 - - uses: dcodeIO/setup-node-nvm@master + - uses: actions/checkout@v6 + - uses: actions/setup-node@v6 with: - node-version: current + node-version: 24 - name: Install dependencies run: npm ci --no-audit - name: Build diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index aed33dc531..57b2125939 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -51,4 +51,15 @@ Before submitting your pull request, also make sure that the following condition Please note that if a pull request is rather complicated, i.e. touches lots of internals, or became stale, it is not uncommon that a core contributor performs the final integration to get it done in good conscience while naming you as a co-author. +Guidelines for **AI**-assisted Contributions +-------------------------------------------- + +**AI** tools are welcome as helpers, not authors. Keep these practices in mind: + +* Stay accountable: only submit changes you understand and can justify; be ready to explain behavior, edge cases. If an **AI** suggestion feels unclear, rewrite or drop it. +* Keep humans in the loop: discuss non-trivial ideas early via [Issues](https://github.com/AssemblyScript/assemblyscript/issues) or [Discord](https://discord.gg/assemblyscript), especially when you are unsure about design or impact. +* Use **AI** for acceleration, optimization and verification: treat **AI** output as a draft for code, tests, or docs; run linters/tests and review the logic **yourself**. +* Be transparent in PRs: note briefly if **AI** was used and for what (e.g., initial draft, test scaffolding), and call out any parts where you want extra review. +* Prefer small patches over large dumps; if you cannot confidently explain an **AI**-produced change, open a well-described issue instead. + Thank you! diff --git a/NOTICE b/NOTICE index 4962c2400e..da2cb563d4 100644 --- a/NOTICE +++ b/NOTICE @@ -51,11 +51,18 @@ under the licensing terms detailed in LICENSE: * Adrien Zinger * Ruixiang Chen * Daniel Salvadori -* Jairus Tanaka +* Jairus Tanaka * CountBleck * Abdul Rauf * Bach Le * Xinquan Xu +* Matt Johnson-Pint +* Fabián Heredia Montiel +* Jonas Minnberg +* Kam Chehresa +* Mopsgamer <79159094+Mopsgamer@users.noreply.github.com> +* EDM115 +* Weixie Cui Portions of this software are derived from third-party works licensed under the following terms: diff --git a/bin/asinit.js b/bin/asinit.js old mode 100644 new mode 100755 index 5023e5c09a..5e3566ddc1 --- a/bin/asinit.js +++ b/bin/asinit.js @@ -55,11 +55,20 @@ const asinitOptions = { ], "type": "b", "alias": "y" - } + }, + "noColors": { + "description": "Disables terminal colors.", + "type": "b", + "default": false + }, }; const cliOptions = optionsUtil.parse(process.argv.slice(2), asinitOptions); +if (cliOptions.options.noColors) { + stdoutColors.enabled = false; +} + if (cliOptions.options.help || cliOptions.arguments.length === 0) printHelp(); function printHelp() { @@ -91,7 +100,7 @@ if (/^(\.\.[/\\])*node_modules[/\\]assemblyscript[/\\]/.test(tsconfigBase)) { } const entryFile = path.join(assemblyDir, "index.ts"); const buildDir = path.join(projectDir, "build"); -const testsDir = path.join(projectDir, "tests"); +const testsDir = path.join(projectDir, "test"); const gitignoreFile = path.join(buildDir, ".gitignore"); const packageFile = path.join(projectDir, "package.json"); @@ -106,12 +115,23 @@ const paths = [ [gitignoreFile, "Git configuration that excludes compiled binaries from source control."], [asconfigFile, "Configuration file defining both a 'debug' and a 'release' target."], [packageFile, "Package info containing the necessary commands to compile to WebAssembly."], - [testsIndexFile, "Stater test to check that the module is functioning."], + [testsIndexFile, "Starter test to check that the module is functioning."], [indexHtmlFile, "Starter HTML file that loads the module in a browser."] ]; const formatPath = filePath => "./" + path.relative(projectDir, filePath).replace(/\\/g, "/"); +if (fs.existsSync(packageFile)) { + const pkg = JSON.parse(fs.readFileSync(packageFile)); + if ("type" in pkg && pkg["type"] !== "module") { + console.error(stdoutColors.red([ + `Error: The "type" field in ${formatPath(packageFile)} is set to "${pkg["type"]}".`, + ` asinit requires the "type" field to be set to "module" (ES modules).` + ].join("\n"))); + process.exit(1); + } +} + console.log([ "Version: " + version, "", @@ -338,7 +358,7 @@ function ensurePackageJson() { "asbuild:debug": buildDebug, "asbuild:release": buildRelease, "asbuild": buildAll, - "test": "node tests", + "test": "node --test", "start": "npx serve ." }, "devDependencies": { @@ -370,12 +390,12 @@ function ensurePackageJson() { updated = true; } if (!scripts["test"] || scripts["test"] == npmDefaultTest) { - scripts["test"] = "node tests"; + scripts["test"] = "node --test"; pkg["scripts"] = scripts; updated = true; } if (!scripts["start"]) { - scripts["start"] = "npx serve .", + scripts["start"] = "npx serve ."; pkg["scripts"] = scripts; updated = true; } @@ -396,7 +416,7 @@ function ensurePackageJson() { } function ensureTestsDirectory() { - console.log("- Making sure that the 'tests' directory exists..."); + console.log("- Making sure that the 'test' directory exists..."); if (!fs.existsSync(testsDir)) { fs.mkdirSync(testsDir); console.log(stdoutColors.green(" Created: ") + testsDir); @@ -407,13 +427,16 @@ function ensureTestsDirectory() { } function ensureTestsIndexJs() { - console.log("- Making sure that 'tests/index.js' exists..."); + console.log("- Making sure that 'test/index.js' exists..."); if (!fs.existsSync(testsIndexFile)) { fs.writeFileSync(testsIndexFile, [ - "import assert from \"assert\";", + "import assert from \"node:assert/strict\";", + "import { it } from \"node:test\";", "import { add } from \"../build/debug.js\";", - "assert.strictEqual(add(1, 2), 3);", - "console.log(\"ok\");" + "", + "it(\"add\", () => {", + " assert.equal(add(1, 2), 3);", + "});" ].join("\n") + "\n"); console.log(stdoutColors.green(" Created: ") + testsIndexFile); } else { diff --git a/cli/index.d.ts b/cli/index.d.ts index 16e070529e..58c7fb4ef6 100644 --- a/cli/index.d.ts +++ b/cli/index.d.ts @@ -240,7 +240,8 @@ export function createMemoryStream(fn?: (chunk: Uint8Array | string) => void): M /** Compatible TypeScript compiler options for syntax highlighting etc. */ export const tscOptions: Record; -import { Program, Parser, Module } from "../src"; +import binaryen from "../lib/binaryen"; +import { Program, Parser } from "../src"; /** Compiler transform base class. */ export abstract class Transform { @@ -248,6 +249,9 @@ export abstract class Transform { /** Program reference. */ readonly program: Program; + /** Binaryen reference. */ + readonly binaryen: typeof binaryen; + /** Base directory. */ readonly baseDir: string; @@ -276,5 +280,5 @@ export abstract class Transform { afterInitialize?(program: Program): void | Promise; /** Called when compilation is complete, before the module is being validated. */ - afterCompile?(module: Module): void | Promise; + afterCompile?(module: binaryen.Module): void | Promise; } diff --git a/cli/index.js b/cli/index.js index 91634a8c01..7e202e4f61 100644 --- a/cli/index.js +++ b/cli/index.js @@ -425,7 +425,7 @@ export async function main(argv, options) { } catch (e1) { try { transform = require(resolved); - } catch (e2) { + } catch { return prepareResult(e1); } } @@ -450,6 +450,7 @@ export async function main(argv, options) { if (typeof transform === "function") { Object.assign(transform.prototype, { program, + binaryen, baseDir, stdout, stderr, @@ -597,7 +598,7 @@ export async function main(argv, options) { return { sourceText, sourcePath }; } - // Gets all pending imported files from the the backlog + // Gets all pending imported files from the backlog function getBacklog(paths = []) { do { let internalPath = assemblyscript.nextFile(program); @@ -669,7 +670,7 @@ export async function main(argv, options) { .replace(/\\/g, "/") .replace(extension_re, "") .replace(/\/$/, ""); - + // Try entryPath.ext, then entryPath/index.ext let sourceText = await readFile(sourcePath + extension, baseDir); if (sourceText == null) { @@ -866,7 +867,7 @@ export async function main(argv, options) { // Prepare output if (!opts.noEmit) { if (opts.binaryFile) { - // We catched lagacy field for binary output (before 0.20) + // We caught legacy field for binary output (before 0.20) return prepareResult(Error("Usage of the --binaryFile compiler option is no longer supported. Use --outFile instead.")); } let bindings = opts.bindings || []; @@ -944,9 +945,10 @@ export async function main(argv, options) { try { // use superset text format when extension is `.wast`. // Otherwise use official stack IR format (wat). + binaryen.setOptimizeStackIR(true); out = opts.textFile?.endsWith(".wast") ? binaryenModule.emitText() - : binaryenModule.emitStackIR(true); + : binaryenModule.emitStackIR(); } catch (e) { crash("emitText", e); } @@ -957,7 +959,7 @@ export async function main(argv, options) { writeFile(opts.textFile, out, baseDir) ); } else if (!hasStdout) { - hasStdout = true; + // hasStdout = true; writeStdout(out); } } @@ -1022,7 +1024,7 @@ export async function main(argv, options) { try { stats.readCount++; return await fs.promises.readFile(name, "utf8"); - } catch (e) { + } catch { return null; } } @@ -1036,7 +1038,7 @@ export async function main(argv, options) { await fs.promises.mkdir(dirPath, { recursive: true }); await fs.promises.writeFile(filePath, contents); return true; - } catch (e) { + } catch { return false; } } @@ -1047,7 +1049,7 @@ export async function main(argv, options) { stats.readCount++; return (await fs.promises.readdir(path.join(baseDir, dirname))) .filter(file => extension_re_except_d.test(file)); - } catch (e) { + } catch { return null; } } @@ -1104,7 +1106,7 @@ async function getConfig(file, baseDir, readFile) { try { config = JSON.parse(contents); } catch(ex) { - throw new Error(`Asconfig is not valid json: ${location}`); + throw new Error(`Asconfig is not valid json: ${location}`, { cause: ex }); } // validate asconfig shape diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 0000000000..4c53f86f2b --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,231 @@ +import { defineConfig, globalIgnores } from "eslint/config"; + +import js from "@eslint/js"; +import tseslint from "typescript-eslint"; +import globals from "globals"; + +export default defineConfig([ + globalIgnores([ + "**/*.d.ts", + + "dist/**", + "lib/binaryen.js", + "lib/parse/index.js", + "build/**", + "raw/**", + + // Exclude AS sources with non-standard decorators + "src/glue/wasm/**/*.ts", + "std/assembly/**/*.ts", + + "tests/parser/**", + "tests/compiler/**", + "tests/asconfig/**", + "lib/loader/tests/**", + + // FIXME: Tagged template literal tests with invalid escapes + "tests/compiler/templateliteral.ts", + ]), + + js.configs.recommended, + ...tseslint.configs.recommended, + + { + files: ["**/*.{js,ts}"], + + languageOptions: { + parser: tseslint.parser, + ecmaVersion: 2024, + sourceType: "module", + globals: { + ...globals.es2024, + globalThis: "readonly", + BigInt64Array: "readonly", + BigUint64Array: "readonly", + WebAssembly: "readonly", + FinalizationRegistry: "readonly", + fetch: "readonly", + URL: "readonly", + console: "readonly", + }, + }, + + plugins: { + "@typescript-eslint": tseslint.plugin, + }, + + rules: { + semi: "error", + + indent: ["error", 2, { + SwitchCase: 1, + VariableDeclarator: "first", + offsetTernaryExpressions: true, + ignoredNodes: [ + "ConditionalExpression > *", + "ConditionalExpression > * > *", + "ConditionalExpression > * > * > *", + ], + }], + + "spaced-comment": ["error", "always", { + markers: ["/"], + exceptions: ["/"], + }], + + "prefer-const": "off", + "no-var": "off", + "no-fallthrough": "off", + + "no-constant-condition": ["error", { checkLoops: false }], + "no-inner-declarations": "off", + + "no-loss-of-precision": "off", + "no-unused-vars": "off", + "no-useless-assignment": "off", + + "@typescript-eslint/no-this-alias": "off", + "@typescript-eslint/no-unused-vars": "off", + }, + }, + + // === JavaScript === + { + files: ["**/*.js", "bin/*"], + + languageOptions: { + globals: { + ...globals.browser, + ...globals.amd, + ...globals.node, + ...globals.es6, + }, + }, + + rules: { + "@typescript-eslint/no-var-requires": "off", + "@typescript-eslint/explicit-module-boundary-types": "off", + + "no-unused-vars": ["warn", { + vars: "local", + args: "none", + ignoreRestSiblings: false, + }], + + "@typescript-eslint/no-loss-of-precision": "error", + }, + }, + + // === TypeScript === + { + files: ["**/*.ts"], + + rules: { + "@typescript-eslint/no-unused-vars": ["warn", { + vars: "local", + varsIgnorePattern: "^[A-Z](?:From|To)?$", + args: "none", + ignoreRestSiblings: false, + }], + }, + }, + + // === AssemblyScript === + { + files: [ + "**/assembly/**/*.ts", + "src/**/*.ts", + "lib/parse/src/**/*.ts", + ], + + rules: { + "@typescript-eslint/no-namespace": "off", + "@typescript-eslint/no-array-constructor": "off", + "@typescript-eslint/ban-ts-comment": "off", + "@typescript-eslint/no-non-null-assertion": "off", + }, + }, + + // === Compiler === + { + files: [ + "src/**/*.ts", + "std/assembly/**/*.ts", + ], + + rules: { + "no-cond-assign": "off", + "@typescript-eslint/no-inferrable-types": "off", + "@typescript-eslint/triple-slash-reference": "off", + "no-shadow-restricted-names": "off", + "@typescript-eslint/ban-types": "off", + }, + }, + + // === Standard Library === + { + files: ["std/assembly/**/*.ts"], + + rules: { + "no-shadow-restricted-names": "off", + "@typescript-eslint/ban-types": "off", + }, + }, + + // === Definition files === + { + files: ["std/**/*.d.ts"], + + rules: { + "@typescript-eslint/no-explicit-any": "off", + "@typescript-eslint/no-empty-interface": "off", + "@typescript-eslint/ban-types": "off", + }, + }, + + // === Dist definitions === + { + files: ["./dist/*.d.ts"], + + rules: { + "@typescript-eslint/no-namespace": "off", + "@typescript-eslint/triple-slash-reference": "off", + }, + }, + + // === Tests === + { + files: [ + "./tests/compiler/**/*.ts", + "./lib/loader/tests/assembly/**/*.ts", + ], + + rules: { + "no-empty": "off", + "no-cond-assign": "off", + "no-compare-neg-zero": "off", + "no-inner-declarations": "off", + "no-constant-condition": "off", + "use-isnan": "off", + + "@typescript-eslint/no-namespace": "off", + "@typescript-eslint/no-unused-vars": "off", + "@typescript-eslint/no-empty-function": "off", + "@typescript-eslint/no-non-null-assertion": "off", + "@typescript-eslint/no-extra-semi": "off", + "@typescript-eslint/no-inferrable-types": "off", + "@typescript-eslint/ban-types": "off", + "@typescript-eslint/triple-slash-reference": "off", + "@typescript-eslint/ban-ts-comment": "off", + "@typescript-eslint/no-extra-non-null-assertion": "off", + "@typescript-eslint/no-empty-interface": "off", + }, + }, + + { + files: ["tests/transform/cjs/**/*.js"], + rules: { + "@typescript-eslint/no-require-imports": "off", + }, + }, +]); diff --git a/lib/rtrace/tlsfvis.html b/lib/rtrace/tlsfvis.html index ab3f6548a6..16c022b270 100644 --- a/lib/rtrace/tlsfvis.html +++ b/lib/rtrace/tlsfvis.html @@ -169,8 +169,8 @@

TLSF visualizer

-

- Notes: +

+

Notes:

  • It is expected that there is exactly one block on initialization. This is the remaining space (< 64K) within the last page after static data.
  • It is expected that if two adjacent blocks of size K are freed, the merged block doesn't go into the first level list for K*2 because its size is actually larger than that (K + OVERHEAD + K).
  • @@ -178,7 +178,7 @@

    TLSF visualizer

  • It is expected that after other operations have already been performed, being able to allocate 1GB can't be guaranteed anymore, even if there should be enough space left in absolute terms, if prior subdivision prevents it.
  • It is expected that the second level 0 in first level 0 isn't ever used due to alignment guarantees. Smallest block is 32 bytes (16 bytes overhead + 16 bytes payload if used, respectively linking information if free) in this implementation.
-

+

Implementation constants: ? bits alignment, ? bits first level, ? bits second level, ? B overhead

First level bitmap

@@ -229,7 +229,6 @@

Allocator

-

Segments

Allocations performed above are tracked here so you can free them again. Note that TLSF alone does not keep track of used blocks (unless free'd and put in a free list again). It is expected that adjacent free blocks become merged automatically.

diff --git a/package-lock.json b/package-lock.json index db21ae7902..535ad8a747 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,7 +1,7 @@ { "name": "assemblyscript", "version": "0.0.0", - "lockfileVersion": 2, + "lockfileVersion": 3, "requires": true, "packages": { "": { @@ -9,704 +9,828 @@ "version": "0.0.0", "license": "Apache-2.0", "dependencies": { - "binaryen": "116.0.0-nightly.20231102", - "long": "^5.2.1" + "binaryen": "131.0.0-nightly.20260721", + "long": "^5.2.4" }, "bin": { "asc": "bin/asc.js", "asinit": "bin/asinit.js" }, "devDependencies": { - "@types/node": "^18.13.0", - "@typescript-eslint/eslint-plugin": "^5.51.0", - "@typescript-eslint/parser": "^5.51.0", - "diff": "^5.1.0", - "esbuild": "^0.19.4", - "eslint": "^8.33.0", - "glob": "^10.3.0", - "typescript": "~4.7.4" + "@eslint/js": "^10.0.1", + "@types/node": "^26.1.1", + "as-float": "^1.0.1", + "diff": "^9.0.0", + "esbuild": "^0.28.1", + "eslint": "^10.7.0", + "glob": "^13.0.6", + "globals": "^17.7.0", + "typescript": "^6.0.3", + "typescript-eslint": "^8.65.0" }, "engines": { - "node": ">=16", - "npm": ">=7" + "node": ">=20", + "npm": ">=10" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/assemblyscript" } }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "node_modules/@esbuild/aix-ppc64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.1.tgz", + "integrity": "sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==", + "cpu": [ + "ppc64" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], "engines": { - "node": ">=0.10.0" + "node": ">=18" } }, "node_modules/@esbuild/android-arm": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.5.tgz", - "integrity": "sha512-bhvbzWFF3CwMs5tbjf3ObfGqbl/17ict2/uwOSfr3wmxDE6VdS2GqY/FuzIPe0q0bdhj65zQsvqfArI9MY6+AA==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.1.tgz", + "integrity": "sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.5.tgz", - "integrity": "sha512-5d1OkoJxnYQfmC+Zd8NBFjkhyCNYwM4n9ODrycTFY6Jk1IGiZ+tjVJDDSwDt77nK+tfpGP4T50iMtVi4dEGzhQ==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.1.tgz", + "integrity": "sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.5.tgz", - "integrity": "sha512-9t+28jHGL7uBdkBjL90QFxe7DVA+KGqWlHCF8ChTKyaKO//VLuoBricQCgwhOjA1/qOczsw843Fy4cbs4H3DVA==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.1.tgz", + "integrity": "sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.5.tgz", - "integrity": "sha512-mvXGcKqqIqyKoxq26qEDPHJuBYUA5KizJncKOAf9eJQez+L9O+KfvNFu6nl7SCZ/gFb2QPaRqqmG0doSWlgkqw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.1.tgz", + "integrity": "sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.5.tgz", - "integrity": "sha512-Ly8cn6fGLNet19s0X4unjcniX24I0RqjPv+kurpXabZYSXGM4Pwpmf85WHJN3lAgB8GSth7s5A0r856S+4DyiA==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.1.tgz", + "integrity": "sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.5.tgz", - "integrity": "sha512-GGDNnPWTmWE+DMchq1W8Sd0mUkL+APvJg3b11klSGUDvRXh70JqLAO56tubmq1s2cgpVCSKYywEiKBfju8JztQ==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.1.tgz", + "integrity": "sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.5.tgz", - "integrity": "sha512-1CCwDHnSSoA0HNwdfoNY0jLfJpd7ygaLAp5EHFos3VWJCRX9DMwWODf96s9TSse39Br7oOTLryRVmBoFwXbuuQ==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.1.tgz", + "integrity": "sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.5.tgz", - "integrity": "sha512-lrWXLY/vJBzCPC51QN0HM71uWgIEpGSjSZZADQhq7DKhPcI6NH1IdzjfHkDQws2oNpJKpR13kv7/pFHBbDQDwQ==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.1.tgz", + "integrity": "sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.5.tgz", - "integrity": "sha512-o3vYippBmSrjjQUCEEiTZ2l+4yC0pVJD/Dl57WfPwwlvFkrxoSO7rmBZFii6kQB3Wrn/6GwJUPLU5t52eq2meA==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.1.tgz", + "integrity": "sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.5.tgz", - "integrity": "sha512-MkjHXS03AXAkNp1KKkhSKPOCYztRtK+KXDNkBa6P78F8Bw0ynknCSClO/ztGszILZtyO/lVKpa7MolbBZ6oJtQ==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.1.tgz", + "integrity": "sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==", "cpu": [ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.5.tgz", - "integrity": "sha512-42GwZMm5oYOD/JHqHska3Jg0r+XFb/fdZRX+WjADm3nLWLcIsN27YKtqxzQmGNJgu0AyXg4HtcSK9HuOk3v1Dw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.1.tgz", + "integrity": "sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==", "cpu": [ "loong64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.5.tgz", - "integrity": "sha512-kcjndCSMitUuPJobWCnwQ9lLjiLZUR3QLQmlgaBfMX23UEa7ZOrtufnRds+6WZtIS9HdTXqND4yH8NLoVVIkcg==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.1.tgz", + "integrity": "sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==", "cpu": [ "mips64el" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.5.tgz", - "integrity": "sha512-yJAxJfHVm0ZbsiljbtFFP1BQKLc8kUF6+17tjQ78QjqjAQDnhULWiTA6u0FCDmYT1oOKS9PzZ2z0aBI+Mcyj7Q==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.1.tgz", + "integrity": "sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==", "cpu": [ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.5.tgz", - "integrity": "sha512-5u8cIR/t3gaD6ad3wNt1MNRstAZO+aNyBxu2We8X31bA8XUNyamTVQwLDA1SLoPCUehNCymhBhK3Qim1433Zag==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.1.tgz", + "integrity": "sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==", "cpu": [ "riscv64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.5.tgz", - "integrity": "sha512-Z6JrMyEw/EmZBD/OFEFpb+gao9xJ59ATsoTNlj39jVBbXqoZm4Xntu6wVmGPB/OATi1uk/DB+yeDPv2E8PqZGw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.1.tgz", + "integrity": "sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==", "cpu": [ "s390x" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.5.tgz", - "integrity": "sha512-psagl+2RlK1z8zWZOmVdImisMtrUxvwereIdyJTmtmHahJTKb64pAcqoPlx6CewPdvGvUKe2Jw+0Z/0qhSbG1A==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.1.tgz", + "integrity": "sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.1.tgz", + "integrity": "sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.5.tgz", - "integrity": "sha512-kL2l+xScnAy/E/3119OggX8SrWyBEcqAh8aOY1gr4gPvw76la2GlD4Ymf832UCVbmuWeTf2adkZDK+h0Z/fB4g==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.1.tgz", + "integrity": "sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "netbsd" ], "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.1.tgz", + "integrity": "sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.5.tgz", - "integrity": "sha512-sPOfhtzFufQfTBgRnE1DIJjzsXukKSvZxloZbkJDG383q0awVAq600pc1nfqBcl0ice/WN9p4qLc39WhBShRTA==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.1.tgz", + "integrity": "sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "openbsd" ], "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.1.tgz", + "integrity": "sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.5.tgz", - "integrity": "sha512-dGZkBXaafuKLpDSjKcB0ax0FL36YXCvJNnztjKV+6CO82tTYVDSH2lifitJ29jxRMoUhgkg9a+VA/B03WK5lcg==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.1.tgz", + "integrity": "sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "sunos" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.5.tgz", - "integrity": "sha512-dWVjD9y03ilhdRQ6Xig1NWNgfLtf2o/STKTS+eZuF90fI2BhbwD6WlaiCGKptlqXlURVB5AUOxUj09LuwKGDTg==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.1.tgz", + "integrity": "sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.5.tgz", - "integrity": "sha512-4liggWIA4oDgUxqpZwrDhmEfAH4d0iljanDOK7AnVU89T6CzHon/ony8C5LeOdfgx60x5cnQJFZwEydVlYx4iw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.1.tgz", + "integrity": "sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==", "cpu": [ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.5.tgz", - "integrity": "sha512-czTrygUsB/jlM8qEW5MD8bgYU2Xg14lo6kBDXW6HdxKjh8M5PzETGiSHaz9MtbXBYDloHNUAUW2tMiKW4KM9Mw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.1.tgz", + "integrity": "sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", + "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==", "dev": true, + "license": "MIT", "dependencies": { - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.3" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, + "funding": { + "url": "https://opencollective.com/eslint" + }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, "node_modules/@eslint-community/regexpp": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", "dev": true, + "license": "MIT", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", - "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", + "node_modules/@eslint/config-array": { + "version": "0.23.5", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.23.5.tgz", + "integrity": "sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" + "@eslint/object-schema": "^3.0.5", + "debug": "^4.3.1", + "minimatch": "^10.2.4" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": "^20.19.0 || ^22.13.0 || >=24" } }, - "node_modules/@eslint/js": { - "version": "8.52.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.52.0.tgz", - "integrity": "sha512-mjZVbpaeMZludF2fsWLD0Z9gCref1Tk4i9+wddjRvpUNqqcndPkBD09N/Mapey0b3jaXbLm2kICwFv2E64QinA==", + "node_modules/@eslint/config-helpers": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.6.0.tgz", + "integrity": "sha512-ii6Bw9jJ2zi2cWA2Z+9/QZ/+3DX6kwaV5Q986D/CdP3Lap3w/pgQZ373FV7byY/i7L4IRH/G43I5dz1ClsCbpA==", "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^1.2.1" + }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^20.19.0 || ^22.13.0 || >=24" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.13", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", - "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", + "node_modules/@eslint/core": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-1.2.1.tgz", + "integrity": "sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "@humanwhocodes/object-schema": "^2.0.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" + "@types/json-schema": "^7.0.15" }, "engines": { - "node": ">=10.10.0" + "node": "^20.19.0 || ^22.13.0 || >=24" } }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "node_modules/@eslint/js": { + "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": ">=12.22" + "node": "^20.19.0 || ^22.13.0 || >=24" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "eslint": "^10.0.0" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", - "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", - "dev": true + "node_modules/@eslint/object-schema": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-3.0.5.tgz", + "integrity": "sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + } }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "node_modules/@eslint/plugin-kit": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.7.2.tgz", + "integrity": "sha512-+CNAzxglkrpNf/kKywqQfk74QjtceuOE7Qm+AF8miRvPF/wmmK5+OJOgVh3AVTT3RP2mH3+FOaxlE5v72owk0A==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + "@eslint/core": "^1.2.1", + "levn": "^0.4.1" }, "engines": { - "node": ">=12" + "node": "^20.19.0 || ^22.13.0 || >=24" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "node": ">=18.18.0" } }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "node_modules/@humanfs/node": { + "version": "0.16.7", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.7.tgz", + "integrity": "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "ansi-regex": "^6.0.1" + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.4.0" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "node": ">=18.18.0" } }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, + "license": "Apache-2.0", "engines": { - "node": ">= 8" + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">= 8" + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "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, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } + "license": "MIT" }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", "dev": true, - "optional": true, - "engines": { - "node": ">=14" - } + "license": "MIT" }, "node_modules/@types/json-schema": { - "version": "7.0.14", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.14.tgz", - "integrity": "sha512-U3PUjAudAdJBeC2pgN8uTIKgxrb4nlDF3SF0++EldXQvQBGkpFZMSnwQiIoDU77tv45VgNkl/L4ouD+rEomujw==", - "dev": true + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" }, "node_modules/@types/node": { - "version": "18.18.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.8.tgz", - "integrity": "sha512-OLGBaaK5V3VRBS1bAkMVP2/W9B+H8meUfl866OrMNQqt7wDgdpWPp5o6gmIc9pB+lIQHSq4ZL8ypeH1vPxcPaQ==", + "version": "26.1.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-26.1.1.tgz", + "integrity": "sha512-nxAkRSVkN1Y0JC1W8ky/fTfkGsMmcrRsbx+3XoZE+rMOX71kLYTV7fLXpqud1GpbpP5TuffXFqfX7fH2GgZREw==", "dev": true, + "license": "MIT", "dependencies": { - "undici-types": "~5.26.4" + "undici-types": "~8.3.0" } }, - "node_modules/@types/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ==", - "dev": true - }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", - "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", - "dev": true, - "dependencies": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/type-utils": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "version": "8.65.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.65.0.tgz", + "integrity": "sha512-IEgob78X12rHpUmtcwFsXhZdVGJtwTVP8FiCLZkR6GlYVrl2PcuB+KhCE5BlVC/eQpQnu8WXRtkHZuPar+gCRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.12.2", + "@typescript-eslint/scope-manager": "8.65.0", + "@typescript-eslint/type-utils": "8.65.0", + "@typescript-eslint/utils": "8.65.0", + "@typescript-eslint/visitor-keys": "8.65.0", + "ignore": "^7.0.5", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.5.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "@typescript-eslint/parser": "^8.65.0", + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.6.tgz", + "integrity": "sha512-BAg6QkE8W+TuQLrrw0Ugr7HegXduRuuj8/ti2kSOc+jz1dmx8/WNcjr6XGnq5YpDWxFwwaavqD0+jIUOKelTsw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" } }, "node_modules/@typescript-eslint/parser": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", - "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "version": "8.65.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.65.0.tgz", + "integrity": "sha512-CZ4nMxWwgu1HEEFNkeaCptra9QCtkmKdgf3sWh1rl1trIhmxLilgTV4cwcbQ4wemnT4sWQN8CaKOmdYx+g2gMA==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "debug": "^4.3.4" + "@typescript-eslint/scope-manager": "8.65.0", + "@typescript-eslint/types": "8.65.0", + "@typescript-eslint/typescript-estree": "8.65.0", + "@typescript-eslint/visitor-keys": "8.65.0", + "debug": "^4.4.3" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/project-service": { + "version": "8.65.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.65.0.tgz", + "integrity": "sha512-SxnPhbTsGahizDgbu7oqFH/xVtzIqMd/s+WtnSxNxJZJpLbdT5IPdzg8EZxO3+PoKahXmwJLeNQOpKJb3/bi7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.65.0", + "@typescript-eslint/types": "^8.65.0", + "debug": "^4.4.3" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "version": "8.65.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.65.0.tgz", + "integrity": "sha512-Esbl8OSYiVxBokYgWPf7VVWg/BE798wXhimnn9ML9Pt5qoDf8bfQlgjlKXR/k98+AcNzlLKYrpCcrcuZ9DZLgg==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" + "@typescript-eslint/types": "8.65.0", + "@typescript-eslint/visitor-keys": "8.65.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.65.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.65.0.tgz", + "integrity": "sha512-j6GzGqCiRdA7Qhur2VVmKZAkBLfnHFQfx4TaJGL9RMveZqCo48jSHHO0DTgizEnGhtWnqmbtCUSrqSkdiY/0Hg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", - "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", + "version": "8.65.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.65.0.tgz", + "integrity": "sha512-YjaZ7PRI5qY7ax2L3PbvX0rRyGtipAReCWs0mhhDBHjH/vl0g0BonaGXrKdKpMbIIsMIwDgbk/xzkBTyAltS5g==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "tsutils": "^3.21.0" + "@typescript-eslint/types": "8.65.0", + "@typescript-eslint/typescript-estree": "8.65.0", + "@typescript-eslint/utils": "8.65.0", + "debug": "^4.4.3", + "ts-api-utils": "^2.5.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/types": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "version": "8.65.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.65.0.tgz", + "integrity": "sha512-JSSwWNy+H0E/01jJEM+hrX6N0OFDzFzeIhHFSAS01tlVaevpG8cFyYRPhS5yjGOvBUx3sqQHVMjCL1CAZZMxBg==", "dev": true, + "license": "MIT", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -714,86 +838,94 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "version": "8.65.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.65.0.tgz", + "integrity": "sha512-JboAE2swaYt4tb1fHhHTABE2K+OLy09XfcTbhnk4Pw96f9dd2e9iYsJ28gBggHlo5z5x1rkyWvcPoTuNTd4oGg==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "@typescript-eslint/project-service": "8.65.0", + "@typescript-eslint/tsconfig-utils": "8.65.0", + "@typescript-eslint/types": "8.65.0", + "@typescript-eslint/visitor-keys": "8.65.0", + "debug": "^4.4.3", + "minimatch": "^10.2.2", + "semver": "^7.7.3", + "tinyglobby": "^0.2.15", + "ts-api-utils": "^2.5.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "peerDependencies": { + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "version": "8.65.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.65.0.tgz", + "integrity": "sha512-gXiwIHsYreboxeJucHKPvgwl7dXt50mF8s1/c00cP/WoVTyWKFdtfhRWwZiXYFU5H2O8vVoSLNrexFZjYS/SGA==", "dev": true, + "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" + "@eslint-community/eslint-utils": "^4.9.1", + "@typescript-eslint/scope-manager": "8.65.0", + "@typescript-eslint/types": "8.65.0", + "@typescript-eslint/typescript-estree": "8.65.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "version": "8.65.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.65.0.tgz", + "integrity": "sha512-8C71BQkGjiMmXtop7pHVJu1l2NNShFdkCyD6a2ezzs5vU/L3LRtb69EtcteFwz0mYMPzIgOw0n6OV4VBUWZd7A==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" + "@typescript-eslint/types": "8.65.0", + "eslint-visitor-keys": "^5.0.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "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": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } }, "node_modules/acorn": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", - "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "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": { "acorn": "bin/acorn" }, @@ -806,15 +938,17 @@ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, + "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "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": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -826,136 +960,59 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "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==", + "node_modules/as-float": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/as-float/-/as-float-1.0.1.tgz", + "integrity": "sha512-TsN1UpoFdtzuKXqqpdnGbFuMYnK/eqMEjd2xVvACG29H/v4KLx+UD+tHRz9v6zO+Ge/AR/uskSruBIPZrchhHw==", "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } + "license": "MIT" }, - "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 - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "node_modules/balanced-match": { + "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", "engines": { - "node": ">=8" + "node": "18 || 20 || >=22" } }, - "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==", - "dev": true - }, "node_modules/binaryen": { - "version": "116.0.0-nightly.20231102", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-116.0.0-nightly.20231102.tgz", - "integrity": "sha512-aPU9tlKdw/gcXx6u4PxtDgOtGjg/ZKnYdk23ctYb70GxZgPhWnGWmnBt01aV5dt5yFFo2V4rbB7SzpSFhViFQA==", + "version": "131.0.0-nightly.20260721", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-131.0.0-nightly.20260721.tgz", + "integrity": "sha512-AAQIkhfbYXh4FBObwBrlO+5L+6Rp6OOMOjh6AdT0M+GLNLyrwKWgtW+EzmizNgx9CWDfTJPfDtKoZi62QESbtg==", + "license": "Apache-2.0", "bin": { + "wasm-as": "bin/wasm-as", + "wasm-ctor-eval": "bin/wasm-ctor-eval", + "wasm-dis": "bin/wasm-dis", + "wasm-merge": "bin/wasm-merge", + "wasm-metadce": "bin/wasm-metadce", "wasm-opt": "bin/wasm-opt", + "wasm-reduce": "bin/wasm-reduce", + "wasm-shell": "bin/wasm-shell", "wasm2js": "bin/wasm2js" } }, "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "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, - "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==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "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==", + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.7.tgz", + "integrity": "sha512-7oFy703dxfY3/NLxC1fh2SUCQ0H9rmAY+5EpDVfXjUTTs+HEwR2nYaqLv+GWcTsumwxPfiz6CzCNkwXwBUwqCA==", "dev": true, + "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "balanced-match": "^4.0.2" }, "engines": { - "node": ">=7.0.0" + "node": "18 || 20 || >=22" } }, - "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 - }, - "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 - }, "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -966,12 +1023,13 @@ } }, "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" @@ -986,88 +1044,59 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/diff": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", - "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-9.0.0.tgz", + "integrity": "sha512-svtcdpS8CgJyqAjEQIXdb3OjhFVVYjzGAPO8WGCmRbrml64SPw/jJD4GoE98aR7r25A0XcgrK3F02yw9R/vhQw==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "node_modules/esbuild": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.1.tgz", + "integrity": "sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==", "dev": true, - "dependencies": { - "path-type": "^4.0.0" + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" }, "engines": { - "node": ">=8" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "node_modules/esbuild": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.5.tgz", - "integrity": "sha512-bUxalY7b1g8vNhQKdB24QDmHeY4V4tw/s6Ak5z+jJX9laP5MoQseTOMemAr0gxssjNcH0MCViG8ONI2kksvfFQ==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" + "node": ">=18" }, "optionalDependencies": { - "@esbuild/android-arm": "0.19.5", - "@esbuild/android-arm64": "0.19.5", - "@esbuild/android-x64": "0.19.5", - "@esbuild/darwin-arm64": "0.19.5", - "@esbuild/darwin-x64": "0.19.5", - "@esbuild/freebsd-arm64": "0.19.5", - "@esbuild/freebsd-x64": "0.19.5", - "@esbuild/linux-arm": "0.19.5", - "@esbuild/linux-arm64": "0.19.5", - "@esbuild/linux-ia32": "0.19.5", - "@esbuild/linux-loong64": "0.19.5", - "@esbuild/linux-mips64el": "0.19.5", - "@esbuild/linux-ppc64": "0.19.5", - "@esbuild/linux-riscv64": "0.19.5", - "@esbuild/linux-s390x": "0.19.5", - "@esbuild/linux-x64": "0.19.5", - "@esbuild/netbsd-x64": "0.19.5", - "@esbuild/openbsd-x64": "0.19.5", - "@esbuild/sunos-x64": "0.19.5", - "@esbuild/win32-arm64": "0.19.5", - "@esbuild/win32-ia32": "0.19.5", - "@esbuild/win32-x64": "0.19.5" + "@esbuild/aix-ppc64": "0.28.1", + "@esbuild/android-arm": "0.28.1", + "@esbuild/android-arm64": "0.28.1", + "@esbuild/android-x64": "0.28.1", + "@esbuild/darwin-arm64": "0.28.1", + "@esbuild/darwin-x64": "0.28.1", + "@esbuild/freebsd-arm64": "0.28.1", + "@esbuild/freebsd-x64": "0.28.1", + "@esbuild/linux-arm": "0.28.1", + "@esbuild/linux-arm64": "0.28.1", + "@esbuild/linux-ia32": "0.28.1", + "@esbuild/linux-loong64": "0.28.1", + "@esbuild/linux-mips64el": "0.28.1", + "@esbuild/linux-ppc64": "0.28.1", + "@esbuild/linux-riscv64": "0.28.1", + "@esbuild/linux-s390x": "0.28.1", + "@esbuild/linux-x64": "0.28.1", + "@esbuild/netbsd-arm64": "0.28.1", + "@esbuild/netbsd-x64": "0.28.1", + "@esbuild/openbsd-arm64": "0.28.1", + "@esbuild/openbsd-x64": "0.28.1", + "@esbuild/openharmony-arm64": "0.28.1", + "@esbuild/sunos-x64": "0.28.1", + "@esbuild/win32-arm64": "0.28.1", + "@esbuild/win32-ia32": "0.28.1", + "@esbuild/win32-x64": "0.28.1" } }, "node_modules/escape-string-regexp": { @@ -1075,6 +1104,7 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -1083,71 +1113,81 @@ } }, "node_modules/eslint": { - "version": "8.52.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.52.0.tgz", - "integrity": "sha512-zh/JHnaixqHZsolRB/w9/02akBk9EPrOs9JwcTP2ek7yL5bVvXuRariiaAjjoJ5DvuwQ1WAE/HsMz+w17YgBCg==", + "version": "10.7.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.7.0.tgz", + "integrity": "sha512-GVTD7s1vdIl6UYvAfriOPeY1Df8LIZjfofLvHwde+erDHGGuHyuM6xoxRxmHiebhYuD2p1vN4wWh0XzPARSGDQ==", "dev": true, + "license": "MIT", + "workspaces": [ + "packages/*" + ], "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.2", - "@eslint/js": "8.52.0", - "@humanwhocodes/config-array": "^0.11.13", + "@eslint-community/eslint-utils": "^4.8.0", + "@eslint-community/regexpp": "^4.12.2", + "@eslint/config-array": "^0.23.5", + "@eslint/config-helpers": "^0.6.0", + "@eslint/core": "^1.2.1", + "@eslint/plugin-kit": "^0.7.2", + "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "ajv": "^6.14.0", + "cross-spawn": "^7.0.6", "debug": "^4.3.2", - "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", + "eslint-scope": "^9.1.2", + "eslint-visitor-keys": "^5.0.1", + "espree": "^11.2.0", + "esquery": "^1.7.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", + "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", + "minimatch": "^10.2.4", "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" + "optionator": "^0.9.3" }, "bin": { "eslint": "bin/eslint.js" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^20.19.0 || ^22.13.0 || >=24" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } } }, "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "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": "^4.1.1" + "estraverse": "^5.2.0" }, "engines": { - "node": ">=8.0.0" + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint-visitor-keys": { @@ -1155,6 +1195,7 @@ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -1162,53 +1203,56 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "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, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, + "license": "Apache-2.0", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^20.19.0 || ^22.13.0 || >=24" }, "funding": { "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "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.9.0", + "acorn": "^8.16.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" + "eslint-visitor-keys": "^5.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "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": "^20.19.0 || ^22.13.0 || >=24" }, "funding": { "url": "https://opencollective.com/eslint" } }, "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", + "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" }, @@ -1216,20 +1260,12 @@ "node": ">=0.10" } }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, "node_modules/esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -1237,20 +1273,12 @@ "node": ">=4.0" } }, - "node_modules/esrecurse/node_modules/estraverse": { + "node_modules/estraverse": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } @@ -1260,6 +1288,7 @@ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } @@ -1268,79 +1297,52 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/fast-glob": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", - "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } + "license": "MIT" }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } + "license": "MIT" }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "dev": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, + "license": "MIT", "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } } }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, + "license": "MIT", "dependencies": { - "to-regex-range": "^5.0.1" + "flat-cache": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=16.0.0" } }, "node_modules/find-up": { @@ -1348,6 +1350,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -1360,64 +1363,39 @@ } }, "node_modules/flat-cache": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.1.tgz", - "integrity": "sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, + "license": "MIT", "dependencies": { "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" + "keyv": "^4.5.4" }, "engines": { - "node": ">=12.0.0" + "node": ">=16" } }, "node_modules/flatted": { - "version": "3.2.9", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", - "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", - "dev": true - }, - "node_modules/foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz", + "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", "dev": true, - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true + "license": "ISC" }, "node_modules/glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "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": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" + "minimatch": "^10.2.2", + "minipass": "^7.1.3", + "path-scurry": "^2.0.2" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -1428,6 +1406,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.3" }, @@ -1435,153 +1414,55 @@ "node": ">=10.13.0" } }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/globals": { - "version": "13.23.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", - "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "version": "17.7.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-17.7.0.tgz", + "integrity": "sha512-Czmyns5dUsq4seFBR/Kdydhmo8y9kC79hiSkPn0YcGtNnYWnrgt0vjrSjx9tspoDGWm2CMarffRuLjM4xUz8xg==", "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, + "license": "MIT", "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true - }, - "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, - "engines": { - "node": ">=8" - } - }, "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "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/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "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", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.19" } }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -1589,83 +1470,40 @@ "node": ">=0.10.0" } }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", - "dev": true, - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } + "license": "ISC" }, "node_modules/json-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, + "license": "MIT", "dependencies": { "json-buffer": "3.0.1" } @@ -1675,6 +1513,7 @@ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -1688,6 +1527,7 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^5.0.0" }, @@ -1698,108 +1538,75 @@ "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 - }, "node_modules/long": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", - "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz", + "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==", + "license": "Apache-2.0" }, "node_modules/lru-cache": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", - "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", - "dev": true, - "engines": { - "node": "14 || >=16.14" - } - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "11.2.7", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.7.tgz", + "integrity": "sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==", "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, + "license": "BlueOak-1.0.0", "engines": { - "node": ">=8.6" + "node": "20 || >=22" } }, "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", + "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^5.0.2" }, "engines": { - "node": "*" + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", "dev": true, + "license": "BlueOak-1.0.0", "engines": { "node": ">=16 || 14 >=14.17" } }, "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 + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", - "dev": true - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, - "dependencies": { - "wrappy": "1" - } + "license": "MIT" }, "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, + "license": "MIT", "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" }, "engines": { "node": ">= 0.8.0" @@ -1810,6 +1617,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, + "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" }, @@ -1825,6 +1633,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^3.0.2" }, @@ -1835,77 +1644,51 @@ "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, - "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", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/path-scurry": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "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": { - "lru-cache": "^9.1.1 || ^10.0.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", + "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8.6" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/jonschlinkert" @@ -1916,6 +1699,7 @@ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8.0" } @@ -1925,115 +1709,17 @@ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "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, - "engines": { - "node": ">=4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -2041,23 +1727,12 @@ "node": ">=10" } }, - "node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -2070,182 +1745,39 @@ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/tinyglobby": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", + "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-regex": "^5.0.1" + "fdir": "^6.5.0", + "picomatch": "^4.0.4" }, "engines": { - "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, - "engines": { - "node": ">=8" + "node": ">=12.0.0" }, "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, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" + "url": "https://github.com/sponsors/SuperchupuDev" } }, - "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "node_modules/ts-api-utils": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz", + "integrity": "sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==", "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, + "license": "MIT", "engines": { - "node": ">= 6" + "node": ">=18.12" }, "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + "typescript": ">=4.8.4" } }, "node_modules/type-check": { @@ -2253,6 +1785,7 @@ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1" }, @@ -2260,42 +1793,57 @@ "node": ">= 0.8.0" } }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/typescript": { - "version": "4.7.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", - "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", + "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { - "node": ">=4.2.0" + "node": ">=14.17" + } + }, + "node_modules/typescript-eslint": { + "version": "8.65.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.65.0.tgz", + "integrity": "sha512-/ggrHAwyjENDusvyxbuqxAC2dTnZg/Z8F+fgQtYIz+L6n/9HfSlEZcFGV/NsMNa6CkGk0xUjUAFwC0vHOflvIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.65.0", + "@typescript-eslint/parser": "8.65.0", + "@typescript-eslint/typescript-estree": "8.65.0", + "@typescript-eslint/utils": "8.65.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "dev": true + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.3.0.tgz", + "integrity": "sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==", + "dev": true, + "license": "MIT" }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } @@ -2305,6 +1853,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -2315,117 +1864,22 @@ "node": ">= 8" } }, - "node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/wrap-ansi-cjs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "dev": true, - "dependencies": { - "ansi-regex": "^6.0.1" - }, + "license": "MIT", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "node": ">=0.10.0" } }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -2433,1607 +1887,5 @@ "url": "https://github.com/sponsors/sindresorhus" } } - }, - "dependencies": { - "@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true - }, - "@esbuild/android-arm": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.5.tgz", - "integrity": "sha512-bhvbzWFF3CwMs5tbjf3ObfGqbl/17ict2/uwOSfr3wmxDE6VdS2GqY/FuzIPe0q0bdhj65zQsvqfArI9MY6+AA==", - "dev": true, - "optional": true - }, - "@esbuild/android-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.5.tgz", - "integrity": "sha512-5d1OkoJxnYQfmC+Zd8NBFjkhyCNYwM4n9ODrycTFY6Jk1IGiZ+tjVJDDSwDt77nK+tfpGP4T50iMtVi4dEGzhQ==", - "dev": true, - "optional": true - }, - "@esbuild/android-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.5.tgz", - "integrity": "sha512-9t+28jHGL7uBdkBjL90QFxe7DVA+KGqWlHCF8ChTKyaKO//VLuoBricQCgwhOjA1/qOczsw843Fy4cbs4H3DVA==", - "dev": true, - "optional": true - }, - "@esbuild/darwin-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.5.tgz", - "integrity": "sha512-mvXGcKqqIqyKoxq26qEDPHJuBYUA5KizJncKOAf9eJQez+L9O+KfvNFu6nl7SCZ/gFb2QPaRqqmG0doSWlgkqw==", - "dev": true, - "optional": true - }, - "@esbuild/darwin-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.5.tgz", - "integrity": "sha512-Ly8cn6fGLNet19s0X4unjcniX24I0RqjPv+kurpXabZYSXGM4Pwpmf85WHJN3lAgB8GSth7s5A0r856S+4DyiA==", - "dev": true, - "optional": true - }, - "@esbuild/freebsd-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.5.tgz", - "integrity": "sha512-GGDNnPWTmWE+DMchq1W8Sd0mUkL+APvJg3b11klSGUDvRXh70JqLAO56tubmq1s2cgpVCSKYywEiKBfju8JztQ==", - "dev": true, - "optional": true - }, - "@esbuild/freebsd-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.5.tgz", - "integrity": "sha512-1CCwDHnSSoA0HNwdfoNY0jLfJpd7ygaLAp5EHFos3VWJCRX9DMwWODf96s9TSse39Br7oOTLryRVmBoFwXbuuQ==", - "dev": true, - "optional": true - }, - "@esbuild/linux-arm": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.5.tgz", - "integrity": "sha512-lrWXLY/vJBzCPC51QN0HM71uWgIEpGSjSZZADQhq7DKhPcI6NH1IdzjfHkDQws2oNpJKpR13kv7/pFHBbDQDwQ==", - "dev": true, - "optional": true - }, - "@esbuild/linux-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.5.tgz", - "integrity": "sha512-o3vYippBmSrjjQUCEEiTZ2l+4yC0pVJD/Dl57WfPwwlvFkrxoSO7rmBZFii6kQB3Wrn/6GwJUPLU5t52eq2meA==", - "dev": true, - "optional": true - }, - "@esbuild/linux-ia32": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.5.tgz", - "integrity": "sha512-MkjHXS03AXAkNp1KKkhSKPOCYztRtK+KXDNkBa6P78F8Bw0ynknCSClO/ztGszILZtyO/lVKpa7MolbBZ6oJtQ==", - "dev": true, - "optional": true - }, - "@esbuild/linux-loong64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.5.tgz", - "integrity": "sha512-42GwZMm5oYOD/JHqHska3Jg0r+XFb/fdZRX+WjADm3nLWLcIsN27YKtqxzQmGNJgu0AyXg4HtcSK9HuOk3v1Dw==", - "dev": true, - "optional": true - }, - "@esbuild/linux-mips64el": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.5.tgz", - "integrity": "sha512-kcjndCSMitUuPJobWCnwQ9lLjiLZUR3QLQmlgaBfMX23UEa7ZOrtufnRds+6WZtIS9HdTXqND4yH8NLoVVIkcg==", - "dev": true, - "optional": true - }, - "@esbuild/linux-ppc64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.5.tgz", - "integrity": "sha512-yJAxJfHVm0ZbsiljbtFFP1BQKLc8kUF6+17tjQ78QjqjAQDnhULWiTA6u0FCDmYT1oOKS9PzZ2z0aBI+Mcyj7Q==", - "dev": true, - "optional": true - }, - "@esbuild/linux-riscv64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.5.tgz", - "integrity": "sha512-5u8cIR/t3gaD6ad3wNt1MNRstAZO+aNyBxu2We8X31bA8XUNyamTVQwLDA1SLoPCUehNCymhBhK3Qim1433Zag==", - "dev": true, - "optional": true - }, - "@esbuild/linux-s390x": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.5.tgz", - "integrity": "sha512-Z6JrMyEw/EmZBD/OFEFpb+gao9xJ59ATsoTNlj39jVBbXqoZm4Xntu6wVmGPB/OATi1uk/DB+yeDPv2E8PqZGw==", - "dev": true, - "optional": true - }, - "@esbuild/linux-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.5.tgz", - "integrity": "sha512-psagl+2RlK1z8zWZOmVdImisMtrUxvwereIdyJTmtmHahJTKb64pAcqoPlx6CewPdvGvUKe2Jw+0Z/0qhSbG1A==", - "dev": true, - "optional": true - }, - "@esbuild/netbsd-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.5.tgz", - "integrity": "sha512-kL2l+xScnAy/E/3119OggX8SrWyBEcqAh8aOY1gr4gPvw76la2GlD4Ymf832UCVbmuWeTf2adkZDK+h0Z/fB4g==", - "dev": true, - "optional": true - }, - "@esbuild/openbsd-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.5.tgz", - "integrity": "sha512-sPOfhtzFufQfTBgRnE1DIJjzsXukKSvZxloZbkJDG383q0awVAq600pc1nfqBcl0ice/WN9p4qLc39WhBShRTA==", - "dev": true, - "optional": true - }, - "@esbuild/sunos-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.5.tgz", - "integrity": "sha512-dGZkBXaafuKLpDSjKcB0ax0FL36YXCvJNnztjKV+6CO82tTYVDSH2lifitJ29jxRMoUhgkg9a+VA/B03WK5lcg==", - "dev": true, - "optional": true - }, - "@esbuild/win32-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.5.tgz", - "integrity": "sha512-dWVjD9y03ilhdRQ6Xig1NWNgfLtf2o/STKTS+eZuF90fI2BhbwD6WlaiCGKptlqXlURVB5AUOxUj09LuwKGDTg==", - "dev": true, - "optional": true - }, - "@esbuild/win32-ia32": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.5.tgz", - "integrity": "sha512-4liggWIA4oDgUxqpZwrDhmEfAH4d0iljanDOK7AnVU89T6CzHon/ony8C5LeOdfgx60x5cnQJFZwEydVlYx4iw==", - "dev": true, - "optional": true - }, - "@esbuild/win32-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.5.tgz", - "integrity": "sha512-czTrygUsB/jlM8qEW5MD8bgYU2Xg14lo6kBDXW6HdxKjh8M5PzETGiSHaz9MtbXBYDloHNUAUW2tMiKW4KM9Mw==", - "dev": true, - "optional": true - }, - "@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^3.3.0" - } - }, - "@eslint-community/regexpp": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", - "dev": true - }, - "@eslint/eslintrc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", - "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", - "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - } - }, - "@eslint/js": { - "version": "8.52.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.52.0.tgz", - "integrity": "sha512-mjZVbpaeMZludF2fsWLD0Z9gCref1Tk4i9+wddjRvpUNqqcndPkBD09N/Mapey0b3jaXbLm2kICwFv2E64QinA==", - "dev": true - }, - "@humanwhocodes/config-array": { - "version": "0.11.13", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", - "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", - "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^2.0.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - } - }, - "@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true - }, - "@humanwhocodes/object-schema": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", - "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", - "dev": true - }, - "@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, - "requires": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true - }, - "strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "requires": { - "ansi-regex": "^6.0.1" - } - } - } - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, - "optional": true - }, - "@types/json-schema": { - "version": "7.0.14", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.14.tgz", - "integrity": "sha512-U3PUjAudAdJBeC2pgN8uTIKgxrb4nlDF3SF0++EldXQvQBGkpFZMSnwQiIoDU77tv45VgNkl/L4ouD+rEomujw==", - "dev": true - }, - "@types/node": { - "version": "18.18.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.8.tgz", - "integrity": "sha512-OLGBaaK5V3VRBS1bAkMVP2/W9B+H8meUfl866OrMNQqt7wDgdpWPp5o6gmIc9pB+lIQHSq4ZL8ypeH1vPxcPaQ==", - "dev": true, - "requires": { - "undici-types": "~5.26.4" - } - }, - "@types/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ==", - "dev": true - }, - "@typescript-eslint/eslint-plugin": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", - "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", - "dev": true, - "requires": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/type-utils": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/parser": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", - "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", - "dev": true, - "requires": { - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "debug": "^4.3.4" - } - }, - "@typescript-eslint/scope-manager": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" - } - }, - "@typescript-eslint/type-utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", - "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", - "dev": true, - "requires": { - "@typescript-eslint/typescript-estree": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/types": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", - "dev": true, - "requires": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" - } - }, - "@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true - }, - "acorn": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", - "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", - "dev": true - }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "requires": {} - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "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, - "requires": { - "color-convert": "^2.0.1" - } - }, - "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 - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "binaryen": { - "version": "116.0.0-nightly.20231102", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-116.0.0-nightly.20231102.tgz", - "integrity": "sha512-aPU9tlKdw/gcXx6u4PxtDgOtGjg/ZKnYdk23ctYb70GxZgPhWnGWmnBt01aV5dt5yFFo2V4rbB7SzpSFhViFQA==" - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "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, - "requires": { - "color-name": "~1.1.4" - } - }, - "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 - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.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" - } - }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "diff": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", - "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", - "dev": true - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "requires": { - "path-type": "^4.0.0" - } - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true - }, - "emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "esbuild": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.5.tgz", - "integrity": "sha512-bUxalY7b1g8vNhQKdB24QDmHeY4V4tw/s6Ak5z+jJX9laP5MoQseTOMemAr0gxssjNcH0MCViG8ONI2kksvfFQ==", - "dev": true, - "requires": { - "@esbuild/android-arm": "0.19.5", - "@esbuild/android-arm64": "0.19.5", - "@esbuild/android-x64": "0.19.5", - "@esbuild/darwin-arm64": "0.19.5", - "@esbuild/darwin-x64": "0.19.5", - "@esbuild/freebsd-arm64": "0.19.5", - "@esbuild/freebsd-x64": "0.19.5", - "@esbuild/linux-arm": "0.19.5", - "@esbuild/linux-arm64": "0.19.5", - "@esbuild/linux-ia32": "0.19.5", - "@esbuild/linux-loong64": "0.19.5", - "@esbuild/linux-mips64el": "0.19.5", - "@esbuild/linux-ppc64": "0.19.5", - "@esbuild/linux-riscv64": "0.19.5", - "@esbuild/linux-s390x": "0.19.5", - "@esbuild/linux-x64": "0.19.5", - "@esbuild/netbsd-x64": "0.19.5", - "@esbuild/openbsd-x64": "0.19.5", - "@esbuild/sunos-x64": "0.19.5", - "@esbuild/win32-arm64": "0.19.5", - "@esbuild/win32-ia32": "0.19.5", - "@esbuild/win32-x64": "0.19.5" - } - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "eslint": { - "version": "8.52.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.52.0.tgz", - "integrity": "sha512-zh/JHnaixqHZsolRB/w9/02akBk9EPrOs9JwcTP2ek7yL5bVvXuRariiaAjjoJ5DvuwQ1WAE/HsMz+w17YgBCg==", - "dev": true, - "requires": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.2", - "@eslint/js": "8.52.0", - "@humanwhocodes/config-array": "^0.11.13", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "dependencies": { - "eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } - } - }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true - }, - "espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, - "requires": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - } - }, - "esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "fast-glob": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", - "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "dependencies": { - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - } - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "requires": { - "flat-cache": "^3.0.4" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "flat-cache": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.1.tgz", - "integrity": "sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==", - "dev": true, - "requires": { - "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" - } - }, - "flatted": { - "version": "3.2.9", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", - "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", - "dev": true - }, - "foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", - "dev": true, - "requires": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - } - }, - "globals": { - "version": "13.23.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", - "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - } - }, - "graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true - }, - "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 - }, - "ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", - "dev": true, - "requires": { - "@isaacs/cliui": "^8.0.2", - "@pkgjs/parseargs": "^0.11.0" - } - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, - "requires": { - "json-buffer": "3.0.1" - } - }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "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 - }, - "long": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", - "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" - }, - "lru-cache": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", - "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", - "dev": true - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true - }, - "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", - "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 - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", - "dev": true, - "requires": { - "@aashutoshrathi/word-wrap": "^1.2.3", - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "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, - "requires": { - "callsites": "^3.0.0" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "path-scurry": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", - "dev": true, - "requires": { - "lru-cache": "^9.1.1 || ^10.0.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - } - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true - }, - "punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true - }, - "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 - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - }, - "dependencies": { - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - } - } - }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - } - } - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "requires": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true - }, - "strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "requires": { - "ansi-regex": "^6.0.1" - } - } - } - }, - "string-width-cjs": { - "version": "npm:string-width@4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "dependencies": { - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - } - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-ansi-cjs": { - "version": "npm:strip-ansi@6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "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 - }, - "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, - "requires": { - "has-flag": "^4.0.0" - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - }, - "typescript": { - "version": "4.7.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", - "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", - "dev": true - }, - "undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "dev": true - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "requires": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true - }, - "ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true - }, - "strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "requires": { - "ansi-regex": "^6.0.1" - } - } - } - }, - "wrap-ansi-cjs": { - "version": "npm:wrap-ansi@7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true - } } } diff --git a/package.json b/package.json index 38e4f49ab1..869f93b294 100644 --- a/package.json +++ b/package.json @@ -20,23 +20,25 @@ "url": "https://github.com/AssemblyScript/assemblyscript/issues" }, "engines": { - "node": ">=16", - "npm": ">=7" + "node": ">=20", + "npm": ">=10" }, "engineStrict": true, "dependencies": { - "binaryen": "116.0.0-nightly.20231102", - "long": "^5.2.1" + "binaryen": "131.0.0-nightly.20260721", + "long": "^5.2.4" }, "devDependencies": { - "@types/node": "^18.13.0", - "@typescript-eslint/eslint-plugin": "^5.51.0", - "@typescript-eslint/parser": "^5.51.0", - "diff": "^5.1.0", - "esbuild": "^0.19.4", - "eslint": "^8.33.0", - "glob": "^10.3.0", - "typescript": "~4.7.4" + "@eslint/js": "^10.0.1", + "@types/node": "^26.1.1", + "as-float": "^1.0.1", + "diff": "^9.0.0", + "esbuild": "^0.28.1", + "eslint": "^10.7.0", + "glob": "^13.0.6", + "globals": "^17.7.0", + "typescript": "^6.0.3", + "typescript-eslint": "^8.65.0" }, "type": "module", "exports": { @@ -50,8 +52,8 @@ }, "./transform": { "import": "./dist/transform.js", - "require": "./dist/transform.cjs", - "types": "./dist/transform.d.ts" + "types": "./dist/transform.d.ts", + "require": "./dist/transform.cjs" }, "./binaryen": { "import": "./lib/binaryen.js", @@ -72,12 +74,12 @@ "scripts": { "check": "npm run check:config && npm run check:import && npm run lint", "check:config": "tsc --noEmit -p src --diagnostics --listFiles", - "check:import": "tsc --noEmit --target ESNEXT --module nodenext --moduleResolution nodenext --experimentalDecorators tests/import/index", + "check:import": "tsc --noEmit --skipLibCheck --target ESNEXT --module nodenext --moduleResolution nodenext --experimentalDecorators tests/import/index", "lint": "eslint --max-warnings 0 --ext js . && eslint --max-warnings 0 --ext ts .", "build": "node scripts/build", "watch": "node scripts/build --watch", "coverage": "npx c8 -- npm test", - "test": "npm run test:parser && npm run test:compiler -- --parallel && npm run test:browser && npm run test:asconfig && npm run test:transform", + "test": "npm run test:parser && npm run test:compiler -- --parallel && npm run test:browser && npm run test:asconfig && npm run test:transform && npm run test:cli", "test:parser": "node --enable-source-maps tests/parser", "test:compiler": "node --enable-source-maps --no-warnings tests/compiler", "test:browser": "node --enable-source-maps tests/browser", @@ -85,6 +87,7 @@ "test:transform": "npm run test:transform:esm && npm run test:transform:cjs", "test:transform:esm": "node bin/asc tests/compiler/empty --transform ./tests/transform/index.js --noEmit && node bin/asc tests/compiler/empty --transform ./tests/transform/simple.js --noEmit", "test:transform:cjs": "node bin/asc tests/compiler/empty --transform ./tests/transform/cjs/index.js --noEmit && node bin/asc tests/compiler/empty --transform ./tests/transform/cjs/simple.js --noEmit", + "test:cli": "node tests/cli/options.js", "asbuild": "npm run asbuild:debug && npm run asbuild:release", "asbuild:debug": "node bin/asc --config src/asconfig.json --target debug", "asbuild:release": "node bin/asc --config src/asconfig.json --target release", diff --git a/scripts/build-dts.js b/scripts/build-dts.js index 07215c9be9..979db546a9 100644 --- a/scripts/build-dts.js +++ b/scripts/build-dts.js @@ -319,9 +319,11 @@ const prefix = "types:assemblyscript"; export function generateSrc() { const stdout = []; + const pathToSources = pathUtil.resolve(__dirname, "..", "src"); generate({ - project: pathUtil.resolve(__dirname, "..", "src"), + project: pathToSources, + baseDir: pathToSources, prefix, exclude: [ "glue/**", @@ -373,9 +375,13 @@ export function generateCli() { prefix, stdout, resolveModuleImport: ({ importedModuleId, currentModuleId }) => { - return currentModuleId == "cli/index" && importedModuleId == "../src" - ? prefix + "/src/index" - : null; + if (currentModuleId == "cli/index" && importedModuleId == "../src") + return prefix + "/src/index"; + + if (importedModuleId == "binaryen") + return "binaryen"; + + return null; }, }); diff --git a/scripts/build-web.js b/scripts/build-web.js index fb703a7e24..8ffb3765d9 100644 --- a/scripts/build-web.js +++ b/scripts/build-web.js @@ -8,8 +8,8 @@ export function buildWeb() { const pkg = JSON.parse(fs.readFileSync(join(__dirname, "../package-lock.json"))); const mainVersion = pkg.version; - const binaryenVersion = pkg.dependencies.binaryen.version; - const longVersion = pkg.dependencies.long.version; + const binaryenVersion = pkg.packages["node_modules/binaryen"].version || pkg.dependencies.binaryen.version; + const longVersion = pkg.packages["node_modules/long"].version || pkg.dependencies.long.version; const distUrl = mainVersion === "0.0.0" ? `./` : `https://cdn.jsdelivr.net/npm/assemblyscript@${mainVersion}/dist/`; const binaryenUrl = `https://cdn.jsdelivr.net/npm/binaryen@${binaryenVersion}/index.js`; diff --git a/scripts/build.js b/scripts/build.js index ecf0a0f0b3..e8496cff23 100644 --- a/scripts/build.js +++ b/scripts/build.js @@ -182,7 +182,6 @@ const webPlugin = { const duration = Date.now() - startTime; console.log(`${time()} - web - ${stdoutColors.green("SUCCESS")} (no errors, ${duration} ms)`); - process.exitCode = 0; } catch (e) { const duration = Date.now() - startTime; console.error(e); @@ -256,7 +255,6 @@ function buildDefinitions() { const duration = Date.now() - startTime; console.log(`${time()} - dts - ${stdoutColors.green("SUCCESS")} (no errors, ${duration} ms)`); - process.exitCode = 0; } catch (e) { const duration = Date.now() - startTime; console.error(e); diff --git a/scripts/unicode-identifier.js b/scripts/unicode-identifier.js index 5984ff8708..d9788b9502 100644 --- a/scripts/unicode-identifier.js +++ b/scripts/unicode-identifier.js @@ -1,4 +1,4 @@ -// see https://github.com/microsoft/TypeScript/blob/main/scripts/regenerate-unicode-identifier-parts.js +// see https://github.com/microsoft/TypeScript/blob/main/scripts/regenerate-unicode-identifier-parts.mjs const MAX_UNICODE_CODEPOINT = 0x10FFFF; const isStart = c => /[\p{ID_Start}\u{2118}\u{212E}\u{309B}\u{309C}]/u.test(c); // Other_ID_Start explicitly included for back compat - see http://www.unicode.org/reports/tr31/#Introduction diff --git a/src/ast.ts b/src/ast.ts index da2271ef3d..da649de549 100644 --- a/src/ast.ts +++ b/src/ast.ts @@ -18,7 +18,6 @@ import { CommonFlags, PATH_DELIMITER, LIBRARY_PREFIX, - LIBRARY_SUBST } from "./common"; import { @@ -51,6 +50,7 @@ export const enum NodeKind { // types NamedType, FunctionType, + TupleType, TypeName, TypeParameter, Parameter, @@ -162,6 +162,15 @@ export abstract class Node { return new FunctionTypeNode(parameters, returnType, explicitThisType, isNullable, range); } + static createTupleType( + elements: TypeNode[], + elementNames: (IdentifierExpression | null)[] | null, + isNullable: bool, + range: Range + ): TupleTypeNode { + return new TupleTypeNode(elements, elementNames, isNullable, range); + } + static createOmittedType( range: Range ): NamedTypeNode { @@ -863,6 +872,12 @@ export abstract class TypeNode extends Node { if (functionTypeNode.returnType.hasGenericComponent(typeParameterNodes)) return true; let explicitThisType = functionTypeNode.explicitThisType; if (explicitThisType && explicitThisType.hasGenericComponent(typeParameterNodes)) return true; + } else if (this.kind == NodeKind.TupleType) { + let tupleTypeNode = changetype(this); + let elements = tupleTypeNode.elements; + for (let i = 0, k = elements.length; i < k; ++i) { + if (elements[i].hasGenericComponent(typeParameterNodes)) return true; + } } else { assert(false); } @@ -929,6 +944,22 @@ export class FunctionTypeNode extends TypeNode { } } +/** Represents a tuple type. */ +export class TupleTypeNode extends TypeNode { + constructor( + /** Tuple elements. */ + public elements: TypeNode[], + /** Tuple element names, if any. */ + public elementNames: (IdentifierExpression | null)[] | null, + /** Whether nullable or not. */ + isNullable: bool, + /** Source range. */ + range: Range + ) { + super(NodeKind.TupleType, isNullable, range); + } +} + /** Represents a type parameter. */ export class TypeParameterNode extends Node { constructor( @@ -1668,7 +1699,7 @@ export class Source extends Node { /** Checks if this source represents native code. */ get isNative(): bool { - return this.internalPath == LIBRARY_SUBST; + return this == Source._native; } /** Checks if this source is part of the (standard) library. */ diff --git a/src/bindings/js.ts b/src/bindings/js.ts index a86f77dec4..456b2f79ac 100644 --- a/src/bindings/js.ts +++ b/src/bindings/js.ts @@ -554,18 +554,10 @@ export class JSBuilder extends ExportsWalker { continue; } let resetPos = sb.length; - sb.push(": Object.assign(Object.create("); - if (moduleName == "env") { - sb.push("globalThis"); - } else { - sb.push("__module"); - sb.push(moduleId.toString()); - } - sb.push("), "); - if (moduleName == "env") { - sb.push("imports.env || {}, "); - } - sb.push("{\n"); + + // Use Object.setPrototypeOf to avoid issues with read-only properties + // on module objects created by bundlers (issue #2659) + sb.push(": Object.setPrototypeOf({\n"); ++this.indentLevel; let numInstrumented = 0; for (let _keys2 = Map_keys(module), j = 0, l = _keys2.length; j < l; ++j) { @@ -598,7 +590,15 @@ export class JSBuilder extends ExportsWalker { sb.push(",\n"); } else { indent(sb, this.indentLevel); - sb.push("}),\n"); + sb.push("}, "); + if (moduleName == "env") { + // TODO: If necessary, use "Object.setPrototypeOf(Object.assign({}, imports.env || {}), globalThis)" + sb.push("Object.assign(Object.create(globalThis), imports.env || {})"); + } else { + sb.push("__module"); + sb.push(moduleId.toString()); + } + sb.push("),\n"); } } --this.indentLevel; @@ -976,8 +976,9 @@ export class JSBuilder extends ExportsWalker { } sb.push(`} = await (async url => instantiate( await (async () => { - try { return await globalThis.WebAssembly.compileStreaming(globalThis.fetch(url)); } - catch { return globalThis.WebAssembly.compile(await (await import("node:fs/promises")).readFile(url)); } + const isNodeOrBun = typeof process != "undefined" && process.versions != null && (process.versions.node != null || process.versions.bun != null); + if (isNodeOrBun) { return globalThis.WebAssembly.compile(await (await import("node:fs/promises")).readFile(url)); } + else { return await globalThis.WebAssembly.compileStreaming(globalThis.fetch(url)); } })(), { `); let needsMaybeDefault = false; diff --git a/src/builtins.ts b/src/builtins.ts index e9f563e1e6..f876049603 100644 --- a/src/builtins.ts +++ b/src/builtins.ts @@ -43,7 +43,8 @@ import { NodeKind, LiteralExpression, ArrayLiteralExpression, - IdentifierExpression + IdentifierExpression, + NamedTypeNode } from "./ast"; import { @@ -85,7 +86,9 @@ import { DecoratorFlags, Class, PropertyPrototype, - VariableLikeElement + VariableLikeElement, + Element, + OperatorKind } from "./program"; import { @@ -94,11 +97,13 @@ import { } from "./flow"; import { - ReportMode + ReportMode, + Resolver } from "./resolver"; import { CommonFlags, + CommonNames, Feature, featureToString, TypeinfoFlags @@ -191,6 +196,7 @@ export namespace BuiltinNames { export const assert = "~lib/builtins/assert"; export const call_indirect = "~lib/builtins/call_indirect"; export const unchecked = "~lib/builtins/unchecked"; + export const inline_always = "~lib/builtins/inline.always"; export const instantiate = "~lib/builtins/instantiate"; export const idof = "~lib/builtins/idof"; @@ -767,6 +773,17 @@ export namespace BuiltinNames { export const Object = "~lib/object/Object"; } +/** Builtin types context. */ +export class BuiltinTypesContext { + constructor( + public resolver: Resolver, + public node: NamedTypeNode, + public ctxElement: Element, + public ctxTypes: Map | null, + public reportMode: ReportMode + ) {} +} + /** Builtin variable compilation context. */ export class BuiltinVariableContext { constructor( @@ -803,6 +820,9 @@ export class BuiltinFunctionContext { ) {} } +/** Builtin types map. */ +export const builtinTypes = new Map Type | null>(); + /** Builtin functions map. */ export const builtinFunctions = new Map ExpressionRef>(); @@ -810,6 +830,142 @@ export const builtinFunctions = new Map export const builtinVariables_onCompile = new Map void>(); export const builtinVariables_onAccess = new Map ExpressionRef>(); +// === Builtin Types ========================================================================== +function builtin_resolveNativeType(ctx: BuiltinTypesContext): Type | null { + let resolver = ctx.resolver; + let node = ctx.node; + let ctxElement = ctx.ctxElement; + let ctxTypes = ctx.ctxTypes; + let reportMode = ctx.reportMode; + const typeArgumentNode = resolver.ensureOneTypeArgument(node, reportMode); + if (!typeArgumentNode) return null; + let typeArgument = resolver.resolveType(typeArgumentNode, null, ctxElement, ctxTypes, reportMode); + if (!typeArgument) return null; + switch (typeArgument.kind) { + case TypeKind.I8: + case TypeKind.I16: + case TypeKind.I32: return Type.i32; + case TypeKind.Isize: if (!resolver.program.options.isWasm64) return Type.i32; + case TypeKind.I64: return Type.i64; + case TypeKind.U8: + case TypeKind.U16: + case TypeKind.U32: + case TypeKind.Bool: return Type.u32; + case TypeKind.Usize: if (!resolver.program.options.isWasm64) return Type.u32; + case TypeKind.U64: return Type.u64; + case TypeKind.F32: return Type.f32; + case TypeKind.F64: return Type.f64; + case TypeKind.V128: return Type.v128; + case TypeKind.Void: return Type.void; + default: assert(false); + } + return null; +} +builtinTypes.set(CommonNames.native, builtin_resolveNativeType); + +function builtin_resolveIndexOfType(ctx: BuiltinTypesContext): Type | null { + let resolver = ctx.resolver; + let node = ctx.node; + let ctxElement = ctx.ctxElement; + let ctxTypes = ctx.ctxTypes; + let reportMode = ctx.reportMode; + const typeArgumentNode = resolver.ensureOneTypeArgument(node, reportMode); + if (!typeArgumentNode) return null; + let typeArgument = resolver.resolveType(typeArgumentNode, null, ctxElement, ctxTypes, reportMode); + if (!typeArgument) return null; + let classReference = typeArgument.classReference; + if (!classReference) { + if (reportMode == ReportMode.Report) { + resolver.error( + DiagnosticCode.Index_signature_is_missing_in_type_0, + typeArgumentNode.range, typeArgument.toString() + ); + } + return null; + } + let overload = classReference.lookupOverload(OperatorKind.IndexedGet); + if (overload) { + let parameterTypes = overload.signature.parameterTypes; + if (overload.is(CommonFlags.Static)) { + assert(parameterTypes.length == 2); + return parameterTypes[1]; + } else { + assert(parameterTypes.length == 1); + return parameterTypes[0]; + } + } + if (reportMode == ReportMode.Report) { + resolver.error( + DiagnosticCode.Index_signature_is_missing_in_type_0, + typeArgumentNode.range, typeArgument.toString() + ); + } + return null; +} +builtinTypes.set(CommonNames.indexof, builtin_resolveIndexOfType); + +function builtin_resolveValueOfType(ctx: BuiltinTypesContext): Type | null { + let resolver = ctx.resolver; + let node = ctx.node; + let ctxElement = ctx.ctxElement; + let ctxTypes = ctx.ctxTypes; + let reportMode = ctx.reportMode; + const typeArgumentNode = resolver.ensureOneTypeArgument(node, reportMode); + if (!typeArgumentNode) return null; + let typeArgument = resolver.resolveType(typeArgumentNode, null, ctxElement, ctxTypes, reportMode); + if (!typeArgument) return null; + let classReference = typeArgument.getClassOrWrapper(resolver.program); + if (classReference) { + let overload = classReference.lookupOverload(OperatorKind.IndexedGet); + if (overload) return overload.signature.returnType; + } + if (reportMode == ReportMode.Report) { + resolver.error( + DiagnosticCode.Index_signature_is_missing_in_type_0, + typeArgumentNode.range, typeArgument.toString() + ); + } + return null; +} +builtinTypes.set(CommonNames.valueof, builtin_resolveValueOfType); + +function builtin_resolveReturnOfType(ctx: BuiltinTypesContext): Type | null { + let resolver = ctx.resolver; + let node = ctx.node; + let ctxElement = ctx.ctxElement; + let ctxTypes = ctx.ctxTypes; + let reportMode = ctx.reportMode; + const typeArgumentNode = resolver.ensureOneTypeArgument(node, reportMode); + if (!typeArgumentNode) return null; + let typeArgument = resolver.resolveType(typeArgumentNode, null, ctxElement, ctxTypes, reportMode); + if (!typeArgument) return null; + let signatureReference = typeArgument.getSignature(); + if (signatureReference) return signatureReference.returnType; + if (reportMode == ReportMode.Report) { + resolver.error( + DiagnosticCode.Type_0_has_no_call_signatures, + typeArgumentNode.range, typeArgument.toString() + ); + } + return null; +} +builtinTypes.set(CommonNames.returnof, builtin_resolveReturnOfType); + +function builtin_resolveNonnullableType(ctx: BuiltinTypesContext): Type | null { + let resolver = ctx.resolver; + let node = ctx.node; + let ctxElement = ctx.ctxElement; + let ctxTypes = ctx.ctxTypes; + let reportMode = ctx.reportMode; + const typeArgumentNode = resolver.ensureOneTypeArgument(node, reportMode); + if (!typeArgumentNode) return null; + let typeArgument = resolver.resolveType(typeArgumentNode, null, ctxElement, ctxTypes, reportMode); + if (!typeArgument) return null; + if (!typeArgument.isNullableReference) return typeArgument; + return typeArgument.nonNullableType; +} +builtinTypes.set(CommonNames.nonnull, builtin_resolveNonnullableType); + // === Static type evaluation ================================================================= // helper global used by checkConstantType @@ -1623,6 +1779,7 @@ function builtin_max(ctx: BuiltinFunctionContext): ExpressionRef { } else { arg1 = compiler.compileExpression(operands[1], type, Constraints.ConvImplicit | Constraints.MustWrap); } + // @ts-expect-error let op: BinaryOp = -1; switch (type.kind) { case TypeKind.I8: @@ -1652,8 +1809,7 @@ function builtin_max(ctx: BuiltinFunctionContext): ExpressionRef { module.binary(op, module.local_get(temp1.index, typeRef), module.local_get(temp2.index, typeRef) - ), - typeRef + ) ); return ret; } @@ -1691,6 +1847,7 @@ function builtin_min(ctx: BuiltinFunctionContext): ExpressionRef { } else { arg1 = compiler.compileExpression(operands[1], type, Constraints.ConvImplicit | Constraints.MustWrap); } + // @ts-expect-error let op: BinaryOp = -1; switch (type.kind) { case TypeKind.I8: @@ -1720,8 +1877,7 @@ function builtin_min(ctx: BuiltinFunctionContext): ExpressionRef { module.binary(op, module.local_get(temp1.index, typeRef), module.local_get(temp2.index, typeRef) - ), - typeRef + ) ); return ret; } @@ -3130,7 +3286,7 @@ function builtin_select(ctx: BuiltinFunctionContext): ExpressionRef { operands[2] ); compiler.currentType = type; - return module.select(arg0, arg1, arg2, type.toRef()); + return module.select(arg0, arg1, arg2); } builtinFunctions.set(BuiltinNames.select, builtin_select); @@ -3609,6 +3765,24 @@ function builtin_unchecked(ctx: BuiltinFunctionContext): ExpressionRef { } builtinFunctions.set(BuiltinNames.unchecked, builtin_unchecked); +// inline.always(expr: *) -> * +function builtin_inline_always(ctx: BuiltinFunctionContext): ExpressionRef { + let compiler = ctx.compiler; + let module = compiler.module; + if ( + checkTypeAbsent(ctx) | + checkArgsRequired(ctx, 1) + ) return module.unreachable(); + let flow = compiler.currentFlow; + let alreadyInline = flow.is(FlowFlags.InlineContext); + if (!alreadyInline) flow.set(FlowFlags.InlineContext); + // eliminate unnecessary tees by preferring contextualType(=void) + let expr = compiler.compileExpression(ctx.operands[0], ctx.contextualType); + if (!alreadyInline) flow.unset(FlowFlags.InlineContext); + return expr; +} +builtinFunctions.set(BuiltinNames.inline_always, builtin_inline_always); + // call_indirect(index: u32, ...args: *[]) -> T function builtin_call_indirect(ctx: BuiltinFunctionContext): ExpressionRef { let compiler = ctx.compiler; @@ -3632,6 +3806,9 @@ function builtin_call_indirect(ctx: BuiltinFunctionContext): ExpressionRef { let paramTypeRefs = new Array(numOperands); for (let i = 0; i < numOperands; ++i) { operandExprs[i] = compiler.compileExpression(operands[1 + i], Type.auto); + if (compiler.currentType.isManaged) { + operandExprs[i] = module.tostack(operandExprs[i]); + } paramTypeRefs[i] = compiler.currentType.toRef(); } compiler.currentType = returnType; @@ -10786,20 +10963,14 @@ function ensureVisitMembersOf(compiler: Compiler, instance: Class): void { assert(fieldOffset >= 0); needsTempValue = true; body.push( - // if ($2 = value) __visit($2, $1) - module.if( - module.local_tee(2, - module.load(sizeTypeSize, false, - module.local_get(0, sizeTypeRef), - sizeTypeRef, fieldOffset - ), - false // internal - ), - module.call(visitInstance.internalName, [ - module.local_get(2, sizeTypeRef), // value - module.local_get(1, TypeRef.I32) // cookie - ], TypeRef.None) - ) + // __visit(load($this, fieldOffset), $cookie) + module.call(visitInstance.internalName, [ + module.load(sizeTypeSize, false, + module.local_get(0, sizeTypeRef), + sizeTypeRef, fieldOffset + ), // value + module.local_get(1, TypeRef.I32) // cookie + ], TypeRef.None) ); } } diff --git a/src/common.ts b/src/common.ts index f5d6675edd..f5336f0479 100644 --- a/src/common.ts +++ b/src/common.ts @@ -191,9 +191,12 @@ export namespace CommonNames { export const ASC_FEATURE_RELAXED_SIMD = "ASC_FEATURE_RELAXED_SIMD"; export const ASC_FEATURE_EXTENDED_CONST = "ASC_FEATURE_EXTENDED_CONST"; export const ASC_FEATURE_STRINGREF = "ASC_FEATURE_STRINGREF"; + export const ASC_FEATURE_SHARED_EVERYTHING = "ASC_FEATURE_SHARED_EVERYTHING"; export const ASC_VERSION_MAJOR = "ASC_VERSION_MAJOR"; export const ASC_VERSION_MINOR = "ASC_VERSION_MINOR"; export const ASC_VERSION_PATCH = "ASC_VERSION_PATCH"; + // enums + export const EnumToString = "__enum_to_string"; // classes export const I8 = "I8"; export const I16 = "I16"; diff --git a/src/compiler.ts b/src/compiler.ts index 6508090626..f99bd5a049 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -48,18 +48,17 @@ import { getBlockChildCount, getBlockChildAt, getBlockName, - getLocalSetValue, getGlobalGetName, isGlobalMutable, getSideEffects, SideEffects, SwitchBuilder, ExpressionRunnerFlags, - isConstZero, isConstNegZero, isConstExpressionNaN, ensureType, - createType + createType, + getConstValueInteger } from "./module"; import { @@ -93,7 +92,8 @@ import { PropertyPrototype, IndexSignature, File, - mangleInternalName + mangleInternalName, + TypeDefinition } from "./program"; import { @@ -180,7 +180,9 @@ import { findDecorator, isTypeOmitted, - Source + Source, + TypeDeclaration, + ParameterKind } from "./ast"; import { @@ -323,8 +325,10 @@ export class Options { /** Sets whether a feature is enabled. */ setFeature(feature: Feature, on: bool = true): void { if (on) { + // Enabling Shared Everything also enables Threads and GC + if (feature & Feature.SharedEverything) feature |= Feature.Threads | Feature.GC; // Enabling Stringref also enables GC - if (feature & Feature.Stringref) feature |= Feature.GC; + if (feature & Feature.Strings) feature |= Feature.GC; // Enabling GC also enables Reference Types if (feature & Feature.GC) feature |= Feature.ReferenceTypes; // Enabling Relaxed SIMD also enables SIMD @@ -334,9 +338,11 @@ export class Options { // Disabling Reference Types also disables GC if (feature & Feature.ReferenceTypes) feature |= Feature.GC; // Disabling GC also disables Stringref - if (feature & Feature.GC) feature |= Feature.Stringref; + if (feature & Feature.GC) feature |= Feature.Strings; // Disabling SIMD also disables Relaxed SIMD if (feature & Feature.Simd) feature |= Feature.RelaxedSimd; + // Disabling Threads or GC also disables Shared Everything + if (feature & (Feature.Threads | Feature.GC)) feature |= Feature.SharedEverything; this.features &= ~feature; } } @@ -448,6 +454,8 @@ export class Compiler extends DiagnosticEmitter { memorySegments: MemorySegment[] = []; /** Map of already compiled static string segments. */ stringSegments: Map = new Map(); + /** Set of static GC object offsets. tostack is unnecessary for them. */ + staticGcObjectOffsets: Map> = new Map(); /** Function table being compiled. First elem is blank. */ functionTable: Function[] = []; /** Arguments length helper global. */ @@ -511,7 +519,8 @@ export class Compiler extends DiagnosticEmitter { if (options.hasFeature(Feature.Memory64)) featureFlags |= FeatureFlags.Memory64; if (options.hasFeature(Feature.RelaxedSimd)) featureFlags |= FeatureFlags.RelaxedSIMD; if (options.hasFeature(Feature.ExtendedConst)) featureFlags |= FeatureFlags.ExtendedConst; - if (options.hasFeature(Feature.Stringref)) featureFlags |= FeatureFlags.Stringref; + if (options.hasFeature(Feature.Strings)) featureFlags |= FeatureFlags.Strings; + if (options.hasFeature(Feature.SharedEverything)) featureFlags |= FeatureFlags.SharedEverything; module.setFeatures(featureFlags); // set up the main start function @@ -530,9 +539,21 @@ export class Compiler extends DiagnosticEmitter { let resolver = this.resolver; let hasShadowStack = options.stackSize > 0; // implies runtime=incremental + // Register a dummy memory so Binaryen's EffectAnalyzer can read + // memory.shared on loads/stores emitted during compilation. The real + // memory is installed by `initDefaultMemory` below, which can't run + // here: it needs `memoryOffset` (known only after data layout) and + // emits diagnostics / exports that must happen exactly once. + this.initDummyMemory(); + // initialize lookup maps, built-ins, imports, exports, etc. this.program.initialize(); + // Binaryen treats all function references as being leaked to the outside world when + // the module isn't marked as closed-world (see WebAssembly/binaryen#7135). Therefore, + // we should mark the module as closed-world when we're definitely sure it is. + module.setClosedWorld(true); + // obtain the main start function let startFunctionInstance = this.currentFlow.targetFunction; assert(startFunctionInstance.internalName == BuiltinNames.start); @@ -752,6 +773,19 @@ export class Compiler extends DiagnosticEmitter { return module; } + private initDummyMemory(): void { + let options = this.options; + this.module.setMemory( + 0, + Module.UNLIMITED_MEMORY, + [], + options.target, + null, + CommonNames.DefaultMemory, + options.sharedMemory + ); + } + private initDefaultMemory(memoryOffset: i64): void { this.memoryOffset = memoryOffset; @@ -847,13 +881,15 @@ export class Compiler extends DiagnosticEmitter { let options = this.options; let module = this.module; - // import and/or export table if requested (default table is named '0' by Binaryen) + // import and/or export table if requested (default table is named '0' by Binaryen). + // non-imported tables are declared lazily on first indirect call, see ensureFunctionTable if (options.importTable) { module.addTableImport( CommonNames.DefaultTable, ImportNames.DefaultNamespace, ImportNames.Table ); + module.setClosedWorld(false); if (options.pedantic && options.willOptimize) { this.pedantic( DiagnosticCode.Importing_the_table_disables_some_indirect_call_optimizations, @@ -863,6 +899,7 @@ export class Compiler extends DiagnosticEmitter { } if (options.exportTable) { module.addTableExport(CommonNames.DefaultTable, ExportNames.Table); + module.setClosedWorld(false); if (options.pedantic && options.willOptimize) { this.pedantic( DiagnosticCode.Exporting_the_table_disables_some_indirect_call_optimizations, @@ -974,6 +1011,7 @@ export class Compiler extends DiagnosticEmitter { } } } + if (functionInstance.signature.returnType.kind == TypeKind.Func) this.module.setClosedWorld(false); } return; } @@ -1004,6 +1042,7 @@ export class Compiler extends DiagnosticEmitter { this.desiresExportRuntime = true; } } + if (global.type.kind == TypeKind.Func) this.module.setClosedWorld(false); } if (global.type == Type.v128) { this.warning( @@ -1156,7 +1195,7 @@ export class Compiler extends DiagnosticEmitter { // Resolve type if annotated if (typeNode) { - let resolvedType = this.resolver.resolveType(typeNode, global.parent); // reports + let resolvedType = this.resolver.resolveType(typeNode, null, global.parent); // reports if (!resolvedType) { global.set(CommonFlags.Errored); pendingElements.delete(global); @@ -1508,6 +1547,49 @@ export class Compiler extends DiagnosticEmitter { return true; } + private ensureEnumToString(enumElement: Enum, reportNode: Node): string | null { + if (enumElement.toStringFunctionName) return enumElement.toStringFunctionName; + + if (!this.compileEnum(enumElement)) return null; + if (enumElement.is(CommonFlags.Const)) { + this.errorRelated( + DiagnosticCode.A_const_enum_member_can_only_be_accessed_using_a_string_literal, + reportNode.range, enumElement.identifierNode.range + ); + return null; + } + + let members = enumElement.members; + if (!members) return null; + + let module = this.module; + const isInline = enumElement.hasDecorator(DecoratorFlags.Inline); + + const functionName = `${enumElement.internalName}#${CommonNames.EnumToString}`; + enumElement.toStringFunctionName = functionName; + + let exprs = new Array(); + // when the values are the same, TS returns the last enum value name that appears + for (let _keys = Map_keys(members), _values = Map_values(members), i = 1, k = _keys.length; i <= k; ++i) { + let enumValueName = unchecked(_keys[k - i]); + let member = unchecked(_values[k - i]); + if (member.kind != ElementKind.EnumValue) continue; + let enumValue = member; + const enumValueExpr = isInline + ? module.i32(i64_low(enumValue.constantIntegerValue)) + : module.global_get(enumValue.internalName, TypeRef.I32); + let expr = module.if( + module.binary(BinaryOp.EqI32, enumValueExpr, module.local_get(0, TypeRef.I32)), + module.return(this.ensureStaticString(enumValueName)) + ); + exprs.push(expr); + } + exprs.push(module.unreachable()); + module.addFunction(functionName, TypeRef.I32, TypeRef.I32, null, module.block(null, exprs, TypeRef.I32)); + + return functionName; + } + // === Functions ================================================================================ /** Compiles a priorly resolved function. */ @@ -1517,7 +1599,8 @@ export class Compiler extends DiagnosticEmitter { /** Force compilation of stdlib alternative if a builtin. */ forceStdAlternative: bool = false ): bool { - if (instance.is(CommonFlags.Compiled)) return !instance.is(CommonFlags.Errored); + if (instance.is(CommonFlags.Errored)) return false; + if (instance.is(CommonFlags.Compiled)) return true; if (!forceStdAlternative) { if (instance.hasDecorator(DecoratorFlags.Builtin)) return true; @@ -1926,7 +2009,16 @@ export class Compiler extends DiagnosticEmitter { stringSegment = this.addRuntimeMemorySegment(buf); segments.set(stringValue, stringSegment); } - return i64_add(stringSegment.offset, i64_new(totalOverhead)); + let stringOffset = i64_add(stringSegment.offset, i64_new(totalOverhead)); + let staticGcObjectOffsets = this.staticGcObjectOffsets; + if (staticGcObjectOffsets.has(i64_high(stringOffset))) { + assert(staticGcObjectOffsets.get(i64_high(stringOffset))).add(i64_low(stringOffset)); + } else { + let s = new Set(); + s.add(i64_low(stringOffset)); + staticGcObjectOffsets.set(i64_high(stringOffset), s); + } + return stringOffset; } /** Writes a series of static values of the specified type to a buffer. */ @@ -2061,7 +2153,11 @@ export class Compiler extends DiagnosticEmitter { let memorySegment = instance.memorySegment; if (!memorySegment) { - // Add to the function table + // Add to the function table, declaring it on first use so effect analysis works + if (!this.options.importTable) { + this.module.ensureFunctionTable(CommonNames.DefaultTable); + } + let functionTable = this.functionTable; let tableBase = this.options.tableBase; if (!tableBase) tableBase = 1; // leave first elem blank @@ -2238,13 +2334,7 @@ export class Compiler extends DiagnosticEmitter { break; } case NodeKind.TypeDeclaration: { - // TODO: integrate inner type declaration into flow - this.error( - DiagnosticCode.Not_implemented_0, - statement.range, - "Inner type alias" - ); - stmt = module.unreachable(); + stmt = this.compileTypeDeclaration(statement); break; } case NodeKind.Module: { @@ -2305,6 +2395,24 @@ export class Compiler extends DiagnosticEmitter { return this.module.flatten(stmts); } + private compileTypeDeclaration(statement: TypeDeclaration): ExpressionRef { + let flow = this.currentFlow; + let name = statement.name.text; + let existedTypeAlias = flow.lookupScopedTypeAlias(name); + if (existedTypeAlias) { + this.errorRelated( + DiagnosticCode.Duplicate_identifier_0, + statement.range, + existedTypeAlias.declaration.range, + name + ); + return this.module.unreachable(); + } + let element = new TypeDefinition(name, flow.sourceFunction, statement, DecoratorFlags.None); + flow.addScopedTypeAlias(name, element); + return this.module.nop(); + } + private compileBreakStatement( statement: BreakStatement ): ExpressionRef { @@ -2504,7 +2612,7 @@ export class Compiler extends DiagnosticEmitter { // (then │ │ (body) │ // (?block $continue │ │ if loops: (incrementor) ─────┘ // (body) │ │ recompile body? - // ) ├◄┘ + // ) ├◄┘ // (incrementor) ┌◄┘ // (br $loop) // ) @@ -2581,11 +2689,20 @@ export class Compiler extends DiagnosticEmitter { bodyStmts.length = 1; } + if (condKind == ConditionKind.True) { + // Body executes at least once + flow.inherit(bodyFlow); + } else { + // Otherwise executes conditionally + flow.mergeBranch(bodyFlow); + } + // Compile the incrementor if it possibly executes let possiblyLoops = possiblyContinues || possiblyFallsThrough; if (possiblyLoops) { let incrementor = statement.incrementor; if (incrementor) { + this.currentFlow = flow; bodyStmts.push( this.compileExpression(incrementor, Type.void, Constraints.ConvImplicit | Constraints.WillDrop) ); @@ -2603,14 +2720,6 @@ export class Compiler extends DiagnosticEmitter { } } - // Body executes at least once - if (condKind == ConditionKind.True) { - flow.inherit(bodyFlow); - - // Otherwise executes conditionally - } else { - flow.mergeBranch(bodyFlow); - } // Finalize outerFlow.inherit(flow); @@ -2790,20 +2899,19 @@ export class Compiler extends DiagnosticEmitter { let numCases = cases.length; // Compile the condition (always executes) - let condExpr = this.compileExpression(statement.condition, Type.u32, - Constraints.ConvImplicit - ); + let condExpr = this.compileExpression(statement.condition, Type.auto); + let condType = this.currentType; // Shortcut if there are no cases if (!numCases) return module.drop(condExpr); - + // Assign the condition to a temporary local as we compare it multiple times let outerFlow = this.currentFlow; - let tempLocal = outerFlow.getTempLocal(Type.u32); + let tempLocal = outerFlow.getTempLocal(condType); let tempLocalIndex = tempLocal.index; let breaks = new Array(1 + numCases); - breaks[0] = module.local_set(tempLocalIndex, condExpr, false); // u32 - + breaks[0] = module.local_set(tempLocalIndex, condExpr, condType.isManaged); + // Make one br_if per labeled case and leave it to Binaryen to optimize the // sequence of br_ifs to a br_table according to optimization levels let breakIndex = 1; @@ -2815,14 +2923,24 @@ export class Compiler extends DiagnosticEmitter { defaultIndex = i; continue; } - breaks[breakIndex++] = module.br(`case${i}|${label}`, - module.binary(BinaryOp.EqI32, - module.local_get(tempLocalIndex, TypeRef.I32), - this.compileExpression(assert(case_.label), Type.u32, - Constraints.ConvImplicit - ) - ) + + // Compile the equality expression for this case + const left = statement.condition; + const leftExpr = module.local_get(tempLocalIndex, condType.toRef()); + const leftType = condType; + const right = case_.label!; + const rightExpr = this.compileExpression(assert(case_.label), condType, Constraints.ConvImplicit); + const rightType = this.currentType; + const equalityExpr = this.compileCommutativeCompareBinaryExpressionFromParts( + Token.Equals_Equals, + left, leftExpr, leftType, + right, rightExpr, rightType, + condType, + statement ); + + // Add it to the list of breaks + breaks[breakIndex++] = module.br(`case${i}|${label}`, equalityExpr); } // If there is a default case, break to it, otherwise break out of the switch @@ -2962,7 +3080,7 @@ export class Compiler extends DiagnosticEmitter { let initializerNode = declaration.initializer; if (typeNode) { type = resolver.resolveType( // reports - typeNode, + typeNode, flow, flow.sourceFunction, cloneMap(flow.contextualTypeArguments) ); @@ -3633,43 +3751,29 @@ export class Compiler extends DiagnosticEmitter { // int to float } else if (fromType.isIntegerValue && toType.isFloatValue) { - + // Clear extra bits. + expr = this.ensureSmallIntegerWrap(expr, fromType); + let op: UnaryOp; // int to f32 if (toType.kind == TypeKind.F32) { if (fromType.isLongIntegerValue) { - expr = module.unary( - fromType.isSignedIntegerValue - ? UnaryOp.ConvertI64ToF32 - : UnaryOp.ConvertU64ToF32, - expr - ); + if (fromType.isSignedIntegerValue) op = UnaryOp.ConvertI64ToF32; + else op = UnaryOp.ConvertU64ToF32; } else { - expr = module.unary( - fromType.isSignedIntegerValue - ? UnaryOp.ConvertI32ToF32 - : UnaryOp.ConvertU32ToF32, - expr - ); + if (fromType.isSignedIntegerValue) op = UnaryOp.ConvertI32ToF32; + else op = UnaryOp.ConvertU32ToF32; } - // int to f64 } else { if (fromType.isLongIntegerValue) { - expr = module.unary( - fromType.isSignedIntegerValue - ? UnaryOp.ConvertI64ToF64 - : UnaryOp.ConvertU64ToF64, - expr - ); + if (fromType.isSignedIntegerValue) op = UnaryOp.ConvertI64ToF64; + else op = UnaryOp.ConvertU64ToF64; } else { - expr = module.unary( - fromType.isSignedIntegerValue - ? UnaryOp.ConvertI32ToF64 - : UnaryOp.ConvertU32ToF64, - expr - ); + if (fromType.isSignedIntegerValue) op = UnaryOp.ConvertI32ToF64; + else op = UnaryOp.ConvertU32ToF64; } } + expr = module.unary(op, expr); // v128 to bool } else if (fromType == Type.v128 && toType.isBooleanValue) { @@ -3729,7 +3833,7 @@ export class Compiler extends DiagnosticEmitter { case AssertionKind.As: { let flow = this.currentFlow; let toType = this.resolver.resolveType( // reports - assert(expression.toType), + assert(expression.toType), flow, flow.sourceFunction, cloneMap(flow.contextualTypeArguments) ); @@ -3783,270 +3887,222 @@ export class Compiler extends DiagnosticEmitter { private i32PowInstance: Function | null = null; private i64PowInstance: Function | null = null; - private compileBinaryExpression( + /** compile `==` `===` `!=` `!==` BinaryExpression */ + private compileCommutativeCompareBinaryExpression( expression: BinaryExpression, contextualType: Type, - constraints: Constraints ): ExpressionRef { - let module = this.module; - let left = expression.left; - let right = expression.right; - let leftExpr: ExpressionRef; - let leftType: Type; - let rightExpr: ExpressionRef; - let rightType: Type; - let commonType: Type | null; + const left = expression.left; + const leftExpr = this.compileExpression(left, contextualType); + const leftType = this.currentType; - let expr: ExpressionRef; - let compound = false; + const right = expression.right; + const rightExpr = this.compileExpression(right, leftType); + const rightType = this.currentType; - let operator = expression.operator; - switch (operator) { - case Token.LessThan: { - leftExpr = this.compileExpression(left, contextualType); - leftType = this.currentType; + return this.compileCommutativeCompareBinaryExpressionFromParts( + expression.operator, + left, leftExpr, leftType, + right, rightExpr, rightType, + contextualType, + expression + ); + } - // check operator overload - let classReference = leftType.getClassOrWrapper(this.program); - if (classReference) { - let overload = classReference.lookupOverload(OperatorKind.Lt); - if (overload) { - expr = this.compileBinaryOverload(overload, left, leftExpr, leftType, right, expression); - break; - } - } + /** + * compile `==` `===` `!=` `!==` BinaryExpression, from previously compiled left and right expressions. + * + * This is split from `compileCommutativeCompareBinaryExpression` so that the logic can be reused + * for switch cases in `compileSwitchStatement`, where the left expression only should be compiled once. + */ + private compileCommutativeCompareBinaryExpressionFromParts( + operator: Token, + left: Expression, + leftExpr: ExpressionRef, + leftType: Type, + right: Expression, + rightExpr: ExpressionRef, + rightType: Type, + contextualType: Type, + reportNode: Node + ): ExpressionRef { - rightExpr = this.compileExpression(right, leftType); - rightType = this.currentType; - commonType = Type.commonType(leftType, rightType, contextualType, true); - if (!commonType || !commonType.isNumericValue) { - this.error( - DiagnosticCode.Operator_0_cannot_be_applied_to_types_1_and_2, - expression.range, "<", leftType.toString(), rightType.toString() - ); - this.currentType = contextualType; - return module.unreachable(); - } + let module = this.module; + let operatorString = operatorTokenToString(operator); - leftExpr = this.convertExpression(leftExpr, leftType, commonType, false, left); - leftType = commonType; - rightExpr = this.convertExpression(rightExpr, rightType, commonType, false, right); - rightType = commonType; + // check operator overload + const operatorKind = OperatorKind.fromBinaryToken(operator); + const leftOverload = leftType.lookupOverload(operatorKind, this.program); + const rightOverload = rightType.lookupOverload(operatorKind, this.program); + if (leftOverload && rightOverload && leftOverload != rightOverload) { + this.error( + DiagnosticCode.Ambiguous_operator_overload_0_conflicting_overloads_1_and_2, + reportNode.range, + operatorString, + leftOverload.internalName, + rightOverload.internalName + ); + this.currentType = contextualType; + return module.unreachable(); + } + if (leftOverload) { + return this.compileCommutativeBinaryOverload( + leftOverload, + left, leftExpr, leftType, + right, rightExpr, rightType, + reportNode + ); + } + if (rightOverload) { + return this.compileCommutativeBinaryOverload( + rightOverload, + right, rightExpr, rightType, + left, leftExpr, leftType, + reportNode + ); + } + const signednessIsRelevant = false; + const commonType = Type.commonType(leftType, rightType, contextualType, signednessIsRelevant); + if (!commonType) { + this.error( + DiagnosticCode.Operator_0_cannot_be_applied_to_types_1_and_2, + reportNode.range, + operatorString, + leftType.toString(), + rightType.toString() + ); + this.currentType = contextualType; + return module.unreachable(); + } - expr = this.makeLt(leftExpr, rightExpr, commonType); - this.currentType = Type.bool; - break; + if (commonType.isFloatValue) { + if (isConstExpressionNaN(module, rightExpr) || isConstExpressionNaN(module, leftExpr)) { + this.warning( + DiagnosticCode._NaN_does_not_compare_equal_to_any_other_value_including_itself_Use_isNaN_x_instead, + reportNode.range + ); } - case Token.GreaterThan: { - leftExpr = this.compileExpression(left, contextualType); - leftType = this.currentType; - - // check operator overload - let classReference = leftType.getClassOrWrapper(this.program); - if (classReference) { - let overload = classReference.lookupOverload(OperatorKind.Gt); - if (overload) { - expr = this.compileBinaryOverload(overload, left, leftExpr, leftType, right, expression); - break; - } - } - - rightExpr = this.compileExpression(right, leftType); - rightType = this.currentType; - commonType = Type.commonType(leftType, rightType, contextualType, true); - if (!commonType || !commonType.isNumericValue) { - this.error( - DiagnosticCode.Operator_0_cannot_be_applied_to_types_1_and_2, - expression.range, ">", leftType.toString(), rightType.toString() - ); - this.currentType = contextualType; - return module.unreachable(); - } - - leftExpr = this.convertExpression(leftExpr, leftType, commonType, false, left); - leftType = commonType; - rightExpr = this.convertExpression(rightExpr, rightType, commonType, false, right); - rightType = commonType; - - expr = this.makeGt(leftExpr, rightExpr, commonType); - this.currentType = Type.bool; - break; + if (isConstNegZero(rightExpr) || isConstNegZero(leftExpr)) { + this.warning( + DiagnosticCode.Comparison_with_0_0_is_sign_insensitive_Use_Object_is_x_0_0_if_the_sign_matters, + reportNode.range + ); } - case Token.LessThan_Equals: { - leftExpr = this.compileExpression(left, contextualType); - leftType = this.currentType; + } - // check operator overload - let classReference = leftType.getClassOrWrapper(this.program); - if (classReference) { - let overload = classReference.lookupOverload(OperatorKind.Le); - if (overload) { - expr = this.compileBinaryOverload(overload, left, leftExpr, leftType, right, expression); - break; - } - } + leftExpr = this.convertExpression(leftExpr, leftType, commonType, false, left); + leftType = commonType; + rightExpr = this.convertExpression(rightExpr, rightType, commonType, false, right); + rightType = commonType; - rightExpr = this.compileExpression(right, leftType); - rightType = this.currentType; - commonType = Type.commonType(leftType, rightType, contextualType, true); - if (!commonType || !commonType.isNumericValue) { - this.error( - DiagnosticCode.Operator_0_cannot_be_applied_to_types_1_and_2, - expression.range, "<=", leftType.toString(), rightType.toString() - ); - this.currentType = contextualType; - return module.unreachable(); - } + this.currentType = Type.bool; + switch (operator) { + case Token.Equals_Equals_Equals: + case Token.Equals_Equals: + return this.makeEq(leftExpr, rightExpr, commonType, reportNode); + case Token.Exclamation_Equals_Equals: + case Token.Exclamation_Equals: + return this.makeNe(leftExpr, rightExpr, commonType, reportNode); + default: + assert(false); + return module.unreachable(); + } + } - leftExpr = this.convertExpression(leftExpr, leftType, commonType, false, left); - leftType = commonType; - rightExpr = this.convertExpression(rightExpr, rightType, commonType, false, right); - rightType = commonType; + /** compile `>` `>=` `<` `<=` BinaryExpression */ + private compileNonCommutativeCompareBinaryExpression( + expression: BinaryExpression, + contextualType: Type, + ): ExpressionRef { + let module = this.module; + let left = expression.left; + let right = expression.right; + let leftExpr: ExpressionRef; + let leftType: Type; + let rightExpr: ExpressionRef; + let rightType: Type; + let commonType: Type | null; + let operator = expression.operator; + let operatorString = operatorTokenToString(operator); - expr = this.makeLe(leftExpr, rightExpr, commonType); - this.currentType = Type.bool; - break; - } - case Token.GreaterThan_Equals: { - leftExpr = this.compileExpression(left, contextualType); - leftType = this.currentType; + leftExpr = this.compileExpression(left, contextualType); + leftType = this.currentType; - // check operator overload - let classReference = leftType.getClassOrWrapper(this.program); - if (classReference) { - let overload = classReference.lookupOverload(OperatorKind.Ge); - if (overload) { - expr = this.compileBinaryOverload(overload, left, leftExpr, leftType, right, expression); - break; - } - } + // check operator overload + const operatorKind = OperatorKind.fromBinaryToken(operator); + const leftOverload = leftType.lookupOverload(operatorKind, this.program); + if (leftOverload) return this.compileBinaryOverload(leftOverload, left, leftExpr, leftType, right, expression); - rightExpr = this.compileExpression(right, leftType); - rightType = this.currentType; - commonType = Type.commonType(leftType, rightType, contextualType, true); - if (!commonType || !commonType.isNumericValue) { - this.error( - DiagnosticCode.Operator_0_cannot_be_applied_to_types_1_and_2, - expression.range, ">=", leftType.toString(), rightType.toString() - ); - this.currentType = contextualType; - return module.unreachable(); - } + rightExpr = this.compileExpression(right, leftType); + rightType = this.currentType; - leftExpr = this.convertExpression(leftExpr, leftType, commonType, false, left); - leftType = commonType; - rightExpr = this.convertExpression(rightExpr, rightType, commonType, false, right); - rightType = commonType; + const signednessIsRelevant = true; + commonType = Type.commonType(leftType, rightType, contextualType, signednessIsRelevant); + if (!commonType || !commonType.isNumericValue) { + this.error( + DiagnosticCode.Operator_0_cannot_be_applied_to_types_1_and_2, + expression.range, + operatorString, + leftType.toString(), + rightType.toString() + ); + this.currentType = contextualType; + return module.unreachable(); + } - expr = this.makeGe(leftExpr, rightExpr, commonType); - this.currentType = Type.bool; - break; - } + leftExpr = this.convertExpression(leftExpr, leftType, commonType, false, left); + leftType = commonType; + rightExpr = this.convertExpression(rightExpr, rightType, commonType, false, right); + rightType = commonType; - case Token.Equals_Equals_Equals: - case Token.Equals_Equals: { - leftExpr = this.compileExpression(left, contextualType); - leftType = this.currentType; + this.currentType = Type.bool; + switch (operator) { + case Token.LessThan: + return this.makeLt(leftExpr, rightExpr, commonType); + case Token.GreaterThan: + return this.makeGt(leftExpr, rightExpr, commonType); + case Token.LessThan_Equals: + return this.makeLe(leftExpr, rightExpr, commonType); + case Token.GreaterThan_Equals: + return this.makeGe(leftExpr, rightExpr, commonType); + default: + assert(false); + return module.unreachable(); + } + } - // check operator overload - let classReference = leftType.getClassOrWrapper(this.program); - if (classReference) { - let overload = classReference.lookupOverload(OperatorKind.Eq); - if (overload) { - expr = this.compileBinaryOverload(overload, left, leftExpr, leftType, right, expression); - break; - } - } + private compileBinaryExpression( + expression: BinaryExpression, + contextualType: Type, + constraints: Constraints + ): ExpressionRef { + let module = this.module; + let left = expression.left; + let right = expression.right; - rightExpr = this.compileExpression(right, leftType); - rightType = this.currentType; - commonType = Type.commonType(leftType, rightType, contextualType); - if (!commonType) { - this.error( - DiagnosticCode.Operator_0_cannot_be_applied_to_types_1_and_2, - expression.range, operatorTokenToString(expression.operator), leftType.toString(), rightType.toString() - ); - this.currentType = contextualType; - return module.unreachable(); - } - if (commonType.isFloatValue) { - if ( - isConstExpressionNaN(module, rightExpr) || - isConstExpressionNaN(module, leftExpr) - ) { - this.warning( - DiagnosticCode._NaN_does_not_compare_equal_to_any_other_value_including_itself_Use_isNaN_x_instead, - expression.range - ); - } - if (isConstNegZero(rightExpr) || isConstNegZero(leftExpr)) { - this.warning( - DiagnosticCode.Comparison_with_0_0_is_sign_insensitive_Use_Object_is_x_0_0_if_the_sign_matters, - expression.range - ); - } - } - leftExpr = this.convertExpression(leftExpr, leftType, commonType, false, left); - leftType = commonType; - rightExpr = this.convertExpression(rightExpr, rightType, commonType, false, right); - rightType = commonType; + let leftExpr: ExpressionRef; + let leftType: Type; + let rightExpr: ExpressionRef; + let rightType: Type; + let commonType: Type | null; - expr = this.makeEq(leftExpr, rightExpr, commonType, expression); - this.currentType = Type.bool; - break; + let expr: ExpressionRef; + let compound = false; + + let operator = expression.operator; + switch (operator) { + case Token.LessThan: + case Token.GreaterThan: + case Token.LessThan_Equals: + case Token.GreaterThan_Equals:{ + return this.compileNonCommutativeCompareBinaryExpression(expression, contextualType); } + case Token.Equals_Equals_Equals: + case Token.Equals_Equals: case Token.Exclamation_Equals_Equals: case Token.Exclamation_Equals: { - leftExpr = this.compileExpression(left, contextualType); - leftType = this.currentType; - - // check operator overload - let classReference = leftType.getClass(); - if (classReference) { - let overload = classReference.lookupOverload(OperatorKind.Ne); - if (overload) { - expr = this.compileBinaryOverload(overload, left, leftExpr, leftType, right, expression); - break; - } - } - - rightExpr = this.compileExpression(right, leftType); - rightType = this.currentType; - commonType = Type.commonType(leftType, rightType, contextualType); - if (!commonType) { - this.error( - DiagnosticCode.Operator_0_cannot_be_applied_to_types_1_and_2, - expression.range, operatorTokenToString(expression.operator), leftType.toString(), rightType.toString() - ); - this.currentType = contextualType; - return module.unreachable(); - } - if (commonType.isFloatValue) { - if ( - isConstExpressionNaN(module, rightExpr) || - isConstExpressionNaN(module, leftExpr) - ) { - this.warning( - DiagnosticCode._NaN_does_not_compare_equal_to_any_other_value_including_itself_Use_isNaN_x_instead, - expression.range - ); - } - if (isConstNegZero(rightExpr) || isConstNegZero(leftExpr)) { - this.warning( - DiagnosticCode.Comparison_with_0_0_is_sign_insensitive_Use_Object_is_x_0_0_if_the_sign_matters, - expression.range - ); - } - } - leftExpr = this.convertExpression(leftExpr, leftType, commonType, false, left); - leftType = commonType; - rightExpr = this.convertExpression(rightExpr, rightType, commonType, false, right); - rightType = commonType; - - expr = this.makeNe(leftExpr, rightExpr, commonType, expression); - this.currentType = Type.bool; - break; + return this.compileCommutativeCompareBinaryExpression(expression, contextualType); } case Token.Equals: { return this.compileAssignment(left, right, contextualType); @@ -4124,7 +4180,7 @@ export class Compiler extends DiagnosticEmitter { rightExpr = this.compileExpression(right, leftType); rightType = this.currentType; commonType = Type.commonType(leftType, rightType, contextualType); - if (!commonType || !leftType.isNumericValue) { + if (!commonType || !commonType.isNumericValue) { this.error( DiagnosticCode.Operator_0_cannot_be_applied_to_types_1_and_2, expression.range, "-", leftType.toString(), rightType.toString() @@ -4590,19 +4646,31 @@ export class Compiler extends DiagnosticEmitter { } leftExpr = this.convertExpression(leftExpr, leftType, commonType, false, left); leftType = commonType; + + // This is sometimes needed to make the left trivial + let leftPrecompExpr = module.runExpression(leftExpr, ExpressionRunnerFlags.PreserveSideeffects); + if (leftPrecompExpr) leftExpr = leftPrecompExpr; + rightExpr = this.convertExpression(rightExpr, rightType, commonType, false, right); rightType = commonType; - // simplify if copying left is trivial - if (expr = module.tryCopyTrivialExpression(leftExpr)) { + let condExpr = this.makeIsTrueish(leftExpr, this.currentType, left); + let condKind = this.evaluateCondition(condExpr); + + if (condKind != ConditionKind.Unknown) { + // simplify if left is a constant + expr = condKind == ConditionKind.True + ? rightExpr + : leftExpr; + } else if (expr = module.tryCopyTrivialExpression(leftExpr)) { + // simplify if copying left is trivial expr = module.if( - this.makeIsTrueish(leftExpr, this.currentType, left), + condExpr, rightExpr, expr ); - - // if not possible, tee left to a temp } else { + // if not possible, tee left to a temp let tempLocal = flow.getTempLocal(leftType); if (!flow.canOverflow(leftExpr, leftType)) flow.setLocalFlag(tempLocal.index, LocalFlags.Wrapped); if (flow.isNonnull(leftExpr, leftType)) flow.setLocalFlag(tempLocal.index, LocalFlags.NonNull); @@ -4670,19 +4738,31 @@ export class Compiler extends DiagnosticEmitter { let possiblyNull = leftType.is(TypeFlags.Nullable) && rightType.is(TypeFlags.Nullable); leftExpr = this.convertExpression(leftExpr, leftType, commonType, false, left); leftType = commonType; + + // This is sometimes needed to make the left trivial + let leftPrecompExpr = module.runExpression(leftExpr, ExpressionRunnerFlags.PreserveSideeffects); + if (leftPrecompExpr) leftExpr = leftPrecompExpr; + rightExpr = this.convertExpression(rightExpr, rightType, commonType, false, right); rightType = commonType; - // simplify if copying left is trivial - if (expr = module.tryCopyTrivialExpression(leftExpr)) { + let condExpr = this.makeIsTrueish(leftExpr, this.currentType, left); + let condKind = this.evaluateCondition(condExpr); + + if (condKind != ConditionKind.Unknown) { + // simplify if left is a constant + expr = condKind == ConditionKind.True + ? leftExpr + : rightExpr; + } else if (expr = module.tryCopyTrivialExpression(leftExpr)) { + // otherwise, simplify if copying left is trivial expr = module.if( - this.makeIsTrueish(leftExpr, leftType, left), + condExpr, expr, rightExpr ); - - // if not possible, tee left to a temp. local } else { + // if not possible, tee left to a temp. local let temp = flow.getTempLocal(leftType); let tempIndex = temp.index; if (!flow.canOverflow(leftExpr, leftType)) flow.setLocalFlag(tempIndex, LocalFlags.Wrapped); @@ -4713,6 +4793,7 @@ export class Compiler extends DiagnosticEmitter { default: { assert(false); expr = this.module.unreachable(); + break; } } if (!compound) return expr; @@ -5041,8 +5122,7 @@ export class Compiler extends DiagnosticEmitter { return module.select( module.i32(1), module.binary(BinaryOp.EqI32, rightExpr, module.i32(0)), - leftExpr, - TypeRef.I32 + leftExpr ); } case TypeKind.I8: @@ -5580,6 +5660,29 @@ export class Compiler extends DiagnosticEmitter { return this.makeCallDirect(operatorInstance, [ leftExpr, rightExpr ], reportNode); } + + private compileCommutativeBinaryOverload( + operatorInstance: Function, + first: Expression, + firstExpr: ExpressionRef, + firstType: Type, + second: Expression, + secondExpr: ExpressionRef, + secondType: Type, + reportNode: Node + ): ExpressionRef { + let signature = operatorInstance.signature; + let parameterTypes = signature.parameterTypes; + if (operatorInstance.is(CommonFlags.Instance)) { + firstExpr = this.convertExpression(firstExpr, firstType, assert(signature.thisType), false, first); + secondExpr = this.convertExpression(secondExpr, secondType, parameterTypes[0], false, second); + } else { + firstExpr = this.convertExpression(firstExpr, firstType, parameterTypes[0], false, first); + secondExpr = this.convertExpression(secondExpr, secondType, parameterTypes[1], false, second); + } + return this.makeCallDirect(operatorInstance, [ firstExpr, secondExpr ], reportNode); + } + private compileAssignment( expression: Expression, valueExpression: Expression, @@ -6162,6 +6265,7 @@ export class Compiler extends DiagnosticEmitter { typeArguments = this.resolver.resolveTypeArguments( assert(typeParameterNodes), typeArgumentNodes, + this.currentFlow, this.currentFlow.sourceFunction.parent, cloneMap(this.currentFlow.contextualTypeArguments), // don't update expression @@ -6214,16 +6318,7 @@ export class Compiler extends DiagnosticEmitter { return false; } - // not yet implemented (TODO: maybe some sort of an unmanaged/lightweight array?) let hasRest = signature.hasRest; - if (hasRest) { - this.error( - DiagnosticCode.Not_implemented_0, - reportNode.range, "Rest parameters" - ); - return false; - } - let minimum = signature.requiredParameters; let maximum = signature.parameterTypes.length; @@ -6268,6 +6363,37 @@ export class Compiler extends DiagnosticEmitter { } } + private adjustArgumentsForRestParams( + argumentExpressions: Expression[], + signature: Signature, + reportNode: Node + ) : Expression[] { + + // if no rest args, return the original args + if (!signature.hasRest) { + return argumentExpressions; + } + + // if there are fewer args than params, then the rest args were not provided + // so return the original args + const numArguments = argumentExpressions.length; + const numParams = signature.parameterTypes.length; + if (numArguments < numParams) { + return argumentExpressions; + } + + // make an array literal expression from the rest args + let elements = argumentExpressions.slice(numParams - 1); + let range = new Range(elements[0].range.start, elements[elements.length - 1].range.end); + range.source = reportNode.range.source; + let arrExpr = new ArrayLiteralExpression(elements, range); + + // return the original args, but replace the rest args with the array + const exprs = argumentExpressions.slice(0, numParams - 1); + exprs.push(arrExpr); + return exprs; + } + /** Compiles a direct call to a concrete function. */ compileCallDirect( instance: Function, @@ -6289,6 +6415,9 @@ export class Compiler extends DiagnosticEmitter { } if (instance.hasDecorator(DecoratorFlags.Unsafe)) this.checkUnsafe(reportNode); + argumentExpressions = this.adjustArgumentsForRestParams(argumentExpressions, signature, reportNode); + numArguments = argumentExpressions.length; + // handle call on `this` in constructors let sourceFunction = this.currentFlow.sourceFunction; if (sourceFunction.is(CommonFlags.Constructor) && reportNode.isAccessOnThis) { @@ -6298,7 +6427,8 @@ export class Compiler extends DiagnosticEmitter { } // Inline if explicitly requested - if (instance.hasDecorator(DecoratorFlags.Inline) && (!instance.is(CommonFlags.Overridden) || reportNode.isAccessOnSuper)) { + let inlineRequested = instance.hasDecorator(DecoratorFlags.Inline) || this.currentFlow.is(FlowFlags.InlineContext); + if (inlineRequested && (!instance.is(CommonFlags.Overridden) || reportNode.isAccessOnSuper)) { assert(!instance.is(CommonFlags.Stub)); // doesn't make sense let inlineStack = this.inlineStack; if (inlineStack.includes(instance)) { @@ -6520,7 +6650,11 @@ export class Compiler extends DiagnosticEmitter { let declaration = originalParameterDeclarations[minArguments + i]; let initializer = declaration.initializer; let initExpr: ExpressionRef; - if (initializer) { + if (declaration.parameterKind === ParameterKind.Rest) { + const arrExpr = new ArrayLiteralExpression([], declaration.range.atEnd); + initExpr = this.compileArrayLiteral(arrExpr, type, Constraints.ConvExplicit); + initExpr = module.local_set(operandIndex, initExpr, type.isManaged); + } else if (initializer) { initExpr = this.compileExpression( initializer, type, @@ -6617,6 +6751,7 @@ export class Compiler extends DiagnosticEmitter { ); let overrideInstances = this.resolver.resolveOverrides(instance); if (overrideInstances) { + let mostRecentInheritanceMapping = new Map(); for (let i = 0, k = overrideInstances.length; i < k; ++i) { let overrideInstance = overrideInstances[i]; if (!overrideInstance.is(CommonFlags.Compiled)) continue; // errored @@ -6679,7 +6814,13 @@ export class Compiler extends DiagnosticEmitter { if (instanceMembers && instanceMembers.has(instance.declaration.name.text)) { continue; // skip those not inheriting } - builder.addCase(extender.id, stmts); + if ( + !mostRecentInheritanceMapping.has(extender) || + !assert(mostRecentInheritanceMapping.get(extender)).extends(classInstance) + ) { + mostRecentInheritanceMapping.set(extender, classInstance); + builder.addOrReplaceCase(extender.id, stmts); + } } } } @@ -6720,6 +6861,21 @@ export class Compiler extends DiagnosticEmitter { stub.set(CommonFlags.Compiled); } + private needToStack(expr: ExpressionRef): bool { + const precomp = this.module.runExpression(expr, ExpressionRunnerFlags.Default); + // cannot precompute, so must go to stack + if (precomp == 0) return true; + const value = getConstValueInteger(precomp, this.options.isWasm64); + // zero constant doesn't need to go to stack + if (i64_eq(value, i64_zero)) return false; + // static GC objects doesn't need to go to stack + let staticGcObjectOffsets = this.staticGcObjectOffsets; + if (staticGcObjectOffsets.has(i64_high(value))) { + if (assert(staticGcObjectOffsets.get(i64_high(value))).has(i64_low(value))) return false; + } + return true; + } + /** Marks managed call operands for the shadow stack. */ private operandsTostack(signature: Signature, operands: ExpressionRef[]): void { if (!this.options.stackSize) return; @@ -6729,8 +6885,7 @@ export class Compiler extends DiagnosticEmitter { if (thisType) { if (thisType.isManaged) { let operand = operands[0]; - let precomp = module.runExpression(operand, ExpressionRunnerFlags.Default); - if (!isConstZero(precomp)) { // otherwise unnecessary + if (this.needToStack(operand)) { operands[operandIndex] = module.tostack(operand); } } @@ -6743,8 +6898,7 @@ export class Compiler extends DiagnosticEmitter { let paramType = parameterTypes[parameterIndex]; if (paramType.isManaged) { let operand = operands[operandIndex]; - let precomp = module.runExpression(operand, ExpressionRunnerFlags.Default); - if (!isConstZero(precomp)) { // otherwise unnecessary + if (this.needToStack(operand)) { operands[operandIndex] = module.tostack(operand); } } @@ -6899,6 +7053,9 @@ export class Compiler extends DiagnosticEmitter { return this.module.unreachable(); } + argumentExpressions = this.adjustArgumentsForRestParams(argumentExpressions, signature, reportNode); + numArguments = argumentExpressions.length; + let numArgumentsInclThis = thisArg ? numArguments + 1 : numArguments; let operands = new Array(numArgumentsInclThis); let index = 0; @@ -6952,36 +7109,46 @@ export class Compiler extends DiagnosticEmitter { } } + let allTrivial = (getSideEffects(functionArg, module.ref) & SideEffects.WritesGlobal) == 0; + if (operands && allTrivial) { + for (let i = 0; i < numOperands; ++i) { + if (!module.isTrivialExpression(operands[i])) { + allTrivial = false; + break; + } + } + } + + let stmts = new Array(); + let sizeTypeRef = this.options.sizeTypeRef; + + if (!allTrivial) { + let functionArgLocal = this.currentFlow.getTempLocal(this.options.usizeType); + let functionArgSetExpr = module.local_set(functionArgLocal.index, functionArg, true); + stmts.push(functionArgSetExpr); + functionArg = module.local_get(functionArgLocal.index, sizeTypeRef); + } + // We might be calling a varargs stub here, even if all operands have been // provided, so we must set `argumentsLength` in any case. Inject setting it // into the index argument, which becomes executed last after any operands. let argumentsLength = this.ensureArgumentsLength(); - let sizeTypeRef = this.options.sizeTypeRef; - if (getSideEffects(functionArg, module.ref) & SideEffects.WritesGlobal) { - let flow = this.currentFlow; - let temp = flow.getTempLocal(this.options.usizeType); - let tempIndex = temp.index; - functionArg = module.block(null, [ - module.local_set(tempIndex, functionArg, true), // Function - module.global_set(argumentsLength, module.i32(numArguments)), - module.local_get(tempIndex, sizeTypeRef) - ], sizeTypeRef); - } else { // simplify - functionArg = module.block(null, [ - module.global_set(argumentsLength, module.i32(numArguments)), - functionArg - ], sizeTypeRef); - } + let functionArgWithVararg = module.block(null, [ + module.global_set(argumentsLength, module.i32(numArguments)), + functionArg + ], sizeTypeRef); + if (operands) this.operandsTostack(signature, operands); let expr = module.call_indirect( null, // TODO: handle multiple tables - module.load(4, false, functionArg, TypeRef.I32), // ._index + module.load(4, false, functionArgWithVararg, TypeRef.I32), // ._index operands, signature.paramRefs, signature.resultRefs ); this.currentType = returnType; - return expr; + stmts.push(expr); + return module.flatten(stmts, returnType.toRef()); } private compileCommaExpression( @@ -7008,7 +7175,17 @@ export class Compiler extends DiagnosticEmitter { ): ExpressionRef { let module = this.module; let targetExpression = expression.expression; - let targetType = this.resolver.resolveExpression(targetExpression, this.currentFlow); // reports + let resolver = this.resolver; + let targetElement = resolver.lookupExpression(targetExpression, this.currentFlow, Type.auto, ReportMode.Swallow); + if (targetElement && targetElement.kind == ElementKind.Enum) { + const elementExpr = this.compileExpression(expression.elementExpression, Type.i32, Constraints.ConvImplicit); + const toStringFunctionName = this.ensureEnumToString(targetElement, expression); + this.currentType = this.program.stringInstance.type; + if (toStringFunctionName == null) return module.unreachable(); + return module.call(toStringFunctionName, [ elementExpr ], TypeRef.I32); + } + + let targetType = resolver.resolveExpression(targetExpression, this.currentFlow); if (targetType) { let classReference = targetType.getClassOrWrapper(this.program); if (classReference) { @@ -7085,7 +7262,7 @@ export class Compiler extends DiagnosticEmitter { let parameterNode = parameterNodes[i]; if (!isTypeOmitted(parameterNode.type)) { let resolvedType = this.resolver.resolveType( - parameterNode.type, + parameterNode.type, flow, sourceFunction.parent, contextualTypeArguments ); @@ -7105,7 +7282,7 @@ export class Compiler extends DiagnosticEmitter { let returnType = contextualSignature.returnType; if (!isTypeOmitted(signatureNode.returnType)) { let resolvedType = this.resolver.resolveType( - signatureNode.returnType, + signatureNode.returnType, flow, sourceFunction.parent, contextualTypeArguments ); @@ -7135,7 +7312,7 @@ export class Compiler extends DiagnosticEmitter { return module.unreachable(); } let resolvedType = this.resolver.resolveType( - thisTypeNode, + thisTypeNode, flow, sourceFunction.parent, contextualTypeArguments ); @@ -7522,7 +7699,7 @@ export class Compiler extends DiagnosticEmitter { if (isType.kind == NodeKind.NamedType) { let namedType = isType; if (!(namedType.isNullable || namedType.hasTypeArguments)) { - let element = this.resolver.resolveTypeName(namedType.name, flow.sourceFunction, ReportMode.Swallow); + let element = this.resolver.resolveTypeName(namedType.name, flow, flow.sourceFunction, ReportMode.Swallow); if (element && element.kind == ElementKind.ClassPrototype) { let prototype = element; if (prototype.is(CommonFlags.Generic)) { @@ -7534,7 +7711,7 @@ export class Compiler extends DiagnosticEmitter { // Fall back to `instanceof TYPE` let expectedType = this.resolver.resolveType( - expression.isType, + expression.isType, flow, flow.sourceFunction, cloneMap(flow.contextualTypeArguments) ); @@ -7731,7 +7908,7 @@ export class Compiler extends DiagnosticEmitter { stmts.length = 1; stmts.push( module.i32(1) - ); + ); module.removeFunction(name); module.addFunction(name, sizeType, TypeRef.I32, [ TypeRef.I32 ], module.block(null, stmts, TypeRef.I32)); } @@ -8191,11 +8368,9 @@ export class Compiler extends DiagnosticEmitter { let arrayInstance = element; let arrayType = arrayInstance.type; let elementType = arrayInstance.getTypeArgumentsTo(program.arrayPrototype)![0]; - let arrayBufferInstance = assert(program.arrayBufferInstance); // block those here so compiling expressions doesn't conflict let tempThis = flow.getTempLocal(this.options.usizeType); - let tempDataStart = flow.getTempLocal(arrayBufferInstance.type); // compile value expressions and find out whether all are constant let expressions = expression.elementExpressions; @@ -8271,16 +8446,6 @@ export class Compiler extends DiagnosticEmitter { let dataStartProperty = (dataStartMember).instance; if (!dataStartProperty) return module.unreachable(); assert(dataStartProperty.isField && dataStartProperty.memoryOffset >= 0); - stmts.push( - module.local_set(tempDataStart.index, - module.load(arrayType.byteSize, false, - module.local_get(tempThis.index, arrayTypeRef), - arrayTypeRef, - dataStartProperty.memoryOffset - ), - true // ArrayBuffer - ) - ); for (let i = 0; i < length; ++i) { // this[i] = value stmts.push( @@ -8686,7 +8851,7 @@ export class Compiler extends DiagnosticEmitter { let flow = this.currentFlow; // obtain the class being instantiated - let target = this.resolver.resolveTypeName(expression.typeName, flow.sourceFunction); + let target = this.resolver.resolveTypeName(expression.typeName, flow, flow.sourceFunction); if (!target) return module.unreachable(); if (target.kind != ElementKind.ClassPrototype) { this.error( @@ -8722,6 +8887,7 @@ export class Compiler extends DiagnosticEmitter { classInstance = this.resolver.resolveClassInclTypeArguments( classPrototype, typeArguments, + flow, flow.sourceFunction.parent, // relative to caller cloneMap(flow.contextualTypeArguments), expression @@ -8804,7 +8970,7 @@ export class Compiler extends DiagnosticEmitter { classInstance.constructorInstance = instance; let members = classInstance.members; if (!members) classInstance.members = members = new Map(); - members.set("constructor", instance.prototype); + members.set(CommonNames.constructor, instance.prototype); let previousFlow = this.currentFlow; let flow = instance.flow; @@ -9157,11 +9323,12 @@ export class Compiler extends DiagnosticEmitter { let flow = this.currentFlow; // make a getter for the expression (also obtains the type) - let getValue = this.compileExpression( // reports + const getValueOriginal = this.compileExpression( // reports expression.operand, contextualType.exceptVoid, Constraints.None ); + let getValue: ExpressionRef; // if the value isn't dropped, a temp. local is required to remember the original value, // except if a static overload is found, which reverses the use of a temp. (see below) @@ -9170,16 +9337,17 @@ export class Compiler extends DiagnosticEmitter { tempLocal = flow.getTempLocal(this.currentType); getValue = module.local_tee( tempLocal.index, - getValue, + getValueOriginal, this.currentType.isManaged ); + } else { + getValue = getValueOriginal; } let expr: ExpressionRef; switch (expression.operator) { case Token.Plus_Plus: { - // check operator overload let classReference = this.currentType.getClassOrWrapper(this.program); if (classReference) { @@ -9187,7 +9355,7 @@ export class Compiler extends DiagnosticEmitter { if (overload) { let isInstance = overload.is(CommonFlags.Instance); if (tempLocal && !isInstance) { // revert: static overload simply returns - getValue = getLocalSetValue(getValue); + getValue = getValueOriginal; tempLocal = null; } expr = this.compileUnaryOverload(overload, expression.operand, getValue, expression); @@ -9263,7 +9431,6 @@ export class Compiler extends DiagnosticEmitter { break; } case Token.Minus_Minus: { - // check operator overload let classReference = this.currentType.getClassOrWrapper(this.program); if (classReference) { @@ -9271,11 +9438,11 @@ export class Compiler extends DiagnosticEmitter { if (overload) { let isInstance = overload.is(CommonFlags.Instance); if (tempLocal && !isInstance) { // revert: static overload simply returns - getValue = getLocalSetValue(getValue); + getValue = getValueOriginal; tempLocal = null; } expr = this.compileUnaryOverload(overload, expression.operand, getValue, expression); - if (overload.is(CommonFlags.Instance)) break; + if (isInstance) break; return expr; // here } } @@ -10158,6 +10325,7 @@ export class Compiler extends DiagnosticEmitter { /** Makes a string conversion of the given expression. */ makeToString(expr: ExpressionRef, type: Type, reportNode: Node): ExpressionRef { + let module = this.module; let stringType = this.program.stringInstance.type; if (type == stringType) { return expr; @@ -10174,15 +10342,30 @@ export class Compiler extends DiagnosticEmitter { reportNode )) { this.currentType = stringType; - return this.module.unreachable(); + return module.unreachable(); } if (!type.isStrictlyAssignableTo(assert(toStringSignature.thisType))) { - this.errorRelated( - DiagnosticCode.The_this_types_of_each_signature_are_incompatible, - reportNode.range, toStringInstance.identifierAndSignatureRange + if (!type.is(TypeFlags.Nullable)) { + this.errorRelated( + DiagnosticCode.The_this_types_of_each_signature_are_incompatible, + reportNode.range, toStringInstance.identifierAndSignatureRange + ); + this.currentType = stringType; + return module.unreachable(); + } + + // Attempt to retry on the non-nullable form of the type, wrapped in a ternary: + // `expr ? expr.toString() : "null"` + const tempLocal = this.currentFlow.getTempLocal(type); + return module.if( + module.local_tee(tempLocal.index, expr, type.isManaged), + this.makeToString( + module.local_get(tempLocal.index, type.toRef()), + type.nonNullableType, + reportNode + ), + this.ensureStaticString("null") ); - this.currentType = stringType; - return this.module.unreachable(); } let toStringReturnType = toStringSignature.returnType; if (!toStringReturnType.isStrictlyAssignableTo(stringType)) { @@ -10191,7 +10374,7 @@ export class Compiler extends DiagnosticEmitter { reportNode.range, toStringInstance.identifierAndSignatureRange, toStringReturnType.toString(), stringType.toString() ); this.currentType = stringType; - return this.module.unreachable(); + return module.unreachable(); } return this.makeCallDirect(toStringInstance, [ expr ], reportNode); } @@ -10201,7 +10384,7 @@ export class Compiler extends DiagnosticEmitter { reportNode.range, type.toString(), stringType.toString() ); this.currentType = stringType; - return this.module.unreachable(); + return module.unreachable(); } /** Makes an allocation suitable to hold the data of an instance of the given class. */ diff --git a/src/diagnosticMessages.json b/src/diagnosticMessages.json index e15946207a..016ba4ec3f 100644 --- a/src/diagnosticMessages.json +++ b/src/diagnosticMessages.json @@ -51,6 +51,9 @@ "Index signature accessors in type '{0}' differ in types.": 237, "Initializer, definitive assignment or nullable type expected.": 238, "Definitive assignment has no effect on local variables.": 239, + "Ambiguous operator overload '{0}' (conflicting overloads '{1}' and '{2}').": 240, + "An interface or abstract method '{0}' cannot have type parameters.": 241, + "Cannot override generic method '{0}' with a non-generic method or vice versa.": 242, "Importing the table disables some indirect call optimizations.": 901, "Exporting the table disables some indirect call optimizations.": 902, @@ -119,6 +122,7 @@ "Decorators are not valid here.": 1206, "'abstract' modifier can only appear on a class, method, or property declaration.": 1242, "Method '{0}' cannot have an implementation because it is marked abstract.": 1245, + "An interface property cannot have an initializer.": 1246, "A definite assignment assertion '!' is not permitted in this context.": 1255, "A class may only extend another class.": 1311, "A parameter property cannot be declared using a rest parameter.": 1317, @@ -150,7 +154,6 @@ "Operator '{0}' cannot be applied to types '{1}' and '{2}'.": 2365, "A 'super' call must be the first statement in the constructor.": 2376, "Constructors for derived classes must contain a 'super' call.": 2377, - "Getter and setter accessors do not agree in visibility.": 2379, "'get' and 'set' accessor must have the same type.": 2380, "Overload signatures must all be public, private or protected.": 2385, "Constructor implementation is missing.": 2390, @@ -173,6 +176,7 @@ "Type '{0}' has no property '{1}'.": 2460, "The '{0}' operator cannot be applied to type '{1}'.": 2469, "In 'const' enum declarations member initializer must be constant expression.": 2474, + "A const enum member can only be accessed using a string literal.": 2476, "Export declaration conflicts with exported declaration of '{0}'.": 2484, "'{0}' is referenced directly or indirectly in its own base expression.": 2506, "Cannot create an instance of an abstract class.": 2511, @@ -199,6 +203,7 @@ "Duplicate property '{0}'.": 2718, "Property '{0}' is missing in type '{1}' but required in type '{2}'.": 2741, "Type '{0}' has no call signatures.": 2757, + "Get accessor '{0}' must be at least as accessible as the setter.": 2808, "This member cannot have an 'override' modifier because it is not declared in the base class '{0}'.": 4117, "File '{0}' not found.": 6054, diff --git a/src/extra/ast.ts b/src/extra/ast.ts index ebe9217f90..699b2e0c71 100644 --- a/src/extra/ast.ts +++ b/src/extra/ast.ts @@ -15,6 +15,7 @@ import { TypeNode, NamedTypeNode, FunctionTypeNode, + TupleTypeNode, TypeName, TypeParameterNode, @@ -134,6 +135,10 @@ export class ASTBuilder { this.visitFunctionTypeNode(node); break; } + case NodeKind.TupleType: { + this.visitTupleTypeNode(node); + break; + } case NodeKind.TypeParameter: { this.visitTypeParameter(node); break; @@ -387,6 +392,10 @@ export class ASTBuilder { this.visitFunctionTypeNode(node); break; } + case NodeKind.TupleType: { + this.visitTupleTypeNode(node); + break; + } default: assert(false); } } @@ -450,6 +459,33 @@ export class ASTBuilder { if (isNullable) sb.push(") | null"); } + visitTupleTypeNode(node: TupleTypeNode): void { + let sb = this.sb; + sb.push("["); + let elements = node.elements; + let elementNames = node.elementNames; + let numElements = elements.length; + if (numElements) { + let name = elementNames ? elementNames[0] : null; + if (name) { + this.visitIdentifierExpression(name); + sb.push(": "); + } + this.visitTypeNode(elements[0]); + for (let i = 1; i < numElements; ++i) { + sb.push(", "); + name = elementNames ? elementNames[i] : null; + if (name) { + this.visitIdentifierExpression(name); + sb.push(": "); + } + this.visitTypeNode(elements[i]); + } + } + sb.push("]"); + if (node.isNullable) sb.push(" | null"); + } + visitTypeParameter(node: TypeParameterNode): void { this.visitIdentifierExpression(node.name); let extendsType = node.extendsType; diff --git a/src/flow.ts b/src/flow.ts index 3f4838ab3d..ddc7941916 100644 --- a/src/flow.ts +++ b/src/flow.ts @@ -31,7 +31,8 @@ import { TypedElement, mangleInternalName, Property, - PropertyPrototype + PropertyPrototype, + TypeDefinition } from "./program"; import { @@ -145,6 +146,8 @@ export const enum FlowFlags { UncheckedContext = 1 << 15, /** This is a flow compiling a constructor parameter. */ CtorParamContext = 1 << 16, + /** This is a flow where all function calls are inlined if possible. */ + InlineContext = 1 << 17, // masks @@ -250,6 +253,8 @@ export class Flow { breakLabel: string | null = null; /** Scoped local variables. */ scopedLocals: Map | null = null; + /** Scoped type alias. */ + scopedTypeAlias: Map | null = null; /** Local flags. */ localFlags: LocalFlags[] = []; /** Field flags on `this`. Constructors only. */ @@ -405,6 +410,38 @@ export class Flow { falseFlows.set(condExpr, falseFlow); } + addScopedTypeAlias(name: string, definition: TypeDefinition): void { + let scopedTypeAlias = this.scopedTypeAlias; + if (!scopedTypeAlias) this.scopedTypeAlias = scopedTypeAlias = new Map(); + scopedTypeAlias.set(name, definition); + } + + lookupScopedTypeAlias(name: string): TypeDefinition | null { + let current: Flow | null = this; + do { + let scopedTypeAlias = current.scopedTypeAlias; + if (scopedTypeAlias && scopedTypeAlias.has(name)) { + return assert(scopedTypeAlias.get(name)); + } + current = current.parent; + } while (current); + return null; + } + + lookupTypeAlias(name: string): TypeDefinition | null { + let definition: TypeDefinition | null = null; + if (definition = this.lookupScopedTypeAlias(name)) return definition; + + let sourceParent = this.sourceFunction.parent; + if (sourceParent.kind == ElementKind.Function) { + // lookup parent function. + let parentFunction = sourceParent; + return parentFunction.flow.lookupTypeAlias(name); + } + + return null; + } + /** Gets a free temporary local of the specified type. */ getTempLocal(type: Type): Local { let local = this.targetFunction.addLocal(type); diff --git a/src/glue/binaryen.d.ts b/src/glue/binaryen.d.ts index 0c0481d263..5b693f8fa0 100644 --- a/src/glue/binaryen.d.ts +++ b/src/glue/binaryen.d.ts @@ -18,6 +18,7 @@ export type Op = i32; export type ExternalKind = u32; export type SideEffects = u32; export type ExpressionRunnerFlags = u32; +export type MemoryOrder = u32; export type StringRef = Ref; export type Pointer = Ref; @@ -57,9 +58,6 @@ export declare function _BinaryenTypeStructref(): TypeRef; export declare function _BinaryenTypeArrayref(): TypeRef; export declare function _BinaryenTypeI31ref(): TypeRef; export declare function _BinaryenTypeStringref(): TypeRef; -export declare function _BinaryenTypeStringviewWTF8(): TypeRef; -export declare function _BinaryenTypeStringviewWTF16(): TypeRef; -export declare function _BinaryenTypeStringviewIter(): TypeRef; export declare function _BinaryenTypeNullref(): TypeRef; export declare function _BinaryenTypeNullExternref(): TypeRef; export declare function _BinaryenTypeNullFuncref(): TypeRef; @@ -72,9 +70,6 @@ export declare function _BinaryenHeapTypeI31(): HeapTypeRef; export declare function _BinaryenHeapTypeStruct(): HeapTypeRef; export declare function _BinaryenHeapTypeArray(): HeapTypeRef; export declare function _BinaryenHeapTypeString(): HeapTypeRef; -export declare function _BinaryenHeapTypeStringviewWTF8(): HeapTypeRef; -export declare function _BinaryenHeapTypeStringviewWTF16(): HeapTypeRef; -export declare function _BinaryenHeapTypeStringviewIter(): HeapTypeRef; export declare function _BinaryenHeapTypeNone(): HeapTypeRef; export declare function _BinaryenHeapTypeNoext(): HeapTypeRef; export declare function _BinaryenHeapTypeNofunc(): HeapTypeRef; @@ -101,12 +96,12 @@ export declare function _BinaryenModuleDispose(module: ModuleRef): void; export declare function _BinaryenSizeofLiteral(): usize; export declare function _BinaryenLiteralInt32(literalOut: LiteralRef, x: i32): void; -export declare function _BinaryenLiteralInt64(literalOut: LiteralRef, x: i32, y: i32): void; +export declare function _BinaryenLiteralInt64(literalOut: LiteralRef, value: i64): void; export declare function _BinaryenLiteralFloat32(literalOut: LiteralRef, x: f32): void; export declare function _BinaryenLiteralFloat64(literalOut: LiteralRef, x: f64): void; export declare function _BinaryenLiteralVec128(literalOut: LiteralRef, x: ArrayRef): void; export declare function _BinaryenLiteralFloat32Bits(literalOut: LiteralRef, x: i32): void; -export declare function _BinaryenLiteralFloat64Bits(literalOut: LiteralRef, x: i32, y: i32): void; +export declare function _BinaryenLiteralFloat64Bits(literalOut: LiteralRef, value: i64): void; export declare function _BinaryenExpressionGetId(expr: ExpressionRef): ExpressionId; export declare function _BinaryenExpressionGetType(expr: ExpressionRef): TypeRef; @@ -234,7 +229,7 @@ export declare function _BinaryenLoadSetAlign(expr: ExpressionRef, align: u32): export declare function _BinaryenLoadGetPtr(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenLoadSetPtr(expr: ExpressionRef, ptrExpr: ExpressionRef): void; // ^ with atomic = true -export declare function _BinaryenAtomicLoad(module: ModuleRef, bytes: Index, offset: Index, type: TypeRef, ptrExpr: ExpressionRef, memoryName: StringRef): ExpressionRef; +export declare function _BinaryenAtomicLoad(module: ModuleRef, bytes: Index, offset: Index, type: TypeRef, ptrExpr: ExpressionRef, memoryName: StringRef, memoryOrder: MemoryOrder): ExpressionRef; export declare function _BinaryenStore(module: ModuleRef, bytes: u32, offset: u32, align: u32, ptrExpr: ExpressionRef, valueExpr: ExpressionRef, type: TypeRef, memoryName: StringRef): ExpressionRef; export declare function _BinaryenStoreIsAtomic(expr: ExpressionRef): bool; @@ -252,15 +247,13 @@ export declare function _BinaryenStoreSetValue(expr: ExpressionRef, valueExpr: E export declare function _BinaryenStoreGetValueType(expr: ExpressionRef): TypeRef; export declare function _BinaryenStoreSetValueType(expr: ExpressionRef, valueType: TypeRef): void; // ^ with atomic = true -export declare function _BinaryenAtomicStore(module: ModuleRef, bytes: Index, offset: Index, ptrExpr: ExpressionRef, valueExpr: ExpressionRef, type: TypeRef, memoryName: StringRef): ExpressionRef; +export declare function _BinaryenAtomicStore(module: ModuleRef, bytes: Index, offset: Index, ptrExpr: ExpressionRef, valueExpr: ExpressionRef, type: TypeRef, memoryName: StringRef, memoryOrder: MemoryOrder): ExpressionRef; export declare function _BinaryenConst(module: ModuleRef, value: LiteralRef): ExpressionRef; export declare function _BinaryenConstGetValueI32(expr: ExpressionRef): i32; export declare function _BinaryenConstSetValueI32(expr: ExpressionRef, value: i32): void; -export declare function _BinaryenConstGetValueI64Low(expr: ExpressionRef): i32; -export declare function _BinaryenConstSetValueI64Low(expr: ExpressionRef, value: i32): void; -export declare function _BinaryenConstGetValueI64High(expr: ExpressionRef): i32; -export declare function _BinaryenConstSetValueI64High(expr: ExpressionRef, value: i32): void; +export declare function _BinaryenConstGetValueI64(expr: ExpressionRef): i64; +export declare function _BinaryenConstSetValueI64(expr: ExpressionRef, value: i64): void; export declare function _BinaryenConstGetValueF32(expr: ExpressionRef): f32; export declare function _BinaryenConstSetValueF32(expr: ExpressionRef, value: f32): void; export declare function _BinaryenConstGetValueF64(expr: ExpressionRef): f64; @@ -274,6 +267,9 @@ export declare function _BinaryenUnarySetOp(expr: ExpressionRef, op: Op): void; export declare function _BinaryenUnaryGetValue(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenUnarySetValue(expr: ExpressionRef, valueExpr: ExpressionRef): void; +export declare function _BinaryenWideIntAddSub(module: ModuleRef, op: Op, leftLowExpr: ExpressionRef, leftHighExpr: ExpressionRef, rightLowExpr: ExpressionRef, rightHighExpr: ExpressionRef): ExpressionRef; +export declare function _BinaryenWideIntMul(module: ModuleRef, op: Op, leftExpr: ExpressionRef, rightExpr: ExpressionRef): ExpressionRef; + export declare function _BinaryenBinary(module: ModuleRef, op: Op, leftExpr: ExpressionRef, rightExpr: ExpressionRef): ExpressionRef; export declare function _BinaryenBinaryGetOp(expr: ExpressionRef): Op; export declare function _BinaryenBinarySetOp(expr: ExpressionRef, op: Op): void; @@ -282,7 +278,7 @@ export declare function _BinaryenBinarySetLeft(expr: ExpressionRef, leftExpr: Ex export declare function _BinaryenBinaryGetRight(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenBinarySetRight(expr: ExpressionRef, rightExpr: ExpressionRef): void; -export declare function _BinaryenSelect(module: ModuleRef, conditionExpr: ExpressionRef, ifTrueExpr: ExpressionRef, ifFalseExpr: ExpressionRef, type: TypeRef): ExpressionRef; +export declare function _BinaryenSelect(module: ModuleRef, conditionExpr: ExpressionRef, ifTrueExpr: ExpressionRef, ifFalseExpr: ExpressionRef): ExpressionRef; export declare function _BinaryenSelectGetIfTrue(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenSelectSetIfTrue(expr: ExpressionRef, ifTrueExpr: ExpressionRef): void; export declare function _BinaryenSelectGetIfFalse(expr: ExpressionRef): ExpressionRef; @@ -302,7 +298,7 @@ export declare function _BinaryenNop(module: ModuleRef): ExpressionRef; export declare function _BinaryenUnreachable(module: ModuleRef): ExpressionRef; -export declare function _BinaryenAtomicRMW(module: ModuleRef, op: Op, bytes: u32, offset: u32, ptrExpr: ExpressionRef, valueExpr: ExpressionRef, type: TypeRef, memoryName: StringRef): ExpressionRef; +export declare function _BinaryenAtomicRMW(module: ModuleRef, op: Op, bytes: u32, offset: u32, ptrExpr: ExpressionRef, valueExpr: ExpressionRef, type: TypeRef, memoryName: StringRef, memoryOrder: MemoryOrder): ExpressionRef; export declare function _BinaryenAtomicRMWGetOp(expr: ExpressionRef): Op; export declare function _BinaryenAtomicRMWSetOp(expr: ExpressionRef, op: Op): void; export declare function _BinaryenAtomicRMWGetBytes(expr: ExpressionRef): u32; @@ -314,7 +310,7 @@ export declare function _BinaryenAtomicRMWSetPtr(expr: ExpressionRef, ptrExpr: E export declare function _BinaryenAtomicRMWGetValue(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenAtomicRMWSetValue(expr: ExpressionRef, valueExpr: ExpressionRef): void; -export declare function _BinaryenAtomicCmpxchg(module: ModuleRef, bytes: u32, offset: u32, ptrExpr: ExpressionRef, expectedExpr: ExpressionRef, replacementExpr: ExpressionRef, type: TypeRef, memoryName: StringRef): ExpressionRef; +export declare function _BinaryenAtomicCmpxchg(module: ModuleRef, bytes: u32, offset: u32, ptrExpr: ExpressionRef, expectedExpr: ExpressionRef, replacementExpr: ExpressionRef, type: TypeRef, memoryName: StringRef, memoryOrder: MemoryOrder): ExpressionRef; export declare function _BinaryenAtomicCmpxchgGetBytes(expr: ExpressionRef): u32; export declare function _BinaryenAtomicCmpxchgSetBytes(expr: ExpressionRef, bytes: u32): void; export declare function _BinaryenAtomicCmpxchgGetOffset(expr: ExpressionRef): u32; @@ -457,7 +453,7 @@ export declare function _BinaryenRefAsSetOp(expr: ExpressionRef, op: Op): void; export declare function _BinaryenRefAsGetValue(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenRefAsSetValue(expr: ExpressionRef, valueExpr: ExpressionRef): void; -export declare function _BinaryenRefFunc(module: ModuleRef, funcName: StringRef, type: TypeRef): ExpressionRef; +export declare function _BinaryenRefFunc(module: ModuleRef, funcName: StringRef, type: HeapTypeRef): ExpressionRef; export declare function _BinaryenRefFuncGetFunc(expr: ExpressionRef): StringRef; export declare function _BinaryenRefFuncSetFunc(expr: ExpressionRef, funcName: StringRef): void; @@ -617,8 +613,6 @@ export declare function _BinaryenArrayNewSetInit(expr: ExpressionRef, initExpr: export declare function _BinaryenArrayNewGetSize(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenArrayNewSetSize(expr: ExpressionRef, sizeExpr: ExpressionRef): void; -// TODO: BinaryenArrayNewSeg - export declare function _BinaryenArrayNewFixed(module: ModuleRef, type: HeapTypeRef, values: ArrayRef, numValues: Index): ExpressionRef; export declare function _BinaryenArrayNewFixedGetNumValues(expr: ExpressionRef): Index; export declare function _BinaryenArrayNewFixedGetValueAt(expr: ExpressionRef, index: Index): ExpressionRef; @@ -627,6 +621,22 @@ export declare function _BinaryenArrayNewFixedAppendValue(expr: ExpressionRef, v export declare function _BinaryenArrayNewFixedInsertValueAt(expr: ExpressionRef, index: Index, valueExpr: ExpressionRef): void; export declare function _BinaryenArrayNewFixedRemoveValueAt(expr: ExpressionRef, index: Index): ExpressionRef; +export declare function _BinaryenArrayNewData(module: ModuleRef, type: HeapTypeRef, name: StringRef, offset: ExpressionRef, size: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayNewDataGetSegment(expr: ExpressionRef): StringRef; +export declare function _BinaryenArrayNewDataSetSegment(expr: ExpressionRef, segment: StringRef): void; +export declare function _BinaryenArrayNewDataGetOffset(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayNewDataSetOffset(expr: ExpressionRef, offset: ExpressionRef): void; +export declare function _BinaryenArrayNewDataGetSize(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayNewDataSetSize(expr: ExpressionRef, size: ExpressionRef): void; + +export declare function _BinaryenArrayNewElem(module: ModuleRef, type: HeapTypeRef, seg: StringRef, offset: ExpressionRef, size: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayNewElemGetSegment(expr: ExpressionRef): StringRef; +export declare function _BinaryenArrayNewElemSetSegment(expr: ExpressionRef, segment: StringRef): void; +export declare function _BinaryenArrayNewElemGetOffset(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayNewElemSetOffset(expr: ExpressionRef, offset: ExpressionRef): void; +export declare function _BinaryenArrayNewElemGetSize(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayNewElemSetSize(expr: ExpressionRef, size: ExpressionRef): void; + export declare function _BinaryenArrayGet(module: ModuleRef, ref: ExpressionRef, index: ExpressionRef, type: TypeRef, signed: bool): ExpressionRef; export declare function _BinaryenArrayGetGetRef(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenArrayGetSetRef(expr: ExpressionRef, refExpr: ExpressionRef): void; @@ -647,6 +657,16 @@ export declare function _BinaryenArrayLen(module: ModuleRef, ref: ExpressionRef) export declare function _BinaryenArrayLenGetRef(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenArrayLenSetRef(expr: ExpressionRef, refExpr: ExpressionRef): void; +export declare function _BinaryenArrayFill(module: ModuleRef, ref: ExpressionRef, index: ExpressionRef, value: ExpressionRef, size: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayFillGetRef(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayFillSetRef(expr: ExpressionRef, refExpr: ExpressionRef): void; +export declare function _BinaryenArrayFillGetIndex(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayFillSetIndex(expr: ExpressionRef, indexExpr: ExpressionRef): void; +export declare function _BinaryenArrayFillGetValue(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayFillSetValue(expr: ExpressionRef, valueExpr: ExpressionRef): void; +export declare function _BinaryenArrayFillGetSize(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayFillSetSize(expr: ExpressionRef, sizeExpr: ExpressionRef): void; + export declare function _BinaryenArrayCopy(module: ModuleRef, destRef: ExpressionRef, destIndex: ExpressionRef, srcRef: ExpressionRef, srcIndex: ExpressionRef, length: ExpressionRef): ExpressionRef; export declare function _BinaryenArrayCopyGetDestRef(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenArrayCopySetDestRef(expr: ExpressionRef, destRefExpr: ExpressionRef): void; @@ -659,22 +679,39 @@ export declare function _BinaryenArrayCopySetSrcIndex(expr: ExpressionRef, srcIn export declare function _BinaryenArrayCopyGetLength(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenArrayCopySetLength(expr: ExpressionRef, lengthExpr: ExpressionRef): void; -// TODO: BinaryenArrayFill -// TODO: BinaryenArrayNewFixed - -export declare function _BinaryenStringNew(module: ModuleRef, op: Op, ptr: ExpressionRef, length: ExpressionRef, start: ExpressionRef, end: ExpressionRef, isTry: bool): ExpressionRef; +export declare function _BinaryenArrayInitData(module: ModuleRef, name: StringRef, ref: ExpressionRef, index: ExpressionRef, offset: ExpressionRef, size: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayInitDataGetSegment(expr: ExpressionRef): StringRef; +export declare function _BinaryenArrayInitDataSetSegment(expr: ExpressionRef, segment: StringRef): void; +export declare function _BinaryenArrayInitDataGetRef(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayInitDataSetRef(expr: ExpressionRef, ref: ExpressionRef): void; +export declare function _BinaryenArrayInitDataGetIndex(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayInitDataSetIndex(expr: ExpressionRef, index: ExpressionRef): void; +export declare function _BinaryenArrayInitDataGetOffset(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayInitDataSetOffset(expr: ExpressionRef, offset: ExpressionRef): void; +export declare function _BinaryenArrayInitDataGetSize(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayInitDataSetSize(expr: ExpressionRef, size: ExpressionRef): void; + +export declare function _BinaryenArrayInitElem(module: ModuleRef, seg: StringRef, ref: ExpressionRef, index: ExpressionRef, offset: ExpressionRef, size: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayInitElemGetSegment(expr: ExpressionRef): StringRef; +export declare function _BinaryenArrayInitElemSetSegment(expr: ExpressionRef, segment: StringRef): void; +export declare function _BinaryenArrayInitElemGetRef(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayInitElemSetRef(expr: ExpressionRef, ref: ExpressionRef): void; +export declare function _BinaryenArrayInitElemGetIndex(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayInitElemSetIndex(expr: ExpressionRef, index: ExpressionRef): void; +export declare function _BinaryenArrayInitElemGetOffset(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayInitElemSetOffset(expr: ExpressionRef, offset: ExpressionRef): void; +export declare function _BinaryenArrayInitElemGetSize(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayInitElemSetSize(expr: ExpressionRef, size: ExpressionRef): void; + +export declare function _BinaryenStringNew(module: ModuleRef, op: Op, ref: ExpressionRef, start: ExpressionRef): ExpressionRef; export declare function _BinaryenStringNewGetOp(expr: ExpressionRef): Op; export declare function _BinaryenStringNewSetOp(expr: ExpressionRef, op: Op): void; -export declare function _BinaryenStringNewGetPtr(expr: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringNewSetPtr(expr: ExpressionRef, ptrExpr: ExpressionRef): void; -export declare function _BinaryenStringNewGetLength(expr: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringNewSetLength(expr: ExpressionRef, lengthExpr: ExpressionRef): void; +export declare function _BinaryenStringNewGetRef(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenStringNewSetRef(expr: ExpressionRef, ptrExpr: ExpressionRef): void; export declare function _BinaryenStringNewGetStart(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenStringNewSetStart(expr: ExpressionRef, startExpr: ExpressionRef): void; export declare function _BinaryenStringNewGetEnd(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenStringNewSetEnd(expr: ExpressionRef, endExpr: ExpressionRef): void; -export declare function _BinaryenStringNewIsTry(expr: ExpressionRef): bool; -export declare function _BinaryenStringNewSetTry(expr: ExpressionRef, isTry: bool): void; export declare function _BinaryenStringConst(module: ExpressionRef, name: StringRef): ExpressionRef; export declare function _BinaryenStringConstGetString(expr: ExpressionRef): StringRef; @@ -689,10 +726,10 @@ export declare function _BinaryenStringMeasureSetRef(expr: ExpressionRef, refExp export declare function _BinaryenStringEncode(module: ExpressionRef, op: Op, ref: ExpressionRef, ptr: ExpressionRef, start: ExpressionRef): ExpressionRef; export declare function _BinaryenStringEncodeGetOp(expr: ExpressionRef): Op; export declare function _BinaryenStringEncodeSetOp(expr: ExpressionRef, op: Op): void; -export declare function _BinaryenStringEncodeGetRef(expr: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringEncodeSetRef(expr: ExpressionRef, refExpr: ExpressionRef): void; -export declare function _BinaryenStringEncodeGetPtr(expr: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringEncodeSetPtr(expr: ExpressionRef, ptrExpr: ExpressionRef): void; +export declare function _BinaryenStringEncodeGetStr(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenStringEncodeSetStr(expr: ExpressionRef, refExpr: ExpressionRef): void; +export declare function _BinaryenStringEncodeGetArray(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenStringEncodeSetArray(expr: ExpressionRef, ptrExpr: ExpressionRef): void; export declare function _BinaryenStringEncodeGetStart(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenStringEncodeSetStart(expr: ExpressionRef, startExpr: ExpressionRef): void; @@ -710,41 +747,13 @@ export declare function _BinaryenStringEqSetLeft(expr: ExpressionRef, leftExpr: export declare function _BinaryenStringEqGetRight(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenStringEqSetRight(expr: ExpressionRef, rightExpr: ExpressionRef): void; -export declare function _BinaryenStringAs(module: ExpressionRef, op: Op, ref: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringAsGetOp(expr: ExpressionRef): Op; -export declare function _BinaryenStringAsSetOp(expr: ExpressionRef, op: Op): void; -export declare function _BinaryenStringAsGetRef(expr: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringAsSetRef(expr: ExpressionRef, refExpr: ExpressionRef): void; - -export declare function _BinaryenStringWTF8Advance(module: ExpressionRef, ref: ExpressionRef, pos: ExpressionRef, bytes: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringWTF8AdvanceGetRef(expr: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringWTF8AdvanceSetRef(expr: ExpressionRef, refExpr: ExpressionRef): void; -export declare function _BinaryenStringWTF8AdvanceGetPos(expr: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringWTF8AdvanceSetPos(expr: ExpressionRef, posExpr: ExpressionRef): void; -export declare function _BinaryenStringWTF8AdvanceGetBytes(expr: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringWTF8AdvanceSetBytes(expr: ExpressionRef, bytesExpr: ExpressionRef): void; - export declare function _BinaryenStringWTF16Get(module: ExpressionRef, ref: ExpressionRef, pos: ExpressionRef): ExpressionRef; export declare function _BinaryenStringWTF16GetGetRef(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenStringWTF16GetSetRef(expr: ExpressionRef, refExpr: ExpressionRef): void; export declare function _BinaryenStringWTF16GetGetPos(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenStringWTF16GetSetPos(expr: ExpressionRef, posExpr: ExpressionRef): void; -export declare function _BinaryenStringIterNext(module: ExpressionRef, ref: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringIterNextGetRef(expr: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringIterNextSetRef(expr: ExpressionRef, refExpr: ExpressionRef): void; - -export declare function _BinaryenStringIterMove(module: ExpressionRef, op: Op, ref: ExpressionRef, num: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringIterMoveGetOp(expr: ExpressionRef): Op; -export declare function _BinaryenStringIterMoveSetOp(expr: ExpressionRef, op: Op): void; -export declare function _BinaryenStringIterMoveGetRef(expr: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringIterMoveSetRef(expr: ExpressionRef, refExpr: ExpressionRef): void; -export declare function _BinaryenStringIterMoveGetNum(expr: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringIterMoveSetNum(expr: ExpressionRef, numExpr: ExpressionRef): void; - -export declare function _BinaryenStringSliceWTF(module: ExpressionRef, op: Op, ref: ExpressionRef, start: ExpressionRef, end: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringSliceWTFGetOp(expr: ExpressionRef): Op; -export declare function _BinaryenStringSliceWTFSetOp(expr: ExpressionRef, op: Op): void; +export declare function _BinaryenStringSliceWTF(module: ExpressionRef, ref: ExpressionRef, start: ExpressionRef, end: ExpressionRef): ExpressionRef; export declare function _BinaryenStringSliceWTFGetRef(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenStringSliceWTFSetRef(expr: ExpressionRef, refExpr: ExpressionRef): void; export declare function _BinaryenStringSliceWTFGetStart(expr: ExpressionRef): ExpressionRef; @@ -752,12 +761,6 @@ export declare function _BinaryenStringSliceWTFSetStart(expr: ExpressionRef, sta export declare function _BinaryenStringSliceWTFGetEnd(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenStringSliceWTFSetEnd(expr: ExpressionRef, endExpr: ExpressionRef): void; -export declare function _BinaryenStringSliceIter(module: ExpressionRef, ref: ExpressionRef, num: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringSliceIterGetRef(expr: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringSliceIterSetRef(expr: ExpressionRef, refExpr: ExpressionRef): void; -export declare function _BinaryenStringSliceIterGetNum(expr: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringSliceIterSetNum(expr: ExpressionRef, numExpr: ExpressionRef): void; - export declare function _BinaryenAddFunction(module: ModuleRef, name: StringRef, params: TypeRef, results: TypeRef, varTypes: ArrayRef, numVarTypes: Index, body: ExpressionRef): FunctionRef; export declare function _BinaryenGetFunction(module: ModuleRef, name: StringRef): FunctionRef; export declare function _BinaryenRemoveFunction(module: ModuleRef, name: StringRef): void; @@ -769,12 +772,15 @@ export declare function _BinaryenFunctionGetParams(func: FunctionRef): TypeRef; export declare function _BinaryenFunctionGetResults(func: FunctionRef): TypeRef; export declare function _BinaryenFunctionGetNumVars(func: FunctionRef): Index; export declare function _BinaryenFunctionGetVar(func: FunctionRef, index: Index): TypeRef; +export declare function _BinaryenFunctionAddVar(func: FunctionRef, type: TypeRef): Index; export declare function _BinaryenFunctionGetNumLocals(func: FunctionRef): Index; export declare function _BinaryenFunctionHasLocalName(func: FunctionRef, index: Index): bool; export declare function _BinaryenFunctionGetLocalName(func: FunctionRef, index: Index): StringRef; export declare function _BinaryenFunctionSetLocalName(func: FunctionRef, index: Index, name: StringRef): void; export declare function _BinaryenFunctionGetBody(func: FunctionRef): ExpressionRef; export declare function _BinaryenFunctionSetBody(func: FunctionRef, bodyExpr: ExpressionRef): void; +export declare function _BinaryenFunctionGetType(func: FunctionRef): HeapTypeRef; +export declare function _BinaryenFunctionSetType(func: FunctionRef, type: HeapTypeRef): void; export declare function _BinaryenFunctionOptimize(func: FunctionRef, module: ModuleRef): void; export declare function _BinaryenFunctionRunPasses(func: FunctionRef, module: ModuleRef, passes: ArrayRef, numPasses: Index): void; export declare function _BinaryenFunctionSetDebugLocation(func: FunctionRef, expr: ExpressionRef, fileIndex: Index, lineNumber: Index, columnNumber: Index): void; @@ -830,6 +836,8 @@ export declare function _BinaryenTableSetInitial(table: TableRef, initial: Index export declare function _BinaryenTableHasMax(table: TableRef): bool; export declare function _BinaryenTableGetMax(table: TableRef): Index; export declare function _BinaryenTableSetMax(table: TableRef, max: Index): void; +export declare function _BinaryenTableGetType(table: TableRef): TypeRef; +export declare function _BinaryenTableSetType(table: TableRef, type: TypeRef): void; export declare function _BinaryenAddActiveElementSegment(module: ModuleRef, table: StringRef, name: StringRef, funcNames: ArrayRef, numFuncNames: Index, offset: ExpressionRef): ElementSegmentRef; export declare function _BinaryenAddPassiveElementSegment(module: ModuleRef, name: StringRef, funcNames: ArrayRef, numFuncNames: Index): ElementSegmentRef; @@ -838,13 +846,15 @@ export declare function _BinaryenGetNumElementSegments(module: ModuleRef, name: export declare function _BinaryenGetElementSegment(module: ModuleRef, name: StringRef): ElementSegmentRef; export declare function _BinaryenGetElementSegmentByIndex(module: ModuleRef, index: Index): ElementSegmentRef; -export declare function _BinaryenSetMemory(module: ModuleRef, initial: Index, maximum: Index, exportName: StringRef, segments: ArrayRef>, segmentPassive: ArrayRef, segmentOffsets: ArrayRef, segmentSizes: ArrayRef, numSegments: Index, shared: bool, memory64: bool, name: StringRef): void; +export declare function _BinaryenSetMemory(module: ModuleRef, initial: Index, maximum: Index, exportName: StringRef, segmentNames: ArrayRef, segmentDatas: ArrayRef>, segmentPassive: ArrayRef, segmentOffsets: ArrayRef, segmentSizes: ArrayRef, numSegments: Index, shared: bool, memory64: bool, name: StringRef): void; export declare function _BinaryenGetNumMemorySegments(module: ModuleRef): Index; -export declare function _BinaryenGetMemorySegmentByteOffset(module: ModuleRef, index: Index): u32; -export declare function _BinaryenGetMemorySegmentByteLength(module: ModuleRef, id: Index): usize; -export declare function _BinaryenCopyMemorySegmentData(module: ModuleRef, id: Index, buffer: ArrayRef): void; +export declare function _BinaryenGetMemorySegmentByteOffset(module: ModuleRef, segmentName: StringRef): u32; +export declare function _BinaryenGetMemorySegmentByteLength(module: ModuleRef, segmentName: StringRef): usize; +export declare function _BinaryenCopyMemorySegmentData(module: ModuleRef, segmentName: StringRef, buffer: ArrayRef): void; +export declare function _BinaryenAddDataSegment(module: ModuleRef, segmentName: StringRef, memoryName: StringRef, segmentPassive: bool, segmentOffset: ExpressionRef, segmentData: ArrayRef, segmentSize: Index): void; export declare function _BinaryenSetStart(module: ModuleRef, start: FunctionRef): void; +export declare function _BinaryenGetStart(module: ModuleRef): FunctionRef; export declare function _BinaryenModuleParse(text: StringRef): ModuleRef; export declare function _BinaryenModulePrint(module: ModuleRef): void; @@ -852,12 +862,12 @@ export declare function _BinaryenModulePrintAsmjs(module: ModuleRef): void; export declare function _BinaryenModuleValidate(module: ModuleRef): i32; export declare function _BinaryenModuleOptimize(module: ModuleRef): void; export declare function _BinaryenModuleRunPasses(module: ModuleRef, passes: ArrayRef, numPasses: Index): void; -export declare function _BinaryenModuleAutoDrop(module: ModuleRef): void; export declare function _BinaryenSizeofAllocateAndWriteResult(): i32; export declare function _BinaryenModuleAllocateAndWrite(resultOut: BinaryenModuleAllocateAndWriteResultRef, module: ModuleRef, sourceMapUrl: StringRef): void; export declare function _BinaryenModuleAllocateAndWriteText(module: ModuleRef): StringRef; -export declare function _BinaryenModuleAllocateAndWriteStackIR(module: ModuleRef, optimize: bool): StringRef; +export declare function _BinaryenModuleAllocateAndWriteStackIR(module: ModuleRef): StringRef; export declare function _BinaryenModuleRead(input: ArrayRef, inputSize: usize): ModuleRef; +export declare function _BinaryenModuleReadWithFeatures(input: ArrayRef, inputSize: usize, featureFlags: FeatureFlags): ModuleRef; export declare function _BinaryenModuleInterpret(module: ModuleRef): void; export declare function _BinaryenModuleAddDebugInfoFileName(module: ModuleRef, filename: StringRef): Index; export declare function _BinaryenModuleGetDebugInfoFileName(module: ModuleRef, index: Index): StringRef; @@ -902,15 +912,26 @@ export declare function _BinaryenGetShrinkLevel(): i32; export declare function _BinaryenSetShrinkLevel(level: i32): void; export declare function _BinaryenGetDebugInfo(): bool; export declare function _BinaryenSetDebugInfo(on: bool): void; +export declare function _BinaryenGetTrapsNeverHappen(): bool; +export declare function _BinaryenSetTrapsNeverHappen(on: bool): void; +export declare function _BinaryenGetClosedWorld(): bool; +export declare function _BinaryenSetClosedWorld(on: bool): void; export declare function _BinaryenGetLowMemoryUnused(): bool; export declare function _BinaryenSetLowMemoryUnused(on: bool): void; export declare function _BinaryenGetZeroFilledMemory(): bool; export declare function _BinaryenSetZeroFilledMemory(on: bool): void; export declare function _BinaryenGetFastMath(): bool; export declare function _BinaryenSetFastMath(on: bool): void; +export declare function _BinaryenGetGenerateStackIR(): bool; +export declare function _BinaryenSetGenerateStackIR(on: bool): void; +export declare function _BinaryenGetOptimizeStackIR(): bool; +export declare function _BinaryenSetOptimizeStackIR(on: bool): void; export declare function _BinaryenGetPassArgument(key: StringRef): StringRef; export declare function _BinaryenSetPassArgument(key: StringRef, value: StringRef): void; export declare function _BinaryenClearPassArguments(): void; +export declare function _BinaryenHasPassToSkip(pass: StringRef): bool; +export declare function _BinaryenAddPassToSkip(pass: StringRef): void; +export declare function _BinaryenClearPassesToSkip(): void; export declare function _BinaryenGetAlwaysInlineMaxSize(): Index; export declare function _BinaryenSetAlwaysInlineMaxSize(size: Index): void; export declare function _BinaryenGetFlexibleInlineMaxSize(): Index; diff --git a/src/glue/binaryen.js b/src/glue/binaryen.js index f28c35d280..c47cc5ca77 100644 --- a/src/glue/binaryen.js +++ b/src/glue/binaryen.js @@ -4,6 +4,7 @@ */ import binaryen from "../../lib/binaryen.js"; +import Long from "long"; export const { _BinaryenTypeCreate, @@ -21,9 +22,6 @@ export const { _BinaryenTypeStructref, _BinaryenTypeArrayref, _BinaryenTypeStringref, - _BinaryenTypeStringviewWTF8, - _BinaryenTypeStringviewWTF16, - _BinaryenTypeStringviewIter, _BinaryenTypeNullref, _BinaryenTypeNullExternref, _BinaryenTypeNullFuncref, @@ -35,10 +33,8 @@ export const { _BinaryenHeapTypeI31, _BinaryenHeapTypeStruct, _BinaryenHeapTypeArray, + // _BinaryenHeapTypeExn, _BinaryenHeapTypeString, - _BinaryenHeapTypeStringviewWTF8, - _BinaryenHeapTypeStringviewWTF16, - _BinaryenHeapTypeStringviewIter, _BinaryenHeapTypeNone, _BinaryenHeapTypeNoext, _BinaryenHeapTypeNofunc, @@ -65,12 +61,10 @@ export const { _BinaryenSizeofLiteral, _BinaryenLiteralInt32, - _BinaryenLiteralInt64, _BinaryenLiteralFloat32, _BinaryenLiteralFloat64, _BinaryenLiteralVec128, _BinaryenLiteralFloat32Bits, - _BinaryenLiteralFloat64Bits, _BinaryenExpressionGetId, _BinaryenExpressionGetType, @@ -216,10 +210,6 @@ export const { _BinaryenConst, _BinaryenConstGetValueI32, _BinaryenConstSetValueI32, - _BinaryenConstGetValueI64Low, - _BinaryenConstSetValueI64Low, - _BinaryenConstGetValueI64High, - _BinaryenConstSetValueI64High, _BinaryenConstGetValueF32, _BinaryenConstSetValueF32, _BinaryenConstGetValueF64, @@ -233,6 +223,9 @@ export const { _BinaryenUnaryGetValue, _BinaryenUnarySetValue, + _BinaryenWideIntAddSub, + _BinaryenWideIntMul, + _BinaryenBinary, _BinaryenBinaryGetOp, _BinaryenBinarySetOp, @@ -584,6 +577,22 @@ export const { _BinaryenArrayNewFixedInsertValueAt, _BinaryenArrayNewFixedRemoveValueAt, + _BinaryenArrayNewData, + _BinaryenArrayNewDataGetSegment, + _BinaryenArrayNewDataSetSegment, + _BinaryenArrayNewDataGetOffset, + _BinaryenArrayNewDataSetOffset, + _BinaryenArrayNewDataGetSize, + _BinaryenArrayNewDataSetSize, + + _BinaryenArrayNewElem, + _BinaryenArrayNewElemGetSegment, + _BinaryenArrayNewElemSetSegment, + _BinaryenArrayNewElemGetOffset, + _BinaryenArrayNewElemSetOffset, + _BinaryenArrayNewElemGetSize, + _BinaryenArrayNewElemSetSize, + _BinaryenArrayGet, _BinaryenArrayGetGetRef, _BinaryenArrayGetSetRef, @@ -604,6 +613,16 @@ export const { _BinaryenArrayLenGetRef, _BinaryenArrayLenSetRef, + _BinaryenArrayFill, + _BinaryenArrayFillGetRef, + _BinaryenArrayFillSetRef, + _BinaryenArrayFillGetIndex, + _BinaryenArrayFillSetIndex, + _BinaryenArrayFillGetValue, + _BinaryenArrayFillSetValue, + _BinaryenArrayFillGetSize, + _BinaryenArrayFillSetSize, + _BinaryenArrayCopy, _BinaryenArrayCopyGetDestRef, _BinaryenArrayCopySetDestRef, @@ -616,19 +635,39 @@ export const { _BinaryenArrayCopyGetLength, _BinaryenArrayCopySetLength, + _BinaryenArrayInitData, + _BinaryenArrayInitDataGetSegment, + _BinaryenArrayInitDataSetSegment, + _BinaryenArrayInitDataGetRef, + _BinaryenArrayInitDataSetRef, + _BinaryenArrayInitDataGetIndex, + _BinaryenArrayInitDataSetIndex, + _BinaryenArrayInitDataGetOffset, + _BinaryenArrayInitDataSetOffset, + _BinaryenArrayInitDataGetSize, + _BinaryenArrayInitDataSetSize, + + _BinaryenArrayInitElem, + _BinaryenArrayInitElemGetSegment, + _BinaryenArrayInitElemSetSegment, + _BinaryenArrayInitElemGetRef, + _BinaryenArrayInitElemSetRef, + _BinaryenArrayInitElemGetIndex, + _BinaryenArrayInitElemSetIndex, + _BinaryenArrayInitElemGetOffset, + _BinaryenArrayInitElemSetOffset, + _BinaryenArrayInitElemGetSize, + _BinaryenArrayInitElemSetSize, + _BinaryenStringNew, _BinaryenStringNewGetOp, _BinaryenStringNewSetOp, - _BinaryenStringNewGetPtr, - _BinaryenStringNewSetPtr, - _BinaryenStringNewGetLength, - _BinaryenStringNewSetLength, + _BinaryenStringNewGetRef, + _BinaryenStringNewSetRef, _BinaryenStringNewGetStart, _BinaryenStringNewSetStart, _BinaryenStringNewGetEnd, _BinaryenStringNewSetEnd, - _BinaryenStringNewIsTry, - _BinaryenStringNewSetTry, _BinaryenStringConst, _BinaryenStringConstGetString, @@ -643,10 +682,10 @@ export const { _BinaryenStringEncode, _BinaryenStringEncodeGetOp, _BinaryenStringEncodeSetOp, - _BinaryenStringEncodeGetRef, - _BinaryenStringEncodeSetRef, - _BinaryenStringEncodeGetPtr, - _BinaryenStringEncodeSetPtr, + _BinaryenStringEncodeGetStr, + _BinaryenStringEncodeSetStr, + _BinaryenStringEncodeGetArray, + _BinaryenStringEncodeSetArray, _BinaryenStringEncodeGetStart, _BinaryenStringEncodeSetStart, @@ -664,41 +703,13 @@ export const { _BinaryenStringEqGetRight, _BinaryenStringEqSetRight, - _BinaryenStringAs, - _BinaryenStringAsGetOp, - _BinaryenStringAsSetOp, - _BinaryenStringAsGetRef, - _BinaryenStringAsSetRef, - - _BinaryenStringWTF8Advance, - _BinaryenStringWTF8AdvanceGetRef, - _BinaryenStringWTF8AdvanceSetRef, - _BinaryenStringWTF8AdvanceGetPos, - _BinaryenStringWTF8AdvanceSetPos, - _BinaryenStringWTF8AdvanceGetBytes, - _BinaryenStringWTF8AdvanceSetBytes, - _BinaryenStringWTF16Get, _BinaryenStringWTF16GetGetRef, _BinaryenStringWTF16GetSetRef, _BinaryenStringWTF16GetGetPos, _BinaryenStringWTF16GetSetPos, - _BinaryenStringIterNext, - _BinaryenStringIterNextGetRef, - _BinaryenStringIterNextSetRef, - - _BinaryenStringIterMove, - _BinaryenStringIterMoveGetOp, - _BinaryenStringIterMoveSetOp, - _BinaryenStringIterMoveGetRef, - _BinaryenStringIterMoveSetRef, - _BinaryenStringIterMoveGetNum, - _BinaryenStringIterMoveSetNum, - _BinaryenStringSliceWTF, - _BinaryenStringSliceWTFGetOp, - _BinaryenStringSliceWTFSetOp, _BinaryenStringSliceWTFGetRef, _BinaryenStringSliceWTFSetRef, _BinaryenStringSliceWTFGetStart, @@ -706,12 +717,6 @@ export const { _BinaryenStringSliceWTFGetEnd, _BinaryenStringSliceWTFSetEnd, - _BinaryenStringSliceIter, - _BinaryenStringSliceIterGetRef, - _BinaryenStringSliceIterSetRef, - _BinaryenStringSliceIterGetNum, - _BinaryenStringSliceIterSetNum, - _BinaryenAddFunction, _BinaryenGetFunction, _BinaryenRemoveFunction, @@ -723,12 +728,15 @@ export const { _BinaryenFunctionGetResults, _BinaryenFunctionGetNumVars, _BinaryenFunctionGetVar, + _BinaryenFunctionAddVar, _BinaryenFunctionGetNumLocals, _BinaryenFunctionHasLocalName, _BinaryenFunctionGetLocalName, _BinaryenFunctionSetLocalName, _BinaryenFunctionGetBody, _BinaryenFunctionSetBody, + _BinaryenFunctionGetType, + _BinaryenFunctionSetType, _BinaryenFunctionOptimize, _BinaryenFunctionRunPasses, _BinaryenFunctionSetDebugLocation, @@ -784,6 +792,8 @@ export const { _BinaryenTableHasMax, _BinaryenTableGetMax, _BinaryenTableSetMax, + _BinaryenTableGetType, + _BinaryenTableSetType, _BinaryenAddActiveElementSegment, _BinaryenAddPassiveElementSegment, @@ -797,8 +807,10 @@ export const { _BinaryenGetMemorySegmentByteOffset, _BinaryenGetMemorySegmentByteLength, _BinaryenCopyMemorySegmentData, + _BinaryenAddDataSegment, _BinaryenSetStart, + _BinaryenGetStart, _BinaryenModuleParse, _BinaryenModulePrint, @@ -806,12 +818,12 @@ export const { _BinaryenModuleValidate, _BinaryenModuleOptimize, _BinaryenModuleRunPasses, - _BinaryenModuleAutoDrop, _BinaryenSizeofAllocateAndWriteResult, _BinaryenModuleAllocateAndWrite, _BinaryenModuleAllocateAndWriteText, _BinaryenModuleAllocateAndWriteStackIR, _BinaryenModuleRead, + _BinaryenModuleReadWithFeatures, _BinaryenModuleInterpret, _BinaryenModuleAddDebugInfoFileName, _BinaryenModuleGetDebugInfoFileName, @@ -856,15 +868,26 @@ export const { _BinaryenSetShrinkLevel, _BinaryenGetDebugInfo, _BinaryenSetDebugInfo, + _BinaryenGetTrapsNeverHappen, + _BinaryenSetTrapsNeverHappen, + _BinaryenGetClosedWorld, + _BinaryenSetClosedWorld, _BinaryenGetLowMemoryUnused, _BinaryenSetLowMemoryUnused, _BinaryenGetZeroFilledMemory, _BinaryenSetZeroFilledMemory, _BinaryenGetFastMath, _BinaryenSetFastMath, + _BinaryenGetGenerateStackIR, + _BinaryenSetGenerateStackIR, + _BinaryenGetOptimizeStackIR, + _BinaryenSetOptimizeStackIR, _BinaryenGetPassArgument, _BinaryenSetPassArgument, _BinaryenClearPassArguments, + _BinaryenHasPassToSkip, + _BinaryenAddPassToSkip, + _BinaryenClearPassesToSkip, _BinaryenGetAlwaysInlineMaxSize, _BinaryenSetAlwaysInlineMaxSize, _BinaryenGetFlexibleInlineMaxSize, @@ -893,4 +916,32 @@ export const { } = binaryen; +// Shims for C-API functions whose Emscripten binding now uses BigInt for i64 +// parameters (built with -sWASM_BIGINT). In portable/JS mode AssemblyScript +// represents i64 as Long, so we convert between Long and BigInt here. + +function toBigInt(long) { + return (BigInt(long.high | 0) << 32n) | BigInt(long.low >>> 0); +} + +function toLong(bign) { + return Long.fromBits(Number(bign & 0xFFFFFFFFn) | 0, Number(bign >> 32n) | 0); +} + +export function _BinaryenLiteralInt64(lit, val) { + return binaryen._BinaryenLiteralInt64(lit, toBigInt(val)); +} + +export function _BinaryenLiteralFloat64Bits(lit, val) { + return binaryen._BinaryenLiteralFloat64Bits(lit, toBigInt(val)); +} + +export function _BinaryenConstGetValueI64(expr) { + return toLong(binaryen._BinaryenConstGetValueI64(expr)); +} + +export function _BinaryenConstSetValueI64(expr, val) { + binaryen._BinaryenConstSetValueI64(expr, toBigInt(val)); +} + export default binaryen; diff --git a/src/glue/js/float.d.ts b/src/glue/js/float.d.ts index 8694f03b52..b116ad846c 100644 --- a/src/glue/js/float.d.ts +++ b/src/glue/js/float.d.ts @@ -7,3 +7,4 @@ declare function f32_as_i32(value: f32): i32; declare function i32_as_f32(value: i32): f32; declare function f64_as_i64(value: f64): i64; declare function i64_as_f64(value: i64): f64; +declare function f64_pow(value: f64, exponent: f64): f64; diff --git a/src/glue/js/float.js b/src/glue/js/float.js index 090af6cf96..6b68fdfef1 100644 --- a/src/glue/js/float.js +++ b/src/glue/js/float.js @@ -3,6 +3,8 @@ * @license Apache-2.0 */ +import { f64_pow } from "as-float"; + /* eslint-disable no-undef */ const F64 = new Float64Array(1); @@ -29,3 +31,5 @@ globalThis.i64_as_f64 = function i64_as_f64(value) { I32[1] = i64_high(value); return F64[0]; }; + +globalThis.f64_pow = f64_pow; diff --git a/src/index-wasm.ts b/src/index-wasm.ts index ec51de73da..b448aa0ae4 100644 --- a/src/index-wasm.ts +++ b/src/index-wasm.ts @@ -201,7 +201,9 @@ export const FEATURE_RELAXED_SIMD = Feature.RelaxedSimd; /** Extended const expressions. */ export const FEATURE_EXTENDED_CONST = Feature.ExtendedConst; /** String references. */ -export const FEATURE_STRINGREF = Feature.Stringref; +export const FEATURE_STRINGREF = Feature.Strings; +/** Shared-everything threads. */ +export const FEATURE_SHARED_EVERYTHING = Feature.SharedEverything; /** All features. */ export const FEATURES_ALL = Feature.All; /** Default features. */ diff --git a/src/module.ts b/src/module.ts index 55b2af6014..def4e780bf 100644 --- a/src/module.ts +++ b/src/module.ts @@ -78,9 +78,6 @@ export namespace TypeRef { export const Arrayref = binaryen._BinaryenTypeArrayref(); export const I31ref = binaryen._BinaryenTypeI31ref(); export const Stringref = binaryen._BinaryenTypeStringref(); - export const StringviewWTF8 = binaryen._BinaryenTypeStringviewWTF8(); - export const StringviewWTF16 = binaryen._BinaryenTypeStringviewWTF16(); - export const StringviewIter = binaryen._BinaryenTypeStringviewIter(); export const Noneref = binaryen._BinaryenTypeNullref(); export const Nofuncref = binaryen._BinaryenTypeNullFuncref(); export const Noexternref = binaryen._BinaryenTypeNullExternref(); @@ -102,20 +99,18 @@ export namespace HeapTypeRef { // // where (...) represents the concrete subtypes - export const Extern: HeapTypeRef = 0 /* _BinaryenHeapTypeExt */; - export const Func: HeapTypeRef = 1 /* _BinaryenHeapTypeFunc */; - export const Any: HeapTypeRef = 2 /* _BinaryenHeapTypeAny */; - export const Eq: HeapTypeRef = 3 /* _BinaryenHeapTypeEq */; - export const I31: HeapTypeRef = 4 /* _BinaryenHeapTypeI31 */; - export const Struct: HeapTypeRef = 5 /* _BinaryenHeapTypeStruct */; - export const Array: HeapTypeRef = 6 /* _BinaryenHeapTypeArray */; - export const String: HeapTypeRef = 7 /* _BinaryenHeapTypeString */; - export const StringviewWTF8: HeapTypeRef = 8 /* _BinaryenHeapTypeStringviewWTF8 */; - export const StringviewWTF16: HeapTypeRef = 9 /* _BinaryenHeapTypeStringviewWTF16 */; - export const StringviewIter: HeapTypeRef = 10 /* _BinaryenHeapTypeStringviewIter */; - export const None: HeapTypeRef = 11 /* _BinaryenHeapTypeNone */; - export const Noextern: HeapTypeRef = 12 /* _BinaryenHeapTypeNoext */; - export const Nofunc: HeapTypeRef = 13 /* _BinaryenHeapTypeNofunc */; + export const Extern: HeapTypeRef = 8 /* _BinaryenHeapTypeExt */; + export const Func: HeapTypeRef = 16 /* _BinaryenHeapTypeFunc */; + export const Any: HeapTypeRef = 32 /* _BinaryenHeapTypeAny */; + export const Eq: HeapTypeRef = 40 /* _BinaryenHeapTypeEq */; + export const I31: HeapTypeRef = 48 /* _BinaryenHeapTypeI31 */; + export const Struct: HeapTypeRef = 56 /* _BinaryenHeapTypeStruct */; + export const Array: HeapTypeRef = 64 /* _BinaryenHeapTypeArray */; + export const Exn: HeapTypeRef = 7 /* TODO: BinaryenHeapTypeExn */; + export const String: HeapTypeRef = 80 /* _BinaryenHeapTypeString */; + export const None: HeapTypeRef = 88 /* _BinaryenHeapTypeNone */; + export const Noextern: HeapTypeRef = 96 /* _BinaryenHeapTypeNoext */; + export const Nofunc: HeapTypeRef = 104 /* _BinaryenHeapTypeNofunc */; export function isBottom(ht: HeapTypeRef): bool { return binaryen._BinaryenHeapTypeIsBottom(ht); @@ -141,7 +136,7 @@ export namespace HeapTypeRef { b = t; } switch (a) { - case HeapTypeRef.Extern: + case HeapTypeRef.Extern: return b == HeapTypeRef.String ? a : -1; case HeapTypeRef.Func: return -1; case HeapTypeRef.Any: return a; case HeapTypeRef.Eq: { @@ -159,11 +154,7 @@ export namespace HeapTypeRef { ? HeapTypeRef.Eq : HeapTypeRef.Any; } - case HeapTypeRef.Array: - case HeapTypeRef.String: - case HeapTypeRef.StringviewWTF8: - case HeapTypeRef.StringviewWTF16: - case HeapTypeRef.StringviewIter: return HeapTypeRef.Any; + case HeapTypeRef.Array: return HeapTypeRef.Any; } assert(false); return -1; @@ -219,12 +210,22 @@ export const enum FeatureFlags { Memory64 = 2048 /* _BinaryenFeatureMemory64 */, RelaxedSIMD = 4096 /* _BinaryenFeatureRelaxedSIMD */, ExtendedConst = 8192 /* _BinaryenFeatureExtendedConst */, - Stringref = 16384 /* _BinaryenFeatureStrings */, + Strings = 16384 /* _BinaryenFeatureStrings */, MultiMemory = 32768 /* _BinaryenFeatureMultiMemory */, - All = 131071 /* _BinaryenFeatureAll */ + StackSwitching = 65536 /* _BinaryenFeatureStackSwitching */, + SharedEverything = 131072 /* _BinaryenFeatureSharedEverything */, + FP16 = 262144 /* _BinaryenFeatureFP16 */, + BulkMemoryOpt = 524288 /* _BinaryenFeatureBulkMemoryOpt */, + CallIndirectOverlong = 1048576 /* _BinaryenFeatureCallIndirectOverlong */, + RelaxedAtomics = 4194304 /* _BinaryenFeatureRelaxedAtomics */, + CustomPageSizes = 8388608 /* _BinaryenFeatureCustomPageSizes */, + Multibyte = 16777216 /* _BinaryenFeatureMultibyte */, + WideArithmetic = 33554432 /* _BinaryenFeatureWideArithmetic */, + CompactImports = 67108864 /* _BinaryenFeatureCompactImports */, + All = 134217727 /* _BinaryenFeatureAll */ } -/** Binaryen expression id constants. */ +/** Binaryen expression id constants. See wasm-delegations.def in Binaryen. */ export const enum ExpressionId { Invalid = 0 /* _BinaryenInvalidId */, Block = 1 /* _BinaryenBlockId */, @@ -255,64 +256,85 @@ export const enum ExpressionId { AtomicWait = 26 /* _BinaryenAtomicWaitId */, AtomicNotify = 27 /* _BinaryenAtomicNotifyId */, AtomicFence = 28 /* _BinaryenAtomicFenceId */, - SIMDExtract = 29 /* _BinaryenSIMDExtractId */, - SIMDReplace = 30 /* _BinaryenSIMDReplaceId */, - SIMDShuffle = 31 /* _BinaryenSIMDShuffleId */, - SIMDTernary = 32 /* _BinaryenSIMDTernaryId */, - SIMDShift = 33 /* _BinaryenSIMDShiftId */, - SIMDLoad = 34 /* _BinaryenSIMDLoadId */, - SIMDLoadStoreLane = 35 /* _BinaryenSIMDLoadStoreLaneId */, - MemoryInit = 36 /* _BinaryenMemoryInitId */, - DataDrop = 37 /* _BinaryenDataDropId */, - MemoryCopy = 38 /* _BinaryenMemoryCopyId */, - MemoryFill = 39 /* _BinaryenMemoryFillId */, - Pop = 40 /* _BinaryenPopId */, - RefNull = 41 /* _BinaryenRefNullId */, - RefIsNull = 42 /* _BinaryenRefIsNullId */, - RefFunc = 43 /* _BinaryenRefFuncId */, - RefEq = 44 /* _BinaryenRefEqId */, - TableGet = 45 /* _BinaryenTableGetId */, - TableSet = 46 /* _BinaryenTableSetId */, - TableSize = 47 /* _BinaryenTableSizeId */, - TableGrow = 48 /* _BinaryenTableGrowId */, - Try = 50 /* _BinaryenTryId */, - Throw = 51 /* _BinaryenThrowId */, - Rethrow = 52 /* _BinaryenRethrowId */, - TupleMake = 53 /* _BinaryenTupleMakeId */, - TupleExtract = 54 /* _BinaryenTupleExtractId */, - RefI31 = 55 /* _BinaryenRefI31Id */, - I31Get = 56 /* _BinaryenI31GetId */, - CallRef = 57 /* _BinaryenCallRefId */, - RefTest = 58 /* _BinaryenRefTestId */, - RefCast = 59 /* _BinaryenRefCastId */, - BrOn = 60 /* _BinaryenBrOnId */, - StructNew = 61 /* _BinaryenStructNewId */, - StructGet = 62 /* _BinaryenStructGetId */, - StructSet = 63 /* _BinaryenStructSetId */, - ArrayNew = 64 /* _BinaryenArrayNewId */, - ArrayNewSeg = 64 /* TODO_BinaryenArraySegId */, - ArrayNewFixed = 67 /* _BinaryenArrayNewFixedId */, - ArrayGet = 68 /* _BinaryenArrayGetId */, - ArraySet = 69 /* _BinaryenArraySetId */, - ArrayLen = 70 /* _BinaryenArrayLenId */, - ArrayCopy = 71 /* _BinaryenArrayCopyId */, - ArrayFill = 72 /* _BinaryenArrayFillId */, - ArrayInitData = 73 /* _BinaryenArrayInitDataId */, - ArrayInitElem = 74 /* _BinaryenArrayInitElemId */, - RefAs = 75 /* _BinaryenRefAsId */, - StringNew = 76 /* _BinaryenStringNewId */, - StringConst = 77 /* _BinaryenStringConstId */, - StringMeasure = 78 /* _BinaryenStringMeasureId */, - StringEncode = 79 /* _BinaryenStringEncodeId */, - StringConcat = 80 /* _BinaryenStringConcatId */, - StringEq = 81 /* _BinaryenStringEqId */, - StringAs = 82 /* _BinaryenStringAsId */, - StringWTF8Advance = 83 /* _BinaryenStringWTF8AdvanceId */, - StringWTF16Get = 84 /* _BinaryenStringWTF16GetId */, - StringIterNext = 85 /* _BinaryenStringIterNextId */, - StringIterMove = 86 /* _BinaryenStringIterMoveId */, - StringSliceWTF = 87 /* _BinaryenStringSliceWTFId */, - StringSliceIter = 88 /* _BinaryenStringSliceIterId */ + Pause = 29 /* _BinaryenPauseId */, + SIMDExtract = 30 /* _BinaryenSIMDExtractId */, + SIMDReplace = 31 /* _BinaryenSIMDReplaceId */, + SIMDShuffle = 32 /* _BinaryenSIMDShuffleId */, + SIMDTernary = 33 /* _BinaryenSIMDTernaryId */, + SIMDShift = 34 /* _BinaryenSIMDShiftId */, + SIMDLoad = 35 /* _BinaryenSIMDLoadId */, + SIMDLoadStoreLane = 36 /* _BinaryenSIMDLoadStoreLaneId */, + MemoryInit = 37 /* _BinaryenMemoryInitId */, + DataDrop = 38 /* _BinaryenDataDropId */, + MemoryCopy = 39 /* _BinaryenMemoryCopyId */, + MemoryFill = 40 /* _BinaryenMemoryFillId */, + Pop = 41 /* _BinaryenPopId */, + RefNull = 42 /* _BinaryenRefNullId */, + RefIsNull = 43 /* _BinaryenRefIsNullId */, + RefFunc = 44 /* _BinaryenRefFuncId */, + RefEq = 45 /* _BinaryenRefEqId */, + TableGet = 46 /* _BinaryenTableGetId */, + TableSet = 47 /* _BinaryenTableSetId */, + TableSize = 48 /* _BinaryenTableSizeId */, + TableGrow = 49 /* _BinaryenTableGrowId */, + TableFill = 50 /* _BinaryenTableFillId */, + TableCopy = 51 /* _BinaryenTableCopyId */, + TableInit = 52 /* _BinaryenTableInitId */, + ElemDrop = 53 /* _BinaryenElemDropId */, + Try = 54 /* _BinaryenTryId */, + TryTable = 55 /* _BinaryenTryTableId */, + Throw = 56 /* _BinaryenThrowId */, + Rethrow = 57 /* _BinaryenRethrowId */, + ThrowRef = 58 /* _BinaryenThrowRefId */, + TupleMake = 59 /* _BinaryenTupleMakeId */, + TupleExtract = 60 /* _BinaryenTupleExtractId */, + RefI31 = 61 /* _BinaryenRefI31Id */, + I31Get = 62 /* _BinaryenI31GetId */, + CallRef = 63 /* _BinaryenCallRefId */, + RefTest = 64 /* _BinaryenRefTestId */, + RefCast = 65 /* _BinaryenRefCastId */, + RefGetDesc = 66 /* _BinaryenRefGetDescId */, + BrOn = 67 /* _BinaryenBrOnId */, + StructNew = 68 /* _BinaryenStructNewId */, + StructGet = 69 /* _BinaryenStructGetId */, + StructSet = 70 /* _BinaryenStructSetId */, + StructRMW = 71 /* _BinaryenStructRMWId */, + StructCmpxchg = 72 /* _BinaryenStructCmpxchgId */, + ArrayNew = 73 /* _BinaryenArrayNewId */, + ArrayNewData = 74 /* _BinaryenArrayNewDataId */, + ArrayNewElem = 75 /* _BinaryenArrayNewElemId */, + ArrayNewFixed = 76 /* _BinaryenArrayNewFixedId */, + ArrayGet = 77 /* _BinaryenArrayGetId */, + ArraySet = 78 /* _BinaryenArraySetId */, + ArrayLoad = 79 /* _BinaryenArrayLoadId */, + ArrayStore = 80 /* _BinaryenArrayStoreId */, + ArrayLen = 81 /* _BinaryenArrayLenId */, + ArrayCopy = 82 /* _BinaryenArrayCopyId */, + ArrayFill = 83 /* _BinaryenArrayFillId */, + ArrayInitData = 84 /* _BinaryenArrayInitDataId */, + ArrayInitElem = 85 /* _BinaryenArrayInitElemId */, + ArrayRMW = 86 /* _BinaryenArrayRMWId */, + ArrayCmpxchg = 87 /* _BinaryenArrayCmpxchgId */, + RefAs = 88 /* _BinaryenRefAsId */, + StringNew = 89 /* _BinaryenStringNewId */, + StringConst = 90 /* _BinaryenStringConstId */, + StringMeasure = 91 /* _BinaryenStringMeasureId */, + StringEncode = 92 /* _BinaryenStringEncodeId */, + StringConcat = 93 /* _BinaryenStringConcatId */, + StringEq = 94 /* _BinaryenStringEqId */, + StringTest = 95 /* _BinaryenStringTestId */, + StringWTF16Get = 96 /* _BinaryenStringWTF16GetId */, + StringSliceWTF = 97 /* _BinaryenStringSliceWTFId */, + ContNew = 98 /* _BinaryenContNewId */, + ContBind = 99 /* _BinaryenContBindId */, + Suspend = 100 /* _BinaryenSuspendId */, + Resume = 101 /* _BinaryenResumeId */, + ResumeThrow = 102 /* _BinaryenResumeThrowId */, + StackSwitch = 103 /* _BinaryenStackSwitchId */, + StructWait = 104 /* _BinaryenStructWaitId */, + StructNotify = 105 /* _BinaryenStructNotifyId */, + WideIntAddSub = 106 /* _BinaryenWideIntAddSubId */, + WideIntMul = 107 /* _BinaryenWideIntMulId */ } /** Binaryen external kind constants. */ @@ -324,6 +346,16 @@ export const enum ExternalKind { Tag = 4 /* _BinaryenExternalTag */ } +/** Binaryen memory order constants for atomic operations. */ +export const enum MemoryOrder { + /** Non-atomic access. */ + Unordered = 0 /* _BinaryenMemoryOrderUnordered */, + /** Sequentially consistent atomic memory operation. */ + SeqCst = 1 /* _BinaryenMemoryOrderSeqCst */, + /** Acquire/Release atomic memory operation; acquire for loads, release for stores. */ + AcqRel = 2 /* _BinaryenMemoryOrderAcqRel */ +} + /** Binaryen unary operation constants. */ export const enum UnaryOp { /** i32.clz */ @@ -505,99 +537,104 @@ export const enum UnaryOp { AllTrueI64x2 = 83 /* _BinaryenAllTrueVecI64x2 */, /** i64x2.bitmask */ BitmaskI64x2 = 84 /* _BinaryenBitmaskVecI64x2 */, + // FIXME: f16x8 abs/neg/sqrt/ceil/floor/trunc/nearest (85..91) are in wasm.h but not yet exported via C API /** f32x4.abs */ - AbsF32x4 = 85 /* _BinaryenAbsVecF32x4 */, + AbsF32x4 = 92 /* _BinaryenAbsVecF32x4 */, /** f32x4.neg */ - NegF32x4 = 86 /* _BinaryenNegVecF32x4 */, + NegF32x4 = 93 /* _BinaryenNegVecF32x4 */, /** f32x4.sqrt */ - SqrtF32x4 = 87 /* _BinaryenSqrtVecF32x4 */, + SqrtF32x4 = 94 /* _BinaryenSqrtVecF32x4 */, /** f32x4.ceil */ - CeilF32x4 = 88 /* _BinaryenCeilVecF32x4 */, + CeilF32x4 = 95 /* _BinaryenCeilVecF32x4 */, /** f32x4.floor */ - FloorF32x4 = 89 /* _BinaryenFloorVecF32x4 */, + FloorF32x4 = 96 /* _BinaryenFloorVecF32x4 */, /** f32x4.trunc */ - TruncF32x4 = 90 /* BinaryenTruncVecF32x4 */, + TruncF32x4 = 97 /* _BinaryenTruncVecF32x4 */, /** f32x4.nearest */ - NearestF32x4 = 91 /* BinaryenNearestVecF32x4 */, + NearestF32x4 = 98 /* _BinaryenNearestVecF32x4 */, /** f64x2.abs */ - AbsF64x2 = 92 /* _BinaryenAbsVecF64x2 */, + AbsF64x2 = 99 /* _BinaryenAbsVecF64x2 */, /** f64x2.neg */ - NegF64x2 = 93 /* _BinaryenNegVecF64x2 */, + NegF64x2 = 100 /* _BinaryenNegVecF64x2 */, /** f64x2.sqrt */ - SqrtF64x2 = 94 /* _BinaryenSqrtVecF64x2 */, + SqrtF64x2 = 101 /* _BinaryenSqrtVecF64x2 */, /** f64x2.ceil */ - CeilF64x2 = 95 /* _BinaryenCeilVecF64x2 */, + CeilF64x2 = 102 /* _BinaryenCeilVecF64x2 */, /** f64x2.floor */ - FloorF64x2 = 96 /* _BinaryenFloorVecF64x2 */, + FloorF64x2 = 103 /* _BinaryenFloorVecF64x2 */, /** f64x2.trunc */ - TruncF64x2 = 97 /* _BinaryenTruncVecF64x2 */, + TruncF64x2 = 104 /* _BinaryenTruncVecF64x2 */, /** f64x2.nearest */ - NearestF64x2 = 98 /* _BinaryenNearestVecF64x2 */, + NearestF64x2 = 105 /* _BinaryenNearestVecF64x2 */, /** i16x8.extadd_pairwise_i8x16_s */ - ExtaddPairwiseI8x16ToI16x8 = 99 /* _BinaryenExtAddPairwiseSVecI8x16ToI16x8 */, + ExtaddPairwiseI8x16ToI16x8 = 106 /* _BinaryenExtAddPairwiseSVecI8x16ToI16x8 */, /** i16x8.extadd_pairwise.i8x16_u */ - ExtaddPairwiseU8x16ToU16x8 = 100 /* _BinaryenExtAddPairwiseUVecI8x16ToI16x8 */, + ExtaddPairwiseU8x16ToU16x8 = 107 /* _BinaryenExtAddPairwiseUVecI8x16ToI16x8 */, /** i32x4.extadd_pairwise.i16x8_s */ - ExtaddPairwiseI16x8ToI32x4 = 101 /* _BinaryenExtAddPairwiseSVecI16x8ToI32x4 */, + ExtaddPairwiseI16x8ToI32x4 = 108 /* _BinaryenExtAddPairwiseSVecI16x8ToI32x4 */, /** i32x4.extadd_pairwise.i64x8_u */ - ExtaddPairwiseU16x8ToU32x4 = 102 /* _BinaryenExtAddPairwiseUVecI16x8ToI32x4 */, + ExtaddPairwiseU16x8ToU32x4 = 109 /* _BinaryenExtAddPairwiseUVecI16x8ToI32x4 */, /** i32x4.trunc_sat_f32x4_s */ - TruncSatF32x4ToI32x4 = 103 /* _BinaryenTruncSatSVecF32x4ToVecI32x4 */, + TruncSatF32x4ToI32x4 = 110 /* _BinaryenTruncSatSVecF32x4ToVecI32x4 */, /** i32x4.trunc_sat_f32x4_u */ - TruncSatF32x4ToU32x4 = 104 /* _BinaryenTruncSatUVecF32x4ToVecI32x4 */, + TruncSatF32x4ToU32x4 = 111 /* _BinaryenTruncSatUVecF32x4ToVecI32x4 */, /** f32x4.convert_i32x4_s */ - ConvertI32x4ToF32x4 = 105 /* _BinaryenConvertSVecI32x4ToVecF32x4 */, + ConvertI32x4ToF32x4 = 112 /* _BinaryenConvertSVecI32x4ToVecF32x4 */, /** f32x4.convert_i32x4_u */ - ConvertU32x4ToF32x4 = 106 /* _BinaryenConvertUVecI32x4ToVecF32x4 */, + ConvertU32x4ToF32x4 = 113 /* _BinaryenConvertUVecI32x4ToVecF32x4 */, /** i16x8.extend_low_i8x16_s */ - ExtendLowI8x16ToI16x8 = 107 /* _BinaryenExtendLowSVecI8x16ToVecI16x8 */, + ExtendLowI8x16ToI16x8 = 114 /* _BinaryenExtendLowSVecI8x16ToVecI16x8 */, /** i16x8.extend_high_i8x16_s */ - ExtendHighI8x16ToI16x8 = 108 /* _BinaryenExtendHighSVecI8x16ToVecI16x8 */, + ExtendHighI8x16ToI16x8 = 115 /* _BinaryenExtendHighSVecI8x16ToVecI16x8 */, /** i16x8.extend_low_i8x16_u */ - ExtendLowU8x16ToU16x8 = 109 /* _BinaryenExtendLowUVecI8x16ToVecI16x8 */, + ExtendLowU8x16ToU16x8 = 116 /* _BinaryenExtendLowUVecI8x16ToVecI16x8 */, /** i16x8.extend_high_i8x16_u */ - ExtendHighU8x16ToU16x8 = 110 /* _BinaryenExtendHighUVecI8x16ToVecI16x8 */, + ExtendHighU8x16ToU16x8 = 117 /* _BinaryenExtendHighUVecI8x16ToVecI16x8 */, /** i32x4.extend_low_i16x8_s */ - ExtendLowI16x8ToI32x4 = 111 /* _BinaryenExtendLowSVecI16x8ToVecI32x4 */, + ExtendLowI16x8ToI32x4 = 118 /* _BinaryenExtendLowSVecI16x8ToVecI32x4 */, /** i32x4.extend_high_i16x8_s */ - ExtendHighI16x8ToI32x4 = 112 /* _BinaryenExtendHighSVecI16x8ToVecI32x4 */, + ExtendHighI16x8ToI32x4 = 119 /* _BinaryenExtendHighSVecI16x8ToVecI32x4 */, /** i32x4.extend_low_i16x8_u */ - ExtendLowU16x8ToU32x4 = 113 /* _BinaryenExtendLowUVecI16x8ToVecI32x4 */, + ExtendLowU16x8ToU32x4 = 120 /* _BinaryenExtendLowUVecI16x8ToVecI32x4 */, /** i32x4.extend_high_i16x8_u */ - ExtendHighU16x8ToU32x4 = 114 /* _BinaryenExtendHighUVecI16x8ToVecI32x4 */, + ExtendHighU16x8ToU32x4 = 121 /* _BinaryenExtendHighUVecI16x8ToVecI32x4 */, /** i64x2.extend_low_i32x4_s */ - ExtendLowI32x4ToI64x2 = 115 /* _BinaryenExtendLowSVecI32x4ToVecI64x2 */, + ExtendLowI32x4ToI64x2 = 122 /* _BinaryenExtendLowSVecI32x4ToVecI64x2 */, /** i64x2.extend_high_i32x4_s */ - ExtendHighI32x4ToI64x2 = 116 /* _BinaryenExtendHighSVecI32x4ToVecI64x2 */, + ExtendHighI32x4ToI64x2 = 123 /* _BinaryenExtendHighSVecI32x4ToVecI64x2 */, /** i64x2.extend_low_i32x4_u */ - ExtendLowU32x4ToU64x2 = 117 /* _BinaryenExtendLowUVecI32x4ToVecI64x2 */, + ExtendLowU32x4ToU64x2 = 124 /* _BinaryenExtendLowUVecI32x4ToVecI64x2 */, /** i64x2.extend_high_i32x4_u */ - ExtendHighU32x4ToU64x2 = 118 /* _BinaryenExtendHighUVecI32x4ToVecI64x2 */, + ExtendHighU32x4ToU64x2 = 125 /* _BinaryenExtendHighUVecI32x4ToVecI64x2 */, /** f32x4.convert_i32x4_s */ - ConvertLowI32x4ToF64x2 = 119 /* _BinaryenConvertLowSVecI32x4ToVecF64x2 */, + ConvertLowI32x4ToF64x2 = 126 /* _BinaryenConvertLowSVecI32x4ToVecF64x2 */, /** f32x4.convert_i32x4_u */ - ConvertLowU32x4ToF64x2 = 120 /* _BinaryenConvertLowUVecI32x4ToVecF64x2 */, + ConvertLowU32x4ToF64x2 = 127 /* _BinaryenConvertLowUVecI32x4ToVecF64x2 */, /** i32x4.trunc_sat_f64x2_s_zero */ - TruncSatF64x2ToI32x4Zero = 121 /* _BinaryenTruncSatZeroSVecF64x2ToVecI32x4 */, + TruncSatF64x2ToI32x4Zero = 128 /* _BinaryenTruncSatZeroSVecF64x2ToVecI32x4 */, /** i32x4.trunc_sat_f64x2_u_zero */ - TruncSatF64x2ToU32x4Zero = 122 /* _BinaryenTruncSatZeroUVecF64x2ToVecI32x4 */, + TruncSatF64x2ToU32x4Zero = 129 /* _BinaryenTruncSatZeroUVecF64x2ToVecI32x4 */, /** f32x4.demote_f64x2_zero */ - DemoteZeroF64x2ToF32x4 = 123 /* _BinaryenDemoteZeroVecF64x2ToVecF32x4 */, + DemoteZeroF64x2ToF32x4 = 130 /* _BinaryenDemoteZeroVecF64x2ToVecF32x4 */, /** f64x2.promote_low_f32x4 */ - PromoteLowF32x4ToF64x2 = 124 /* _BinaryenPromoteLowVecF32x4ToVecF64x2 */, - - // see: https://github.com/WebAssembly/relaxed-simd - + PromoteLowF32x4ToF64x2 = 131 /* _BinaryenPromoteLowVecF32x4ToVecF64x2 */, /** i32x4.relaxed_trunc_f32x4_s */ - RelaxedTruncF32x4ToI32x4 = 125 /* TODO_BinaryenRelaxedTruncSVecF32x4ToVecI32x4 */, + RelaxedTruncF32x4ToI32x4 = 132 /* _BinaryenRelaxedTruncSVecF32x4ToVecI32x4 */, /** i32x4.relaxed_trunc_f32x4_u */ - RelaxedTruncF32x4ToU32x4 = 126 /* TODO_BinaryenRelaxedTruncUVecF32x4ToVecI32x4 */, + RelaxedTruncF32x4ToU32x4 = 133 /* _BinaryenRelaxedTruncUVecF32x4ToVecI32x4 */, /** i32x4.relaxed_trunc_f64x2_s_zero */ - RelaxedTruncF64x2ToI32x4Zero = 127 /* TODO_BinaryenRelaxedTruncZeroSVecF64x2ToVecI32x4 */, + RelaxedTruncF64x2ToI32x4Zero = 134 /* _BinaryenRelaxedTruncZeroSVecF64x2ToVecI32x4 */, /** i32x4.relaxed_trunc_f64x2_u_zero */ - RelaxedTruncF64x2ToU32x4Zero = 128 /* TODO_BinaryenRelaxedTruncZeroUVecF64x2ToVecI32x4 */, + RelaxedTruncF64x2ToU32x4Zero = 135 /* _BinaryenRelaxedTruncZeroUVecF64x2ToVecI32x4 */, + // FIXME: f16x8 splat/trunc_sat/convert (136..140) are in wasm.h but not yet exported via C API + /** f32x4.promote_low_f16x8 */ + PromoteLowF16x8ToF32x4 = 141 /* _BinaryenPromoteLowVecF16x8ToVecF32x4 */, + /** f16x8.demote_f32x4_zero */ + // DemoteZeroF32x4ToF16x8 = 142 /* TODO_BinaryenDemoteZeroVecF32x4ToVecF16x8 */, + /** f16x8.demote_f64x2_zero */ + // DemoteZeroF64x2ToF16x8 = 143 /* TODO_BinaryeDemoteZeroVecF64x2ToVecF16x8 */, - _last = RelaxedTruncF64x2ToU32x4Zero, + _last = PromoteLowF16x8ToF32x4, // Target dependent @@ -840,191 +877,190 @@ export const enum BinaryOp { LeI64x2 = 110 /* _BinaryenLeSVecI64x2 */, /** i64x2.ge_s */ GeI64x2 = 111 /* _BinaryenGeSVecI64x2 */, + // FIXME: f16x8 compare ops (eq/ne/lt/gt/le/ge = 112..117) are in wasm.h but not yet exported via C API /** f32x4.eq */ - EqF32x4 = 112 /* _BinaryenEqVecF32x4 */, + EqF32x4 = 118 /* _BinaryenEqVecF32x4 */, /** f32x4.ne */ - NeF32x4 = 113 /* _BinaryenNeVecF32x4 */, + NeF32x4 = 119 /* _BinaryenNeVecF32x4 */, /** f32x4.lt */ - LtF32x4 = 114 /* _BinaryenLtVecF32x4 */, + LtF32x4 = 120 /* _BinaryenLtVecF32x4 */, /** f32x4.gt */ - GtF32x4 = 115 /* _BinaryenGtVecF32x4 */, + GtF32x4 = 121 /* _BinaryenGtVecF32x4 */, /** f32x4.le */ - LeF32x4 = 116 /* _BinaryenLeVecF32x4 */, + LeF32x4 = 122 /* _BinaryenLeVecF32x4 */, /** f32x4.ge */ - GeF32x4 = 117 /* _BinaryenGeVecF32x4 */, + GeF32x4 = 123 /* _BinaryenGeVecF32x4 */, /** f64x2.eq */ - EqF64x2 = 118 /* _BinaryenEqVecF64x2 */, + EqF64x2 = 124 /* _BinaryenEqVecF64x2 */, /** f64x2.ne */ - NeF64x2 = 119 /* _BinaryenNeVecF64x2 */, + NeF64x2 = 125 /* _BinaryenNeVecF64x2 */, /** f64x2.lt */ - LtF64x2 = 120 /* _BinaryenLtVecF64x2 */, + LtF64x2 = 126 /* _BinaryenLtVecF64x2 */, /** f64x2.gt */ - GtF64x2 = 121 /* _BinaryenGtVecF64x2 */, + GtF64x2 = 127 /* _BinaryenGtVecF64x2 */, /** f64x2.le */ - LeF64x2 = 122 /* _BinaryenLeVecF64x2 */, + LeF64x2 = 128 /* _BinaryenLeVecF64x2 */, /** f64x2.ge */ - GeF64x2 = 123 /* _BinaryenGeVecF64x2 */, + GeF64x2 = 129 /* _BinaryenGeVecF64x2 */, /** v128.and */ - AndV128 = 124 /* _BinaryenAndVec128 */, + AndV128 = 130 /* _BinaryenAndVec128 */, /** v128.or */ - OrV128 = 125 /* _BinaryenOrVec128 */, + OrV128 = 131 /* _BinaryenOrVec128 */, /** v128.xor */ - XorV128 = 126 /* _BinaryenXorVec128 */, + XorV128 = 132 /* _BinaryenXorVec128 */, /** v128.andnot */ - AndnotV128 = 127 /* _BinaryenAndNotVec128 */, + AndnotV128 = 133 /* _BinaryenAndNotVec128 */, /** i8x16.add */ - AddI8x16 = 128 /* _BinaryenAddVecI8x16 */, + AddI8x16 = 134 /* _BinaryenAddVecI8x16 */, /** i8x16.add_sat_s */ - AddSatI8x16 = 129 /* _BinaryenAddSatSVecI8x16 */, + AddSatI8x16 = 135 /* _BinaryenAddSatSVecI8x16 */, /** i8x16.add_sat_u */ - AddSatU8x16 = 130 /* _BinaryenAddSatUVecI8x16 */, + AddSatU8x16 = 136 /* _BinaryenAddSatUVecI8x16 */, /** i8x16.sub */ - SubI8x16 = 131 /* _BinaryenSubVecI8x16 */, + SubI8x16 = 137 /* _BinaryenSubVecI8x16 */, /** i8x16.sub_sat_s */ - SubSatI8x16 = 132 /* _BinaryenSubSatSVecI8x16 */, + SubSatI8x16 = 138 /* _BinaryenSubSatSVecI8x16 */, /** i8x16.sub_sat_u */ - SubSatU8x16 = 133 /* _BinaryenSubSatUVecI8x16 */, + SubSatU8x16 = 139 /* _BinaryenSubSatUVecI8x16 */, /** i8x16.min_s */ - MinI8x16 = 134 /* _BinaryenMinSVecI8x16 */, + MinI8x16 = 140 /* _BinaryenMinSVecI8x16 */, /** i8x16.min_u */ - MinU8x16 = 135 /* _BinaryenMinUVecI8x16 */, + MinU8x16 = 141 /* _BinaryenMinUVecI8x16 */, /** i8x16.max_s */ - MaxI8x16 = 136 /* _BinaryenMaxSVecI8x16 */, + MaxI8x16 = 142 /* _BinaryenMaxSVecI8x16 */, /** i8x16.max_u */ - MaxU8x16 = 137 /* _BinaryenMaxUVecI8x16 */, + MaxU8x16 = 143 /* _BinaryenMaxUVecI8x16 */, /** i8x16.avgr_u */ - AvgrU8x16 = 138 /* _BinaryenAvgrUVecI8x16 */, + AvgrU8x16 = 144 /* _BinaryenAvgrUVecI8x16 */, /** i16x8.add */ - AddI16x8 = 139 /* _BinaryenAddVecI16x8 */, + AddI16x8 = 145 /* _BinaryenAddVecI16x8 */, /** i16x8.add_sat_s */ - AddSatI16x8 = 140 /* _BinaryenAddSatSVecI16x8 */, + AddSatI16x8 = 146 /* _BinaryenAddSatSVecI16x8 */, /** i16x8.add_sat_u */ - AddSatU16x8 = 141 /* _BinaryenAddSatUVecI16x8 */, + AddSatU16x8 = 147 /* _BinaryenAddSatUVecI16x8 */, /** i16x8.sub */ - SubI16x8 = 142 /* _BinaryenSubVecI16x8 */, + SubI16x8 = 148 /* _BinaryenSubVecI16x8 */, /** i16x8.sub_sat_s */ - SubSatI16x8 = 143 /* _BinaryenSubSatSVecI16x8 */, + SubSatI16x8 = 149 /* _BinaryenSubSatSVecI16x8 */, /** i16x8.sub_sat_u */ - SubSatU16x8 = 144 /* _BinaryenSubSatUVecI16x8 */, + SubSatU16x8 = 150 /* _BinaryenSubSatUVecI16x8 */, /** i16x8.mul */ - MulI16x8 = 145 /* _BinaryenMulVecI16x8 */, + MulI16x8 = 151 /* _BinaryenMulVecI16x8 */, /** i16x8.min_s */ - MinI16x8 = 146 /* _BinaryenMinSVecI16x8 */, + MinI16x8 = 152 /* _BinaryenMinSVecI16x8 */, /** i16x8.min_u */ - MinU16x8 = 147 /* _BinaryenMinUVecI16x8 */, + MinU16x8 = 153 /* _BinaryenMinUVecI16x8 */, /** i16x8.max_s */ - MaxI16x8 = 148 /* _BinaryenMaxSVecI16x8 */, + MaxI16x8 = 154 /* _BinaryenMaxSVecI16x8 */, /** i16x8.max_u */ - MaxU16x8 = 149 /* _BinaryenMaxUVecI16x8 */, + MaxU16x8 = 155 /* _BinaryenMaxUVecI16x8 */, /** i16x8.avgr_u */ - AvgrU16x8 = 150 /* _BinaryenAvgrUVecI16x8 */, + AvgrU16x8 = 156 /* _BinaryenAvgrUVecI16x8 */, /** i16x8.q15mulr_sat_s */ - Q15mulrSatI16x8 = 151 /* _BinaryenQ15MulrSatSVecI16x8 */, + Q15mulrSatI16x8 = 157 /* _BinaryenQ15MulrSatSVecI16x8 */, /** i16x8.extmul_low_i8x16_s */ - ExtmulLowI16x8 = 152 /* _BinaryenExtMulLowSVecI16x8 */, + ExtmulLowI16x8 = 158 /* _BinaryenExtMulLowSVecI16x8 */, /** i16x8.extmul_high_i8x16_s */ - ExtmulHighI16x8 = 153 /* _BinaryenExtMulHighSVecI16x8 */, + ExtmulHighI16x8 = 159 /* _BinaryenExtMulHighSVecI16x8 */, /** i16x8.extmul_low_i8x16_u */ - ExtmulLowU16x8 = 154 /* _BinaryenExtMulLowUVecI16x8 */, + ExtmulLowU16x8 = 160 /* _BinaryenExtMulLowUVecI16x8 */, /** i16x8.extmul_high_i8x16_u */ - ExtmulHighU16x8 = 155 /* _BinaryenExtMulHighUVecI16x8 */, + ExtmulHighU16x8 = 161 /* _BinaryenExtMulHighUVecI16x8 */, /** i32x4.add */ - AddI32x4 = 156 /* _BinaryenAddVecI32x4 */, + AddI32x4 = 162 /* _BinaryenAddVecI32x4 */, /** i32x4.sub */ - SubI32x4 = 157 /* _BinaryenSubVecI32x4 */, + SubI32x4 = 163 /* _BinaryenSubVecI32x4 */, /** i32x4.mul */ - MulI32x4 = 158 /* _BinaryenMulVecI32x4 */, + MulI32x4 = 164 /* _BinaryenMulVecI32x4 */, /** i32x4.min_s */ - MinI32x4 = 159 /* _BinaryenMinSVecI32x4 */, + MinI32x4 = 165 /* _BinaryenMinSVecI32x4 */, /** i32x4.min_u */ - MinU32x4 = 160 /* _BinaryenMinUVecI32x4 */, + MinU32x4 = 166 /* _BinaryenMinUVecI32x4 */, /** i32x4.max_s */ - MaxI32x4 = 161 /* _BinaryenMaxSVecI32x4 */, + MaxI32x4 = 167 /* _BinaryenMaxSVecI32x4 */, /** i32x4.max_u */ - MaxU32x4 = 162 /* _BinaryenMaxUVecI32x4 */, + MaxU32x4 = 168 /* _BinaryenMaxUVecI32x4 */, /** i32x4.dot_i16x8_s */ - DotI16x8 = 163 /* _BinaryenDotSVecI16x8ToVecI32x4 */, + DotI16x8 = 169 /* _BinaryenDotSVecI16x8ToVecI32x4 */, /** i32x4.extmul_low_i16x8_s */ - ExtmulLowI32x4 = 164 /* _BinaryenExtMulLowSVecI32x4 */, + ExtmulLowI32x4 = 170 /* _BinaryenExtMulLowSVecI32x4 */, /** i32x4.extmul_high_i16x8_s */ - ExtmulHighI32x4 = 165 /* _BinaryenExtMulHighSVecI32x4 */, + ExtmulHighI32x4 = 171 /* _BinaryenExtMulHighSVecI32x4 */, /** i32x4.extmul_low_i16x8_u */ - ExtmulLowU32x4 = 166 /* _BinaryenExtMulLowUVecI32x4 */, + ExtmulLowU32x4 = 172 /* _BinaryenExtMulLowUVecI32x4 */, /** i32x4.extmul_high_i16x8_u */ - ExtmulHighU32x4 = 167 /* _BinaryenExtMulHighUVecI32x4 */, + ExtmulHighU32x4 = 173 /* _BinaryenExtMulHighUVecI32x4 */, /** i64x2.add */ - AddI64x2 = 168 /* _BinaryenAddVecI64x2 */, + AddI64x2 = 174 /* _BinaryenAddVecI64x2 */, /** i64x2.sub */ - SubI64x2 = 169 /* _BinaryenSubVecI64x2 */, + SubI64x2 = 175 /* _BinaryenSubVecI64x2 */, /** i64x2.mul */ - MulI64x2 = 170 /* _BinaryenMulVecI64x2 */, + MulI64x2 = 176 /* _BinaryenMulVecI64x2 */, /** i64x2.extmul_low_i32x4_s */ - ExtmulLowI64x2 = 171 /* _BinaryenExtMulLowSVecI64x2 */, + ExtmulLowI64x2 = 177 /* _BinaryenExtMulLowSVecI64x2 */, /** i64x2.extmul_high_i32x4_s */ - ExtmulHighI64x2 = 172 /* _BinaryenExtMulHighSVecI64x2 */, + ExtmulHighI64x2 = 178 /* _BinaryenExtMulHighSVecI64x2 */, /** i64x2.extmul_low_i32x4_u */ - ExtmulLowU64x2 = 173 /* _BinaryenExtMulLowUVecI64x2 */, + ExtmulLowU64x2 = 179 /* _BinaryenExtMulLowUVecI64x2 */, /** i64x2.extmul_high_i32x4_u */ - ExtmulHighU64x2 = 174 /* _BinaryenExtMulHighUVecI64x2 */, + ExtmulHighU64x2 = 180 /* _BinaryenExtMulHighUVecI64x2 */, + // FIXME: f16x8 arithmetic ops (add/sub/mul/div/min/max/pmin/pmax = 181..188) are in wasm.h but not yet exported via C API /** f32x4.add */ - AddF32x4 = 175 /* _BinaryenAddVecF32x4 */, + AddF32x4 = 189 /* _BinaryenAddVecF32x4 */, /** f32x4.sub */ - SubF32x4 = 176 /* _BinaryenSubVecF32x4 */, + SubF32x4 = 190 /* _BinaryenSubVecF32x4 */, /** f32x4.mul */ - MulF32x4 = 177 /* _BinaryenMulVecF32x4 */, + MulF32x4 = 191 /* _BinaryenMulVecF32x4 */, /** f32x4.div */ - DivF32x4 = 178 /* _BinaryenDivVecF32x4 */, + DivF32x4 = 192 /* _BinaryenDivVecF32x4 */, /** f32x4.min */ - MinF32x4 = 179 /* _BinaryenMinVecF32x4 */, + MinF32x4 = 193 /* _BinaryenMinVecF32x4 */, /** f32x4.max */ - MaxF32x4 = 180 /* _BinaryenMaxVecF32x4 */, + MaxF32x4 = 194 /* _BinaryenMaxVecF32x4 */, /** f32x4.pmin */ - PminF32x4 = 181 /* _BinaryenPMinVecF32x4 */, + PminF32x4 = 195 /* _BinaryenPMinVecF32x4 */, /** f32x4.pmax */ - PmaxF32x4 = 182 /* _BinaryenPMaxVecF32x4 */, + PmaxF32x4 = 196 /* _BinaryenPMaxVecF32x4 */, /** f64x2.add */ - AddF64x2 = 183 /* _BinaryenAddVecF64x2 */, + AddF64x2 = 197 /* _BinaryenAddVecF64x2 */, /** f64x2.sub */ - SubF64x2 = 184 /* _BinaryenSubVecF64x2 */, + SubF64x2 = 198 /* _BinaryenSubVecF64x2 */, /** f64x2.mul */ - MulF64x2 = 185 /* _BinaryenMulVecF64x2 */, + MulF64x2 = 199 /* _BinaryenMulVecF64x2 */, /** f64x2.div */ - DivF64x2 = 186 /* _BinaryenDivVecF64x2 */, + DivF64x2 = 200 /* _BinaryenDivVecF64x2 */, /** f64x2.min */ - MinF64x2 = 187 /* _BinaryenMinVecF64x2 */, + MinF64x2 = 201 /* _BinaryenMinVecF64x2 */, /** f64x2.max */ - MaxF64x2 = 188 /* _BinaryenMaxVecF64x2 */, + MaxF64x2 = 202 /* _BinaryenMaxVecF64x2 */, /** f64x2.pmin */ - PminF64x2 = 189 /* _BinaryenPMinVecF64x2 */, + PminF64x2 = 203 /* _BinaryenPMinVecF64x2 */, /** f64x2.pmax */ - PmaxF64x2 = 190 /* _BinaryenPMaxVecF64x2 */, + PmaxF64x2 = 204 /* _BinaryenPMaxVecF64x2 */, /** i8x16.narrow_i16x8_s */ - NarrowI16x8ToI8x16 = 191 /* _BinaryenNarrowSVecI16x8ToVecI8x16 */, + NarrowI16x8ToI8x16 = 205 /* _BinaryenNarrowSVecI16x8ToVecI8x16 */, /** i8x16.narrow_i16x8_u */ - NarrowU16x8ToU8x16 = 192 /* _BinaryenNarrowUVecI16x8ToVecI8x16 */, + NarrowU16x8ToU8x16 = 206 /* _BinaryenNarrowUVecI16x8ToVecI8x16 */, /** i16x8.narrow_i32x4_s */ - NarrowI32x4ToI16x8 = 193 /* _BinaryenNarrowSVecI32x4ToVecI16x8 */, + NarrowI32x4ToI16x8 = 207 /* _BinaryenNarrowSVecI32x4ToVecI16x8 */, /** i16x8.narrow_i32x4_u */ - NarrowU32x4ToU16x8 = 194 /* _BinaryenNarrowUVecI32x4ToVecI16x8 */, + NarrowU32x4ToU16x8 = 208 /* _BinaryenNarrowUVecI32x4ToVecI16x8 */, /** i8x16.swizzle */ - SwizzleI8x16 = 195 /* _BinaryenSwizzleVecI8x16 */, - - // see: https://github.com/WebAssembly/relaxed-simd - + SwizzleI8x16 = 209 /* _BinaryenSwizzleVecI8x16 */, /** i8x16.relaxed_swizzle */ - RelaxedSwizzleI8x16 = 196 /* TODO_BinaryenRelaxedSwizzleVecI8x16 */, + RelaxedSwizzleI8x16 = 210 /* _BinaryenRelaxedSwizzleVecI8x16 */, /** f32x4.relaxed_min */ - RelaxedMinF32x4 = 197 /* TODO_BinaryenRelaxedMinVecF32x4 */, + RelaxedMinF32x4 = 211 /* _BinaryenRelaxedMinVecF32x4 */, /** f32x4.relaxed_max */ - RelaxedMaxF32x4 = 198 /* TODO_BinaryenRelaxedMaxVecF32x4 */, + RelaxedMaxF32x4 = 212 /* _BinaryenRelaxedMaxVecF32x4 */, /** f64x2.relaxed_min */ - RelaxedMinF64x2 = 199 /* TODO_BinaryenRelaxedMinVecF64x2 */, + RelaxedMinF64x2 = 213 /* _BinaryenRelaxedMinVecF64x2 */, /** f64x2.relaxed_max */ - RelaxedMaxF64x2 = 200 /* TODO_BinaryenRelaxedMaxVecF64x2 */, + RelaxedMaxF64x2 = 214 /* _BinaryenRelaxedMaxVecF64x2 */, /** i16x8.relaxed_q15mulr_s */ - RelaxedQ15MulrI16x8 = 201 /* TODO_BinaryenRelaxedQ15MulrSVecI16x8 */, + RelaxedQ15MulrI16x8 = 215 /* _BinaryenRelaxedQ15MulrSVecI16x8 */, /** i16x8.relaxed_dot_i8x16_i7x16_s */ - RelaxedDotI8x16I7x16ToI16x8 = 202 /* TODO_BinaryenDotI8x16I7x16SToVecI16x8 */, + RelaxedDotI8x16I7x16ToI16x8 = 216 /* _BinaryenRelaxedDotI8x16I7x16SToVecI16x8 */, _last = RelaxedDotI8x16I7x16ToI16x8, @@ -1108,14 +1144,15 @@ export const enum SIMDExtractOp { ExtractLaneI16x8 = 2 /* _BinaryenExtractLaneSVecI16x8 */, /** i16x8.extract_lane_u */ ExtractLaneU16x8 = 3 /* _BinaryenExtractLaneUVecI16x8 */, - /** i32x4.extract_lane_s */ + /** i32x4.extract_lane */ ExtractLaneI32x4 = 4 /* _BinaryenExtractLaneVecI32x4 */, - /** i32x4.extract_lane_u */ + /** i64x2.extract_lane */ ExtractLaneI64x2 = 5 /* _BinaryenExtractLaneVecI64x2 */, - /** i64x2.extract_lane_s */ - ExtractLaneF32x4 = 6 /* _BinaryenExtractLaneVecF32x4 */, - /** i64x2.extract_lane_u */ - ExtractLaneF64x2 = 7 /* _BinaryenExtractLaneVecF64x2 */, + // FIXME: f16x8.extract_lane (= 6) is in wasm.h but not yet exported via C API + /** f32x4.extract_lane */ + ExtractLaneF32x4 = 7 /* _BinaryenExtractLaneVecF32x4 */, + /** f64x2.extract_lane */ + ExtractLaneF64x2 = 8 /* _BinaryenExtractLaneVecF64x2 */, } /** Binaryen SIMD replace operation constants. */ @@ -1128,10 +1165,11 @@ export const enum SIMDReplaceOp { ReplaceLaneI32x4 = 2 /* _BinaryenReplaceLaneVecI32x4 */, /** i64x2.replace_lane */ ReplaceLaneI64x2 = 3 /* _BinaryenReplaceLaneVecI64x2 */, + // FIXME: f16x8.replace_lane (= 4) is in wasm.h but not yet exported via C API /** f32x4.replace_lane */ - ReplaceLaneF32x4 = 4 /* _BinaryenReplaceLaneVecF32x4 */, + ReplaceLaneF32x4 = 5 /* _BinaryenReplaceLaneVecF32x4 */, /** f64x2.replace_lane */ - ReplaceLaneF64x2 = 5 /* _BinaryenReplaceLaneVecF64x2 */ + ReplaceLaneF64x2 = 6 /* _BinaryenReplaceLaneVecF64x2 */ } /** Binaryen SIMD shift operation constants. */ @@ -1214,37 +1252,51 @@ export const enum SIMDLoadStoreLaneOp { export const enum SIMDTernaryOp { /** v128.bitselect */ Bitselect = 0 /* _BinaryenBitselectVec128 */, - - // see: https://github.com/WebAssembly/relaxed-simd - /** f32x4.relaxed_madd */ - RelaxedMaddF32x4 = 1 /* TODO_BinaryenRelaxedFmaVecF32x4 */, + RelaxedMaddF32x4 = 1 /* _BinaryenRelaxedMaddVecF32x4 */, /** f32x4.relaxed_nmadd */ - RelaxedNmaddF32x4 = 2 /* TODO_BinaryenRelaxedFmsVecF32x4 */, + RelaxedNmaddF32x4 = 2 /* _BinaryenRelaxedNmaddVecF32x4 */, /** f64x2.relaxed_madd */ - RelaxedMaddF64x2 = 3 /* TODO_BinaryenRelaxedFmaVecF64x2 */, + RelaxedMaddF64x2 = 3 /* _BinaryenRelaxedMaddVecF64x2 */, /** f64x2.relaxed_nmadd */ - RelaxedNmaddF64x2 = 4 /* TODO_BinaryenRelaxedFmsVecF64x2 */, + RelaxedNmaddF64x2 = 4 /* _BinaryenRelaxedNmaddVecF64x2 */, /** i8x16.relaxed_laneselect */ - RelaxedLaneselectI8x16 = 5 /* TODO_BinaryenLaneselectI8x16 */, + RelaxedLaneselectI8x16 = 5 /* _BinaryenRelaxedLaneselectI8x16 */, /** i16x8.relaxed_laneselect */ - RelaxedLaneselectI16x8 = 6 /* TODO_BinaryenLaneselectI16x8 */, + RelaxedLaneselectI16x8 = 6 /* _BinaryenRelaxedLaneselectI16x8 */, /** i32x4.relaxed_laneselect */ - RelaxedLaneselectI32x4 = 7 /* TODO_BinaryenLaneselectI32x4 */, + RelaxedLaneselectI32x4 = 7 /* _BinaryenRelaxedLaneselectI32x4 */, /** i64x2.relaxed_laneselect */ - RelaxedLaneselectI64x2 = 8 /* TODO_BinaryenLaneselectI64x2 */, + RelaxedLaneselectI64x2 = 8 /* _BinaryenRelaxedLaneselectI64x2 */, /** i32x4.relaxed_dot_i8x16_i7x16_add_s */ - RelaxedDotI8x16I7x16AddToI32x4 = 9 /* TODO_BinaryenDotI8x16I7x16AddSToVecI32x4 */, + RelaxedDotI8x16I7x16AddToI32x4 = 9 /* _BinaryenRelaxedDotI8x16I7x16AddSToVecI32x4 */, + // FIXME: f16x8 madd/nmadd (= 10, 11) are in wasm.h but not yet exported via C API } /** Binaryen RefAs operation constants. */ export const enum RefAsOp { /** ref.as_non_null */ NonNull = 0 /* _BinaryenRefAsNonNull */, - /** extern.internalize */ - ExternInternalize = 1 /* _BinaryenRefAsExternInternalize */, - /** extern.externalize */ - ExternExternalize = 2 /* _BinaryenRefAsExternExternalize */ + /** any.convert_extern */ + AnyConvertExtern = 1 /* _BinaryenRefAsAnyConvertExtern */, + /** extern.convert_any */ + ExternConvertAny = 2 /* _BinaryenRefAsExternConvertAny */ +} + +/** Binaryen wide integer add/sub operation constants. */ +export const enum WideIntAddSubOp { + /** i64.add128 */ + Add = 0 /* _BinaryenAddInt128 */, + /** i64.sub128 */ + Sub = 1 /* _BinaryenSubInt128 */ +} + +/** Binaryen wide integer multiply operation constants. */ +export const enum WideIntMulOp { + /** i64.mul_wide_s */ + SignedI64 = 0 /* _BinaryenMulWideSInt64 */, + /** i64.mul_wide_u */ + UnsignedI64 = 1 /* _BinaryenMulWideUInt64 */ } /** Binaryen BrOn operation constants. */ @@ -1261,58 +1313,28 @@ export const enum BrOnOp { /** Binaryen StringNew operation constants. */ export const enum StringNewOp { - /** string.new_wtf8 utf8 */ - UTF8 = 0 /* _BinaryenStringNewUTF8 */, - /** string.new_wtf8 wtf8 */ - WTF8 = 1 /* _BinaryenStringNewWTF8 */, - /** string.new_wtf8 replace */ - LossyUTF8 = 2 /* _BinaryenStringNewLossyUTF8 */, - /** string.new_wtf16 */ - WTF16 = 3 /* _BinaryenStringNewWTF16 */, - /** string.new_wtf8_array utf8 */ - UTF8Array = 4 /* _BinaryenStringNewUTF8Array */, - /** string.new_wtf8_array wtf8 */ - WTF8Array = 5 /* _BinaryenStringNewWTF8Array */, /** string.new_wtf8_array replace */ - LossyUTF8Array = 6 /* _BinaryenStringNewLossyUTF8Array */, + LossyUTF8Array = 0 /* _BinaryenStringNewLossyUTF8Array */, /** string.new_wtf16_array */ - WTF16Array = 7 /* _BinaryenStringNewWTF16Array */, + WTF16Array = 1 /* _BinaryenStringNewWTF16Array */, /** string.from_code_point */ - FromCodePoint = 8 /* _BinaryenStringNewFromCodePoint */ + FromCodePoint = 2 /* _BinaryenStringNewFromCodePoint */ } /** Binaryen StringMeasure operation constants. */ export const enum StringMeasureOp { /** string.measure_wtf8 utf8 */ UTF8 = 0 /* _BinaryenStringMeasureUTF8 */, - /** string.measure_wtf8 wtf8 */ - WTF8 = 1 /* _BinaryenStringMeasureWTF8 */, /** string.measure_wtf16 */ - WTF16 = 2 /* _BinaryenStringMeasureWTF16 */, - /** string.is_usv_sequence */ - IsUSV = 3 /* _BinaryenStringMeasureIsUSV */, - /** stringview_wtf16.length */ - WTF16View = 4 /* _BinaryenStringMeasureWTF16View */ + WTF16 = 1 /* _BinaryenStringMeasureWTF16 */, } /** Binaryen StringEncode operation constants. */ export const enum StringEncodeOp { - /** string.encode_wtf8 utf8 */ - UTF8 = 0 /* _BinaryenStringEncodeUTF8 */, - /** string.encode_lossy_utf8 utf8 */ - LossyUTF8 = 1 /* _BinaryenStringEncodeLossyUTF8 */, - /** string.encode_wtf8 wtf8 */ - WTF8 = 2 /* _BinaryenStringEncodeWTF8 */, - /** string.encode_wtf16 */ - WTF16 = 3 /* _BinaryenStringEncodeWTF16 */, - /** string.encode_wtf8_array utf8 */ - UTF8Array = 4 /* _BinaryenStringEncodeUTF8Array */, /** string.encode_lossy_utf8_array utf8 */ - LossyUTF8Array = 5 /* _BinaryenStringEncodeLossyUTF8Array */, - /** string.encode_wtf8_array wtf8 */ - WTF8Array = 6 /* _BinaryenStringEncodeWTF8Array */, + LossyUTF8Array = 0 /* _BinaryenStringEncodeLossyUTF8Array */, /** string.encode_wtf16_array */ - WTF16Array = 7 /* _BinaryenStringEncodeWTF16Array */ + WTF16Array = 1 /* _BinaryenStringEncodeWTF16Array */ } /** Binaryen StringEq operation constants. */ @@ -1323,37 +1345,10 @@ export const enum StringEqOp { Compare = 1 /* _BinaryenStringEqCompare */ } -/** Binaryen StringAs operation constants. */ -export const enum StringAsOp { - /** string.as_wtf8 */ - WTF8 = 0 /* _BinaryenStringAsWTF8 */, - /** string.as_wtf16 */ - WTF16 = 1 /* _BinaryenStringAsWTF16 */, - /** string.as_iter */ - Iter = 2 /* _BinaryenStringAsIter */ -} - -/** Binaryen StringIterMove operation constants. */ -export const enum StringIterMoveOp { - /** stringview_iter.advance */ - Advance = 0 /* _BinaryenStringIterMoveAdvance */, - /** stringview_iter.rewind */ - Rewind = 1 /* _BinaryenStringIterMoveRewind */ -} - -/** Binaryen StringSlice operation constants. */ -export const enum StringSliceWTFOp { - /** stringview_wtf8.slice */ - WTF8 = 0 /* _BinaryenStringSliceWTF8 */, - /** stringview_wtf16.slice */ - WTF16 = 1 /* _BinaryenStringSliceWTF16 */ -} - /** Binaryen expression runner flags. */ export const enum ExpressionRunnerFlags { Default = 0 /* _ExpressionRunnerFlagsDefault */, - PreserveSideeffects = 1 /* _ExpressionRunnerFlagsPreserveSideeffects */, - TraverseCalls = 2 /* _ExpressionRunnerFlagsTraverseCalls */ + PreserveSideeffects = 1 /* _ExpressionRunnerFlagsPreserveSideeffects */ } export class MemorySegment { @@ -1401,7 +1396,7 @@ export class Module { i64(valueLow: i32, valueHigh: i32 = 0): ExpressionRef { let out = this.lit; - binaryen._BinaryenLiteralInt64(out, valueLow, valueHigh); + binaryen._BinaryenLiteralInt64(out, i64_new(valueLow, valueHigh)); return binaryen._BinaryenConst(this.ref, out); } @@ -1535,6 +1530,24 @@ export class Module { return binaryen._BinaryenBinary(this.ref, op, left, right); } + wide_int_add_sub( + op: WideIntAddSubOp, + leftLow: ExpressionRef, + leftHigh: ExpressionRef, + rightLow: ExpressionRef, + rightHigh: ExpressionRef + ): ExpressionRef { + return binaryen._BinaryenWideIntAddSub(this.ref, op, leftLow, leftHigh, rightLow, rightHigh); + } + + wide_int_mul( + op: WideIntMulOp, + left: ExpressionRef, + right: ExpressionRef + ): ExpressionRef { + return binaryen._BinaryenWideIntMul(this.ref, op, left, right); + } + memory_size(name: string = CommonNames.DefaultMemory, is64: bool = false): ExpressionRef { let cStr = this.allocStringCached(name); return binaryen._BinaryenMemorySize(this.ref, cStr, is64); @@ -1632,10 +1645,11 @@ export class Module { ptr: ExpressionRef, type: TypeRef, offset: Index = 0, - name: string = CommonNames.DefaultMemory + name: string = CommonNames.DefaultMemory, + order: MemoryOrder = MemoryOrder.SeqCst ): ExpressionRef { let cStr = this.allocStringCached(name); - return binaryen._BinaryenAtomicLoad(this.ref, bytes, offset, type, ptr, cStr); + return binaryen._BinaryenAtomicLoad(this.ref, bytes, offset, type, ptr, cStr, order); } atomic_store( @@ -1644,10 +1658,11 @@ export class Module { value: ExpressionRef, type: TypeRef, offset: Index = 0, - name: string = CommonNames.DefaultMemory + name: string = CommonNames.DefaultMemory, + order: MemoryOrder = MemoryOrder.SeqCst ): ExpressionRef { let cStr = this.allocStringCached(name); - return binaryen._BinaryenAtomicStore(this.ref, bytes, offset, ptr, value, type, cStr); + return binaryen._BinaryenAtomicStore(this.ref, bytes, offset, ptr, value, type, cStr, order); } atomic_rmw( @@ -1657,10 +1672,11 @@ export class Module { ptr: ExpressionRef, value: ExpressionRef, type: TypeRef, - name: string = CommonNames.DefaultMemory + name: string = CommonNames.DefaultMemory, + order: MemoryOrder = MemoryOrder.SeqCst ): ExpressionRef { let cStr = this.allocStringCached(name); - return binaryen._BinaryenAtomicRMW(this.ref, op, bytes, offset, ptr, value, type, cStr); + return binaryen._BinaryenAtomicRMW(this.ref, op, bytes, offset, ptr, value, type, cStr, order); } atomic_cmpxchg( @@ -1670,10 +1686,11 @@ export class Module { expected: ExpressionRef, replacement: ExpressionRef, type: TypeRef, - name: string = CommonNames.DefaultMemory + name: string = CommonNames.DefaultMemory, + order: MemoryOrder = MemoryOrder.SeqCst ): ExpressionRef { let cStr = this.allocStringCached(name); - return binaryen._BinaryenAtomicCmpxchg(this.ref, bytes, offset, ptr, expected, replacement, type, cStr); + return binaryen._BinaryenAtomicCmpxchg(this.ref, bytes, offset, ptr, expected, replacement, type, cStr, order); } atomic_wait( @@ -1839,10 +1856,9 @@ export class Module { select( ifTrue: ExpressionRef, ifFalse: ExpressionRef, - condition: ExpressionRef, - type: TypeRef + condition: ExpressionRef ): ExpressionRef { - return binaryen._BinaryenSelect(this.ref, condition, ifTrue, ifFalse, type); + return binaryen._BinaryenSelect(this.ref, condition, ifTrue, ifFalse); } switch( @@ -2117,7 +2133,7 @@ export class Module { type: TypeRef ): ExpressionRef { let cStr = this.allocStringCached(name); - return binaryen._BinaryenRefFunc(this.ref, cStr, type); + return binaryen._BinaryenRefFunc(this.ref, cStr, binaryen._BinaryenTypeGetHeapType(type)); } i31_new( @@ -2399,36 +2415,43 @@ export class Module { name: string = CommonNames.DefaultMemory, shared: bool = false ): void { - let cStr1 = this.allocStringCached(exportName); - let cStr2 = this.allocStringCached(name); + let cExportName = this.allocStringCached(exportName); + let cName = this.allocStringCached(name); let k = segments.length; let segs = new Array(k); - let psvs = new Uint8Array(k); - let offs = new Array(k); - let sizs = new Array(k); + let isPassive = new Uint8Array(k); + let offsets = new Array(k); + let sizes = new Array(k); for (let i = 0; i < k; ++i) { let segment = unchecked(segments[i]); let buffer = segment.buffer; let offset = segment.offset; unchecked(segs[i] = allocU8Array(buffer)); - unchecked(psvs[i] = 0); // no passive segments currently - unchecked(offs[i] = target == Target.Wasm64 + unchecked(isPassive[i] = 0); // no passive segments currently + unchecked(offsets[i] = target == Target.Wasm64 ? this.i64(i64_low(offset), i64_high(offset)) : this.i32(i64_low(offset)) ); - unchecked(sizs[i] = buffer.length); + unchecked(sizes[i] = buffer.length); } - let cArr1 = allocPtrArray(segs); - let cArr2 = allocU8Array(psvs); - let cArr3 = allocPtrArray(offs); - let cArr4 = allocU32Array(sizs); + let cSegs = allocPtrArray(segs); + let cIsPassive = allocU8Array(isPassive); + let cOffsets = allocPtrArray(offsets); + let cSizes = allocU32Array(sizes); binaryen._BinaryenSetMemory( - this.ref, initial, maximum, cStr1, cArr1, cArr2, cArr3, cArr4, k, shared, false, cStr2 + this.ref, + initial, maximum, + cExportName, + 0, cSegs, cIsPassive, + cOffsets, cSizes, + k, + shared, false, + cName ); - binaryen._free(cArr4); - binaryen._free(cArr3); - binaryen._free(cArr2); - binaryen._free(cArr1); + binaryen._free(cSizes); + binaryen._free(cOffsets); + binaryen._free(cIsPassive); + binaryen._free(cSegs); for (let i = k - 1; i >= 0; --i) { binaryen._free(unchecked(segs[i])); } @@ -2464,6 +2487,14 @@ export class Module { binaryen._free(cArr); } + /** Ensures that an empty function table of the given name exists, to be sized and filled later. */ + ensureFunctionTable(name: string): void { + let cStr = this.allocStringCached(name); + if (!binaryen._BinaryenGetTable(this.ref, cStr)) { + binaryen._BinaryenAddTable(this.ref, cStr, 0, Module.UNLIMITED_TABLE, TypeRef.Funcref); + } + } + /* setFunctionTable( initial: Index, maximum: Index, @@ -2517,6 +2548,22 @@ export class Module { binaryen._BinaryenSetDebugInfo(on); } + getTrapsNeverHappen(): bool { + return binaryen._BinaryenGetTrapsNeverHappen(); + } + + setTrapsNeverHappen(on: bool): void { + binaryen._BinaryenSetTrapsNeverHappen(on); + } + + getClosedWorld(): bool { + return binaryen._BinaryenGetClosedWorld(); + } + + setClosedWorld(on: bool): void { + binaryen._BinaryenSetClosedWorld(on); + } + getLowMemoryUnused(): bool { return binaryen._BinaryenGetLowMemoryUnused(); } @@ -2541,6 +2588,22 @@ export class Module { binaryen._BinaryenSetFastMath(on); } + getGenerateStackIR(): bool { + return binaryen._BinaryenGetGenerateStackIR(); + } + + setGenerateStackIR(on: bool): void { + binaryen._BinaryenSetGenerateStackIR(on); + } + + getOptimizeStackIR(): bool { + return binaryen._BinaryenGetOptimizeStackIR(); + } + + setOptimizeStackIR(on: bool): void { + binaryen._BinaryenSetOptimizeStackIR(on); + } + getPassArgument(key: string): string | null { let cStr = this.allocStringCached(key); let ptr = binaryen._BinaryenGetPassArgument(cStr); @@ -2589,6 +2652,10 @@ export class Module { binaryen._BinaryenSetAllowInliningFunctionsWithLoops(enabled); } + setPartialInliningIfs(value: i32): void { + this.setPassArgument("partial-inlining-ifs", value.toString()); + } + // meta (module) getFeatures(): FeatureFlags { @@ -2596,6 +2663,7 @@ export class Module { } setFeatures(featureFlags: FeatureFlags): void { + if (featureFlags & FeatureFlags.BulkMemory) featureFlags |= FeatureFlags.BulkMemoryOpt; binaryen._BinaryenModuleSetFeatures(this.ref, featureFlags); } @@ -2624,19 +2692,25 @@ export class Module { // Implicitly run costly non-LLVM optimizations on -O3 or -Oz if (optimizeLevel >= 3 || shrinkLevel >= 2) optimizeLevel = 4; + this.clearPassArguments(); + this.setOptimizeLevel(optimizeLevel); this.setShrinkLevel(shrinkLevel); this.setDebugInfo(debugInfo); this.setZeroFilledMemory(zeroFilledMemory); this.setFastMath(true); - this.clearPassArguments(); + + // OptimizationOptions#parse in src/tools/optimization-options.h + const stackIR = optimizeLevel >= 2 || shrinkLevel >= 1; + this.setGenerateStackIR(stackIR); + this.setOptimizeStackIR(stackIR); // Tweak inlining limits based on optimization levels if (optimizeLevel >= 2 && shrinkLevel == 0) { this.setAlwaysInlineMaxSize(12); this.setFlexibleInlineMaxSize(70); this.setOneCallerInlineMaxSize(200); - this.setAllowInliningFunctionsWithLoops(optimizeLevel >= 3); + this.setAllowInliningFunctionsWithLoops(true); } else { this.setAlwaysInlineMaxSize( optimizeLevel <= 1 || shrinkLevel >= 2 @@ -2647,6 +2721,7 @@ export class Module { this.setOneCallerInlineMaxSize(80); this.setAllowInliningFunctionsWithLoops(false); } + this.setPartialInliningIfs(optimizeLevel >= 2 ? 4 : 0); // Pass order here differs substantially from Binaryen's defaults // see: Binaryen/src/pass.cpp @@ -2657,12 +2732,15 @@ export class Module { passes.push("duplicate-function-elimination"); passes.push("remove-unused-module-elements"); // + - - // --- PassRunner::addDefaultFunctionOptimizationPasses --- if (optimizeLevel >= 2) { passes.push("once-reduction"); + } + + // --- PassRunner::addDefaultFunctionOptimizationPasses --- + if (optimizeLevel >= 2 || shrinkLevel >= 1) { passes.push("inlining"); passes.push("simplify-globals-optimizing"); + passes.push("generate-global-effects"); } if (optimizeLevel >= 3 || shrinkLevel >= 1) { passes.push("rse"); @@ -2675,7 +2753,6 @@ export class Module { passes.push("merge-blocks"); passes.push("precompute-propagate"); passes.push("simplify-globals-optimizing"); - passes.push("gufa-optimizing"); passes.push("dae-optimizing"); } if (optimizeLevel >= 3) { @@ -2684,20 +2761,31 @@ export class Module { passes.push("vacuum"); passes.push("simplify-locals-notee-nostructure"); passes.push("vacuum"); + passes.push("local-cse"); passes.push("licm"); passes.push("merge-locals"); passes.push("reorder-locals"); } passes.push("optimize-instructions"); - if (optimizeLevel >= 3 || shrinkLevel >= 1) { - passes.push("dce"); + if (optimizeLevel >= 2) { + passes.push("avoid-reinterprets"); } + passes.push("dce"); passes.push("remove-unused-brs"); passes.push("remove-unused-names"); + passes.push("merge-blocks"); + if (this.getFeatures() & FeatureFlags.MultiValue) { + // Optimize tuples before local opts (as splitting tuples can help local + // opts), but also not too early, as we want to be after + // optimize-instructions at least (which can remove tuple-related things). + passes.push("tuple-optimization"); + } if (optimizeLevel >= 3 || shrinkLevel >= 2) { passes.push("inlining"); passes.push("precompute-propagate"); passes.push("simplify-globals-optimizing"); + } else if (optimizeLevel >= 2 || shrinkLevel >= 1) { + passes.push("precompute-propagate"); } else { passes.push("precompute"); } @@ -2719,7 +2807,7 @@ export class Module { passes.push("rse"); passes.push("vacuum"); } - if (optimizeLevel >= 3 || shrinkLevel >= 1) { + if (shrinkLevel >= 1) { passes.push("merge-locals"); passes.push("vacuum"); } @@ -2772,6 +2860,10 @@ export class Module { } passes.push("directize"); // replace indirect with direct calls passes.push("dae-optimizing"); // reduce arity + if (optimizeLevel >= 3 || shrinkLevel >= 1) { + // whole-program value-flow analysis + passes.push("gufa-optimizing"); + } passes.push("inlining-optimizing"); // and inline if possible if (optimizeLevel >= 2 || shrinkLevel >= 1) { passes.push("code-folding"); @@ -2811,18 +2903,32 @@ export class Module { passes.push("merge-blocks"); passes.push("vacuum"); + if (this.getFeatures() & FeatureFlags.Strings) { + // Gather strings to globals right before reorder-globals, which will then + // sort them properly. + passes.push("string-gathering"); + } + passes.push("simplify-globals-optimizing"); - passes.push("reorder-globals"); passes.push("remove-unused-brs"); passes.push("optimize-instructions"); + passes.push("vacuum"); } + passes.push("reorder-globals"); + passes.push("reorder-functions"); // clean up - passes.push("duplicate-function-elimination"); + if (optimizeLevel >= 2 || shrinkLevel >= 1) { + passes.push("duplicate-function-elimination"); + } if (shrinkLevel >= 2) { passes.push("merge-similar-functions"); } passes.push("memory-packing"); passes.push("remove-unused-module-elements"); + if (optimizeLevel >= 2 || shrinkLevel >= 1) { + // release the global-effects cache populated earlier in post-passes. + passes.push("discard-global-effects"); + } this.runPasses(passes); } @@ -2867,7 +2973,7 @@ export class Module { toText(watFormat: bool = true): string { let textPtr = watFormat - ? binaryen._BinaryenModuleAllocateAndWriteStackIR(this.ref, true) + ? binaryen._BinaryenModuleAllocateAndWriteStackIR(this.ref) : binaryen._BinaryenModuleAllocateAndWriteText(this.ref); let text = readString(textPtr); if (textPtr) binaryen._free(textPtr); @@ -2917,6 +3023,13 @@ export class Module { /** Makes a copy of a trivial expression (doesn't contain subexpressions). Returns `0` if non-trivial. */ tryCopyTrivialExpression(expr: ExpressionRef): ExpressionRef { + if (this.isTrivialExpression(expr)) { + return this.copyExpression(expr); + } + return 0; + } + + isTrivialExpression(expr: ExpressionRef): bool { switch (binaryen._BinaryenExpressionGetId(expr)) { case ExpressionId.LocalGet: case ExpressionId.GlobalGet: @@ -2925,9 +3038,9 @@ export class Module { case ExpressionId.Nop: case ExpressionId.Unreachable: case ExpressionId.DataDrop: - case ExpressionId.RefNull: return this.copyExpression(expr); + case ExpressionId.RefNull: return true; } - return 0; + return false; } /** Makes a copy of any expression including all subexpressions. */ @@ -3047,11 +3160,23 @@ export function getConstValueI32(expr: ExpressionRef): i32 { } export function getConstValueI64Low(expr: ExpressionRef): i32 { - return binaryen._BinaryenConstGetValueI64Low(expr); + return i64_low(binaryen._BinaryenConstGetValueI64(expr)); } export function getConstValueI64High(expr: ExpressionRef): i32 { - return binaryen._BinaryenConstGetValueI64High(expr); + return i64_high(binaryen._BinaryenConstGetValueI64(expr)); +} + +export function getConstValueInteger(expr: ExpressionRef, isWasm64: bool): i64 { + let lo: i32 = 0; + let hi: i32 = 0; + if (isWasm64) { + lo = getConstValueI64Low(expr); + hi = getConstValueI64High(expr); + } else { + lo = getConstValueI32(expr); + } + return i64_new(lo, hi); } export function getConstValueF32(expr: ExpressionRef): f32 { @@ -3411,16 +3536,32 @@ export class SwitchBuilder { this.condition = condition; } + /** Links a case to the specified branch, replace old case if it is linked. */ + addOrReplaceCase(value: i32, code: ExpressionRef[]): void { + const valueIndex = this.values.indexOf(value); + const codeIndex = this.addCode(code); + if (valueIndex >= 0) { + this.indexes[valueIndex] = codeIndex; + } else { + this.values.push(value); + this.indexes.push(codeIndex); + } + } + /** Links a case to the specified branch. */ addCase(value: i32, code: ExpressionRef[]): void { + this.values.push(value); + this.indexes.push(this.addCode(code)); + } + + private addCode(code: ExpressionRef[]): i32 { let cases = this.cases; let index = cases.indexOf(code); if (index < 0) { index = cases.length; cases.push(code); } - this.values.push(value); - this.indexes.push(index); + return index; } /** Links the default branch. */ @@ -3810,15 +3951,6 @@ function tryEnsureBasicType(type: Type): TypeRef { case TypeKind.String: { return binaryen._BinaryenTypeFromHeapType(HeapTypeRef.String, type.is(TypeFlags.Nullable)); } - case TypeKind.StringviewWTF8: { - return binaryen._BinaryenTypeFromHeapType(HeapTypeRef.StringviewWTF8, type.is(TypeFlags.Nullable)); - } - case TypeKind.StringviewWTF16: { - return binaryen._BinaryenTypeFromHeapType(HeapTypeRef.StringviewWTF16, type.is(TypeFlags.Nullable)); - } - case TypeKind.StringviewIter: { - return binaryen._BinaryenTypeFromHeapType(HeapTypeRef.StringviewIter, type.is(TypeFlags.Nullable)); - } case TypeKind.Void: assert(false); // invalid here } return 0; // non-basic diff --git a/src/parser.ts b/src/parser.ts index 58050e837e..157351cd3a 100644 --- a/src/parser.ts +++ b/src/parser.ts @@ -9,6 +9,7 @@ import { CommonFlags, + Feature, LIBRARY_PREFIX, PATH_DELIMITER } from "./common"; @@ -42,6 +43,7 @@ import { TypeName, NamedTypeNode, FunctionTypeNode, + TupleTypeNode, ArrowKind, Expression, @@ -90,6 +92,7 @@ import { mangleInternalPath } from "./ast"; +import { Options } from "./compiler"; /** Represents a dependee. */ class Dependee { @@ -118,7 +121,9 @@ export class Parser extends DiagnosticEmitter { sources: Source[]; /** Current overridden module name. */ currentModuleName: string | null = null; - + // TODO: Remove when multi-value feature will enable by default. + /** Compiler options. */ + options: Options | null = null; /** Constructs a new parser. */ constructor( diagnostics: DiagnosticMessage[] | null = null, @@ -563,6 +568,49 @@ export class Parser extends DiagnosticEmitter { return null; } + // 'readonly' Type + } else if (token == Token.Readonly) { + let innerType = this.parseType(tn, acceptParenthesized, suppressErrors); + if (!innerType) return null; + type = innerType; + type.range.start = startPos; + + // '[' ((Identifier ':')? Type (',' (Identifier ':')? Type)*)? ']' + } else if (token == Token.OpenBracket && this.options && this.options!.hasFeature(Feature.MultiValue)) { + let elements: TypeNode[] = []; + let elementNames: (IdentifierExpression | null)[] = []; + let hasElementNames = false; + if (!tn.skip(Token.CloseBracket)) { + do { + let elementName: IdentifierExpression | null = null; + let state = tn.mark(); + if (tn.skip(Token.Identifier)) { + let name = tn.readIdentifier(); + let nameRange = tn.range(); + if (tn.skip(Token.Colon)) { + elementName = Node.createIdentifierExpression(name, nameRange); + hasElementNames = true; + } else { + tn.reset(state); + } + } + let element = this.parseType(tn, true, suppressErrors); + if (!element) return null; + elements.push(element); + elementNames.push(elementName); + } while (tn.skip(Token.Comma)); + if (!tn.skip(Token.CloseBracket)) { + if (!suppressErrors) { + this.error( + DiagnosticCode._0_expected, + tn.range(tn.pos), "]" + ); + } + return null; + } + } + type = Node.createTupleType(elements, hasElementNames ? elementNames : null, false, tn.range(startPos, tn.pos)); + // 'void' } else if (token == Token.Void) { type = Node.createNamedType( @@ -631,7 +679,7 @@ export class Parser extends DiagnosticEmitter { } // ... | type while (tn.skip(Token.Bar)) { - let nextType = this.parseType(tn, false, true); + let nextType = this.parseType(tn, true, false); if (!nextType) return null; let typeIsNull = type.kind == NodeKind.NamedType && (type).isNull; let nextTypeIsNull = nextType.kind == NodeKind.NamedType && (nextType).isNull; @@ -4581,6 +4629,13 @@ function isCircularTypeAlias(name: string, type: TypeNode): bool { } break; } + case NodeKind.TupleType: { + let elements = (type).elements; + for (let i = 0, k = elements.length; i < k; i++) { + if (isCircularTypeAlias(name, elements[i])) return true; + } + break; + } default: assert(false); } return false; diff --git a/src/passes/pass.ts b/src/passes/pass.ts index c2daf98eb5..b61e17f1e8 100644 --- a/src/passes/pass.ts +++ b/src/passes/pass.ts @@ -208,32 +208,22 @@ import { _BinaryenArrayCopyGetSrcRef, _BinaryenArrayCopyGetSrcIndex, _BinaryenArrayCopyGetLength, - _BinaryenStringNewGetPtr, - _BinaryenStringNewGetLength, + _BinaryenStringNewGetRef, _BinaryenStringNewGetStart, _BinaryenStringNewGetEnd, _BinaryenStringMeasureGetRef, - _BinaryenStringEncodeGetPtr, - _BinaryenStringEncodeGetRef, + _BinaryenStringEncodeGetArray, + _BinaryenStringEncodeGetStr, _BinaryenStringEncodeGetStart, _BinaryenStringConcatGetLeft, _BinaryenStringConcatGetRight, _BinaryenStringEqGetLeft, _BinaryenStringEqGetRight, - _BinaryenStringAsGetRef, - _BinaryenStringWTF8AdvanceGetRef, - _BinaryenStringWTF8AdvanceGetPos, - _BinaryenStringWTF8AdvanceGetBytes, _BinaryenStringWTF16GetGetRef, _BinaryenStringWTF16GetGetPos, - _BinaryenStringIterNextGetRef, - _BinaryenStringIterMoveGetRef, - _BinaryenStringIterMoveGetNum, _BinaryenStringSliceWTFGetRef, _BinaryenStringSliceWTFGetStart, _BinaryenStringSliceWTFGetEnd, - _BinaryenStringSliceIterGetRef, - _BinaryenStringSliceIterGetNum, _BinaryenCallRefSetOperandAt, _BinaryenCallRefSetTarget, _BinaryenRefTestSetRef, @@ -257,32 +247,22 @@ import { _BinaryenArrayCopySetSrcIndex, _BinaryenArrayCopySetLength, _BinaryenRefAsSetValue, - _BinaryenStringNewSetPtr, - _BinaryenStringNewSetLength, + _BinaryenStringNewSetRef, _BinaryenStringNewSetStart, _BinaryenStringNewSetEnd, _BinaryenStringMeasureSetRef, - _BinaryenStringEncodeSetRef, - _BinaryenStringEncodeSetPtr, + _BinaryenStringEncodeSetStr, + _BinaryenStringEncodeSetArray, _BinaryenStringEncodeSetStart, _BinaryenStringConcatSetLeft, _BinaryenStringConcatSetRight, _BinaryenStringEqSetLeft, _BinaryenStringEqSetRight, - _BinaryenStringAsSetRef, - _BinaryenStringWTF8AdvanceSetRef, - _BinaryenStringWTF8AdvanceSetPos, - _BinaryenStringWTF8AdvanceSetBytes, _BinaryenStringWTF16GetSetRef, _BinaryenStringWTF16GetSetPos, - _BinaryenStringIterNextSetRef, - _BinaryenStringIterMoveSetRef, - _BinaryenStringIterMoveSetNum, _BinaryenStringSliceWTFSetRef, _BinaryenStringSliceWTFSetStart, _BinaryenStringSliceWTFSetEnd, - _BinaryenStringSliceIterSetRef, - _BinaryenStringSliceIterSetNum, _BinaryenArrayNewFixedSetValueAt } from "../glue/binaryen"; @@ -1183,9 +1163,7 @@ export abstract class Visitor { } case ExpressionId.StringNew: { this.stack.push(expr); - this.visit(_BinaryenStringNewGetPtr(expr)); - let length = _BinaryenStringNewGetLength(expr); // LM only - if (length) this.visit(length); + this.visit(_BinaryenStringNewGetRef(expr)); let start = _BinaryenStringNewGetStart(expr); // GC only if (start) this.visit(start); let end = _BinaryenStringNewGetEnd(expr); // GC only @@ -1209,8 +1187,8 @@ export abstract class Visitor { } case ExpressionId.StringEncode: { this.stack.push(expr); - this.visit(_BinaryenStringEncodeGetRef(expr)); - this.visit(_BinaryenStringEncodeGetPtr(expr)); + this.visit(_BinaryenStringEncodeGetStr(expr)); + this.visit(_BinaryenStringEncodeGetArray(expr)); let start = _BinaryenStringEncodeGetStart(expr); // GC only if (start) this.visit(start); assert(this.stack.pop() == expr); @@ -1233,22 +1211,6 @@ export abstract class Visitor { this.visitStringEq(expr); break; } - case ExpressionId.StringAs: { - this.stack.push(expr); - this.visit(_BinaryenStringAsGetRef(expr)); - assert(this.stack.pop() == expr); - this.visitStringAs(expr); - break; - } - case ExpressionId.StringWTF8Advance: { - this.stack.push(expr); - this.visit(_BinaryenStringWTF8AdvanceGetRef(expr)); - this.visit(_BinaryenStringWTF8AdvanceGetPos(expr)); - this.visit(_BinaryenStringWTF8AdvanceGetBytes(expr)); - assert(this.stack.pop() == expr); - this.visitStringWTF8Advance(expr); - break; - } case ExpressionId.StringWTF16Get: { this.stack.push(expr); this.visit(_BinaryenStringWTF16GetGetRef(expr)); @@ -1257,21 +1219,6 @@ export abstract class Visitor { this.visitStringWTF16Get(expr); break; } - case ExpressionId.StringIterNext: { - this.stack.push(expr); - this.visit(_BinaryenStringIterNextGetRef(expr)); - assert(this.stack.pop() == expr); - this.visitStringIterNext(expr); - break; - } - case ExpressionId.StringIterMove: { - this.stack.push(expr); - this.visit(_BinaryenStringIterMoveGetRef(expr)); - this.visit(_BinaryenStringIterMoveGetNum(expr)); - assert(this.stack.pop() == expr); - this.visitStringIterMove(expr); - break; - } case ExpressionId.StringSliceWTF: { this.stack.push(expr); this.visit(_BinaryenStringSliceWTFGetRef(expr)); @@ -1281,14 +1228,6 @@ export abstract class Visitor { this.visitStringSliceWTF(expr); break; } - case ExpressionId.StringSliceIter: { - this.stack.push(expr); - this.visit(_BinaryenStringSliceIterGetRef(expr)); - this.visit(_BinaryenStringSliceIterGetNum(expr)); - assert(this.stack.pop() == expr); - this.visitStringSliceIter(expr); - break; - } default: throw new Error("unexpected expression kind"); } this._currentExpression = previousExpression; @@ -2072,16 +2011,11 @@ export function replaceChild( break; } case ExpressionId.StringNew: { - let ptr = _BinaryenStringNewGetPtr(parent); + let ptr = _BinaryenStringNewGetRef(parent); if (ptr == search) { - _BinaryenStringNewSetPtr(parent, replacement); + _BinaryenStringNewSetRef(parent, replacement); return ptr; } - let length = _BinaryenStringNewGetLength(parent); - if (length == search) { - _BinaryenStringNewSetLength(parent, replacement); - return length; - } let start = _BinaryenStringNewGetStart(parent); if (start == search) { _BinaryenStringNewSetStart(parent, replacement); @@ -2106,14 +2040,14 @@ export function replaceChild( break; } case ExpressionId.StringEncode: { - let ref = _BinaryenStringEncodeGetRef(parent); + let ref = _BinaryenStringEncodeGetStr(parent); if (ref == search) { - _BinaryenStringEncodeSetRef(parent, replacement); + _BinaryenStringEncodeSetStr(parent, replacement); return ref; } - let ptr = _BinaryenStringEncodeGetPtr(parent); + let ptr = _BinaryenStringEncodeGetArray(parent); if (ptr == search) { - _BinaryenStringEncodeSetPtr(parent, replacement); + _BinaryenStringEncodeSetArray(parent, replacement); return ptr; } let start = _BinaryenStringEncodeGetStart(parent); @@ -2149,32 +2083,6 @@ export function replaceChild( } break; } - case ExpressionId.StringAs: { - let ref = _BinaryenStringAsGetRef(parent); - if (ref == search) { - _BinaryenStringAsSetRef(parent, replacement); - return ref; - } - break; - } - case ExpressionId.StringWTF8Advance: { - let ref = _BinaryenStringWTF8AdvanceGetRef(parent); - if (ref == search) { - _BinaryenStringWTF8AdvanceSetRef(parent, replacement); - return ref; - } - let pos = _BinaryenStringWTF8AdvanceGetPos(parent); - if (pos == search) { - _BinaryenStringWTF8AdvanceSetPos(parent, replacement); - return pos; - } - let bytes = _BinaryenStringWTF8AdvanceGetBytes(parent); - if (bytes == search) { - _BinaryenStringWTF8AdvanceSetBytes(parent, replacement); - return bytes; - } - break; - } case ExpressionId.StringWTF16Get: { let ref = _BinaryenStringWTF16GetGetRef(parent); if (ref == search) { @@ -2188,27 +2096,6 @@ export function replaceChild( } break; } - case ExpressionId.StringIterNext: { - let ref = _BinaryenStringIterNextGetRef(parent); - if (ref == search) { - _BinaryenStringIterNextSetRef(parent, replacement); - return ref; - } - break; - } - case ExpressionId.StringIterMove: { - let ref = _BinaryenStringIterMoveGetRef(parent); - if (ref == search) { - _BinaryenStringIterMoveSetRef(parent, replacement); - return ref; - } - let num = _BinaryenStringIterMoveGetNum(parent); - if (num == search) { - _BinaryenStringIterMoveSetNum(parent, replacement); - return num; - } - break; - } case ExpressionId.StringSliceWTF: { let ref = _BinaryenStringSliceWTFGetRef(parent); if (ref == search) { @@ -2227,19 +2114,6 @@ export function replaceChild( } break; } - case ExpressionId.StringSliceIter: { - let ref = _BinaryenStringSliceIterGetRef(parent); - if (ref == search) { - _BinaryenStringSliceIterSetRef(parent, replacement); - return ref; - } - let num = _BinaryenStringSliceIterGetNum(parent); - if (num == search) { - _BinaryenStringSliceIterSetNum(parent, replacement); - return num; - } - break; - } default: throw new Error("unexpected expression id"); } return 0; diff --git a/src/passes/shadowstack.ts b/src/passes/shadowstack.ts index 4d08e39971..d34997ed08 100644 --- a/src/passes/shadowstack.ts +++ b/src/passes/shadowstack.ts @@ -159,18 +159,21 @@ type TempMap = Map; /** Attempts to match the `__tostack(value)` pattern. Returns `value` if a match, otherwise `0`. */ function matchPattern(module: Module, expr: ExpressionRef): ExpressionRef { - if ( + let isFound = false; + while ( _BinaryenExpressionGetId(expr) == ExpressionId.Call && module.readStringCached(_BinaryenCallGetTarget(expr)) == BuiltinNames.tostack ) { assert(_BinaryenCallGetNumOperands(expr) == 1); - return _BinaryenCallGetOperandAt(expr, 0); + expr = _BinaryenCallGetOperandAt(expr, 0); + isFound = true; } - return 0; + if (!isFound) return 0; + return expr; } /** Tests whether a `value` matched by `matchTostack` needs a slot. */ -function needsSlot(module: Module, value: ExpressionRef): bool { +function needsSlot(value: ExpressionRef): bool { switch (_BinaryenExpressionGetId(value)) { // no need to stack null pointers case ExpressionId.Const: return !isConstZero(value); @@ -344,7 +347,7 @@ export class ShadowStackPass extends Pass { let operand = operands[i]; let match = matchPattern(module, operand); if (!match) continue; - if (!needsSlot(module, match)) { + if (!needsSlot(match)) { operands[i] = match; continue; } @@ -434,7 +437,7 @@ export class ShadowStackPass extends Pass { let value = _BinaryenLocalSetGetValue(localSet); let match = matchPattern(module, value); if (!match) return; - if (!needsSlot(module, match)) { + if (!needsSlot(match)) { _BinaryenLocalSetSetValue(localSet, match); return; } diff --git a/src/program.ts b/src/program.ts index 1f9849eec2..f5d9b7cae6 100644 --- a/src/program.ts +++ b/src/program.ts @@ -390,8 +390,10 @@ export namespace OperatorKind { case Token.GreaterThan_GreaterThan_Equals: return OperatorKind.BitwiseShr; case Token.GreaterThan_GreaterThan_GreaterThan: case Token.GreaterThan_GreaterThan_GreaterThan_Equals: return OperatorKind.BitwiseShrU; - case Token.Equals_Equals: return OperatorKind.Eq; - case Token.Exclamation_Equals: return OperatorKind.Ne; + case Token.Equals_Equals: + case Token.Equals_Equals_Equals: return OperatorKind.Eq; + case Token.Exclamation_Equals: + case Token.Exclamation_Equals_Equals: return OperatorKind.Ne; case Token.GreaterThan: return OperatorKind.Gt; case Token.GreaterThan_Equals: return OperatorKind.Ge; case Token.LessThan: return OperatorKind.Lt; @@ -434,12 +436,15 @@ export class Program extends DiagnosticEmitter { diagnostics: DiagnosticMessage[] | null = null ) { super(diagnostics); - this.module = Module.create(options.stackSize > 0, options.sizeTypeRef); + this.module = Module.create(options.stackSize > 0, options.sizeTypeRef); this.parser = new Parser(this.diagnostics, this.sources); this.resolver = new Resolver(this); let nativeFile = new File(this, Source.native); this.nativeFile = nativeFile; this.filesByName.set(nativeFile.internalName, nativeFile); + + // TODO: temporary workaround. remove after multi-value support is finished + this.parser.options = this.options; } /** Module instance. */ @@ -1083,7 +1088,9 @@ export class Program extends DiagnosticEmitter { this.registerConstantInteger(CommonNames.ASC_FEATURE_EXTENDED_CONST, Type.bool, i64_new(options.hasFeature(Feature.ExtendedConst) ? 1 : 0, 0)); this.registerConstantInteger(CommonNames.ASC_FEATURE_STRINGREF, Type.bool, - i64_new(options.hasFeature(Feature.Stringref) ? 1 : 0, 0)); + i64_new(options.hasFeature(Feature.Strings) ? 1 : 0, 0)); + this.registerConstantInteger(CommonNames.ASC_FEATURE_SHARED_EVERYTHING, Type.bool, + i64_new(options.hasFeature(Feature.Strings) ? 1 : 0, 0)); // remember deferred elements let queuedImports = new Array(); @@ -1287,7 +1294,9 @@ export class Program extends DiagnosticEmitter { this.registerWrapperClass(Type.bool, CommonNames.Bool); this.registerWrapperClass(Type.f32, CommonNames.F32); this.registerWrapperClass(Type.f64, CommonNames.F64); - if (options.hasFeature(Feature.Simd)) this.registerWrapperClass(Type.v128, CommonNames.V128); + if (options.hasFeature(Feature.Simd)) { + this.registerWrapperClass(Type.v128, CommonNames.V128); + } if (options.hasFeature(Feature.ReferenceTypes)) { this.registerWrapperClass(Type.func, CommonNames.RefFunc); this.registerWrapperClass(Type.extern, CommonNames.RefExtern); @@ -1298,7 +1307,7 @@ export class Program extends DiagnosticEmitter { this.registerWrapperClass(Type.array, CommonNames.RefArray); this.registerWrapperClass(Type.i31, CommonNames.RefI31); } - if (options.hasFeature(Feature.Stringref)) { + if (options.hasFeature(Feature.Strings)) { this.registerWrapperClass(Type.string, CommonNames.RefString); } } @@ -1308,7 +1317,7 @@ export class Program extends DiagnosticEmitter { for (let i = 0, k = queuedExtends.length; i < k; ++i) { let thisPrototype = queuedExtends[i]; let extendsNode = assert(thisPrototype.extendsNode); // must be present if in queuedExtends - let baseElement = resolver.resolveTypeName(extendsNode.name, thisPrototype.parent); + let baseElement = resolver.resolveTypeName(extendsNode.name, null, thisPrototype.parent); if (!baseElement) continue; if (thisPrototype.kind == ElementKind.ClassPrototype) { if (baseElement.kind == ElementKind.ClassPrototype) { @@ -1405,7 +1414,7 @@ export class Program extends DiagnosticEmitter { let implementsNodes = assert(thisPrototype.implementsNodes); // must be present if in queuedImplements for (let j = 0, l = implementsNodes.length; j < l; ++j) { let implementsNode = implementsNodes[j]; - let interfaceElement = resolver.resolveTypeName(implementsNode.name, thisPrototype.parent); + let interfaceElement = resolver.resolveTypeName(implementsNode.name, null, thisPrototype.parent); if (!interfaceElement) continue; if (interfaceElement.kind == ElementKind.InterfacePrototype) { let interfacePrototype = interfaceElement; @@ -1555,6 +1564,16 @@ export class Program extends DiagnosticEmitter { ) { let thisMethod = thisMember; let baseMethod = baseMember; + let thisIsGeneric = thisMethod.is(CommonFlags.Generic); + let baseIsGeneric = baseMethod.is(CommonFlags.Generic); + if (thisIsGeneric != baseIsGeneric) { + this.errorRelated( + DiagnosticCode.Cannot_override_generic_method_0_with_a_non_generic_method_or_vice_versa, + thisMethod.identifierNode.range, baseMethod.identifierNode.range, + thisMethod.name + ); + return; + } if (!thisMethod.visibilityEquals(baseMethod)) { this.errorRelated( DiagnosticCode.Overload_signatures_must_all_be_public_private_or_protected, @@ -1972,7 +1991,7 @@ export class Program extends DiagnosticEmitter { case TypeKind.StringviewWTF16: case TypeKind.StringviewIter: { return this.checkFeatureEnabled(Feature.ReferenceTypes, reportNode) - && this.checkFeatureEnabled(Feature.Stringref, reportNode); + && this.checkFeatureEnabled(Feature.Strings, reportNode); } } let classReference = type.getClass(); @@ -2077,6 +2096,13 @@ export class Program extends DiagnosticEmitter { } case NodeKind.MethodDeclaration: { let methodDeclaration = memberDeclaration; + if (methodDeclaration.is(CommonFlags.Abstract) && methodDeclaration.is(CommonFlags.Generic)) { + this.error( + DiagnosticCode.An_interface_or_abstract_method_0_cannot_have_type_parameters, + methodDeclaration.name.range, + methodDeclaration.name.text + ); + } if (memberDeclaration.isAny(CommonFlags.Get | CommonFlags.Set)) { this.initializeProperty(methodDeclaration, element); } else { @@ -2651,6 +2677,13 @@ export class Program extends DiagnosticEmitter { } case NodeKind.MethodDeclaration: { let methodDeclaration = memberDeclaration; + if (methodDeclaration.is(CommonFlags.Generic)) { + this.error( + DiagnosticCode.An_interface_or_abstract_method_0_cannot_have_type_parameters, + methodDeclaration.name.range, + methodDeclaration.name.text + ); + } if (memberDeclaration.isAny(CommonFlags.Get | CommonFlags.Set)) { this.initializeProperty(methodDeclaration, element); } else { @@ -2671,6 +2704,10 @@ export class Program extends DiagnosticEmitter { /** Parent interface. */ parent: InterfacePrototype ): void { + let initializer = declaration.initializer; + if (initializer) { + this.error(DiagnosticCode.An_interface_property_cannot_have_an_initializer, initializer.range); + } let typeNode = declaration.type; if (!typeNode) typeNode = Node.createOmittedType(declaration.name.range.atEnd); this.initializeProperty( @@ -3084,6 +3121,13 @@ export abstract class Element { return (this.flags & vis) == (other.flags & vis); } + visibilityNoLessThan(other: Element): bool { + if (this.isPublic) return true; // public is a most frequent case + if (this.is(CommonFlags.Private)) return other.is(CommonFlags.Private); + if (this.is(CommonFlags.Protected)) return other.isAny(CommonFlags.Private | CommonFlags.Protected); + return assert(false); + } + /** Tests if this element is bound to a class. */ get isBound(): bool { let parent = this.parent; @@ -3372,7 +3416,7 @@ export class TypeDefinition extends TypedElement { constructor( /** Simple name. */ name: string, - /** Parent element, usually a file or namespace. */ + /** Parent element. */ parent: Element, /** Declaration reference. */ declaration: TypeDeclaration, @@ -3436,7 +3480,7 @@ export class Namespace extends DeclaredElement { /** An enum. */ export class Enum extends TypedElement { - + toStringFunctionName: string | null = null; /** Constructs a new enum. */ constructor( /** Simple name. */ @@ -3837,7 +3881,15 @@ export class Function extends TypedElement { flow.setLocalFlag(local.index, LocalFlags.Initialized); } } - registerConcreteElement(program, this); + if (program.instancesByName.has(this.internalName)) { + program.error( + DiagnosticCode.Duplicate_function_implementation, + prototype.declaration.name.range + ); + this.set(CommonFlags.Errored); + } else { + registerConcreteElement(program, this); + } } /** Gets the types of additional locals that are not parameters. */ @@ -4170,6 +4222,17 @@ export class Property extends VariableLikeElement { get isField(): bool { return this.prototype.isField; } + + checkVisibility(diag: DiagnosticEmitter): void { + let propertyGetter = this.getterInstance; + let propertySetter = this.setterInstance; + if (propertyGetter && propertySetter && !propertyGetter.visibilityNoLessThan(propertySetter)) { + diag.errorRelated( + DiagnosticCode.Get_accessor_0_must_be_at_least_as_accessible_as_the_setter, + propertyGetter.identifierNode.range, propertySetter.identifierNode.range, propertyGetter.identifierNode.text + ); + } + } } /** A resolved index signature. */ diff --git a/src/resolver.ts b/src/resolver.ts index ca05a3424b..9576a4768f 100644 --- a/src/resolver.ts +++ b/src/resolver.ts @@ -45,6 +45,7 @@ import { import { FunctionTypeNode, + TupleTypeNode, ParameterKind, TypeNode, NodeKind, @@ -103,7 +104,9 @@ import { } from "./tokenizer"; import { - BuiltinNames + BuiltinNames, + builtinTypes, + BuiltinTypesContext } from "./builtins"; /** Indicates whether errors are reported or not. */ @@ -142,6 +145,8 @@ export class Resolver extends DiagnosticEmitter { resolveType( /** The type to resolve. */ node: TypeNode, + /** The flow */ + flow: Flow | null, /** Contextual element. */ ctxElement: Element, /** Contextual types, i.e. `T`. */ @@ -160,21 +165,15 @@ export class Resolver extends DiagnosticEmitter { let resolved: Type | null = null; switch (node.kind) { case NodeKind.NamedType: { - resolved = this.resolveNamedType( - node, - ctxElement, - ctxTypes, - reportMode - ); + resolved = this.resolveNamedType(node, flow, ctxElement, ctxTypes, reportMode); break; } case NodeKind.FunctionType: { - resolved = this.resolveFunctionType( - node, - ctxElement, - ctxTypes, - reportMode - ); + resolved = this.resolveFunctionType(node, flow, ctxElement, ctxTypes, reportMode); + break; + } + case NodeKind.TupleType: { + resolved = this.resolveTupleType(node, flow, ctxElement, ctxTypes, reportMode); break; } default: assert(false); @@ -187,6 +186,8 @@ export class Resolver extends DiagnosticEmitter { private resolveNamedType( /** The type to resolve. */ node: NamedTypeNode, + /** The flow */ + flow: Flow | null, /** Contextual element. */ ctxElement: Element, /** Contextual types, i.e. `T`. */ @@ -225,7 +226,7 @@ export class Resolver extends DiagnosticEmitter { } // Look up in context - let element = this.resolveTypeName(nameNode, ctxElement, reportMode); + let element = this.resolveTypeName(nameNode, flow, ctxElement, reportMode); if (!element) return null; // Use shadow type if present (i.e. namespace sharing a type) @@ -264,6 +265,7 @@ export class Resolver extends DiagnosticEmitter { let instance = this.resolveClassInclTypeArguments( element, typeArgumentNodes, + flow, ctxElement, cloneMap(ctxTypes), // don't inherit node, @@ -304,11 +306,11 @@ export class Resolver extends DiagnosticEmitter { // Handle special built-in types if (isSimpleType) { let text = nameNode.identifier.text; - if (text == CommonNames.native) return this.resolveBuiltinNativeType(node, ctxElement, ctxTypes, reportMode); - if (text == CommonNames.indexof) return this.resolveBuiltinIndexofType(node, ctxElement, ctxTypes, reportMode); - if (text == CommonNames.valueof) return this.resolveBuiltinValueofType(node, ctxElement, ctxTypes, reportMode); - if (text == CommonNames.returnof) return this.resolveBuiltinReturnTypeType(node, ctxElement, ctxTypes, reportMode); - if (text == CommonNames.nonnull) return this.resolveBuiltinNotNullableType(node, ctxElement, ctxTypes, reportMode); + if (builtinTypes.has(text)) { + let fn = assert(builtinTypes.get(text)); + let ctx = new BuiltinTypesContext(this, node, ctxElement, ctxTypes, reportMode); + return fn(ctx); + } } // Resolve normally @@ -318,6 +320,7 @@ export class Resolver extends DiagnosticEmitter { typeArguments = this.resolveTypeArguments( typeParameterNodes, typeArgumentNodes, + flow, ctxElement, ctxTypes = cloneMap(ctxTypes), // update node, @@ -332,6 +335,7 @@ export class Resolver extends DiagnosticEmitter { } let type = this.resolveType( typeDefinition.typeNode, + flow, element, ctxTypes, reportMode @@ -361,6 +365,8 @@ export class Resolver extends DiagnosticEmitter { private resolveFunctionType( /** The type to resolve. */ node: FunctionTypeNode, + /** The flow */ + flow: Flow | null, /** Contextual element. */ ctxElement: Element, /** Contextual types, i.e. `T`. */ @@ -373,6 +379,7 @@ export class Resolver extends DiagnosticEmitter { if (explicitThisType) { thisType = this.resolveType( explicitThisType, + flow, ctxElement, ctxTypes, reportMode @@ -409,11 +416,21 @@ export class Resolver extends DiagnosticEmitter { } let parameterType = this.resolveType( parameterTypeNode, + flow, ctxElement, ctxTypes, reportMode ); if (!parameterType) return null; + if (parameterType == Type.void) { + if (reportMode == ReportMode.Report) { + this.error( + DiagnosticCode.Type_0_is_illegal_in_this_context, + parameterTypeNode.range, parameterType.toString() + ); + } + return null; + } parameterTypes[i] = parameterType; } let returnTypeNode = node.returnType; @@ -429,6 +446,7 @@ export class Resolver extends DiagnosticEmitter { } else { returnType = this.resolveType( returnTypeNode, + flow, ctxElement, ctxTypes, reportMode @@ -439,88 +457,12 @@ export class Resolver extends DiagnosticEmitter { return node.isNullable ? signature.type.asNullable() : signature.type; } - private resolveBuiltinNativeType( - /** The type to resolve. */ - node: NamedTypeNode, - /** Contextual element. */ - ctxElement: Element, - /** Contextual types, i.e. `T`. */ - ctxTypes: Map | null = null, - /** How to proceed with eventual diagnostics. */ - reportMode: ReportMode = ReportMode.Report - ): Type | null { - const typeArgumentNode = this.ensureOneTypeArgument(node, reportMode); - if (!typeArgumentNode) return null; - let typeArgument = this.resolveType(typeArgumentNode, ctxElement, ctxTypes, reportMode); - if (!typeArgument) return null; - switch (typeArgument.kind) { - case TypeKind.I8: - case TypeKind.I16: - case TypeKind.I32: return Type.i32; - case TypeKind.Isize: if (!this.program.options.isWasm64) return Type.i32; - case TypeKind.I64: return Type.i64; - case TypeKind.U8: - case TypeKind.U16: - case TypeKind.U32: - case TypeKind.Bool: return Type.u32; - case TypeKind.Usize: if (!this.program.options.isWasm64) return Type.u32; - case TypeKind.U64: return Type.u64; - case TypeKind.F32: return Type.f32; - case TypeKind.F64: return Type.f64; - case TypeKind.V128: return Type.v128; - case TypeKind.Void: return Type.void; - default: assert(false); - } - return null; - } - - private resolveBuiltinIndexofType( - /** The type to resolve. */ - node: NamedTypeNode, - /** Contextual element. */ - ctxElement: Element, - /** Contextual types, i.e. `T`. */ - ctxTypes: Map | null = null, - /** How to proceed with eventual diagnostics. */ - reportMode: ReportMode = ReportMode.Report - ): Type | null { - const typeArgumentNode = this.ensureOneTypeArgument(node, reportMode); - if (!typeArgumentNode) return null; - let typeArgument = this.resolveType(typeArgumentNode, ctxElement, ctxTypes, reportMode); - if (!typeArgument) return null; - let classReference = typeArgument.classReference; - if (!classReference) { - if (reportMode == ReportMode.Report) { - this.error( - DiagnosticCode.Index_signature_is_missing_in_type_0, - typeArgumentNode.range, typeArgument.toString() - ); - } - return null; - } - let overload = classReference.lookupOverload(OperatorKind.IndexedGet); - if (overload) { - let parameterTypes = overload.signature.parameterTypes; - if (overload.is(CommonFlags.Static)) { - assert(parameterTypes.length == 2); - return parameterTypes[1]; - } else { - assert(parameterTypes.length == 1); - return parameterTypes[0]; - } - } - if (reportMode == ReportMode.Report) { - this.error( - DiagnosticCode.Index_signature_is_missing_in_type_0, - typeArgumentNode.range, typeArgument.toString() - ); - } - return null; - } - - private resolveBuiltinValueofType( + /** Resolves a {@link TupleTypeNode}. */ + private resolveTupleType( /** The type to resolve. */ - node: NamedTypeNode, + node: TupleTypeNode, + /** The flow */ + flow: Flow | null, /** Contextual element. */ ctxElement: Element, /** Contextual types, i.e. `T`. */ @@ -528,44 +470,14 @@ export class Resolver extends DiagnosticEmitter { /** How to proceed with eventual diagnostics. */ reportMode: ReportMode = ReportMode.Report ): Type | null { - const typeArgumentNode = this.ensureOneTypeArgument(node, reportMode); - if (!typeArgumentNode) return null; - let typeArgument = this.resolveType(typeArgumentNode, ctxElement, ctxTypes, reportMode); - if (!typeArgument) return null; - let classReference = typeArgument.getClassOrWrapper(this.program); - if (classReference) { - let overload = classReference.lookupOverload(OperatorKind.IndexedGet); - if (overload) return overload.signature.returnType; + let elements = node.elements; + for (let i = 0, k = elements.length; i < k; ++i) { + if (!this.resolveType(elements[i], flow, ctxElement, ctxTypes, reportMode)) return null; } if (reportMode == ReportMode.Report) { this.error( - DiagnosticCode.Index_signature_is_missing_in_type_0, - typeArgumentNode.range, typeArgument.toString() - ); - } - return null; - } - - private resolveBuiltinReturnTypeType( - /** The type to resolve. */ - node: NamedTypeNode, - /** Contextual element. */ - ctxElement: Element, - /** Contextual types, i.e. `T`. */ - ctxTypes: Map | null = null, - /** How to proceed with eventualy diagnostics. */ - reportMode: ReportMode = ReportMode.Report - ): Type | null { - const typeArgumentNode = this.ensureOneTypeArgument(node, reportMode); - if (!typeArgumentNode) return null; - let typeArgument = this.resolveType(typeArgumentNode, ctxElement, ctxTypes, reportMode); - if (!typeArgument) return null; - let signatureReference = typeArgument.getSignature(); - if (signatureReference) return signatureReference.returnType; - if (reportMode == ReportMode.Report) { - this.error( - DiagnosticCode.Type_0_has_no_call_signatures, - typeArgumentNode.range, typeArgument.toString() + DiagnosticCode.Not_implemented_0, + node.range, "Tuple types" ); } return null; @@ -583,7 +495,7 @@ export class Resolver extends DiagnosticEmitter { ): Type | null { const typeArgumentNode = this.ensureOneTypeArgument(node, reportMode); if (!typeArgumentNode) return null; - let typeArgument = this.resolveType(typeArgumentNode, ctxElement, ctxTypes, reportMode); + let typeArgument = this.resolveType(typeArgumentNode, null, ctxElement, ctxTypes, reportMode); if (!typeArgument) return null; if (!typeArgument.isNullableReference) return typeArgument; return typeArgument.nonNullableType; @@ -593,12 +505,16 @@ export class Resolver extends DiagnosticEmitter { resolveTypeName( /** The type name to resolve. */ node: TypeName, + /** The flow */ + flow: Flow | null, /** Contextual element. */ ctxElement: Element, /** How to proceed with eventual diagnostics. */ reportMode: ReportMode = ReportMode.Report ): Element | null { - let element = ctxElement.lookup(node.identifier.text, true); + let element: Element | null = null; + if (flow) element = flow.lookupTypeAlias(node.identifier.text); + if (!element) element = ctxElement.lookup(node.identifier.text, true); if (!element) { if (reportMode == ReportMode.Report) { this.error( @@ -632,6 +548,8 @@ export class Resolver extends DiagnosticEmitter { typeParameters: TypeParameterNode[], /** Type argument nodes provided. */ typeArgumentNodes: TypeNode[] | null, + /** Flow */ + flow: Flow | null, /** Contextual element. */ ctxElement: Element, /** Contextual types, i.e. `T`. Updated in place with the new set of contextual types. */ @@ -641,9 +559,8 @@ export class Resolver extends DiagnosticEmitter { /** How to proceed with eventual diagnostics. */ reportMode: ReportMode = ReportMode.Report ): Type[] | null { - var - minParameterCount = 0, - maxParameterCount = 0; + let minParameterCount = 0; + let maxParameterCount = 0; for (let i = 0, k = typeParameters.length; i < k; ++i) { if (!typeParameters[i].defaultType) ++minParameterCount; ++maxParameterCount; @@ -672,12 +589,14 @@ export class Resolver extends DiagnosticEmitter { let type = i < argumentCount ? this.resolveType( // reports typeArgumentNodes![i], + flow, ctxElement, oldCtxTypes, // update reportMode ) : this.resolveType( // reports assert(typeParameters[i].defaultType), + flow, ctxElement, cloneMap(ctxTypes), // don't update reportMode @@ -722,109 +641,179 @@ export class Resolver extends DiagnosticEmitter { // infer generic call if type arguments have been omitted if (prototype.is(CommonFlags.Generic)) { - let contextualTypeArguments = cloneMap(ctxFlow.contextualTypeArguments); + let resolvedTypeArguments = this.inferGenericTypeArguments( + node, + prototype, + prototype.typeParameterNodes, + ctxFlow, + reportMode, + ); + if (!resolvedTypeArguments) { + return null; + } + return this.resolveFunction( + prototype, + resolvedTypeArguments, + cloneMap(ctxFlow.contextualTypeArguments), + reportMode + ); + } - // fill up contextual types with auto for each generic component - let typeParameterNodes = assert(prototype.typeParameterNodes); - let numTypeParameters = typeParameterNodes.length; - let typeParameterNames = new Set(); - for (let i = 0; i < numTypeParameters; ++i) { - let name = typeParameterNodes[i].name.text; - contextualTypeArguments.set(name, Type.auto); - typeParameterNames.add(name); - } - - let parameterNodes = prototype.functionTypeNode.parameters; - let numParameters = parameterNodes.length; - let argumentNodes = node.args; - let numArguments = argumentNodes.length; - - // infer types with generic components while updating contextual types - for (let i = 0; i < numParameters; ++i) { - let argumentExpression = i < numArguments - ? argumentNodes[i] - : parameterNodes[i].initializer; - if (!argumentExpression) { - // optional but not have initializer should be handled in the other place - if (parameterNodes[i].parameterKind == ParameterKind.Optional) { - continue; - } - // missing initializer -> too few arguments - if (reportMode == ReportMode.Report) { + // otherwise resolve the non-generic call as usual + return this.resolveFunction(prototype, null, new Map(), reportMode); + } + + private inferGenericTypeArguments( + node: Expression, + prototype: FunctionPrototype, + typeParameterNodes: TypeParameterNode[] | null, + ctxFlow: Flow, + reportMode: ReportMode = ReportMode.Report, + ): Type[] | null { + + if (!typeParameterNodes) { + return null; + } + + let contextualTypeArguments = cloneMap(ctxFlow.contextualTypeArguments); + + // fill up contextual types with auto for each generic component + let numTypeParameters = typeParameterNodes.length; + let typeParameterNames = new Set(); + for (let i = 0; i < numTypeParameters; ++i) { + let name = typeParameterNodes[i].name.text; + contextualTypeArguments.set(name, Type.auto); + typeParameterNames.add(name); + } + + let parameterNodes = prototype.functionTypeNode.parameters; + let numParameters = parameterNodes.length; + + let argumentNodes: Expression[]; + let argumentsRange: Range; + switch (node.kind) { + case NodeKind.Call: { + const expr = node as CallExpression; + argumentNodes = expr.args; + argumentsRange = expr.argumentsRange; + break; + } + case NodeKind.New: { + const expr = node as NewExpression; + argumentNodes = expr.args; + argumentsRange = expr.argumentsRange; + break; + } + default: { + assert(false); + return null; + } + } + + let numArguments = argumentNodes.length; + + // infer types with generic components while updating contextual types + for (let i = 0; i < numParameters; ++i) { + let argumentExpression = i < numArguments + ? argumentNodes[i] + : parameterNodes[i].initializer; + if (!argumentExpression) { + // optional but not have initializer should be handled in the other place + if (parameterNodes[i].parameterKind == ParameterKind.Optional) { + continue; + } + if (reportMode == ReportMode.Report) { + if (parameterNodes[i].parameterKind == ParameterKind.Rest) { + // rest params are optional, but one element is needed for type inference + this.error( + DiagnosticCode.Type_argument_expected, + argumentsRange.atEnd + ); + } else { + // missing initializer -> too few arguments this.error( DiagnosticCode.Expected_0_arguments_but_got_1, node.range, numParameters.toString(), numArguments.toString() ); } - return null; } - let typeNode = parameterNodes[i].type; - if (typeNode.hasGenericComponent(typeParameterNodes)) { - let type = this.resolveExpression(argumentExpression, ctxFlow, Type.auto, ReportMode.Swallow); - if (type) { - this.propagateInferredGenericTypes( - typeNode, - type, - prototype, - contextualTypeArguments, - typeParameterNames - ); - } + return null; + } + let typeNode = parameterNodes[i].type; + if (parameterNodes[i].parameterKind == ParameterKind.Rest) { + typeNode = ( typeNode).typeArguments![0]; + } + if (typeNode.hasGenericComponent(typeParameterNodes)) { + let type = this.resolveExpression(argumentExpression, ctxFlow, Type.auto, ReportMode.Swallow); + if (type) { + this.propagateInferredGenericTypes( + typeNode, + type, + prototype, + contextualTypeArguments, + typeParameterNames + ); } } + } - // apply concrete types to the generic function signature - let resolvedTypeArguments = new Array(numTypeParameters); - for (let i = 0; i < numTypeParameters; ++i) { - let typeParameterNode = typeParameterNodes[i]; - let name = typeParameterNode.name.text; - if (contextualTypeArguments.has(name)) { - let inferredType = assert(contextualTypeArguments.get(name)); - if (inferredType != Type.auto) { - resolvedTypeArguments[i] = inferredType; - continue; - } - let defaultType = typeParameterNode.defaultType; - if (defaultType) { - // Default parameters are resolved in context of the called function, not the calling function - let parent = prototype.parent; - let defaultTypeContextualTypeArguments: Map | null = null; - if (parent.kind == ElementKind.Class) { - defaultTypeContextualTypeArguments = (parent).contextualTypeArguments; - } else if (parent.kind == ElementKind.Function) { - defaultTypeContextualTypeArguments = (parent).contextualTypeArguments; - } - let resolvedDefaultType = this.resolveType( - defaultType, - prototype, - defaultTypeContextualTypeArguments, - reportMode - ); - if (!resolvedDefaultType) return null; - resolvedTypeArguments[i] = resolvedDefaultType; - continue; + // apply concrete types to the generic function signature + let resolvedTypeArguments = new Array(numTypeParameters); + for (let i = 0; i < numTypeParameters; ++i) { + let typeParameterNode = typeParameterNodes[i]; + let name = typeParameterNode.name.text; + if (contextualTypeArguments.has(name)) { + let inferredType = assert(contextualTypeArguments.get(name)); + if (inferredType != Type.auto) { + resolvedTypeArguments[i] = inferredType; + continue; + } + let defaultType = typeParameterNode.defaultType; + if (defaultType) { + // Default parameters are resolved in context of the called function, not the calling function + let parent = prototype.parent; + let defaultTypeContextualTypeArguments: Map | null = null; + if (parent.kind == ElementKind.Class) { + defaultTypeContextualTypeArguments = (parent).contextualTypeArguments; + } else if (parent.kind == ElementKind.Function) { + defaultTypeContextualTypeArguments = (parent).contextualTypeArguments; } - } - // unused template, e.g. `function test(): void {...}` called as `test()` - // invalid because the type is effectively unknown inside the function body - if (reportMode == ReportMode.Report) { - this.error( - DiagnosticCode.Type_argument_expected, - node.expression.range.atEnd + let resolvedDefaultType = this.resolveType( + defaultType, + null, + prototype, + defaultTypeContextualTypeArguments, + reportMode ); + if (!resolvedDefaultType) return null; + resolvedTypeArguments[i] = resolvedDefaultType; + continue; } - return null; } - return this.resolveFunction( - prototype, - resolvedTypeArguments, - cloneMap(ctxFlow.contextualTypeArguments), - reportMode - ); + // unused template, e.g. `function test(): void {...}` called as `test()` + // invalid because the type is effectively unknown inside the function body + if (reportMode == ReportMode.Report) { + let range: Range; + switch (node.kind) { + case NodeKind.Call: + range = (node).expression.range; + break; + case NodeKind.New: + range = (node).typeName.range; + break; + default: + assert(false); + return null; + } + this.error( + DiagnosticCode.Type_argument_expected, + range.atEnd + ); + } + return null; } - // otherwise resolve the non-generic call as usual - return this.resolveFunction(prototype, null, new Map(), reportMode); + return resolvedTypeArguments; } /** Updates contextual types with a possibly encapsulated inferred type. */ @@ -846,7 +835,7 @@ export class Resolver extends DiagnosticEmitter { if (typeArgumentNodes && typeArgumentNodes.length > 0) { // foo(bar: Array) let classReference = type.classReference; if (classReference) { - let classPrototype = this.resolveTypeName(namedTypeNode.name, ctxElement); + let classPrototype = this.resolveTypeName(namedTypeNode.name, null, ctxElement); if (!classPrototype || classPrototype.kind != ElementKind.ClassPrototype) return; if (classReference.prototype == classPrototype) { let typeArguments = classReference.typeArguments; @@ -1306,7 +1295,7 @@ export class Resolver extends DiagnosticEmitter { if (global.is(CommonFlags.Resolved)) return true; let typeNode = global.typeNode; let type = typeNode - ? this.resolveType(typeNode, global.parent, null, reportMode) + ? this.resolveType(typeNode, null, global.parent, null, reportMode) : this.resolveExpression( assert(global.initializerNode), global.file.startFunction.flow, @@ -1363,7 +1352,18 @@ export class Resolver extends DiagnosticEmitter { } case ElementKind.Property: { // someInstance.prop let propertyInstance = target; - let getterInstance = assert(propertyInstance.getterInstance); // must have a getter + let getterInstance = propertyInstance.getterInstance; + if (!getterInstance) { + // In TS, getters without setters return `undefined`. Since AS doesn't have + // undefined, we instead diagnose it at compile time, but this isn't + // compatible with TS. + let setterInstance = assert(propertyInstance.setterInstance); + this.errorRelated( + DiagnosticCode.Property_0_only_has_a_setter_and_is_missing_a_getter, + targetNode.range, setterInstance.declaration.range, propertyInstance.name + ); + return null; + } let type = getterInstance.signature.returnType; let classReference = type.getClassOrWrapper(this.program); if (!classReference) { @@ -1413,7 +1413,7 @@ export class Resolver extends DiagnosticEmitter { let shadowType = target.shadowType; if (shadowType) { if (!shadowType.is(CommonFlags.Resolved)) { - let resolvedType = this.resolveType(shadowType.typeNode, shadowType.parent, null, reportMode); + let resolvedType = this.resolveType(shadowType.typeNode, null, shadowType.parent, null, reportMode); if (resolvedType) shadowType.setType(resolvedType); } let classReference = shadowType.type.classReference; @@ -1440,8 +1440,10 @@ export class Resolver extends DiagnosticEmitter { case ElementKind.InterfacePrototype: case ElementKind.Class: case ElementKind.Interface: { + let classLikeTarget = target; + let findBase = false; do { - let member = target.getMember(propertyName); + let member = classLikeTarget.getMember(propertyName); if (member) { if (member.kind == ElementKind.PropertyPrototype) { let propertyInstance = this.resolveProperty(member, reportMode); @@ -1458,34 +1460,32 @@ export class Resolver extends DiagnosticEmitter { this.currentElementExpression = null; return member; // instance FIELD, static GLOBAL, FUNCTION_PROTOTYPE, PROPERTY... } - // traverse inherited static members on the base prototype if target is a class prototype - if ( - target.kind == ElementKind.ClassPrototype || - target.kind == ElementKind.InterfacePrototype - ) { - let classPrototype = target; - let basePrototype = classPrototype.basePrototype; - if (basePrototype) { - target = basePrototype; - } else { + findBase = false; + switch (classLikeTarget.kind) { + case ElementKind.ClassPrototype: + case ElementKind.InterfacePrototype: { + // traverse inherited static members on the base prototype if target is a class prototype + let classPrototype = classLikeTarget; + let basePrototype = classPrototype.basePrototype; + if (basePrototype) { + findBase = true; + classLikeTarget = basePrototype; + } break; } - // traverse inherited instance members on the base class if target is a class instance - } else if ( - target.kind == ElementKind.Class || - target.kind == ElementKind.Interface - ) { - let classInstance = target; - let baseInstance = classInstance.base; - if (baseInstance) { - target = baseInstance; - } else { + case ElementKind.Class: + case ElementKind.Interface: { + // traverse inherited instance members on the base class if target is a class instance + let classInstance = classLikeTarget; + let baseInstance = classInstance.base; + if (baseInstance) { + findBase = true; + classLikeTarget = baseInstance; + } break; } - } else { - break; } - } while (true); + } while (findBase); break; } default: { // enums or other namespace-like elements @@ -1697,6 +1697,7 @@ export class Resolver extends DiagnosticEmitter { case AssertionKind.Prefix: { let type = this.resolveType( assert(node.toType), // must be set if not NONNULL + null, ctxFlow.sourceFunction, ctxFlow.contextualTypeArguments, reportMode @@ -1753,6 +1754,7 @@ export class Resolver extends DiagnosticEmitter { case AssertionKind.Prefix: { return this.resolveType( assert(node.toType), + null, ctxFlow.sourceFunction, ctxFlow.contextualTypeArguments, reportMode @@ -2648,12 +2650,13 @@ export class Resolver extends DiagnosticEmitter { /** How to proceed with eventual diagnostics. */ reportMode: ReportMode = ReportMode.Report ): Element | null { - let element = this.resolveTypeName(node.typeName, ctxFlow.sourceFunction, reportMode); + let element = this.resolveTypeName(node.typeName, ctxFlow, ctxFlow.sourceFunction, reportMode); if (!element) return null; if (element.kind == ElementKind.ClassPrototype) { return this.resolveClassInclTypeArguments( element, node.typeArguments, + ctxFlow, ctxFlow.sourceFunction, cloneMap(ctxFlow.contextualTypeArguments), node, @@ -2733,7 +2736,7 @@ export class Resolver extends DiagnosticEmitter { const declaration = node.declaration; const signature = declaration.signature; const body = declaration.body; - let functionType = this.resolveType(signature, ctxFlow.sourceFunction, ctxFlow.contextualTypeArguments, reportMode); + let functionType = this.resolveType(signature, null, ctxFlow.sourceFunction, ctxFlow.contextualTypeArguments, reportMode); if ( functionType && declaration.arrowKind != ArrowKind.None && @@ -2832,6 +2835,7 @@ export class Resolver extends DiagnosticEmitter { if (explicitThisType) { thisType = this.resolveType( explicitThisType, + null, prototype.parent, // relative to function ctxTypes, reportMode @@ -2848,10 +2852,13 @@ export class Resolver extends DiagnosticEmitter { let numSignatureParameters = signatureParameters.length; let parameterTypes = new Array(numSignatureParameters); let requiredParameters = 0; + let hasRest = false; for (let i = 0; i < numSignatureParameters; ++i) { let parameterDeclaration = signatureParameters[i]; if (parameterDeclaration.parameterKind == ParameterKind.Default) { requiredParameters = i + 1; + } else if (parameterDeclaration.parameterKind == ParameterKind.Rest) { + hasRest = true; } let typeNode = parameterDeclaration.type; if (isTypeOmitted(typeNode)) { @@ -2865,6 +2872,7 @@ export class Resolver extends DiagnosticEmitter { } let parameterType = this.resolveType( typeNode, + null, prototype.parent, // relative to function ctxTypes, reportMode @@ -2901,6 +2909,7 @@ export class Resolver extends DiagnosticEmitter { } let type = this.resolveType( typeNode, + null, prototype.parent, // relative to function ctxTypes, reportMode @@ -2909,7 +2918,7 @@ export class Resolver extends DiagnosticEmitter { returnType = type; } - let signature = Signature.create(this.program, parameterTypes, returnType, thisType, requiredParameters); + let signature = Signature.create(this.program, parameterTypes, returnType, thisType, requiredParameters, hasRest); let nameInclTypeParameters = prototype.name; if (instanceKey.length) nameInclTypeParameters += `<${instanceKey}>`; @@ -2955,11 +2964,24 @@ export class Resolver extends DiagnosticEmitter { incompatibleOverride = false; } else { if (baseMember.kind == ElementKind.FunctionPrototype) { - // Possibly generic. Resolve with same type arguments to obtain the correct one. let basePrototype = baseMember; - let baseFunction = this.resolveFunction(basePrototype, typeArguments, new Map(), ReportMode.Swallow); - if (baseFunction && instance.signature.isAssignableTo(baseFunction.signature, true)) { - incompatibleOverride = false; + let baseTypeParameterNodes = basePrototype.typeParameterNodes; + let baseIsGeneric = baseTypeParameterNodes != null && baseTypeParameterNodes.length > 0; + let instanceIsGeneric = typeArguments != null && typeArguments.length > 0; + if (baseIsGeneric != instanceIsGeneric) { + // Cannot mix generic and non-generic functions in an override chain + this.errorRelated( + DiagnosticCode.Cannot_override_generic_method_0_with_a_non_generic_method_or_vice_versa, + instance.identifierAndSignatureRange, baseMember.identifierAndSignatureRange, + methodOrPropertyName + ); + incompatibleOverride = false; // already reported + } else { + // Possibly generic. Resolve with same type arguments to obtain the correct one. + let baseFunction = this.resolveFunction(basePrototype, typeArguments, new Map(), ReportMode.Swallow); + if (baseFunction && instance.signature.isAssignableTo(baseFunction.signature, true)) { + incompatibleOverride = false; + } } } } @@ -3015,6 +3037,7 @@ export class Resolver extends DiagnosticEmitter { resolvedTypeArguments = this.resolveTypeArguments( // reports assert(prototype.typeParameterNodes), typeArgumentNodes, + null, ctxElement, ctxTypes, // update reportNode, @@ -3084,7 +3107,16 @@ export class Resolver extends DiagnosticEmitter { let boundPrototype = classInstance.getMember(unboundOverridePrototype.name); if (boundPrototype) { // might have errored earlier and wasn't added assert(boundPrototype.kind == ElementKind.FunctionPrototype); - overrideInstance = this.resolveFunction(boundPrototype, instance.typeArguments); + let boundFuncPrototype = boundPrototype; + // Only resolve the override when the generic-ness matches the base method. + // - generic child → non-generic base: skip; vtable dispatch site has no type + // arguments to forward to the monomorphized child. + // - generic child → generic base: OK; type args come from the base call site. + // - non-generic child → non-generic base: OK; plain vtable override. + // - non-generic child → generic base: skip; mismatched generic-ness. + if (boundFuncPrototype.is(CommonFlags.Generic) == instance.is(CommonFlags.Generic)) { + overrideInstance = this.resolveFunction(boundFuncPrototype, instance.typeArguments); + } } } if (overrideInstance) overrides.add(overrideInstance); @@ -3163,6 +3195,7 @@ export class Resolver extends DiagnosticEmitter { let base = this.resolveClassInclTypeArguments( basePrototype, extendsNode.typeArguments, + null, prototype.parent, // relative to derived class cloneMap(ctxTypes), // don't inherit extendsNode, @@ -3203,6 +3236,7 @@ export class Resolver extends DiagnosticEmitter { let iface = this.resolveClassInclTypeArguments( interfacePrototype, implementsNode.typeArguments, + null, prototype.parent, cloneMap(ctxTypes), implementsNode, @@ -3384,7 +3418,6 @@ export class Resolver extends DiagnosticEmitter { // Resolve instance members let prototype = instance.prototype; let instanceMemberPrototypes = prototype.instanceMembers; - let properties = new Array(); if (instanceMemberPrototypes) { // TODO: for (let member of instanceMemberPrototypes.values()) { for (let _values = Map_values(instanceMemberPrototypes), i = 0, k = _values.length; i < k; ++i) { @@ -3458,32 +3491,15 @@ export class Resolver extends DiagnosticEmitter { } default: assert(false); } - if (!member.is(CommonFlags.Abstract)) { + if (!member.is(CommonFlags.Abstract) && !member.is(CommonFlags.Generic)) { + // A generic method cannot satisfy a non-generic interface/abstract + // requirement: interface methods cannot be generic (AS241), and + // virtual dispatch cannot supply type arguments for monomorphization. unimplemented.delete(memberName); } } } - // Check that property getters and setters match - for (let i = 0, k = properties.length; i < k; ++i) { - let property = properties[i]; - let propertyGetter = property.getterInstance; - if (!propertyGetter) { - this.error( - DiagnosticCode.Property_0_only_has_a_setter_and_is_missing_a_getter, - property.identifierNode.range, property.name - ); - } else { - let propertySetter = property.setterInstance; - if (propertySetter && !propertyGetter.visibilityEquals(propertySetter)) { - this.errorRelated( - DiagnosticCode.Getter_and_setter_accessors_do_not_agree_in_visibility, - propertyGetter.identifierNode.range, propertySetter.identifierNode.range - ); - } - } - } - if (instance.kind != ElementKind.Interface) { // Check that all required members are implemented @@ -3620,6 +3636,8 @@ export class Resolver extends DiagnosticEmitter { prototype: ClassPrototype, /** Type arguments provided to be resolved. */ typeArgumentNodes: TypeNode[] | null, + /** Flow of {@link typeArgumentNodes} */ + flow: Flow | null, /** Contextual element. */ ctxElement: Element, /** Contextual types, i.e. `T`. */ @@ -3633,14 +3651,34 @@ export class Resolver extends DiagnosticEmitter { // Resolve type arguments if generic if (prototype.is(CommonFlags.Generic)) { - resolvedTypeArguments = this.resolveTypeArguments( // reports - assert(prototype.typeParameterNodes), // must be present if generic - typeArgumentNodes, - ctxElement, - ctxTypes, // update - reportNode, - reportMode - ); + + // find the constructor prototype, which may be on a base class + let constructorPrototype: FunctionPrototype | null = null; + for (let p: ClassPrototype | null = prototype; p && !constructorPrototype; p = p.basePrototype) { + constructorPrototype = p.constructorPrototype; + } + + // if no type arguments are provided, try to infer them from the constructor call + if (!typeArgumentNodes && constructorPrototype && flow && ctxTypes.size == 0) { + resolvedTypeArguments = this.inferGenericTypeArguments( + reportNode as NewExpression, + constructorPrototype, + prototype.typeParameterNodes, + flow, + ); + } else { + // resolve them from the provided type argument nodes + resolvedTypeArguments = this.resolveTypeArguments( // reports + assert(prototype.typeParameterNodes), // must be present if generic + typeArgumentNodes, + flow, + ctxElement, + ctxTypes, // update + reportNode, + reportMode + ); + } + if (!resolvedTypeArguments) return null; // Otherwise make sure that no type arguments have been specified @@ -3707,10 +3745,11 @@ export class Resolver extends DiagnosticEmitter { } } } + instance.checkVisibility(this); return instance; } - private ensureOneTypeArgument( + ensureOneTypeArgument( /** The type to resolve. */ node: NamedTypeNode, /** How to proceed with eventual diagnostics. */ diff --git a/src/tokenizer.ts b/src/tokenizer.ts index a4bf9e9aa4..08a9e10dec 100644 --- a/src/tokenizer.ts +++ b/src/tokenizer.ts @@ -463,9 +463,11 @@ export class Tokenizer extends DiagnosticEmitter { end: i32 = 0; pos: i32 = 0; + // @ts-expect-error token: Token = -1; tokenPos: i32 = 0; + // @ts-expect-error nextToken: Token = -1; nextTokenPos: i32 = 0; nextTokenOnNewLine: OnNewLine = OnNewLine.Unknown; @@ -1055,6 +1057,7 @@ export class Tokenizer extends DiagnosticEmitter { } clearNextToken(): void { + // @ts-expect-error this.nextToken = -1; this.nextTokenPos = 0; this.nextTokenOnNewLine = OnNewLine.Unknown; diff --git a/src/tsconfig.json b/src/tsconfig.json index a6acaae80a..f4dbff1903 100644 --- a/src/tsconfig.json +++ b/src/tsconfig.json @@ -2,6 +2,7 @@ "extends": "../std/portable.json", "compilerOptions": { "target": "esnext", + "rootDir": "..", "outDir": "../build", "allowJs": false, "sourceMap": true, diff --git a/src/types.ts b/src/types.ts index f137ddb5ba..6a07f6fbc8 100644 --- a/src/types.ts +++ b/src/types.ts @@ -10,7 +10,9 @@ import { import { Class, Program, - DecoratorFlags + DecoratorFlags, + OperatorKind, + Function } from "./program"; import { @@ -320,6 +322,14 @@ export class Type { return null; } + lookupOverload(kind: OperatorKind, program: Program): Function | null { + let classReference = this.getClassOrWrapper(program); + if (classReference) { + return classReference.lookupOverload(kind); + } + return null; + } + /** Gets the underlying function signature of this type, if any. */ getSignature(): Signature | null { return this.isInternalReference @@ -643,6 +653,9 @@ export class Type { } } } + if (this == Type.auto) { + return "auto"; + } return this.kindToString(); } @@ -689,15 +702,6 @@ export class Type { case TypeKind.String: { return binaryen._BinaryenTypeFromHeapType(HeapTypeRef.String, this.is(TypeFlags.Nullable)); } - case TypeKind.StringviewWTF8: { - return binaryen._BinaryenTypeFromHeapType(HeapTypeRef.StringviewWTF8, this.is(TypeFlags.Nullable)); - } - case TypeKind.StringviewWTF16: { - return binaryen._BinaryenTypeFromHeapType(HeapTypeRef.StringviewWTF16, this.is(TypeFlags.Nullable)); - } - case TypeKind.StringviewIter: { - return binaryen._BinaryenTypeFromHeapType(HeapTypeRef.StringviewIter, this.is(TypeFlags.Nullable)); - } case TypeKind.Void: return TypeRef.None; } // TODO: not used yet diff --git a/src/util/math.ts b/src/util/math.ts index 25759f35d1..56655e921c 100644 --- a/src/util/math.ts +++ b/src/util/math.ts @@ -11,16 +11,10 @@ export function isPowerOf2(x: i32): bool { export function accuratePow64(x: f64, y: f64): f64 { if (!ASC_TARGET) { // ASC_TARGET == JS // Engines like V8, WebKit and SpiderMonkey uses powi fast path if exponent is integer - // This speculative optimization leads to loose precisions like 10 ** 208 != 1e208 - // or/and 10 ** -5 != 1e-5 anymore. For avoid this behaviour we are forcing exponent - // to fractional form and compensate this afterwards. - if (isFinite(y) && Math.abs(y) >= 2 && Math.trunc(y) == y) { - if (y < 0) { - return Math.pow(x, y + 0.5) / Math.pow(x, 0.5); - } else { - return Math.pow(x, y - 0.5) * Math.pow(x, 0.5); - } - } + // This speculative optimization leads to loose precisions like 10 ** -5 != 1e-5 anymore + // and introduces inconsistencies between different engines and versions + // For avoid this behavior we using bootstrap f64_pow function. + return f64_pow(x, y); } return Math.pow(x, y); } diff --git a/src/util/terminal.ts b/src/util/terminal.ts index c5a507bc9d..44c2cc1aff 100644 --- a/src/util/terminal.ts +++ b/src/util/terminal.ts @@ -32,7 +32,7 @@ export function isColorsEnabled(): bool { /** Sets whether terminal colors are enabled or not. */ export function setColorsEnabled(isEnabled: bool): bool { - let wasEnabled = isEnabled; + let wasEnabled = colorsEnabled; colorsEnabled = isEnabled; return wasEnabled; } diff --git a/src/util/text.ts b/src/util/text.ts index d94f5d2f07..49aca60d20 100644 --- a/src/util/text.ts +++ b/src/util/text.ts @@ -276,7 +276,7 @@ export function isIdentifierPart(cp: i32): bool { && lookupInUnicodeMap(cp, unicodeIdentifierPart); } -/** Tests if the specified string is a valid identifer. */ +/** Tests if the specified string is a valid identifier. */ export function isIdentifier(str: string): bool { let len = str.length; if (!len) return false; @@ -291,7 +291,7 @@ export function isIdentifier(str: string): bool { return true; } -/** Unicode 14.0 ID_Start/Other_ID_Start ranges */ +/** Unicode 17.0 ID_Start/Other_ID_Start ranges */ const unicodeIdentifierStart: i32[] = [/* | from ... to | from ... to | from ... to | from ... to |*/ 170 , 170 , 181 , 181 , 186 , 186 , 192 , 214 , @@ -306,7 +306,7 @@ const unicodeIdentifierStart: i32[] = [/* 1869 , 1957 , 1969 , 1969 , 1994 , 2026 , 2036 , 2037 , 2042 , 2042 , 2048 , 2069 , 2074 , 2074 , 2084 , 2084 , 2088 , 2088 , 2112 , 2136 , 2144 , 2154 , 2160 , 2183 , - 2185 , 2190 , 2208 , 2249 , 2308 , 2361 , 2365 , 2365 , + 2185 , 2191 , 2208 , 2249 , 2308 , 2361 , 2365 , 2365 , 2384 , 2384 , 2392 , 2401 , 2417 , 2432 , 2437 , 2444 , 2447 , 2448 , 2451 , 2472 , 2474 , 2480 , 2482 , 2482 , 2486 , 2489 , 2493 , 2493 , 2510 , 2510 , 2524 , 2525 , @@ -322,9 +322,9 @@ const unicodeIdentifierStart: i32[] = [/* 2962 , 2965 , 2969 , 2970 , 2972 , 2972 , 2974 , 2975 , 2979 , 2980 , 2984 , 2986 , 2990 , 3001 , 3024 , 3024 , 3077 , 3084 , 3086 , 3088 , 3090 , 3112 , 3114 , 3129 , - 3133 , 3133 , 3160 , 3162 , 3165 , 3165 , 3168 , 3169 , + 3133 , 3133 , 3160 , 3162 , 3164 , 3165 , 3168 , 3169 , 3200 , 3200 , 3205 , 3212 , 3214 , 3216 , 3218 , 3240 , - 3242 , 3251 , 3253 , 3257 , 3261 , 3261 , 3293 , 3294 , + 3242 , 3251 , 3253 , 3257 , 3261 , 3261 , 3292 , 3294 , 3296 , 3297 , 3313 , 3314 , 3332 , 3340 , 3342 , 3344 , 3346 , 3386 , 3389 , 3389 , 3406 , 3406 , 3412 , 3414 , 3423 , 3425 , 3450 , 3455 , 3461 , 3478 , 3482 , 3505 , @@ -349,7 +349,7 @@ const unicodeIdentifierStart: i32[] = [/* 6512 , 6516 , 6528 , 6571 , 6576 , 6601 , 6656 , 6678 , 6688 , 6740 , 6823 , 6823 , 6917 , 6963 , 6981 , 6988 , 7043 , 7072 , 7086 , 7087 , 7098 , 7141 , 7168 , 7203 , - 7245 , 7247 , 7258 , 7293 , 7296 , 7304 , 7312 , 7354 , + 7245 , 7247 , 7258 , 7293 , 7296 , 7306 , 7312 , 7354 , 7357 , 7359 , 7401 , 7404 , 7406 , 7411 , 7413 , 7414 , 7418 , 7418 , 7424 , 7615 , 7680 , 7957 , 7960 , 7965 , 7968 , 8005 , 8008 , 8013 , 8016 , 8023 , 8025 , 8025 , @@ -370,70 +370,76 @@ const unicodeIdentifierStart: i32[] = [/* 12704 , 12735 , 12784 , 12799 , 13312 , 19903 , 19968 , 42124 , 42192 , 42237 , 42240 , 42508 , 42512 , 42527 , 42538 , 42539 , 42560 , 42606 , 42623 , 42653 , 42656 , 42735 , 42775 , 42783 , - 42786 , 42888 , 42891 , 42954 , 42960 , 42961 , 42963 , 42963 , - 42965 , 42969 , 42994 , 43009 , 43011 , 43013 , 43015 , 43018 , - 43020 , 43042 , 43072 , 43123 , 43138 , 43187 , 43250 , 43255 , - 43259 , 43259 , 43261 , 43262 , 43274 , 43301 , 43312 , 43334 , - 43360 , 43388 , 43396 , 43442 , 43471 , 43471 , 43488 , 43492 , - 43494 , 43503 , 43514 , 43518 , 43520 , 43560 , 43584 , 43586 , - 43588 , 43595 , 43616 , 43638 , 43642 , 43642 , 43646 , 43695 , - 43697 , 43697 , 43701 , 43702 , 43705 , 43709 , 43712 , 43712 , - 43714 , 43714 , 43739 , 43741 , 43744 , 43754 , 43762 , 43764 , - 43777 , 43782 , 43785 , 43790 , 43793 , 43798 , 43808 , 43814 , - 43816 , 43822 , 43824 , 43866 , 43868 , 43881 , 43888 , 44002 , - 44032 , 55203 , 55216 , 55238 , 55243 , 55291 , 63744 , 64109 , - 64112 , 64217 , 64256 , 64262 , 64275 , 64279 , 64285 , 64285 , - 64287 , 64296 , 64298 , 64310 , 64312 , 64316 , 64318 , 64318 , - 64320 , 64321 , 64323 , 64324 , 64326 , 64433 , 64467 , 64829 , - 64848 , 64911 , 64914 , 64967 , 65008 , 65019 , 65136 , 65140 , - 65142 , 65276 , 65313 , 65338 , 65345 , 65370 , 65382 , 65470 , - 65474 , 65479 , 65482 , 65487 , 65490 , 65495 , 65498 , 65500 , - 65536 , 65547 , 65549 , 65574 , 65576 , 65594 , 65596 , 65597 , - 65599 , 65613 , 65616 , 65629 , 65664 , 65786 , 65856 , 65908 , - 66176 , 66204 , 66208 , 66256 , 66304 , 66335 , 66349 , 66378 , - 66384 , 66421 , 66432 , 66461 , 66464 , 66499 , 66504 , 66511 , - 66513 , 66517 , 66560 , 66717 , 66736 , 66771 , 66776 , 66811 , - 66816 , 66855 , 66864 , 66915 , 66928 , 66938 , 66940 , 66954 , - 66956 , 66962 , 66964 , 66965 , 66967 , 66977 , 66979 , 66993 , - 66995 , 67001 , 67003 , 67004 , 67072 , 67382 , 67392 , 67413 , - 67424 , 67431 , 67456 , 67461 , 67463 , 67504 , 67506 , 67514 , - 67584 , 67589 , 67592 , 67592 , 67594 , 67637 , 67639 , 67640 , - 67644 , 67644 , 67647 , 67669 , 67680 , 67702 , 67712 , 67742 , - 67808 , 67826 , 67828 , 67829 , 67840 , 67861 , 67872 , 67897 , - 67968 , 68023 , 68030 , 68031 , 68096 , 68096 , 68112 , 68115 , - 68117 , 68119 , 68121 , 68149 , 68192 , 68220 , 68224 , 68252 , - 68288 , 68295 , 68297 , 68324 , 68352 , 68405 , 68416 , 68437 , - 68448 , 68466 , 68480 , 68497 , 68608 , 68680 , 68736 , 68786 , - 68800 , 68850 , 68864 , 68899 , 69248 , 69289 , 69296 , 69297 , - 69376 , 69404 , 69415 , 69415 , 69424 , 69445 , 69488 , 69505 , - 69552 , 69572 , 69600 , 69622 , 69635 , 69687 , 69745 , 69746 , - 69749 , 69749 , 69763 , 69807 , 69840 , 69864 , 69891 , 69926 , - 69956 , 69956 , 69959 , 69959 , 69968 , 70002 , 70006 , 70006 , - 70019 , 70066 , 70081 , 70084 , 70106 , 70106 , 70108 , 70108 , - 70144 , 70161 , 70163 , 70187 , 70272 , 70278 , 70280 , 70280 , - 70282 , 70285 , 70287 , 70301 , 70303 , 70312 , 70320 , 70366 , - 70405 , 70412 , 70415 , 70416 , 70419 , 70440 , 70442 , 70448 , - 70450 , 70451 , 70453 , 70457 , 70461 , 70461 , 70480 , 70480 , - 70493 , 70497 , 70656 , 70708 , 70727 , 70730 , 70751 , 70753 , - 70784 , 70831 , 70852 , 70853 , 70855 , 70855 , 71040 , 71086 , - 71128 , 71131 , 71168 , 71215 , 71236 , 71236 , 71296 , 71338 , - 71352 , 71352 , 71424 , 71450 , 71488 , 71494 , 71680 , 71723 , - 71840 , 71903 , 71935 , 71942 , 71945 , 71945 , 71948 , 71955 , - 71957 , 71958 , 71960 , 71983 , 71999 , 71999 , 72001 , 72001 , - 72096 , 72103 , 72106 , 72144 , 72161 , 72161 , 72163 , 72163 , - 72192 , 72192 , 72203 , 72242 , 72250 , 72250 , 72272 , 72272 , - 72284 , 72329 , 72349 , 72349 , 72368 , 72440 , 72704 , 72712 , - 72714 , 72750 , 72768 , 72768 , 72818 , 72847 , 72960 , 72966 , - 72968 , 72969 , 72971 , 73008 , 73030 , 73030 , 73056 , 73061 , - 73063 , 73064 , 73066 , 73097 , 73112 , 73112 , 73440 , 73458 , - 73648 , 73648 , 73728 , 74649 , 74752 , 74862 , 74880 , 75075 , - 77712 , 77808 , 77824 , 78894 , 82944 , 83526 , 92160 , 92728 , - 92736 , 92766 , 92784 , 92862 , 92880 , 92909 , 92928 , 92975 , - 92992 , 92995 , 93027 , 93047 , 93053 , 93071 , 93760 , 93823 , - 93952 , 94026 , 94032 , 94032 , 94099 , 94111 , 94176 , 94177 , - 94179 , 94179 , 94208 , 100343, 100352, 101589, 101632, 101640, - 110576, 110579, 110581, 110587, 110589, 110590, 110592, 110882, - 110928, 110930, 110948, 110951, 110960, 111355, 113664, 113770, + 42786 , 42888 , 42891 , 42972 , 42993 , 43009 , 43011 , 43013 , + 43015 , 43018 , 43020 , 43042 , 43072 , 43123 , 43138 , 43187 , + 43250 , 43255 , 43259 , 43259 , 43261 , 43262 , 43274 , 43301 , + 43312 , 43334 , 43360 , 43388 , 43396 , 43442 , 43471 , 43471 , + 43488 , 43492 , 43494 , 43503 , 43514 , 43518 , 43520 , 43560 , + 43584 , 43586 , 43588 , 43595 , 43616 , 43638 , 43642 , 43642 , + 43646 , 43695 , 43697 , 43697 , 43701 , 43702 , 43705 , 43709 , + 43712 , 43712 , 43714 , 43714 , 43739 , 43741 , 43744 , 43754 , + 43762 , 43764 , 43777 , 43782 , 43785 , 43790 , 43793 , 43798 , + 43808 , 43814 , 43816 , 43822 , 43824 , 43866 , 43868 , 43881 , + 43888 , 44002 , 44032 , 55203 , 55216 , 55238 , 55243 , 55291 , + 63744 , 64109 , 64112 , 64217 , 64256 , 64262 , 64275 , 64279 , + 64285 , 64285 , 64287 , 64296 , 64298 , 64310 , 64312 , 64316 , + 64318 , 64318 , 64320 , 64321 , 64323 , 64324 , 64326 , 64433 , + 64467 , 64829 , 64848 , 64911 , 64914 , 64967 , 65008 , 65019 , + 65136 , 65140 , 65142 , 65276 , 65313 , 65338 , 65345 , 65370 , + 65382 , 65470 , 65474 , 65479 , 65482 , 65487 , 65490 , 65495 , + 65498 , 65500 , 65536 , 65547 , 65549 , 65574 , 65576 , 65594 , + 65596 , 65597 , 65599 , 65613 , 65616 , 65629 , 65664 , 65786 , + 65856 , 65908 , 66176 , 66204 , 66208 , 66256 , 66304 , 66335 , + 66349 , 66378 , 66384 , 66421 , 66432 , 66461 , 66464 , 66499 , + 66504 , 66511 , 66513 , 66517 , 66560 , 66717 , 66736 , 66771 , + 66776 , 66811 , 66816 , 66855 , 66864 , 66915 , 66928 , 66938 , + 66940 , 66954 , 66956 , 66962 , 66964 , 66965 , 66967 , 66977 , + 66979 , 66993 , 66995 , 67001 , 67003 , 67004 , 67008 , 67059 , + 67072 , 67382 , 67392 , 67413 , 67424 , 67431 , 67456 , 67461 , + 67463 , 67504 , 67506 , 67514 , 67584 , 67589 , 67592 , 67592 , + 67594 , 67637 , 67639 , 67640 , 67644 , 67644 , 67647 , 67669 , + 67680 , 67702 , 67712 , 67742 , 67808 , 67826 , 67828 , 67829 , + 67840 , 67861 , 67872 , 67897 , 67904 , 67929 , 67968 , 68023 , + 68030 , 68031 , 68096 , 68096 , 68112 , 68115 , 68117 , 68119 , + 68121 , 68149 , 68192 , 68220 , 68224 , 68252 , 68288 , 68295 , + 68297 , 68324 , 68352 , 68405 , 68416 , 68437 , 68448 , 68466 , + 68480 , 68497 , 68608 , 68680 , 68736 , 68786 , 68800 , 68850 , + 68864 , 68899 , 68938 , 68965 , 68975 , 68997 , 69248 , 69289 , + 69296 , 69297 , 69314 , 69319 , 69376 , 69404 , 69415 , 69415 , + 69424 , 69445 , 69488 , 69505 , 69552 , 69572 , 69600 , 69622 , + 69635 , 69687 , 69745 , 69746 , 69749 , 69749 , 69763 , 69807 , + 69840 , 69864 , 69891 , 69926 , 69956 , 69956 , 69959 , 69959 , + 69968 , 70002 , 70006 , 70006 , 70019 , 70066 , 70081 , 70084 , + 70106 , 70106 , 70108 , 70108 , 70144 , 70161 , 70163 , 70187 , + 70207 , 70208 , 70272 , 70278 , 70280 , 70280 , 70282 , 70285 , + 70287 , 70301 , 70303 , 70312 , 70320 , 70366 , 70405 , 70412 , + 70415 , 70416 , 70419 , 70440 , 70442 , 70448 , 70450 , 70451 , + 70453 , 70457 , 70461 , 70461 , 70480 , 70480 , 70493 , 70497 , + 70528 , 70537 , 70539 , 70539 , 70542 , 70542 , 70544 , 70581 , + 70583 , 70583 , 70609 , 70609 , 70611 , 70611 , 70656 , 70708 , + 70727 , 70730 , 70751 , 70753 , 70784 , 70831 , 70852 , 70853 , + 70855 , 70855 , 71040 , 71086 , 71128 , 71131 , 71168 , 71215 , + 71236 , 71236 , 71296 , 71338 , 71352 , 71352 , 71424 , 71450 , + 71488 , 71494 , 71680 , 71723 , 71840 , 71903 , 71935 , 71942 , + 71945 , 71945 , 71948 , 71955 , 71957 , 71958 , 71960 , 71983 , + 71999 , 71999 , 72001 , 72001 , 72096 , 72103 , 72106 , 72144 , + 72161 , 72161 , 72163 , 72163 , 72192 , 72192 , 72203 , 72242 , + 72250 , 72250 , 72272 , 72272 , 72284 , 72329 , 72349 , 72349 , + 72368 , 72440 , 72640 , 72672 , 72704 , 72712 , 72714 , 72750 , + 72768 , 72768 , 72818 , 72847 , 72960 , 72966 , 72968 , 72969 , + 72971 , 73008 , 73030 , 73030 , 73056 , 73061 , 73063 , 73064 , + 73066 , 73097 , 73112 , 73112 , 73136 , 73179 , 73440 , 73458 , + 73474 , 73474 , 73476 , 73488 , 73490 , 73523 , 73648 , 73648 , + 73728 , 74649 , 74752 , 74862 , 74880 , 75075 , 77712 , 77808 , + 77824 , 78895 , 78913 , 78918 , 78944 , 82938 , 82944 , 83526 , + 90368 , 90397 , 92160 , 92728 , 92736 , 92766 , 92784 , 92862 , + 92880 , 92909 , 92928 , 92975 , 92992 , 92995 , 93027 , 93047 , + 93053 , 93071 , 93504 , 93548 , 93760 , 93823 , 93856 , 93880 , + 93883 , 93907 , 93952 , 94026 , 94032 , 94032 , 94099 , 94111 , + 94176 , 94177 , 94179 , 94179 , 94194 , 94198 , 94208 , 101589, + 101631, 101662, 101760, 101874, 110576, 110579, 110581, 110587, + 110589, 110590, 110592, 110882, 110898, 110898, 110928, 110930, + 110933, 110933, 110948, 110951, 110960, 111355, 113664, 113770, 113776, 113788, 113792, 113800, 113808, 113817, 119808, 119892, 119894, 119964, 119966, 119967, 119970, 119970, 119973, 119974, 119977, 119980, 119982, 119993, 119995, 119995, 119997, 120003, @@ -442,25 +448,28 @@ const unicodeIdentifierStart: i32[] = [/* 120138, 120144, 120146, 120485, 120488, 120512, 120514, 120538, 120540, 120570, 120572, 120596, 120598, 120628, 120630, 120654, 120656, 120686, 120688, 120712, 120714, 120744, 120746, 120770, - 120772, 120779, 122624, 122654, 123136, 123180, 123191, 123197, - 123214, 123214, 123536, 123565, 123584, 123627, 124896, 124902, - 124904, 124907, 124909, 124910, 124912, 124926, 124928, 125124, - 125184, 125251, 125259, 125259, 126464, 126467, 126469, 126495, - 126497, 126498, 126500, 126500, 126503, 126503, 126505, 126514, - 126516, 126519, 126521, 126521, 126523, 126523, 126530, 126530, - 126535, 126535, 126537, 126537, 126539, 126539, 126541, 126543, - 126545, 126546, 126548, 126548, 126551, 126551, 126553, 126553, - 126555, 126555, 126557, 126557, 126559, 126559, 126561, 126562, - 126564, 126564, 126567, 126570, 126572, 126578, 126580, 126583, - 126585, 126588, 126590, 126590, 126592, 126601, 126603, 126619, - 126625, 126627, 126629, 126633, 126635, 126651, 131072, 173791, - 173824, 177976, 177984, 178205, 178208, 183969, 183984, 191456, - 194560, 195101, 196608, 201546, + 120772, 120779, 122624, 122654, 122661, 122666, 122928, 122989, + 123136, 123180, 123191, 123197, 123214, 123214, 123536, 123565, + 123584, 123627, 124112, 124139, 124368, 124397, 124400, 124400, + 124608, 124638, 124640, 124642, 124644, 124645, 124647, 124653, + 124656, 124660, 124670, 124671, 124896, 124902, 124904, 124907, + 124909, 124910, 124912, 124926, 124928, 125124, 125184, 125251, + 125259, 125259, 126464, 126467, 126469, 126495, 126497, 126498, + 126500, 126500, 126503, 126503, 126505, 126514, 126516, 126519, + 126521, 126521, 126523, 126523, 126530, 126530, 126535, 126535, + 126537, 126537, 126539, 126539, 126541, 126543, 126545, 126546, + 126548, 126548, 126551, 126551, 126553, 126553, 126555, 126555, + 126557, 126557, 126559, 126559, 126561, 126562, 126564, 126564, + 126567, 126570, 126572, 126578, 126580, 126583, 126585, 126588, + 126590, 126590, 126592, 126601, 126603, 126619, 126625, 126627, + 126629, 126633, 126635, 126651, 131072, 173791, 173824, 178205, + 178208, 183981, 183984, 191456, 191472, 192093, 194560, 195101, + 196608, 201546, 201552, 210041, ]; const unicodeIdentifierStartMin = 170; -const unicodeIdentifierStartMax = 201546; +const unicodeIdentifierStartMax = 210041; -/** Unicode 14.0 ID_Continue/Other_ID_Continue + ID_Start/Other_ID_Start ranges*/ +/** Unicode 17.0 ID_Continue/Other_ID_Continue + ID_Start/Other_ID_Start ranges*/ const unicodeIdentifierPart: i32[] = [/* | from ... to | from ... to | from ... to | from ... to |*/ 170 , 170 , 181 , 181 , 183 , 183 , 186 , 186 , @@ -475,7 +484,7 @@ const unicodeIdentifierPart: i32[] = [/* 1759 , 1768 , 1770 , 1788 , 1791 , 1791 , 1808 , 1866 , 1869 , 1969 , 1984 , 2037 , 2042 , 2042 , 2045 , 2045 , 2048 , 2093 , 2112 , 2139 , 2144 , 2154 , 2160 , 2183 , - 2185 , 2190 , 2200 , 2273 , 2275 , 2403 , 2406 , 2415 , + 2185 , 2191 , 2199 , 2273 , 2275 , 2403 , 2406 , 2415 , 2417 , 2435 , 2437 , 2444 , 2447 , 2448 , 2451 , 2472 , 2474 , 2480 , 2482 , 2482 , 2486 , 2489 , 2492 , 2500 , 2503 , 2504 , 2507 , 2510 , 2519 , 2519 , 2524 , 2525 , @@ -497,11 +506,11 @@ const unicodeIdentifierPart: i32[] = [/* 3014 , 3016 , 3018 , 3021 , 3024 , 3024 , 3031 , 3031 , 3046 , 3055 , 3072 , 3084 , 3086 , 3088 , 3090 , 3112 , 3114 , 3129 , 3132 , 3140 , 3142 , 3144 , 3146 , 3149 , - 3157 , 3158 , 3160 , 3162 , 3165 , 3165 , 3168 , 3171 , + 3157 , 3158 , 3160 , 3162 , 3164 , 3165 , 3168 , 3171 , 3174 , 3183 , 3200 , 3203 , 3205 , 3212 , 3214 , 3216 , 3218 , 3240 , 3242 , 3251 , 3253 , 3257 , 3260 , 3268 , - 3270 , 3272 , 3274 , 3277 , 3285 , 3286 , 3293 , 3294 , - 3296 , 3299 , 3302 , 3311 , 3313 , 3314 , 3328 , 3340 , + 3270 , 3272 , 3274 , 3277 , 3285 , 3286 , 3292 , 3294 , + 3296 , 3299 , 3302 , 3311 , 3313 , 3315 , 3328 , 3340 , 3342 , 3344 , 3346 , 3396 , 3398 , 3400 , 3402 , 3406 , 3412 , 3415 , 3423 , 3427 , 3430 , 3439 , 3450 , 3455 , 3457 , 3459 , 3461 , 3478 , 3482 , 3505 , 3507 , 3515 , @@ -509,7 +518,7 @@ const unicodeIdentifierPart: i32[] = [/* 3542 , 3542 , 3544 , 3551 , 3558 , 3567 , 3570 , 3571 , 3585 , 3642 , 3648 , 3662 , 3664 , 3673 , 3713 , 3714 , 3716 , 3716 , 3718 , 3722 , 3724 , 3747 , 3749 , 3749 , - 3751 , 3773 , 3776 , 3780 , 3782 , 3782 , 3784 , 3789 , + 3751 , 3773 , 3776 , 3780 , 3782 , 3782 , 3784 , 3790 , 3792 , 3801 , 3804 , 3807 , 3840 , 3840 , 3864 , 3865 , 3872 , 3881 , 3893 , 3893 , 3895 , 3895 , 3897 , 3897 , 3902 , 3911 , 3913 , 3948 , 3953 , 3972 , 3974 , 3991 , @@ -529,128 +538,139 @@ const unicodeIdentifierPart: i32[] = [/* 6470 , 6509 , 6512 , 6516 , 6528 , 6571 , 6576 , 6601 , 6608 , 6618 , 6656 , 6683 , 6688 , 6750 , 6752 , 6780 , 6783 , 6793 , 6800 , 6809 , 6823 , 6823 , 6832 , 6845 , - 6847 , 6862 , 6912 , 6988 , 6992 , 7001 , 7019 , 7027 , - 7040 , 7155 , 7168 , 7223 , 7232 , 7241 , 7245 , 7293 , - 7296 , 7304 , 7312 , 7354 , 7357 , 7359 , 7376 , 7378 , - 7380 , 7418 , 7424 , 7957 , 7960 , 7965 , 7968 , 8005 , - 8008 , 8013 , 8016 , 8023 , 8025 , 8025 , 8027 , 8027 , - 8029 , 8029 , 8031 , 8061 , 8064 , 8116 , 8118 , 8124 , - 8126 , 8126 , 8130 , 8132 , 8134 , 8140 , 8144 , 8147 , - 8150 , 8155 , 8160 , 8172 , 8178 , 8180 , 8182 , 8188 , - 8255 , 8256 , 8276 , 8276 , 8305 , 8305 , 8319 , 8319 , - 8336 , 8348 , 8400 , 8412 , 8417 , 8417 , 8421 , 8432 , - 8450 , 8450 , 8455 , 8455 , 8458 , 8467 , 8469 , 8469 , - 8472 , 8477 , 8484 , 8484 , 8486 , 8486 , 8488 , 8488 , - 8490 , 8505 , 8508 , 8511 , 8517 , 8521 , 8526 , 8526 , - 8544 , 8584 , 11264 , 11492 , 11499 , 11507 , 11520 , 11557 , - 11559 , 11559 , 11565 , 11565 , 11568 , 11623 , 11631 , 11631 , - 11647 , 11670 , 11680 , 11686 , 11688 , 11694 , 11696 , 11702 , - 11704 , 11710 , 11712 , 11718 , 11720 , 11726 , 11728 , 11734 , - 11736 , 11742 , 11744 , 11775 , 12293 , 12295 , 12321 , 12335 , - 12337 , 12341 , 12344 , 12348 , 12353 , 12438 , 12441 , 12447 , - 12449 , 12538 , 12540 , 12543 , 12549 , 12591 , 12593 , 12686 , - 12704 , 12735 , 12784 , 12799 , 13312 , 19903 , 19968 , 42124 , - 42192 , 42237 , 42240 , 42508 , 42512 , 42539 , 42560 , 42607 , - 42612 , 42621 , 42623 , 42737 , 42775 , 42783 , 42786 , 42888 , - 42891 , 42954 , 42960 , 42961 , 42963 , 42963 , 42965 , 42969 , - 42994 , 43047 , 43052 , 43052 , 43072 , 43123 , 43136 , 43205 , - 43216 , 43225 , 43232 , 43255 , 43259 , 43259 , 43261 , 43309 , - 43312 , 43347 , 43360 , 43388 , 43392 , 43456 , 43471 , 43481 , - 43488 , 43518 , 43520 , 43574 , 43584 , 43597 , 43600 , 43609 , - 43616 , 43638 , 43642 , 43714 , 43739 , 43741 , 43744 , 43759 , - 43762 , 43766 , 43777 , 43782 , 43785 , 43790 , 43793 , 43798 , - 43808 , 43814 , 43816 , 43822 , 43824 , 43866 , 43868 , 43881 , - 43888 , 44010 , 44012 , 44013 , 44016 , 44025 , 44032 , 55203 , - 55216 , 55238 , 55243 , 55291 , 63744 , 64109 , 64112 , 64217 , - 64256 , 64262 , 64275 , 64279 , 64285 , 64296 , 64298 , 64310 , - 64312 , 64316 , 64318 , 64318 , 64320 , 64321 , 64323 , 64324 , - 64326 , 64433 , 64467 , 64829 , 64848 , 64911 , 64914 , 64967 , - 65008 , 65019 , 65024 , 65039 , 65056 , 65071 , 65075 , 65076 , - 65101 , 65103 , 65136 , 65140 , 65142 , 65276 , 65296 , 65305 , - 65313 , 65338 , 65343 , 65343 , 65345 , 65370 , 65382 , 65470 , - 65474 , 65479 , 65482 , 65487 , 65490 , 65495 , 65498 , 65500 , - 65536 , 65547 , 65549 , 65574 , 65576 , 65594 , 65596 , 65597 , - 65599 , 65613 , 65616 , 65629 , 65664 , 65786 , 65856 , 65908 , - 66045 , 66045 , 66176 , 66204 , 66208 , 66256 , 66272 , 66272 , - 66304 , 66335 , 66349 , 66378 , 66384 , 66426 , 66432 , 66461 , - 66464 , 66499 , 66504 , 66511 , 66513 , 66517 , 66560 , 66717 , - 66720 , 66729 , 66736 , 66771 , 66776 , 66811 , 66816 , 66855 , - 66864 , 66915 , 66928 , 66938 , 66940 , 66954 , 66956 , 66962 , - 66964 , 66965 , 66967 , 66977 , 66979 , 66993 , 66995 , 67001 , - 67003 , 67004 , 67072 , 67382 , 67392 , 67413 , 67424 , 67431 , - 67456 , 67461 , 67463 , 67504 , 67506 , 67514 , 67584 , 67589 , - 67592 , 67592 , 67594 , 67637 , 67639 , 67640 , 67644 , 67644 , - 67647 , 67669 , 67680 , 67702 , 67712 , 67742 , 67808 , 67826 , - 67828 , 67829 , 67840 , 67861 , 67872 , 67897 , 67968 , 68023 , + 6847 , 6877 , 6880 , 6891 , 6912 , 6988 , 6992 , 7001 , + 7019 , 7027 , 7040 , 7155 , 7168 , 7223 , 7232 , 7241 , + 7245 , 7293 , 7296 , 7306 , 7312 , 7354 , 7357 , 7359 , + 7376 , 7378 , 7380 , 7418 , 7424 , 7957 , 7960 , 7965 , + 7968 , 8005 , 8008 , 8013 , 8016 , 8023 , 8025 , 8025 , + 8027 , 8027 , 8029 , 8029 , 8031 , 8061 , 8064 , 8116 , + 8118 , 8124 , 8126 , 8126 , 8130 , 8132 , 8134 , 8140 , + 8144 , 8147 , 8150 , 8155 , 8160 , 8172 , 8178 , 8180 , + 8182 , 8188 , 8204 , 8205 , 8255 , 8256 , 8276 , 8276 , + 8305 , 8305 , 8319 , 8319 , 8336 , 8348 , 8400 , 8412 , + 8417 , 8417 , 8421 , 8432 , 8450 , 8450 , 8455 , 8455 , + 8458 , 8467 , 8469 , 8469 , 8472 , 8477 , 8484 , 8484 , + 8486 , 8486 , 8488 , 8488 , 8490 , 8505 , 8508 , 8511 , + 8517 , 8521 , 8526 , 8526 , 8544 , 8584 , 11264 , 11492 , + 11499 , 11507 , 11520 , 11557 , 11559 , 11559 , 11565 , 11565 , + 11568 , 11623 , 11631 , 11631 , 11647 , 11670 , 11680 , 11686 , + 11688 , 11694 , 11696 , 11702 , 11704 , 11710 , 11712 , 11718 , + 11720 , 11726 , 11728 , 11734 , 11736 , 11742 , 11744 , 11775 , + 12293 , 12295 , 12321 , 12335 , 12337 , 12341 , 12344 , 12348 , + 12353 , 12438 , 12441 , 12447 , 12449 , 12543 , 12549 , 12591 , + 12593 , 12686 , 12704 , 12735 , 12784 , 12799 , 13312 , 19903 , + 19968 , 42124 , 42192 , 42237 , 42240 , 42508 , 42512 , 42539 , + 42560 , 42607 , 42612 , 42621 , 42623 , 42737 , 42775 , 42783 , + 42786 , 42888 , 42891 , 42972 , 42993 , 43047 , 43052 , 43052 , + 43072 , 43123 , 43136 , 43205 , 43216 , 43225 , 43232 , 43255 , + 43259 , 43259 , 43261 , 43309 , 43312 , 43347 , 43360 , 43388 , + 43392 , 43456 , 43471 , 43481 , 43488 , 43518 , 43520 , 43574 , + 43584 , 43597 , 43600 , 43609 , 43616 , 43638 , 43642 , 43714 , + 43739 , 43741 , 43744 , 43759 , 43762 , 43766 , 43777 , 43782 , + 43785 , 43790 , 43793 , 43798 , 43808 , 43814 , 43816 , 43822 , + 43824 , 43866 , 43868 , 43881 , 43888 , 44010 , 44012 , 44013 , + 44016 , 44025 , 44032 , 55203 , 55216 , 55238 , 55243 , 55291 , + 63744 , 64109 , 64112 , 64217 , 64256 , 64262 , 64275 , 64279 , + 64285 , 64296 , 64298 , 64310 , 64312 , 64316 , 64318 , 64318 , + 64320 , 64321 , 64323 , 64324 , 64326 , 64433 , 64467 , 64829 , + 64848 , 64911 , 64914 , 64967 , 65008 , 65019 , 65024 , 65039 , + 65056 , 65071 , 65075 , 65076 , 65101 , 65103 , 65136 , 65140 , + 65142 , 65276 , 65296 , 65305 , 65313 , 65338 , 65343 , 65343 , + 65345 , 65370 , 65381 , 65470 , 65474 , 65479 , 65482 , 65487 , + 65490 , 65495 , 65498 , 65500 , 65536 , 65547 , 65549 , 65574 , + 65576 , 65594 , 65596 , 65597 , 65599 , 65613 , 65616 , 65629 , + 65664 , 65786 , 65856 , 65908 , 66045 , 66045 , 66176 , 66204 , + 66208 , 66256 , 66272 , 66272 , 66304 , 66335 , 66349 , 66378 , + 66384 , 66426 , 66432 , 66461 , 66464 , 66499 , 66504 , 66511 , + 66513 , 66517 , 66560 , 66717 , 66720 , 66729 , 66736 , 66771 , + 66776 , 66811 , 66816 , 66855 , 66864 , 66915 , 66928 , 66938 , + 66940 , 66954 , 66956 , 66962 , 66964 , 66965 , 66967 , 66977 , + 66979 , 66993 , 66995 , 67001 , 67003 , 67004 , 67008 , 67059 , + 67072 , 67382 , 67392 , 67413 , 67424 , 67431 , 67456 , 67461 , + 67463 , 67504 , 67506 , 67514 , 67584 , 67589 , 67592 , 67592 , + 67594 , 67637 , 67639 , 67640 , 67644 , 67644 , 67647 , 67669 , + 67680 , 67702 , 67712 , 67742 , 67808 , 67826 , 67828 , 67829 , + 67840 , 67861 , 67872 , 67897 , 67904 , 67929 , 67968 , 68023 , 68030 , 68031 , 68096 , 68099 , 68101 , 68102 , 68108 , 68115 , 68117 , 68119 , 68121 , 68149 , 68152 , 68154 , 68159 , 68159 , 68192 , 68220 , 68224 , 68252 , 68288 , 68295 , 68297 , 68326 , 68352 , 68405 , 68416 , 68437 , 68448 , 68466 , 68480 , 68497 , 68608 , 68680 , 68736 , 68786 , 68800 , 68850 , 68864 , 68903 , - 68912 , 68921 , 69248 , 69289 , 69291 , 69292 , 69296 , 69297 , - 69376 , 69404 , 69415 , 69415 , 69424 , 69456 , 69488 , 69509 , + 68912 , 68921 , 68928 , 68965 , 68969 , 68973 , 68975 , 68997 , + 69248 , 69289 , 69291 , 69292 , 69296 , 69297 , 69314 , 69319 , + 69370 , 69404 , 69415 , 69415 , 69424 , 69456 , 69488 , 69509 , 69552 , 69572 , 69600 , 69622 , 69632 , 69702 , 69734 , 69749 , 69759 , 69818 , 69826 , 69826 , 69840 , 69864 , 69872 , 69881 , 69888 , 69940 , 69942 , 69951 , 69956 , 69959 , 69968 , 70003 , 70006 , 70006 , 70016 , 70084 , 70089 , 70092 , 70094 , 70106 , - 70108 , 70108 , 70144 , 70161 , 70163 , 70199 , 70206 , 70206 , + 70108 , 70108 , 70144 , 70161 , 70163 , 70199 , 70206 , 70209 , 70272 , 70278 , 70280 , 70280 , 70282 , 70285 , 70287 , 70301 , 70303 , 70312 , 70320 , 70378 , 70384 , 70393 , 70400 , 70403 , 70405 , 70412 , 70415 , 70416 , 70419 , 70440 , 70442 , 70448 , 70450 , 70451 , 70453 , 70457 , 70459 , 70468 , 70471 , 70472 , 70475 , 70477 , 70480 , 70480 , 70487 , 70487 , 70493 , 70499 , - 70502 , 70508 , 70512 , 70516 , 70656 , 70730 , 70736 , 70745 , - 70750 , 70753 , 70784 , 70853 , 70855 , 70855 , 70864 , 70873 , - 71040 , 71093 , 71096 , 71104 , 71128 , 71133 , 71168 , 71232 , - 71236 , 71236 , 71248 , 71257 , 71296 , 71352 , 71360 , 71369 , - 71424 , 71450 , 71453 , 71467 , 71472 , 71481 , 71488 , 71494 , - 71680 , 71738 , 71840 , 71913 , 71935 , 71942 , 71945 , 71945 , - 71948 , 71955 , 71957 , 71958 , 71960 , 71989 , 71991 , 71992 , - 71995 , 72003 , 72016 , 72025 , 72096 , 72103 , 72106 , 72151 , - 72154 , 72161 , 72163 , 72164 , 72192 , 72254 , 72263 , 72263 , - 72272 , 72345 , 72349 , 72349 , 72368 , 72440 , 72704 , 72712 , - 72714 , 72758 , 72760 , 72768 , 72784 , 72793 , 72818 , 72847 , - 72850 , 72871 , 72873 , 72886 , 72960 , 72966 , 72968 , 72969 , - 72971 , 73014 , 73018 , 73018 , 73020 , 73021 , 73023 , 73031 , - 73040 , 73049 , 73056 , 73061 , 73063 , 73064 , 73066 , 73102 , - 73104 , 73105 , 73107 , 73112 , 73120 , 73129 , 73440 , 73462 , + 70502 , 70508 , 70512 , 70516 , 70528 , 70537 , 70539 , 70539 , + 70542 , 70542 , 70544 , 70581 , 70583 , 70592 , 70594 , 70594 , + 70597 , 70597 , 70599 , 70602 , 70604 , 70611 , 70625 , 70626 , + 70656 , 70730 , 70736 , 70745 , 70750 , 70753 , 70784 , 70853 , + 70855 , 70855 , 70864 , 70873 , 71040 , 71093 , 71096 , 71104 , + 71128 , 71133 , 71168 , 71232 , 71236 , 71236 , 71248 , 71257 , + 71296 , 71352 , 71360 , 71369 , 71376 , 71395 , 71424 , 71450 , + 71453 , 71467 , 71472 , 71481 , 71488 , 71494 , 71680 , 71738 , + 71840 , 71913 , 71935 , 71942 , 71945 , 71945 , 71948 , 71955 , + 71957 , 71958 , 71960 , 71989 , 71991 , 71992 , 71995 , 72003 , + 72016 , 72025 , 72096 , 72103 , 72106 , 72151 , 72154 , 72161 , + 72163 , 72164 , 72192 , 72254 , 72263 , 72263 , 72272 , 72345 , + 72349 , 72349 , 72368 , 72440 , 72544 , 72551 , 72640 , 72672 , + 72688 , 72697 , 72704 , 72712 , 72714 , 72758 , 72760 , 72768 , + 72784 , 72793 , 72818 , 72847 , 72850 , 72871 , 72873 , 72886 , + 72960 , 72966 , 72968 , 72969 , 72971 , 73014 , 73018 , 73018 , + 73020 , 73021 , 73023 , 73031 , 73040 , 73049 , 73056 , 73061 , + 73063 , 73064 , 73066 , 73102 , 73104 , 73105 , 73107 , 73112 , + 73120 , 73129 , 73136 , 73179 , 73184 , 73193 , 73440 , 73462 , + 73472 , 73488 , 73490 , 73530 , 73534 , 73538 , 73552 , 73562 , 73648 , 73648 , 73728 , 74649 , 74752 , 74862 , 74880 , 75075 , - 77712 , 77808 , 77824 , 78894 , 82944 , 83526 , 92160 , 92728 , - 92736 , 92766 , 92768 , 92777 , 92784 , 92862 , 92864 , 92873 , - 92880 , 92909 , 92912 , 92916 , 92928 , 92982 , 92992 , 92995 , - 93008 , 93017 , 93027 , 93047 , 93053 , 93071 , 93760 , 93823 , - 93952 , 94026 , 94031 , 94087 , 94095 , 94111 , 94176 , 94177 , - 94179 , 94180 , 94192 , 94193 , 94208 , 100343, 100352, 101589, - 101632, 101640, 110576, 110579, 110581, 110587, 110589, 110590, - 110592, 110882, 110928, 110930, 110948, 110951, 110960, 111355, - 113664, 113770, 113776, 113788, 113792, 113800, 113808, 113817, - 113821, 113822, 118528, 118573, 118576, 118598, 119141, 119145, - 119149, 119154, 119163, 119170, 119173, 119179, 119210, 119213, - 119362, 119364, 119808, 119892, 119894, 119964, 119966, 119967, - 119970, 119970, 119973, 119974, 119977, 119980, 119982, 119993, - 119995, 119995, 119997, 120003, 120005, 120069, 120071, 120074, - 120077, 120084, 120086, 120092, 120094, 120121, 120123, 120126, - 120128, 120132, 120134, 120134, 120138, 120144, 120146, 120485, - 120488, 120512, 120514, 120538, 120540, 120570, 120572, 120596, - 120598, 120628, 120630, 120654, 120656, 120686, 120688, 120712, - 120714, 120744, 120746, 120770, 120772, 120779, 120782, 120831, - 121344, 121398, 121403, 121452, 121461, 121461, 121476, 121476, - 121499, 121503, 121505, 121519, 122624, 122654, 122880, 122886, - 122888, 122904, 122907, 122913, 122915, 122916, 122918, 122922, - 123136, 123180, 123184, 123197, 123200, 123209, 123214, 123214, - 123536, 123566, 123584, 123641, 124896, 124902, 124904, 124907, - 124909, 124910, 124912, 124926, 124928, 125124, 125136, 125142, - 125184, 125259, 125264, 125273, 126464, 126467, 126469, 126495, - 126497, 126498, 126500, 126500, 126503, 126503, 126505, 126514, - 126516, 126519, 126521, 126521, 126523, 126523, 126530, 126530, - 126535, 126535, 126537, 126537, 126539, 126539, 126541, 126543, - 126545, 126546, 126548, 126548, 126551, 126551, 126553, 126553, - 126555, 126555, 126557, 126557, 126559, 126559, 126561, 126562, - 126564, 126564, 126567, 126570, 126572, 126578, 126580, 126583, - 126585, 126588, 126590, 126590, 126592, 126601, 126603, 126619, - 126625, 126627, 126629, 126633, 126635, 126651, 130032, 130041, - 131072, 173791, 173824, 177976, 177984, 178205, 178208, 183969, - 183984, 191456, 194560, 195101, 196608, 201546, 917760, 917999, + 77712 , 77808 , 77824 , 78895 , 78912 , 78933 , 78944 , 82938 , + 82944 , 83526 , 90368 , 90425 , 92160 , 92728 , 92736 , 92766 , + 92768 , 92777 , 92784 , 92862 , 92864 , 92873 , 92880 , 92909 , + 92912 , 92916 , 92928 , 92982 , 92992 , 92995 , 93008 , 93017 , + 93027 , 93047 , 93053 , 93071 , 93504 , 93548 , 93552 , 93561 , + 93760 , 93823 , 93856 , 93880 , 93883 , 93907 , 93952 , 94026 , + 94031 , 94087 , 94095 , 94111 , 94176 , 94177 , 94179 , 94180 , + 94192 , 94198 , 94208 , 101589, 101631, 101662, 101760, 101874, + 110576, 110579, 110581, 110587, 110589, 110590, 110592, 110882, + 110898, 110898, 110928, 110930, 110933, 110933, 110948, 110951, + 110960, 111355, 113664, 113770, 113776, 113788, 113792, 113800, + 113808, 113817, 113821, 113822, 118000, 118009, 118528, 118573, + 118576, 118598, 119141, 119145, 119149, 119154, 119163, 119170, + 119173, 119179, 119210, 119213, 119362, 119364, 119808, 119892, + 119894, 119964, 119966, 119967, 119970, 119970, 119973, 119974, + 119977, 119980, 119982, 119993, 119995, 119995, 119997, 120003, + 120005, 120069, 120071, 120074, 120077, 120084, 120086, 120092, + 120094, 120121, 120123, 120126, 120128, 120132, 120134, 120134, + 120138, 120144, 120146, 120485, 120488, 120512, 120514, 120538, + 120540, 120570, 120572, 120596, 120598, 120628, 120630, 120654, + 120656, 120686, 120688, 120712, 120714, 120744, 120746, 120770, + 120772, 120779, 120782, 120831, 121344, 121398, 121403, 121452, + 121461, 121461, 121476, 121476, 121499, 121503, 121505, 121519, + 122624, 122654, 122661, 122666, 122880, 122886, 122888, 122904, + 122907, 122913, 122915, 122916, 122918, 122922, 122928, 122989, + 123023, 123023, 123136, 123180, 123184, 123197, 123200, 123209, + 123214, 123214, 123536, 123566, 123584, 123641, 124112, 124153, + 124368, 124410, 124608, 124638, 124640, 124661, 124670, 124671, + 124896, 124902, 124904, 124907, 124909, 124910, 124912, 124926, + 124928, 125124, 125136, 125142, 125184, 125259, 125264, 125273, + 126464, 126467, 126469, 126495, 126497, 126498, 126500, 126500, + 126503, 126503, 126505, 126514, 126516, 126519, 126521, 126521, + 126523, 126523, 126530, 126530, 126535, 126535, 126537, 126537, + 126539, 126539, 126541, 126543, 126545, 126546, 126548, 126548, + 126551, 126551, 126553, 126553, 126555, 126555, 126557, 126557, + 126559, 126559, 126561, 126562, 126564, 126564, 126567, 126570, + 126572, 126578, 126580, 126583, 126585, 126588, 126590, 126590, + 126592, 126601, 126603, 126619, 126625, 126627, 126629, 126633, + 126635, 126651, 130032, 130041, 131072, 173791, 173824, 178205, + 178208, 183981, 183984, 191456, 191472, 192093, 194560, 195101, + 196608, 201546, 201552, 210041, 917760, 917999, ]; const unicodeIdentifierPartMin = 170; const unicodeIdentifierPartMax = 917999; diff --git a/std/assembly.json b/std/assembly.json index 10a3e067dc..189ed19dc7 100644 --- a/std/assembly.json +++ b/std/assembly.json @@ -7,7 +7,6 @@ "allowJs": false, "typeRoots": [ "types" ], "types": [ "assembly" ], - "baseUrl": ".", "paths": { "*": [ "./assembly/*" diff --git a/std/assembly/builtins.ts b/std/assembly/builtins.ts index 0f910a39e4..1c23551993 100644 --- a/std/assembly/builtins.ts +++ b/std/assembly/builtins.ts @@ -202,6 +202,12 @@ export declare function assert(isTrueish: T, message?: string): T; @unsafe @builtin export declare function unchecked(expr: T): T; +export namespace inline { + // @ts-ignore: decorator + @unsafe @builtin + export declare function always(expr: T): T; +} + // @ts-ignore: decorator @unsafe @builtin export declare function call_indirect(index: u32, ...args: auto[]): T; diff --git a/std/assembly/date.ts b/std/assembly/date.ts index 5d77fdcbde..7d273e1dd2 100644 --- a/std/assembly/date.ts +++ b/std/assembly/date.ts @@ -3,15 +3,14 @@ import { Date as Date_binding } from "./bindings/dom"; // @ts-ignore: decorator @inline const + MILLIS_LIMIT = 8640000000000000, MILLIS_PER_DAY = 1000 * 60 * 60 * 24, MILLIS_PER_HOUR = 1000 * 60 * 60, MILLIS_PER_MINUTE = 1000 * 60, MILLIS_PER_SECOND = 1000, - - YEARS_PER_EPOCH = 400, - DAYS_PER_EPOCH = 146097, - EPOCH_OFFSET = 719468, // Jan 1, 1970 - MILLIS_LIMIT = 8640000000000000; + YEARS_PER_EPOCH = 400, + DAYS_PER_EPOCH = 146097, // 400 * 365 + 400 / 4 - 400 / 100 + 1 + EPOCH_OFFSET = 719468; // Jan 1, 1970 // ymdFromEpochDays returns values via globals to avoid allocations // @ts-ignore: decorator @@ -52,7 +51,8 @@ export class Date { hour: i32 = 0, min: i32 = 0, sec: i32 = 0, - ms: i32 = 0; + ms: i32 = 0, + offsetMs: i32 = 0; let dateString = dateTimeString; let posT = dateTimeString.indexOf("T"); @@ -61,37 +61,67 @@ export class Date { let timeString: string; dateString = dateTimeString.substring(0, posT); timeString = dateTimeString.substring(posT + 1); - // parse the HH-MM-SS component + + // might end with an offset ("Z", "+05:30", "-08:00", etc.) + for (let i = timeString.length - 1; i >= 0; i--) { + let c = timeString.charCodeAt(i); + if (c == 90) { // Z + timeString = timeString.substring(0, i); + break; + } else if (c == 43 || c == 45) { // + or - + if (i == timeString.length - 1) { + throw new RangeError(E_INVALIDDATE); + } + + let posColon = timeString.indexOf(":", i + 1); + if (~posColon) { + let offsetHours = i32.parse(timeString.substring(i + 1, posColon)); + let offsetMinutes = i32.parse(timeString.substring(posColon + 1)); + offsetMs = (offsetHours * 60 + offsetMinutes) * MILLIS_PER_MINUTE; + } else { + let offsetHours = i32.parse(timeString.substring(i + 1)); + offsetMs = offsetHours * MILLIS_PER_HOUR; + } + + if (c == 45) offsetMs = -offsetMs; // negative offset + timeString = timeString.substring(0, i); + break; + } + } + + // parse the HH:MM:SS component let timeParts = timeString.split(":"); let len = timeParts.length; if (len <= 1) throw new RangeError(E_INVALIDDATE); - hour = I32.parseInt(timeParts[0]); - min = I32.parseInt(timeParts[1]); + hour = i32.parse(timeParts[0]); + min = i32.parse(timeParts[1]); if (len >= 3) { - let secAndMs = timeParts[2]; - let posDot = secAndMs.indexOf("."); + let secAndFrac = timeParts[2]; + let posDot = secAndFrac.indexOf("."); if (~posDot) { - // includes milliseconds - sec = I32.parseInt(secAndMs.substring(0, posDot)); - ms = I32.parseInt(secAndMs.substring(posDot + 1)); + // includes fractional seconds (truncate to milliseconds) + sec = i32.parse(secAndFrac.substring(0, posDot)); + ms = i32.parse(secAndFrac.substr(posDot + 1, 3).padEnd(3, "0")); } else { - sec = I32.parseInt(secAndMs); + sec = i32.parse(secAndFrac); } } } + // parse the YYYY-MM-DD component let parts = dateString.split("-"); - let year = I32.parseInt(parts[0]); + let year = i32.parse(parts[0]); let month = 1, day = 1; let len = parts.length; if (len >= 2) { - month = I32.parseInt(parts[1]); + month = i32.parse(parts[1]); if (len >= 3) { - day = I32.parseInt(parts[2]); + day = i32.parse(parts[2]); } } - return new Date(epochMillis(year, month, day, hour, min, sec, ms)); + + return new Date(epochMillis(year, month, day, hour, min, sec, ms) - offsetMs); } constructor(private epochMillis: i64) { @@ -302,25 +332,23 @@ function invalidDate(millis: i64): bool { // Paper: https://arxiv.org/pdf/2102.06959.pdf function dateFromEpoch(ms: i64): i32 { let da = (floorDiv(ms, MILLIS_PER_DAY) * 4 + EPOCH_OFFSET * 4) | 3; - let q0 = floorDiv(da, DAYS_PER_EPOCH); // [0, 146096] + let q0 = floorDiv(da, DAYS_PER_EPOCH); // [0, 146096] let r1 = da - q0 * DAYS_PER_EPOCH; let u1 = u64(r1 | 3) * 2939745; let dm1 = u1 / 11758980; let n1 = 2141 * dm1 + 197913; let year = 100 * q0 + i32(u1 >>> 32); - let mo = n1 >>> 16; - _day = (n1 & 0xFFFF) / 2141 + 1; // [1, 31] - if (dm1 >= 306) { mo -= 12; ++year; } - _month = mo; // [1, 12] - return year; + _day = (n1 & 0xFFFF) / 2141 + 1; // [1, 31] + _month = (n1 >>> 16) - (dm1 >= 306 ? 12 : 0); // [1, 12] + return year + (dm1 >= 306 ? 1 : 0); } // http://howardhinnant.github.io/date_algorithms.html#days_from_civil -function daysSinceEpoch(y: i32, m: i32, d: i32): i64 { - y -= i32(m <= 2); - let era = floorDiv(y, YEARS_PER_EPOCH); - let yoe = y - era * YEARS_PER_EPOCH; // [0, 399] - let doy = (153 * (m + (m > 2 ? -3 : 9)) + 2) / 5 + d - 1; // [0, 365] +function daysSinceEpoch(year: i32, month: i32, day: i32): i64 { + year -= i32(month <= 2); + let era = floorDiv(year, YEARS_PER_EPOCH); + let yoe = year - era * YEARS_PER_EPOCH; // [0, 399] + let doy = (153 * (month + (month > 2 ? -3 : 9)) + 2) / 5 + day - 1; // [0, 365] let doe = yoe * 365 + yoe / 4 - yoe / 100 + doy; // [0, 146096] return (era * 146097 + doe - EPOCH_OFFSET); } @@ -329,8 +357,9 @@ function daysSinceEpoch(y: i32, m: i32, d: i32): i64 { function dayOfWeek(year: i32, month: i32, day: i32): i32 { const tab = memory.data([0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4]); - year -= i32(month < 3); - year += floorDiv(year, 4) - floorDiv(year, 100) + floorDiv(year, YEARS_PER_EPOCH); + year -= i32(month <= 2); + const cent = floorDiv(year >> 2, 100 >> 2); + year += (year >> 2) - cent + (cent >> 2); month = load(tab + month - 1); return euclidRem(year + month + day, 7); } diff --git a/std/assembly/index.d.ts b/std/assembly/index.d.ts index 4dbee416a8..a604397320 100644 --- a/std/assembly/index.d.ts +++ b/std/assembly/index.d.ts @@ -791,9 +791,9 @@ declare function v128(a: i8, b: i8, c: i8, d: i8, e: i8, f: i8, g: i8, h: i8, i: declare namespace v128 { /** Creates a vector with identical lanes. */ export function splat(x: T): v128; - /** Extracts one lane as a scalar. */ + /** Extracts one lane as a scalar. idx argument needs to be compile time constant. */ export function extract_lane(x: v128, idx: u8): T; - /** Replaces one lane. */ + /** Replaces one lane. idx argument needs to be compile time constant.*/ export function replace_lane(x: v128, idx: u8, value: T): v128; /** Selects lanes from either vector according to the specified lane indexes. */ export function shuffle(a: v128, b: v128, ...lanes: u8[]): v128; @@ -1051,11 +1051,11 @@ declare function i8x16(a: i8, b: i8, c: i8, d: i8, e: i8, f: i8, g: i8, h: i8, i declare namespace i8x16 { /** Creates a vector with sixteen identical 8-bit integer lanes. */ export function splat(x: i8): v128; - /** Extracts one 8-bit integer lane as a signed scalar. */ + /** Extracts one 8-bit integer lane as a signed scalar. idx argument needs to be compile time constant. */ export function extract_lane_s(x: v128, idx: u8): i8; - /** Extracts one 8-bit integer lane as an unsigned scalar. */ + /** Extracts one 8-bit integer lane as an unsigned scalar. idx argument needs to be compile time constant. */ export function extract_lane_u(x: v128, idx: u8): u8; - /** Replaces one 8-bit integer lane. */ + /** Replaces one 8-bit integer lane. idx argument needs to be compile time constant. */ export function replace_lane(x: v128, idx: u8, value: i8): v128; /** Adds each 8-bit integer lane. */ export function add(a: v128, b: v128): v128; @@ -1146,11 +1146,11 @@ declare function i16x8(a: i16, b: i16, c: i16, d: i16, e: i16, f: i16, g: i16, h declare namespace i16x8 { /** Creates a vector with eight identical 16-bit integer lanes. */ export function splat(x: i16): v128; - /** Extracts one 16-bit integer lane as a signed scalar. */ + /** Extracts one 16-bit integer lane as a signed scalar. idx argument needs to be compile time constant. */ export function extract_lane_s(x: v128, idx: u8): i16; - /** Extracts one 16-bit integer lane as an unsigned scalar. */ + /** Extracts one 16-bit integer lane as an unsigned scalar. idx argument needs to be compile time constant. */ export function extract_lane_u(x: v128, idx: u8): u16; - /** Replaces one 16-bit integer lane. */ + /** Replaces one 16-bit integer lane. idx argument needs to be compile time constant. */ export function replace_lane(x: v128, idx: u8, value: i16): v128; /** Adds each 16-bit integer lane. */ export function add(a: v128, b: v128): v128; @@ -1267,9 +1267,9 @@ declare function i32x4(a: i32, b: i32, c: i32, d: i32): v128; declare namespace i32x4 { /** Creates a vector with four identical 32-bit integer lanes. */ export function splat(x: i32): v128; - /** Extracts one 32-bit integer lane as a scalar. */ + /** Extracts one 32-bit integer lane as a scalar. idx argument needs to be compile time constant. */ export function extract_lane(x: v128, idx: u8): i32; - /** Replaces one 32-bit integer lane. */ + /** Replaces one 32-bit integer lane. idx argument needs to be compile time constant. */ export function replace_lane(x: v128, idx: u8, value: i32): v128; /** Adds each 32-bit integer lane. */ export function add(a: v128, b: v128): v128; @@ -1416,9 +1416,9 @@ declare function i64x2(a: i64, b: i64): v128; declare namespace i64x2 { /** Creates a vector with two identical 64-bit integer lanes. */ export function splat(x: i64): v128; - /** Extracts one 64-bit integer lane as a scalar. */ + /** Extracts one 64-bit integer lane as a scalar. `idx` argument need to be compile time constant */ export function extract_lane(x: v128, idx: u8): i64; - /** Replaces one 64-bit integer lane. */ + /** Replaces one 64-bit integer lane. idx argument needs to be compile time constant. */ export function replace_lane(x: v128, idx: u8, value: i64): v128; /** Adds each 64-bit integer lane. */ export function add(a: v128, b: v128): v128; @@ -1485,9 +1485,9 @@ declare function f32x4(a: f32, b: f32, c: f32, d: f32): v128; declare namespace f32x4 { /** Creates a vector with four identical 32-bit float lanes. */ export function splat(x: f32): v128; - /** Extracts one 32-bit float lane as a scalar. */ + /** Extracts one 32-bit float lane as a scalar. idx argument needs to be compile time constant. */ export function extract_lane(x: v128, idx: u8): f32; - /** Replaces one 32-bit float lane. */ + /** Replaces one 32-bit float lane. idx argument needs to be compile time constant. */ export function replace_lane(x: v128, idx: u8, value: f32): v128; /** Adds each 32-bit float lane. */ export function add(a: v128, b: v128): v128; @@ -1575,9 +1575,9 @@ declare function f64x2(a: f64, b: f64): v128; declare namespace f64x2 { /** Creates a vector with two identical 64-bit float lanes. */ export function splat(x: f64): v128; - /** Extracts one 64-bit float lane as a scalar. */ + /** Extracts one 64-bit float lane as a scalar. idx argument needs to be compile time constant. */ export function extract_lane(x: v128, idx: u8): f64; - /** Replaces one 64-bit float lane. */ + /** Replaces one 64-bit float lane. idx argument needs to be compile time constant. */ export function replace_lane(x: v128, idx: u8, value: f64): v128; /** Adds each 64-bit float lane. */ export function add(a: v128, b: v128): v128; @@ -2129,6 +2129,7 @@ declare class StaticArray { /** Class representing a sequence of characters. */ declare class String { + [key: i32]: string; static fromCharCode(ls: i32, hs?: i32): string; static fromCharCodes(arr: i32[]): string; static fromCodePoint(code: i32): string; @@ -2693,6 +2694,10 @@ declare function final(constructor: Constructor): void; /** Annotates a method, function or constant global as always inlined. */ declare function inline(...args: any[]): any; +declare namespace inline { + /** Explicitly requests inlined function calls on the provided expression wherever possible. */ + export function always(value: T): T; +} /** Annotates a method, function or constant global as unsafe. */ declare function unsafe(...args: any[]): any; diff --git a/std/assembly/rt/index-incremental.ts b/std/assembly/rt/index-incremental.ts index 4730344b4f..2f1f115932 100644 --- a/std/assembly/rt/index-incremental.ts +++ b/std/assembly/rt/index-incremental.ts @@ -1,2 +1,2 @@ -import "rt/tlsf"; -import "rt/itcms"; +import "./tlsf"; +import "./itcms"; diff --git a/std/assembly/rt/index-minimal.ts b/std/assembly/rt/index-minimal.ts index cf88ee158f..72b6eb0873 100644 --- a/std/assembly/rt/index-minimal.ts +++ b/std/assembly/rt/index-minimal.ts @@ -1,2 +1,2 @@ -import "rt/tlsf"; -import "rt/tcms"; +import "./tlsf"; +import "./tcms"; diff --git a/std/assembly/rt/index-stub.ts b/std/assembly/rt/index-stub.ts index 47f29bebfd..924ecfb8e3 100644 --- a/std/assembly/rt/index-stub.ts +++ b/std/assembly/rt/index-stub.ts @@ -1 +1 @@ -import "rt/stub"; +import "./stub"; diff --git a/std/assembly/rt/itcms.ts b/std/assembly/rt/itcms.ts index b44b69af25..ba2e09eb00 100644 --- a/std/assembly/rt/itcms.ts +++ b/std/assembly/rt/itcms.ts @@ -403,7 +403,12 @@ function interrupt(): void { budget -= step(); if (state == STATE_IDLE) { if (TRACE) trace("└ GC (auto) done at cur/max", 2, total, memory.size() << 16); - threshold = (total * IDLEFACTOR / 100) + GRANULARITY; + if (IDLEFACTOR % 100 == 0) { + // optimization for the default GC parameters which idle factor is 200% + threshold = total * (IDLEFACTOR / 100) + GRANULARITY; + } else { + threshold = ((total * IDLEFACTOR) / 100) + GRANULARITY; + } if (PROFILE) onyield(total); return; } diff --git a/std/assembly/shared/feature.ts b/std/assembly/shared/feature.ts index 1baa9ba3c9..6fe809b326 100644 --- a/std/assembly/shared/feature.ts +++ b/std/assembly/shared/feature.ts @@ -33,9 +33,11 @@ export const enum Feature { /** Extended const expressions. */ ExtendedConst = 1 << 13, // see: https://github.com/WebAssembly/extended-const /** Reference typed strings. */ - Stringref = 1 << 14, // see: https://github.com/WebAssembly/stringref + Strings = 1 << 14, // see: https://github.com/WebAssembly/stringref + /** Shared-everything threads. */ + SharedEverything = 1 << 15, // see: https://github.com/WebAssembly/shared-everything-threads /** All features. */ - All = (1 << 15) - 1 + All = (1 << 16) - 1 } /** Gets the name of the specified feature one would specify on the command line. */ @@ -55,7 +57,8 @@ export function featureToString(feature: Feature): string { case Feature.Memory64: return "memory64"; case Feature.RelaxedSimd: return "relaxed-simd"; case Feature.ExtendedConst: return "extended-const"; - case Feature.Stringref: return "stringref"; + case Feature.Strings: return "stringref"; + case Feature.SharedEverything: return "shared-everything"; } assert(false); return ""; diff --git a/std/assembly/util/number.ts b/std/assembly/util/number.ts index db74792f9a..ebd9d093cd 100644 --- a/std/assembly/util/number.ts +++ b/std/assembly/util/number.ts @@ -474,7 +474,7 @@ export function itoa64(value: i64, radix: i32): String { @lazy let _frc_minus: u64 = 0; // @ts-ignore: decorator -@lazy let _frc_plus: u64 = 0; +@lazy let _frc_plus: u64 = 0; // @ts-ignore: decorator @lazy let _frc_pow: u64 = 0; @@ -511,14 +511,14 @@ function umul64e(e1: i32, e2: i32): i32 { // @ts-ignore: decorator @inline -function normalizedBoundaries(f: u64, e: i32): void { +function normalizedBoundaries(f: u64, e: i32, isSingle: bool): void { let frc = (f << 1) + 1; let exp = e - 1; let off = clz(frc); frc <<= off; exp -= off; - let m = 1 + i32(f == 0x0010000000000000); + let m = 1 + i32(f == (isSingle ? 0x00800000 : 0x0010000000000000)); _frc_plus = frc; _frc_minus = ((f << m) - 1) << e - m - exp; @@ -559,16 +559,26 @@ function getCachedPower(minExp: i32): void { // @ts-ignore: decorator @inline -function grisu2(value: f64, buffer: usize, sign: i32): i32 { +function grisu2(value: f64, buffer: usize, sign: i32, isSingle: bool): i32 { + let frc: u64; + let exp: i32; // frexp routine - let uv = reinterpret(value); - let exp = i32((uv & 0x7FF0000000000000) >>> 52); - let sid = uv & 0x000FFFFFFFFFFFFF; - let frc = (u64(exp != 0) << 52) + sid; - exp = select(exp, 1, exp) - (0x3FF + 52); + if (isSingle) { + let uv = reinterpret(value); + exp = (uv & 0x7F800000) >>> 23; + let sid = uv & 0x007FFFFF; + frc = (u64(exp != 0) << 23) + sid; + exp = (exp || 1) - (0x7F + 23); + } else { + let uv = reinterpret(value); + exp = i32((uv & 0x7FF0000000000000) >>> 52); + let sid = uv & 0x000FFFFFFFFFFFFF; + frc = (u64(exp != 0) << 52) + sid; + exp = (exp || 1) - (0x3FF + 52); + } - normalizedBoundaries(frc, exp); + normalizedBoundaries(frc, exp, isSingle); getCachedPower(_exp); // normalize @@ -716,14 +726,14 @@ function prettify(buffer: usize, length: i32, k: i32): i32 { } } -function dtoa_core(buffer: usize, value: f64): i32 { +function dtoa_core(buffer: usize, value: f64, isSingle: bool): i32 { let sign = i32(value < 0); if (sign) { value = -value; store(buffer, CharCode.MINUS); } - // assert(value > 0 && value <= 1.7976931348623157e308); - let len = grisu2(value, buffer, sign); + // assert(value > 0 && value <= (isSingle ? f32.MAX_VALUE : f64.MAX_VALUE)); + let len = grisu2(value, buffer, sign, isSingle); len = prettify(buffer + (sign << 1), len - sign, _K); return len + sign; } @@ -731,13 +741,20 @@ function dtoa_core(buffer: usize, value: f64): i32 { // @ts-ignore: decorator @lazy @inline const dtoa_buf = memory.data(MAX_DOUBLE_LENGTH << 1); -export function dtoa(value: f64): String { +export function dtoa(value: T): String { + const isSingle = isFloat() && sizeof() == 4; + return dtoa_impl(value, isSingle); +} + +// @ts-ignore: decorator +@inline +function dtoa_impl(value: f64, isSingle: bool): String { if (value == 0) return "0.0"; if (!isFinite(value)) { if (isNaN(value)) return "NaN"; return select("-Infinity", "Infinity", value < 0); } - let size = dtoa_core(dtoa_buf, value) << 1; + let size = dtoa_core(dtoa_buf, value, isSingle) << 1; let result = changetype(__new(size, idof())); memory.copy(changetype(result), dtoa_buf, size); return result; @@ -821,7 +838,14 @@ export function itoa_buffered(buffer: usize, value: T): u32 { return sign + decimals; } -export function dtoa_buffered(buffer: usize, value: f64): u32 { +export function dtoa_buffered(buffer: usize, value: T): u32 { + const isSingle = isFloat() && sizeof() == 4; + return dtoa_buffered_impl(buffer, value, isSingle); +} + +// @ts-ignore: decorator +@inline +function dtoa_buffered_impl(buffer: usize, value: f64, isSingle: bool): u32 { if (value == 0) { store(buffer, CharCode._0); store(buffer, CharCode.DOT, 2); @@ -845,5 +869,5 @@ export function dtoa_buffered(buffer: usize, value: f64): u32 { return 8 + u32(sign); } } - return dtoa_core(buffer, value); + return dtoa_core(buffer, value, isSingle); } diff --git a/std/portable/index.js b/std/portable/index.js index d35ce63ee2..a280120b4c 100644 --- a/std/portable/index.js +++ b/std/portable/index.js @@ -267,9 +267,9 @@ if (typeof globalScope.ASC_TARGET === "undefined") { if (!String.prototype.replaceAll) { Object.defineProperty(String.prototype, "replaceAll", { - value: function replaceAll(search, replacment) { - let res = this.split(search).join(replacment); - if (!search.length) res = replacment + res + replacment; + value: function replaceAll(search, replacement) { + let res = this.split(search).join(replacement); + if (!search.length) res = replacement + res + replacement; return res; }, configurable: true @@ -279,7 +279,8 @@ if (typeof globalScope.ASC_TARGET === "undefined") { function defaultComparator(a, b) { if (a == b) { if (a != 0) return 0; - a = 1 / a, b = 1 / b; + a = 1 / a; + b = 1 / b; } else { let nanA = a != a, nanB = b != b; if (nanA | nanB) return nanA - nanB; @@ -412,6 +413,4 @@ if (typeof globalScope.ASC_TARGET === "undefined") { if (n) message += Array.prototype.slice.call(arguments, 2, 2 + n); console.error("trace: " + message); }; -} else { - console.warn("compiler mismatch: std/portable included twice"); } diff --git a/tests/allocators/index.js b/tests/allocators/index.js index ef2c5092cb..32f8f54570 100644 --- a/tests/allocators/index.js +++ b/tests/allocators/index.js @@ -40,12 +40,12 @@ async function test(file) { try { alloc(COMMON_MAX + 1, 0); // unreachable overflow = true; - } catch (e) { /* nop */ } + } catch { /* nop */ } if (overflow) throw Error("allocation can overflow COMMON_MAX + 1"); try { alloc(0xffffffff, 0); // unreachable overflow = true; - } catch (e) { /* nop */ } + } catch { /* nop */ } if (overflow) throw Error("allocation can overflow 0xffffffff"); } diff --git a/tests/allocators/runner.js b/tests/allocators/runner.js index 9ec9e18d1b..041683a75d 100644 --- a/tests/allocators/runner.js +++ b/tests/allocators/runner.js @@ -41,7 +41,7 @@ export default function runner(exports, runs, allocs) { console.log("base: " + base); try { reset(); - } catch (e) { + } catch { free(base); } let currentMem = exports.memory.buffer.byteLength; @@ -85,7 +85,7 @@ export default function runner(exports, runs, allocs) { let size = ((exports.memory.buffer.byteLength - base) * 9 / 10) >>> 0; let ptr = alloc(size, 0); // if (fill) fill(ptr, 0xac, size); - if (ptr !== base) throw Error("expected " + base + " but got " + ptr); + if (ptr !== base) throw Error("expected " + base + " but got " + ptr, { cause: e }); free(ptr); } testMemChanged(); diff --git a/tests/cli/options.js b/tests/cli/options.js index 637aae3493..1eed2763ce 100644 --- a/tests/cli/options.js +++ b/tests/cli/options.js @@ -2,18 +2,21 @@ import assert from "assert"; import * as optionsUtil from "../../util/options.js"; const config = { - "enable": { - "type": "S", - "mutuallyExclusive": "disable" + enable: { + type: "S", + mutuallyExclusive: "disable", }, - "disable": { - "type": "S", - "mutuallyExclusive": "enable" + disable: { + type: "S", + mutuallyExclusive: "enable", + }, + other: { + type: "S", + default: ["x"], + }, + bool_input_for_string: { + type: "s", }, - "other": { - "type": "S", - "default": ["x"] - } }; // Present in both should concat @@ -33,17 +36,21 @@ assert.deepStrictEqual(merged.enable, ["c"]); assert.deepStrictEqual(merged.disable, ["a", "b"]); // Populating defaults should work after the fact -optionsUtil.addDefaults(config, merged = {}); +optionsUtil.addDefaults(config, (merged = {})); assert.deepStrictEqual(merged.other, ["x"]); -optionsUtil.addDefaults(config, merged = { other: ["y"] }); +optionsUtil.addDefaults(config, (merged = { other: ["y"] })); assert.deepStrictEqual(merged.other, ["y"]); +// String test +assert.deepStrictEqual(merged.bool_input_for_string, undefined); +merged = optionsUtil.merge(config, {}, { bool_input_for_string: false }); +assert.deepStrictEqual(merged.bool_input_for_string, undefined); +merged = optionsUtil.merge(config, {}, { bool_input_for_string: true }); +assert.deepStrictEqual(merged.bool_input_for_string, ""); + // Complete usage test -let result = optionsUtil.parse([ - "--enable", "a", - "--disable", "b", -], config, false); +let result = optionsUtil.parse(["--enable", "a", "--disable", "b"], config, false); merged = optionsUtil.merge(config, result.options, { enable: ["b", "c"] }); merged = optionsUtil.merge(config, merged, { disable: ["a", "d"] }); diff --git a/tests/compiler.js b/tests/compiler.js index 68efc56c19..0b6018fa80 100644 --- a/tests/compiler.js +++ b/tests/compiler.js @@ -199,6 +199,11 @@ async function runTest(basename) { // If a fixture/generated file is missing, false will be compared to a // string. If both are missing, nothing happens below (as it should). if (actual !== expected) { + if (filename == "std/math.release.wat" && os.version().startsWith("Darwin Kernel") && os.arch() == "arm64") { + // FIXME: in arm64 macos, binaryen will optimize math.ts with different output. + compareFixture.end(SKIPPED); + return; + } compareFixture.end(FAILURE); return prepareResult(FAILURE, "fixture mismatch"); } diff --git a/tests/compiler/NonNullable.debug.wat b/tests/compiler/NonNullable.debug.wat index 5620f0ae0b..52a1e1e96d 100644 --- a/tests/compiler/NonNullable.debug.wat +++ b/tests/compiler/NonNullable.debug.wat @@ -357,28 +357,15 @@ (local $0 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 i32.const 32 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 i32.const 32 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -390,17 +377,7 @@ unreachable end i32.const 112 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 i32.const 112 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -412,17 +389,7 @@ unreachable end i32.const 144 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 i32.const 144 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -436,7 +403,7 @@ global.get $~lib/memory/__stack_pointer global.get $NonNullable/z local.tee $0 - i32.store offset=8 + i32.store offset=4 local.get $0 if (result i32) local.get $0 @@ -462,7 +429,7 @@ local.get $1 call $NonNullable/safetyCheck<~lib/string/String|null> global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/NonNullable.release.wat b/tests/compiler/NonNullable.release.wat index 348860fd96..03d6aaf8c0 100644 --- a/tests/compiler/NonNullable.release.wat +++ b/tests/compiler/NonNullable.release.wat @@ -20,130 +20,6 @@ (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 $~start - (local $0 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 1388 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 1056 - i32.store - local.get $0 - i32.const 1056 - i32.store offset=4 - i32.const 1056 - i32.const 1056 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 3 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1136 - i32.store - local.get $0 - i32.const 1136 - i32.store offset=4 - i32.const 1136 - i32.const 1136 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 4 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1168 - i32.store - local.get $0 - i32.const 1168 - i32.store offset=4 - i32.const 1168 - i32.const 1168 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 5 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1248 - i32.store offset=8 - local.get $0 - i32.const 1248 - i32.store - call $NonNullable/assertNonNull<~lib/string/String> - global.get $~lib/memory/__stack_pointer - 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 1388 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 1248 - i32.store - call $~lib/string/String.__ne - if - global.get $~lib/memory/__stack_pointer - i32.const 1248 - i32.store - call $NonNullable/assertNonNull<~lib/string/String> - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 34176 - i32.const 34224 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -165,14 +41,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store local.get $0 local.get $1 i32.eq if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -187,8 +62,6 @@ i32.or br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $4 - local.tee $2 local.get $0 i32.store local.get $0 @@ -198,7 +71,7 @@ i32.const 1 i32.shr_u local.set $3 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $3 @@ -210,12 +83,12 @@ i32.shr_u i32.ne br_if $folding-inner0 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.set $2 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $3 @@ -327,28 +200,24 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1248 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=4 i32.const 1248 i32.const 0 call $~lib/string/String.__eq i32.eqz - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $NonNullable/assertNonNull<~lib/string/String> - (local $0 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -365,10 +234,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1248 i32.store call $~lib/string/String.__ne @@ -386,4 +254,101 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $~start + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1388 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + i32.const 1056 + i32.const 1056 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 3 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1136 + i32.const 1136 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 4 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1168 + i32.const 1168 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 5 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1248 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 1248 + i32.store + call $NonNullable/assertNonNull<~lib/string/String> + global.get $~lib/memory/__stack_pointer + 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 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 1248 + i32.store + call $~lib/string/String.__ne + if + global.get $~lib/memory/__stack_pointer + i32.const 1248 + i32.store + call $NonNullable/assertNonNull<~lib/string/String> + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34176 + i32.const 34224 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) ) diff --git a/tests/compiler/abi.release.wat b/tests/compiler/abi.release.wat index 5320131fcb..f5060e8da6 100644 --- a/tests/compiler/abi.release.wat +++ b/tests/compiler/abi.release.wat @@ -3,11 +3,11 @@ (memory $0 1) (data $0 (i32.const 1036) "\1c") (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 "exported" (func $abi/exportedInternal)) + (export "exportedExported" (func $abi/exportedInternal)) + (export "exportedInternal" (func $abi/exportedInternal)) (export "memory" (memory $0)) - (func $abi/exported (result i32) + (func $abi/exportedInternal (result i32) i32.const -128 ) ) diff --git a/tests/compiler/assert-nonnull.release.wat b/tests/compiler/assert-nonnull.release.wat index ef7f534196..aabd543b52 100644 --- a/tests/compiler/assert-nonnull.release.wat +++ b/tests/compiler/assert-nonnull.release.wat @@ -1,7 +1,6 @@ (module (type $0 (func (param i32) (result i32))) - (type $1 (func (result i32))) - (type $2 (func (param i32 i32 i32 i32))) + (type $1 (func (param i32 i32 i32 i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34236)) (memory $0 1) @@ -15,7 +14,6 @@ (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)) (export "testObj" (func $export:assert-nonnull/testObj)) @@ -30,7 +28,6 @@ (export "testObjFn" (func $export:assert-nonnull/testObjFn)) (export "testObjRet" (func $export:assert-nonnull/testObjRet)) (func $~lib/array/Array#__get (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -47,10 +44,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -65,23 +61,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=4 i32.load local.tee $0 i32.store offset=4 - local.get $1 + 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) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -92,10 +86,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -104,10 +97,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -138,8 +130,56 @@ call $~lib/builtins/abort unreachable ) - (func $export:assert-nonnull/testObj (param $0 i32) (result i32) - (local $1 i32) + (func $export:assert-nonnull/testRet (param $0 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1468 + 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 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + 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 + local.get $0 + i32.store + local.get $0 + i32.eqz + br_if $folding-inner1 + local.get $0 + i32.load + unreachable + end + i32.const 34256 + i32.const 34304 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1056 + i32.const 1184 + i32.const 44 + i32.const 10 + call $~lib/builtins/abort + unreachable + ) + (func $export:assert-nonnull/testProp (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -150,10 +190,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -162,30 +201,27 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 + i32.load + local.tee $0 i32.store offset=4 local.get $0 i32.eqz if i32.const 1056 i32.const 1184 - i32.const 11 + i32.const 15 i32.const 10 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store - local.get $0 - i32.load - local.set $0 - local.get $1 i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -203,8 +239,64 @@ call $~lib/builtins/abort unreachable ) - (func $export:assert-nonnull/testProp (param $0 i32) (result i32) - (local $1 i32) + (func $export:assert-nonnull/testObjRet (param $0 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1468 + 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 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + 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.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 + local.tee $0 + i32.store offset=4 + local.get $0 + i32.eqz + br_if $folding-inner1 + local.get $0 + i32.load + unreachable + end + i32.const 34256 + i32.const 34304 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1056 + i32.const 1184 + i32.const 52 + i32.const 10 + call $~lib/builtins/abort + unreachable + ) + (func $export:assert-nonnull/testObjFn (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -215,10 +307,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -227,15 +318,14 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load + i32.load offset=4 local.tee $0 i32.store offset=4 local.get $0 @@ -243,21 +333,14 @@ if i32.const 1056 i32.const 1184 - i32.const 15 + i32.const 48 i32.const 10 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 4 - i32.add - global.set $~lib/memory/__stack_pointer local.get $0 - return + i32.load + unreachable end i32.const 34256 i32.const 34304 @@ -266,8 +349,7 @@ call $~lib/builtins/abort unreachable ) - (func $export:assert-nonnull/testArr (param $0 i32) (result i32) - (local $1 i32) + (func $export:assert-nonnull/testObj (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -278,10 +360,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -290,10 +371,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -301,65 +381,16 @@ if i32.const 1056 i32.const 1184 - i32.const 19 + i32.const 11 i32.const 10 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store - local.get $1 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1468 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.eqz - if - i32.const 1248 - i32.const 1312 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 local.get $0 - i32.load offset=4 i32.load - local.tee $0 - i32.store offset=4 - local.get $0 - i32.eqz - if - i32.const 1360 - i32.const 1312 - 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 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -368,7 +399,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end i32.const 34256 @@ -378,7 +408,7 @@ call $~lib/builtins/abort unreachable ) - (func $export:assert-nonnull/testElem (param $0 i32) (result i32) + (func $export:assert-nonnull/testFn2 (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -390,10 +420,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -402,37 +431,27 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 - local.get $0 - call $~lib/array/Array#__get - local.tee $0 - i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.eqz if i32.const 1056 i32.const 1184 - i32.const 23 - i32.const 10 + i32.const 39 + i32.const 13 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 4 - i32.add - global.set $~lib/memory/__stack_pointer local.get $0 - return + i32.store offset=4 + local.get $0 + i32.load + unreachable end i32.const 34256 i32.const 34304 @@ -441,172 +460,55 @@ call $~lib/builtins/abort unreachable ) - (func $export:assert-nonnull/testAll (param $0 i32) (result i32) - (local $1 i32) + (func $export:assert-nonnull/testFn (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1468 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store - local.get $1 - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1468 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.const 20 - memory.fill - local.get $1 - local.get $0 - i32.store offset=8 - local.get $0 - i32.eqz - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/array/Array#__get - local.tee $0 - i32.store offset=12 - local.get $0 - i32.eqz - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load - local.tee $0 - i32.store offset=16 - local.get $0 - i32.eqz - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 20 - 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 34256 - i32.const 34304 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1056 - i32.const 1184 - i32.const 27 - i32.const 10 - call $~lib/builtins/abort - unreachable - ) - (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 - block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1468 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store - local.get $1 - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1468 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.const 20 - memory.fill - local.get $1 - local.get $0 - i32.store offset=8 - local.get $0 - i32.eqz - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/array/Array#__get - local.tee $0 - i32.store offset=12 - local.get $0 - i32.eqz - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load - local.tee $0 - i32.store offset=16 - local.get $0 - i32.eqz - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 20 - 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 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1468 + 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 1468 + 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.eqz + if + i32.const 1056 + i32.const 1184 + i32.const 35 + i32.const 10 + call $~lib/builtins/abort + unreachable end - i32.const 34256 - i32.const 34304 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort + local.get $0 + i32.load unreachable end - i32.const 1056 - i32.const 1184 - i32.const 31 - i32.const 10 + i32.const 34256 + i32.const 34304 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable ) - (func $export:assert-nonnull/testFn (param $0 i32) (result i32) - (local $1 i32) + (func $export:assert-nonnull/testElem (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -617,11 +519,10 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 4 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -629,27 +530,36 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 + 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 + call $~lib/array/Array#__get + local.tee $0 + i32.store offset=4 local.get $0 i32.eqz if i32.const 1056 i32.const 1184 - i32.const 35 + i32.const 23 i32.const 10 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 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 - i32.load - call_indirect (type $1) - drop - unreachable + return end i32.const 34256 i32.const 34304 @@ -658,8 +568,7 @@ call $~lib/builtins/abort unreachable ) - (func $export:assert-nonnull/testFn2 (param $0 i32) (result i32) - (local $1 i32) + (func $export:assert-nonnull/testArr (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -670,10 +579,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -682,30 +590,82 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=4 local.get $0 i32.eqz if i32.const 1056 i32.const 1184 - i32.const 39 - i32.const 13 + i32.const 19 + i32.const 10 call $~lib/builtins/abort unreachable end - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + 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 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 local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eqz + if + i32.const 1248 + i32.const 1312 + 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 - call_indirect (type $1) - drop - unreachable + local.tee $0 + i32.store offset=4 + local.get $0 + i32.eqz + if + i32.const 1360 + i32.const 1312 + 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 + 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 + local.get $0 + return end i32.const 34256 i32.const 34304 @@ -714,7 +674,7 @@ call $~lib/builtins/abort unreachable ) - (func $export:assert-nonnull/testRet (param $0 i32) (result i32) + (func $export:assert-nonnull/testAll2 (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -727,11 +687,10 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 8 + global.get $~lib/memory/__stack_pointer + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -739,20 +698,47 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=8 local.get $0 i32.eqz br_if $folding-inner1 + 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 + local.get $0 + call $~lib/array/Array#__get + local.tee $0 + i32.store offset=12 + local.get $0 + i32.eqz + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $0 i32.load - call_indirect (type $1) - drop - unreachable + local.tee $0 + i32.store offset=16 + local.get $0 + i32.eqz + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 20 + 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 34256 i32.const 34304 @@ -763,70 +749,12 @@ end i32.const 1056 i32.const 1184 - i32.const 44 + i32.const 31 i32.const 10 call $~lib/builtins/abort unreachable ) - (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 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1468 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store - local.get $1 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1468 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=4 - local.tee $0 - i32.store offset=4 - local.get $0 - i32.eqz - if - i32.const 1056 - i32.const 1184 - i32.const 48 - i32.const 10 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load - call_indirect (type $1) - drop - unreachable - end - i32.const 34256 - i32.const 34304 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $export:assert-nonnull/testObjRet (param $0 i32) (result i32) + (func $export:assert-nonnull/testAll (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -839,11 +767,10 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 12 + global.get $~lib/memory/__stack_pointer + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -851,28 +778,47 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=8 - local.get $1 local.get $0 - i32.store - local.get $1 + i32.eqz + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=4 - local.tee $0 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/array/Array#__get + local.tee $0 + i32.store offset=12 local.get $0 i32.eqz br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $0 i32.load - call_indirect (type $1) - drop - unreachable + local.tee $0 + i32.store offset=16 + local.get $0 + i32.eqz + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 20 + 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 34256 i32.const 34304 @@ -883,7 +829,7 @@ end i32.const 1056 i32.const 1184 - i32.const 52 + i32.const 27 i32.const 10 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/assignment-chain.debug.wat b/tests/compiler/assignment-chain.debug.wat index 84f831ff37..340796c987 100644 --- a/tests/compiler/assignment-chain.debug.wat +++ b/tests/compiler/assignment-chain.debug.wat @@ -1629,14 +1629,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 @@ -2349,12 +2352,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/assignment-chain.release.wat b/tests/compiler/assignment-chain.release.wat index f7c0cdbab6..fb11835ac0 100644 --- a/tests/compiler/assignment-chain.release.wat +++ b/tests/compiler/assignment-chain.release.wat @@ -5,8 +5,8 @@ (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) (result i32))) + (type $6 (func (param i32) (result i32))) + (type $7 (func (result i32))) (import "env" "abort" (func $~lib/builtins/abort (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)) @@ -39,51 +39,6 @@ (export "static_setter_assignment_chain" (func $assignment-chain/static_setter_assignment_chain)) (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 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/__visit (param $0 i32) (local $1 i32) (local $2 i32) @@ -628,1024 +583,914 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (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.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u + (local $6 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u if - i32.const 0 - i32.const 1392 - i32.const 382 - i32.const 14 + i32.const 1056 + i32.const 1120 + i32.const 261 + i32.const 31 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 + 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.load offset=1568 - local.tee $3 + i32.const 16 + i32.add + local.tee $2 + i32.const 1073741820 + i32.gt_u if - local.get $3 - i32.const 4 + 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 - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1392 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable + 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 + 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.get $3 - local.get $1 + i32.const 4 + local.get $4 + i32.load offset=1568 + memory.size + local.tee $2 i32.const 16 + i32.shl + i32.const 4 i32.sub - local.tee $5 - i32.eq + i32.ne + i32.shl + i32.add + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.set $3 + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s if local.get $3 - i32.load - local.set $4 - local.get $5 - local.set $1 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end end - else - local.get $0 - i32.const 1572 - i32.add - local.get $1 - i32.gt_u + 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 402 - i32.const 5 + i32.const 499 + i32.const 16 call $~lib/builtins/abort unreachable end end + local.get $5 local.get $2 - i32.wrap_i64 - i32.const -16 + i32.load + i32.const -4 i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u + i32.gt_u if - return + i32.const 0 + i32.const 1392 + i32.const 501 + i32.const 14 + call $~lib/builtins/abort + unreachable end - local.get $1 local.get $4 - i32.const 2 + 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 - local.get $3 - i32.const 8 + 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 1 + 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 - local.get $1 - i32.const 0 i32.store offset=4 local.get $1 - i32.const 0 + local.get $2 i32.store offset=8 - local.get $1 + global.get $~lib/rt/itcms/total + local.get $2 + i32.load + i32.const -4 + i32.and 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 + 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 - 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 + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $assignment-chain/B + block $assignment-chain/A + 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 $assignment-chain/A $assignment-chain/B $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 + ) + (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 - unreachable - end - i32.const 34304 - i32.const 0 - i32.store - i32.const 35872 - i32.const 0 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 23 + 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 $0 - i32.const 2 + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub i32.shl - i32.const 34304 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 34304 - 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 + i32.sub + local.set $1 end - end - i32.const 34304 - i32.const 35876 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34304 - 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 34300 - 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 $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 - i32.load offset=4 + local.get $1 + i32.ctz local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $2 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 + i32.const 1392 + i32.const 347 + i32.const 18 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 34300 - 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 34300 - 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.set $1 - 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 $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return + 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 - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state end - i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if + (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.const 4 - i32.shr_u - local.set $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s else - local.get $1 - i32.const 536870910 + i32.const 0 + end + if + unreachable + end + i32.const 34304 + i32.const 0 + i32.store + i32.const 35872 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 i32.lt_u if - local.get $1 - i32.const 1 - i32.const 27 - local.get $1 - i32.clz - i32.sub + local.get $0 + i32.const 2 i32.shl + i32.const 34304 i32.add - i32.const 1 - i32.sub + 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 34304 + 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 - 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 + i32.const 34304 + i32.const 35876 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34304 + global.set $~lib/rt/tlsf/ROOT + ) + (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 - i32.const 23 - i32.lt_u - i32.and - i32.eqz + local.get $1 + i64.extend_i32_u + i64.lt_u if i32.const 0 i32.const 1392 - i32.const 334 + i32.const 382 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 19 + i32.add + i32.const -16 i32.and - local.tee $1 - if (result i32) - local.get $0 - local.get $1 - i32.ctz - local.get $2 + 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.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 + 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/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1248 + 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 1392 - i32.const 347 - i32.const 18 + i32.const 1120 + i32.const 160 + i32.const 16 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.const 20 i32.add - i32.load offset=96 - else - i32.const 0 + 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/__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 $~lib/object/Object#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 1532 + i32.lt_s if - i32.const 1056 - i32.const 1120 - i32.const 261 - i32.const 31 + i32.const 34320 + i32.const 34368 + 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$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 - 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 $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 - 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 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 i32.eqz if - call $~lib/rt/tlsf/initialize + 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/rt/tlsf/ROOT - local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 - i32.const 16 + ) + (func $assignment-chain/static_setter_assignment_chain + global.get $assignment-chain/C._setter_cnt + i32.const 1 i32.add - local.tee $2 - i32.const 1073741820 - i32.gt_u + global.set $assignment-chain/C._setter_cnt + global.get $assignment-chain/C._setter_cnt + i32.const 1 + i32.add + global.set $assignment-chain/C._setter_cnt + global.get $assignment-chain/C._setter_cnt + i32.const 2 + i32.ne if - i32.const 1056 - i32.const 1392 - i32.const 461 - i32.const 29 + i32.const 0 + i32.const 1456 + i32.const 45 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $4 - local.get $2 + ) + (func $assignment-chain/setter_assignment_chain + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer 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 + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1532 + 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 - i32.ne - i32.shl - i32.add - i32.const 65535 - i32.add - i32.const -65536 - i32.and + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1532 + 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 - i32.shr_u - local.tee $3 - local.get $2 - local.get $3 - i32.gt_s - select - memory.grow + 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 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $~lib/object/Object#constructor + 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.lt_s + 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 + f64.const 0 + f64.store offset=8 + 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 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $assignment-chain/B#set:y + local.get $1 + call $assignment-chain/B#set:y + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.load + i32.const 2 + i32.ne if - local.get $3 - memory.grow i32.const 0 - i32.lt_s - if - unreachable - end + i32.const 1456 + i32.const 30 + i32.const 3 + call $~lib/builtins/abort + unreachable 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 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.load offset=4 if i32.const 0 - i32.const 1392 - i32.const 499 - i32.const 16 + i32.const 1456 + i32.const 31 + 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 - 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.const 34320 + i32.const 34368 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $assignment-chain/normal_assignment_chain + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 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 $assignment-chain/static_setter_assignment_chain - global.get $assignment-chain/C._setter_cnt - i32.const 1 - i32.add - global.set $assignment-chain/C._setter_cnt - global.get $assignment-chain/C._setter_cnt - i32.const 1 - i32.add - global.set $assignment-chain/C._setter_cnt - global.get $assignment-chain/C._setter_cnt - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1456 - i32.const 45 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $assignment-chain/B - block $assignment-chain/A - 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 $assignment-chain/A $assignment-chain/B $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - return - end - return - end - return - end - unreachable - ) - (func $~start - memory.size - i32.const 16 - i32.shl - i32.const 34300 - 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 $assignment-chain/normal_assignment_chain - call $assignment-chain/setter_assignment_chain - call $assignment-chain/static_setter_assignment_chain - ) - (func $assignment-chain/normal_assignment_chain - (local $0 i32) - (local $1 i32) - (local $2 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 1532 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 8 + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1532 + 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 @@ -1653,21 +1498,19 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 4 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $2 + local.get $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $2 call $~lib/object/Object#constructor local.tee $1 i32.store @@ -1687,7 +1530,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store global.get $~lib/memory/__stack_pointer @@ -1716,7 +1558,6 @@ unreachable ) (func $assignment-chain/B#set:y (param $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1733,13 +1574,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -1748,175 +1588,312 @@ i32.const 1 i32.add i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 f64.const 1 f64.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $assignment-chain/setter_assignment_chain + (func $~start + memory.size + i32.const 16 + i32.shl + i32.const 34300 + 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 $assignment-chain/normal_assignment_chain + call $assignment-chain/setter_assignment_chain + call $assignment-chain/static_setter_assignment_chain + ) + (func $~lib/rt/itcms/step (result i32) (local $0 i32) (local $1 i32) (local $2 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 1532 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer + 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 34300 + 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 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1532 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - i32.const 16 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $2 - i32.store offset=4 - local.get $1 - local.get $2 - call $~lib/object/Object#constructor - 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 - f64.const 0 - f64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $assignment-chain/B#set:y - local.get $1 - call $assignment-chain/B#set:y - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.load - i32.const 2 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1456 - i32.const 30 + 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 - call $~lib/builtins/abort - unreachable + 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 34300 + 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 34300 + 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/memory/__stack_pointer - local.get $1 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $1 - i32.load offset=4 - 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 - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 34320 - i32.const 34368 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/object/Object#constructor (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1532 - i32.lt_s - if - i32.const 34320 - i32.const 34368 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - local.get $1 - i32.const 0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 i32.const 0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store + global.set $~lib/rt/itcms/state end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 ) ) diff --git a/tests/compiler/bigint-integration.release.wat b/tests/compiler/bigint-integration.release.wat index 65f0bbea0b..6702bb5684 100644 --- a/tests/compiler/bigint-integration.release.wat +++ b/tests/compiler/bigint-integration.release.wat @@ -14,9 +14,6 @@ (export "getInternalValue" (func $bigint-integration/getInternalValue)) (export "memory" (memory $0)) (export "_start" (func $~start)) - (func $bigint-integration/getInternalValue (result i64) - i64.const 9007199254740991 - ) (func $~start global.get $~started if @@ -47,4 +44,7 @@ unreachable end ) + (func $bigint-integration/getInternalValue (result i64) + i64.const 9007199254740991 + ) ) diff --git a/tests/compiler/bindings/esm.debug.js b/tests/compiler/bindings/esm.debug.js index d2d89456b8..e1a514ba47 100644 --- a/tests/compiler/bindings/esm.debug.js +++ b/tests/compiler/bindings/esm.debug.js @@ -1,6 +1,6 @@ async function instantiate(module, imports = {}) { const adaptedImports = { - env: Object.assign(Object.create(globalThis), imports.env || {}, { + env: Object.setPrototypeOf({ trace(message, n, a0, a1, a2, a3, a4) { // ~lib/builtins/trace(~lib/string/String, i32?, f64?, f64?, f64?, f64?, f64?) => void message = __liftString(message >>> 0); @@ -44,7 +44,7 @@ async function instantiate(module, imports = {}) { 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; @@ -553,8 +553,9 @@ export const { fn, } = await (async url => instantiate( await (async () => { - try { return await globalThis.WebAssembly.compileStreaming(globalThis.fetch(url)); } - catch { return globalThis.WebAssembly.compile(await (await import("node:fs/promises")).readFile(url)); } + const isNodeOrBun = typeof process != "undefined" && process.versions != null && (process.versions.node != null || process.versions.bun != null); + if (isNodeOrBun) { return globalThis.WebAssembly.compile(await (await import("node:fs/promises")).readFile(url)); } + else { return await globalThis.WebAssembly.compileStreaming(globalThis.fetch(url)); } })(), { } ))(new URL("esm.debug.wasm", import.meta.url)); diff --git a/tests/compiler/bindings/esm.debug.wat b/tests/compiler/bindings/esm.debug.wat index cebadb0ee0..a6850592f3 100644 --- a/tests/compiler/bindings/esm.debug.wat +++ b/tests/compiler/bindings/esm.debug.wat @@ -124,6 +124,27 @@ (export "functionFunction" (func $export:bindings/esm/functionFunction)) (func $start:bindings/esm~anonymous|0 ) + (func $start:bindings/esm + i32.const 128 + i32.const 1 + f64.const 42 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 160 + call $~lib/bindings/dom/console.log + global.get $~lib/bindings/dom/Math.E + call $~lib/bindings/dom/Math.log + drop + global.get $bindings/esm/immutableGlobal + drop + global.get $bindings/esm/immutableGlobalNested + drop + call $bindings/esm/Date_getTimezoneOffset + drop + ) (func $bindings/esm/plainFunction (param $a i32) (param $b i32) (result i32) local.get $a local.get $b @@ -1734,14 +1755,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 @@ -2874,12 +2898,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -2941,28 +2961,16 @@ call $~lib/object/Object~visit local.get $0 i32.load offset=56 - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit local.get $0 i32.load offset=60 - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit local.get $0 i32.load offset=64 - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/typedarray/Uint8Array~visit (param $0 i32) (param $1 i32) local.get $0 @@ -3097,50 +3105,6 @@ unreachable end ) - (func $start:bindings/esm - (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 128 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 1 - f64.const 42 - f64.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - i32.const 160 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/bindings/dom/console.log - global.get $~lib/bindings/dom/Math.E - call $~lib/bindings/dom/Math.log - drop - global.get $bindings/esm/immutableGlobal - drop - global.get $bindings/esm/immutableGlobalNested - drop - call $bindings/esm/Date_getTimezoneOffset - drop - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) (func $bindings/esm/bufferFunction (param $a i32) (param $b i32) (result i32) (local $aByteLength i32) (local $bByteLength i32) diff --git a/tests/compiler/bindings/esm.release.js b/tests/compiler/bindings/esm.release.js index 30c529402d..4f91c23e94 100644 --- a/tests/compiler/bindings/esm.release.js +++ b/tests/compiler/bindings/esm.release.js @@ -1,6 +1,6 @@ async function instantiate(module, imports = {}) { const adaptedImports = { - env: Object.assign(Object.create(globalThis), imports.env || {}, { + env: Object.setPrototypeOf({ trace(message, n, a0, a1, a2, a3, a4) { // ~lib/builtins/trace(~lib/string/String, i32?, f64?, f64?, f64?, f64?, f64?) => void message = __liftString(message >>> 0); @@ -44,7 +44,7 @@ async function instantiate(module, imports = {}) { 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; @@ -553,8 +553,9 @@ export const { fn, } = await (async url => instantiate( await (async () => { - try { return await globalThis.WebAssembly.compileStreaming(globalThis.fetch(url)); } - catch { return globalThis.WebAssembly.compile(await (await import("node:fs/promises")).readFile(url)); } + const isNodeOrBun = typeof process != "undefined" && process.versions != null && (process.versions.node != null || process.versions.bun != null); + if (isNodeOrBun) { return globalThis.WebAssembly.compile(await (await import("node:fs/promises")).readFile(url)); } + else { return await globalThis.WebAssembly.compileStreaming(globalThis.fetch(url)); } })(), { } ))(new URL("esm.release.wasm", import.meta.url)); diff --git a/tests/compiler/bindings/esm.release.wat b/tests/compiler/bindings/esm.release.wat index b99d7d1e01..4fa9022ad2 100644 --- a/tests/compiler/bindings/esm.release.wat +++ b/tests/compiler/bindings/esm.release.wat @@ -2,22 +2,22 @@ (type $0 (func (param i32 i32) (result i32))) (type $1 (func (param i32))) (type $2 (func (param i32) (result i32))) - (type $3 (func (result i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) + (type $3 (func (param i32 i32 i32))) + (type $4 (func (result i32))) + (type $5 (func)) (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 $8 (func (param i32 i32 i32 i32))) + (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" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (import "env" "trace" (func $~lib/builtins/trace (param i32 i32 f64 f64 f64 f64 f64))) (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 (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)) @@ -120,218 +120,6 @@ (export "objectFunction" (func $export:bindings/esm/objectFunction)) (export "internrefFunction" (func $export:bindings/esm/internrefFunction)) (export "functionFunction" (func $export:bindings/esm/staticarrayU16)) - (func $bindings/esm/plainFunction (param $0 i32) (param $1 i32) (result i32) - local.get $0 - local.get $1 - i32.add - ) - (func $bindings/esm/plainFunction64 (param $0 i64) (param $1 i64) (result i64) - local.get $0 - local.get $1 - i64.add - ) - (func $bindings/esm/getMaxUnsigned32 (result i32) - i32.const -1 - ) - (func $bindings/esm/getMaxUnsigned64 (result i64) - i64.const -1 - ) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1056 - call $~lib/rt/itcms/__visit - global.get $bindings/esm/mutableStringGlobal - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 1552 - call $~lib/rt/itcms/__visit - i32.const 1248 - call $~lib/rt/itcms/__visit - i32.const 1968 - call $~lib/rt/itcms/__visit - i32.const 1360 - call $~lib/rt/itcms/__visit - i32.const 2096 - call $~lib/rt/itcms/__visit - i32.const 2160 - 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 1424 - 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#unlink (param $0 i32) - (local $1 i32) - 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 35044 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1424 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $0 - i32.load offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1424 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - 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 - ) - (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 1424 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.set $~lib/rt/itcms/iter - end - local.get $0 - call $~lib/rt/itcms/Object#unlink - global.get $~lib/rt/itcms/toSpace - local.set $1 - local.get $0 - i32.load offset=12 - local.tee $2 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $2 - i32.const 2208 - i32.load - i32.gt_u - if - i32.const 1552 - i32.const 1616 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 2 - i32.shl - i32.const 2212 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $1 - i32.load offset=8 - local.set $2 - local.get $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $1 - 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 - ) (func $~lib/rt/itcms/__visit (param $0 i32) local.get $0 i32.eqz @@ -356,591 +144,407 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (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.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + (local $6 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u if - i32.const 0 - i32.const 1696 - i32.const 268 - i32.const 14 + i32.const 1360 + i32.const 1424 + i32.const 261 + i32.const 31 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - i32.const 0 - i32.const 1696 - 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 + block $__inlined_func$~lib/rt/itcms/interrupt$70 + i32.const 2048 + local.set $2 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$70 + end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.const 10 + i32.shl + i32.add + global.set $~lib/rt/itcms/threshold + end end - local.tee $3 - i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u - i32.and + global.get $~lib/rt/tlsf/ROOT i32.eqz if - i32.const 0 + 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 1360 i32.const 1696 - i32.const 284 - i32.const 14 + i32.const 461 + i32.const 29 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 + 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.get $5 + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz if 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.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 + i32.load offset=1568 + memory.size + local.tee $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.set $3 + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s 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 + memory.grow + i32.const 0 + i32.lt_s if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - i32.rotl - i32.and - i32.store + 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 1696 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + 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 + local.get $5 + local.get $2 + i32.load + i32.const -4 + i32.and + i32.gt_u if i32.const 0 i32.const 1696 - i32.const 201 + i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 + local.get $2 + call $~lib/rt/tlsf/removeBlock + local.get $2 i32.load - local.tee $3 - i32.const 1 + local.set $6 + local.get $5 + i32.const 4 + i32.add + i32.const 15 i32.and - i32.eqz if i32.const 0 i32.const 1696 - i32.const 203 + i32.const 361 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load + local.get $6 i32.const -4 i32.and - i32.add - local.tee $4 - i32.load - local.tee $2 - i32.const 1 - i32.and + local.get $5 + i32.sub + local.tee $3 + i32.const 16 + i32.ge_u 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 + local.get $5 + local.get $6 + i32.const 2 i32.and - i32.add - local.tee $3 + i32.or i32.store - local.get $1 + local.get $2 i32.const 4 i32.add - local.get $1 - i32.load - i32.const -4 - i32.and + local.get $5 i32.add - local.tee $4 - i32.load - local.set $2 - end - local.get $3 - i32.const 2 - i32.and - if - local.get $1 + local.tee $5 + local.get $3 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 1696 - 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 + 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 $3 + 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 $4 local.get $2 - i32.const 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 + i32.store offset=4 + local.get $2 local.get $3 - i32.const -4 + i32.store offset=8 + local.get $3 + local.get $2 + local.get $3 + i32.load offset=4 + i32.const 3 i32.and - local.tee $2 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1696 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $4 + 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 - i32.ne + 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) (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 1696 - i32.const 234 + i32.const 1424 + i32.const 295 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 - i32.const 4 - i32.sub + global.get $~lib/rt/itcms/white 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.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $0 + i32.const 20 i32.sub + local.tee $0 + i32.load offset=4 + i32.const 3 + i32.and local.tee $3 - 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 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $0 + local.get $1 + local.get $2 + select + call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + local.get $3 + i32.const 3 + i32.eq + i32.and + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + end + end end - local.tee $2 - i32.const 16 - i32.lt_u - local.get $5 - i32.const 23 - i32.lt_u - i32.and - i32.eqz + ) + (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 0 - i32.const 1696 - i32.const 251 - i32.const 14 + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 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.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 + global.get $~lib/memory/__stack_pointer 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 1696 - 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 1696 - 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 1696 - 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 + local.get $0 + i32.load offset=12 + 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 35056 - i32.const 0 - i32.store - i32.const 36624 - 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 35056 - 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 35056 - 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 35056 - i32.const 36628 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 35056 - global.set $~lib/rt/tlsf/ROOT + global.set $~lib/memory/__stack_pointer ) (func $~lib/rt/itcms/step (result i32) (local $0 i32) @@ -1152,7 +756,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1185,7 +788,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1194,62 +796,195 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 + 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) + (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 1424 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + global.get $~lib/rt/itcms/toSpace + local.set $1 + local.get $0 + i32.load offset=12 + local.tee $2 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $2 + i32.const 2208 + i32.load + i32.gt_u + if + i32.const 1552 + i32.const 1616 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 2 + i32.shl + i32.const 2212 + i32.add + i32.load + i32.const 32 + i32.and + end + local.set $3 local.get $1 - i32.const 256 + i32.load offset=8 + local.set $2 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $1 + 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 + ) + (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/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 1696 + 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 - local.get $1 + i32.const 0 + i32.const 1696 + 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 - 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.const 1073741820 + local.get $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 i32.clz i32.sub - local.tee $2 + 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 - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 end - local.get $1 + local.tee $3 i32.const 16 i32.lt_u local.get $2 @@ -1260,634 +995,374 @@ if i32.const 0 i32.const 1696 - i32.const 334 + 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 2 + i32.const 4 i32.shl + local.get $3 i32.add - i32.load offset=4 - i32.const -1 - local.get $1 + i32.const 2 i32.shl - i32.and + i32.add local.tee $1 - if (result i32) - local.get $0 + i32.load offset=96 + i32.eq + if 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 $5 + i32.store offset=96 + local.get $5 + i32.eqz + if local.get $0 - local.get $1 - i32.ctz - local.tee $1 + local.get $2 i32.const 2 i32.shl i32.add + local.tee $1 i32.load offset=4 - local.tee $2 + 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 - i32.const 0 - i32.const 1696 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $2 + i32.rotl + i32.and + i32.store 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) + (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 $0 - i32.const 1073741804 - i32.ge_u + local.get $1 + i32.eqz if - i32.const 1360 - i32.const 1424 - i32.const 261 - i32.const 31 + i32.const 0 + i32.const 1696 + i32.const 201 + 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$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 - local.tee $2 - local.get $2 - 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 + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and 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 1360 + i32.const 0 i32.const 1696 - i32.const 461 - i32.const 29 + i32.const 203 + i32.const 14 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.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.eqz + i32.const 1 + i32.and 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 $0 local.get $4 - i32.load offset=1568 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $3 + i32.const 4 + i32.add local.get $2 - i32.const 16 - i32.shl + i32.const -4 + i32.and + i32.add + local.tee $3 + i32.store + local.get $1 i32.const 4 - i32.sub - i32.ne - i32.shl i32.add - i32.const 65535 + local.get $1 + i32.load + i32.const -4 + i32.and i32.add - i32.const -65536 + 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.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 1696 - i32.const 499 + i32.const 221 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 + 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 1696 - i32.const 501 + i32.const 233 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 + local.get $1 i32.const 4 i32.add - i32.const 15 - i32.and + local.get $2 + i32.add + i32.ne if i32.const 0 i32.const 1696 - i32.const 361 + i32.const 234 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $6 - i32.const -4 - i32.and - local.get $5 + local.get $4 + i32.const 4 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 $1 + i32.store + local.get $2 + i32.const 256 + i32.lt_u + if (result i32) 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 + i32.shr_u else + i32.const 31 + i32.const 1073741820 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 + 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.load - i32.const -3 - i32.and - i32.store + 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 1696 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable 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 $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.get $~lib/rt/itcms/white - i32.or + i32.const 0 i32.store offset=4 - local.get $2 + 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 - local.get $3 + 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 3 - i32.and + i32.const 1 + local.get $2 + i32.shl 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 + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + local.get $0 + i32.load offset=4 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) (param $2 i32) - (local $3 i32) - local.get $1 i32.eqz if + local.get $0 + i32.load offset=8 + i32.eqz + local.get $0 + i32.const 35044 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1424 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end return end local.get $0 + i32.load offset=8 + local.tee $0 i32.eqz if i32.const 0 i32.const 1424 - i32.const 295 - i32.const 14 + i32.const 132 + i32.const 16 call $~lib/builtins/abort unreachable end - global.get $~lib/rt/itcms/white - local.tee $3 local.get $1 - i32.const 20 - i32.sub - local.tee $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.eq - if - local.get $3 - i32.eqz - local.get $0 - i32.const 20 - i32.sub - local.tee $0 - i32.load offset=4 - i32.const 3 - i32.and - local.tee $3 - i32.eq - if - local.get $0 - local.get $1 - local.get $2 - select - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - local.get $3 - i32.const 3 - i32.eq - i32.and - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - end - end - end - ) - (func $bindings/esm/newInternref (result i32) - (local $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 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.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 0 - i32.const 15 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/rt/itcms/__pin (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - if - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.eq - if - i32.const 2096 - i32.const 1424 - i32.const 338 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - local.get $1 - call $~lib/rt/itcms/Object#unlink - global.get $~lib/rt/itcms/pinSpace - local.tee $3 - i32.load offset=8 - local.set $2 - local.get $1 - local.get $3 - i32.const 3 - i32.or - 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 - local.get $3 - local.get $1 - i32.store offset=8 - end - local.get $0 - ) - (func $~lib/rt/itcms/__unpin (param $0 i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.eqz - if - return - end - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 2160 - i32.const 1424 - i32.const 352 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - else - local.get $1 - call $~lib/rt/itcms/Object#unlink - global.get $~lib/rt/itcms/fromSpace - local.tee $0 - i32.load offset=8 - 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 - 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 - local.get $0 - local.get $1 - i32.store offset=8 - end - ) - (func $~lib/rt/itcms/__collect - global.get $~lib/rt/itcms/state - i32.const 0 - i32.gt_s - if - loop $while-continue|0 - global.get $~lib/rt/itcms/state - 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 - 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 + i32.or + i32.store offset=4 ) (func $~lib/rt/__visit_members (param $0 i32) (local $1 i32) @@ -1929,10 +1404,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -1972,16 +1446,15 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 local.set $1 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -2014,25 +1487,13 @@ end local.get $0 i32.load offset=56 - local.tee $1 - if - local.get $1 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit local.get $0 i32.load offset=60 - local.tee $1 - if - local.get $1 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit local.get $0 i32.load offset=64 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end return @@ -2048,11 +1509,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end global.get $~lib/memory/__stack_pointer @@ -2066,18 +1523,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~setArgumentsLength (param $0 i32) - local.get $0 - global.set $~argumentsLength - ) - (func $~start - (local $0 i32) - global.get $~started - if - return - end - i32.const 1 - global.set $~started + (func $export:bindings/esm/staticarrayU16 (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2094,196 +1540,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store local.get $0 - i32.const 1152 i32.store - i32.const 1152 - i32.const 1 - f64.const 42 - f64.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - global.get $~lib/memory/__stack_pointer - i32.const 1184 - i32.store - i32.const 1184 - call $~lib/bindings/dom/console.log - global.get $~lib/bindings/dom/Math.E - call $~lib/bindings/dom/Math.log - drop - call $bindings/esm/Date_getTimezoneOffset - drop global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - memory.size - i32.const 16 - i32.shl - i32.const 35044 - 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 - ) - (func $bindings/esm/stringFunction (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 2276 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - local.get $0 - i32.store - local.get $2 - local.get $1 - i32.store offset=4 - local.get $2 - 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 - local.tee $2 - i64.const 0 - i64.store - local.get $2 - local.get $0 - i32.store - local.get $2 - local.get $1 - i32.store offset=4 - local.get $2 - 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 - local.tee $2 - i64.const 0 - i64.store - local.get $2 - 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 - local.get $2 - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$280 - 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 $5 - i32.eqz - if - local.get $2 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1760 - local.set $2 - br $__inlined_func$~lib/string/String#concat$280 - end - global.get $~lib/memory/__stack_pointer - local.get $5 - 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 + local.get $0 ) - (func $~lib/typedarray/Int16Array#get:length (param $0 i32) (result i32) - (local $1 i32) + (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 @@ -2300,25 +1565,42 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store + local.get $1 local.get $0 i32.load offset=8 - i32.const 1 + i32.const 3 i32.shr_u - local.set $0 + i32.ge_u + if + i32.const 1552 + i32.const 1792 + 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 - local.get $0 ) (func $~lib/typedarray/Float32Array#get:length (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2335,25 +1617,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.set $0 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/typedarray/Uint64Array#__set (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) + (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 @@ -2370,385 +1648,608 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + 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.const 20 + i32.sub + i32.load offset=16 + i32.const 2 i32.shr_u i32.ge_u if i32.const 1552 - i32.const 1792 - i32.const 1173 - i32.const 64 + i32.const 1856 + i32.const 93 + i32.const 41 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 - i32.load offset=4 local.get $1 - i32.const 3 + i32.const 2 i32.shl i32.add local.get $2 - i64.store - local.get $3 + i32.store + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $bindings/esm/typedarrayFunction (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 f32) - (local $5 i32) - (local $6 i32) - (local $7 i32) + (func $~lib/staticarray/StaticArray#__get (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i32.const 0 - i32.store offset=8 - local.get $2 - local.get $0 - i32.store - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $2 - block $__inlined_func$~lib/typedarray/Uint64Array#constructor$1 (result i32) + 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 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/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 - call $~lib/typedarray/Float32Array#get:length - local.get $5 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl i32.add - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 1 i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner00 - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner00 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i32.const 12 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $6 - local.get $2 - i32.store offset=4 - local.get $6 - 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-inner00 - global.get $~lib/memory/__stack_pointer - local.tee $7 - i64.const 0 - i64.store - local.get $7 - i64.const 0 - i64.store offset=8 - local.get $2 - i32.eqz - if - local.get $7 - i32.const 12 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - end - 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 - 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 $5 - i32.const 3 - i32.shl - local.tee $5 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - 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 $7 - i32.store offset=12 - local.get $2 - local.get $7 - i32.store - local.get $2 - local.get $7 - 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 $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $5 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - 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$1 + 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 1696 + 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 1696 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable end - br $folding-inner1 + 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 - local.tee $2 - i32.store offset=4 - loop $for-loop|0 - global.get $~lib/memory/__stack_pointer + end + ) + (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 35056 + i32.const 0 + i32.store + i32.const 36624 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if local.get $0 - i32.store + i32.const 2 + i32.shl + i32.const 35056 + 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 35056 + 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 - call $~lib/typedarray/Int16Array#get:length + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 35056 + i32.const 36628 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 35056 + global.set $~lib/rt/tlsf/ROOT + ) + (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 1696 + 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 1696 + 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.gt_s + 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 1696 + 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/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1056 + call $~lib/rt/itcms/__visit + global.get $bindings/esm/mutableStringGlobal + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 1552 + call $~lib/rt/itcms/__visit + i32.const 1248 + call $~lib/rt/itcms/__visit + i32.const 1968 + call $~lib/rt/itcms/__visit + i32.const 1360 + call $~lib/rt/itcms/__visit + i32.const 2096 + call $~lib/rt/itcms/__visit + i32.const 2160 + 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 - 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 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $5 i32.const 0 - i32.store - local.get $5 - 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 1552 - i32.const 1792 - i32.const 452 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $5 - 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 $6 - local.get $5 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $3 - local.get $6 - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 + i32.const 1424 + 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 - i32.const 0 - local.set $3 - loop $for-loop|1 - global.get $~lib/memory/__stack_pointer + end + ) + (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$269 + 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 - i32.store local.get $1 - call $~lib/typedarray/Float32Array#get:length - local.get $3 - i32.gt_s + 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 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.get $3 - i32.add - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - 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 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $6 - i32.const 0 - i32.store - local.get $6 - local.get $1 - i32.store - local.get $3 - local.get $1 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.ge_u - if - i32.const 1552 - i32.const 1792 - i32.const 1304 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $6 - local.get $1 - i32.store - local.get $1 - i32.load offset=4 - local.get $3 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $4 - local.get $6 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $5 local.get $4 - i64.trunc_sat_f32_u - call $~lib/typedarray/Uint64Array#__set local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|1 + i32.store offset=16 + local.get $2 + local.set $1 + br $__inlined_func$~lib/rt/itcms/__renew$269 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 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $1 local.get $2 - return + 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 end - i32.const 35072 - i32.const 35120 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + 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) - (local $2 i32) + (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 @@ -2765,45 +2266,63 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + 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.load offset=12 i32.ge_u if - i32.const 1552 - i32.const 1856 - i32.const 78 - i32.const 41 - call $~lib/builtins/abort - unreachable + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 1552 + i32.const 1920 + 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 - i32.load - local.set $0 + 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 - local.get $0 ) - (func $~lib/staticarray/StaticArray#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 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 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -2818,46 +2337,54 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $3 + i64.const 0 + i64.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.load offset=12 i32.ge_u if i32.const 1552 - i32.const 1856 - i32.const 93 - i32.const 41 + i32.const 1920 + i32.const 114 + i32.const 42 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 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 - local.get $2 - i32.store - local.get $3 - i32.const 4 + i32.load + local.tee $0 + i32.store offset=4 + local.get $0 + i32.eqz + if + i32.const 1968 + i32.const 1920 + 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#get:length (param $0 i32) (result i32) - (local $1 i32) + (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 @@ -2874,23 +2401,57 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store + local.get $1 local.get $0 i32.load offset=12 - local.set $0 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 1552 + i32.const 1920 + 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 - local.get $0 ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2907,10 +2468,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -2926,7 +2486,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $0 @@ -2936,218 +2495,339 @@ i32.shl i32.add i32.load - local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) + (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 4 + 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.tee $2 - i32.const 0 - i32.store - local.get $2 - 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 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer 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 + i32.store offset=4 + global.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 - block $__inlined_func$~lib/rt/itcms/__renew$265 - 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 $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 - 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.load offset=16 + i32.const -2 i32.and - i32.const 16 - i32.sub - i32.le_u + local.tee $4 + local.get $3 + i32.add + local.tee $2 + i32.eqz if - local.get $4 - local.get $3 - i32.store offset=16 - local.get $2 - local.set $1 - br $__inlined_func$~lib/rt/itcms/__renew$265 + 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$284 end - local.get $3 - local.get $4 - i32.load offset=12 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 2 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 + i32.store offset=4 local.get $2 + local.get $0 local.get $3 - local.get $4 - i32.load offset=16 - local.tee $4 + memory.copy + local.get $2 local.get $3 + i32.add + local.get $1 local.get $4 - i32.lt_u - select memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer end - local.get $1 + 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 - 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 + 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) - global.get $~lib/memory/__stack_pointer - i32.const 4 + (func $~start + global.get $~started + if + return + end + i32.const 1 + global.set $~started + i32.const 1152 + i32.const 1 + f64.const 42 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 1184 + call $~lib/bindings/dom/console.log + global.get $~lib/bindings/dom/Math.E + call $~lib/bindings/dom/Math.log + drop + call $bindings/esm/Date_getTimezoneOffset + drop + memory.size + i32.const 16 + i32.shl + i32.const 35044 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s + 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 + ) + (func $~setArgumentsLength (param $0 i32) + local.get $0 + global.set $~argumentsLength + ) + (func $~lib/rt/itcms/__unpin (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.eqz if - i32.const 35072 - i32.const 35120 - i32.const 1 - i32.const 1 + return + end + local.get $0 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 2160 + i32.const 1424 + i32.const 352 + i32.const 5 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store - local.get $1 + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + else + local.get $1 + call $~lib/rt/itcms/Object#unlink + global.get $~lib/rt/itcms/fromSpace + local.tee $0 + i32.load offset=8 + 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 + 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 + local.get $0 + local.get $1 + i32.store offset=8 + end + ) + (func $~lib/rt/itcms/__pin (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) local.get $0 - i32.load offset=12 - i32.ge_u if - local.get $1 - i32.const 0 - i32.lt_s + local.get $0 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.eq if - i32.const 1552 - i32.const 1920 - i32.const 130 - i32.const 22 + i32.const 2096 + i32.const 1424 + i32.const 338 + i32.const 7 call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 - i32.const 1 - i32.add + call $~lib/rt/itcms/Object#unlink + global.get $~lib/rt/itcms/pinSpace local.tee $3 - call $~lib/array/ensureCapacity - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 + i32.load offset=8 + local.set $2 + local.get $1 local.get $3 - i32.store offset=12 + i32.const 3 + i32.or + 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 + local.get $3 + local.get $1 + i32.store offset=8 end - global.get $~lib/memory/__stack_pointer - local.tee $3 - 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 $3 - i32.const 4 + ) + (func $~lib/rt/itcms/__collect + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + global.get $~lib/rt/itcms/state + 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 + 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/memory/__stack_pointer + global.set $~lib/rt/itcms/threshold ) - (func $~lib/array/Array<~lib/string/String>#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $export:bindings/esm/typedarrayFunction (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3164,233 +2844,304 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 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 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store - local.get $2 - 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 118 - i32.const 40 - call $~lib/builtins/abort - unreachable - end + local.get $1 + call $bindings/esm/typedarrayFunction 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) + (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 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.tee $3 - i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_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.const 0 + 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 - if - i32.const 1552 - i32.const 1920 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable + 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 + 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 2276 + i32.lt_s + if + i32.const 35072 + i32.const 35120 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 + i32.const 1 + call $~lib/builtins/abort + unreachable end 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.const 2 - i32.shl - i32.add - local.get $2 - i32.store + i32.store offset=4 local.get $0 - local.get $2 - i32.const 1 - call $~lib/rt/itcms/__link + local.get $1 + call $bindings/esm/stringFunction global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 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/staticarrayFunction (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 + block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 2276 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 - local.get $1 - i32.store offset=4 - local.get $2 - 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 - local.tee $3 - i64.const 0 - i64.store - local.get $3 - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - local.set $4 - local.get $3 - local.get $1 - i32.store local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - local.tee $2 - local.get $4 - i32.add - local.set $5 - local.get $3 - 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 - 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 $3 - local.get $5 i32.store offset=4 - local.get $5 - local.get $0 - local.get $4 - memory.copy - local.get $4 - local.get $5 - i32.add - local.get $1 - local.get $2 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + 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 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 1248 + i32.const 1856 + 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 - local.get $5 return end i32.const 35072 @@ -3400,100 +3151,244 @@ call $~lib/builtins/abort unreachable ) - (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 - 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.tee $2 - local.get $0 - i32.store - local.get $2 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - call $bindings/esm/stringFunction - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $export:bindings/esm/stringFunctionOptional@varargs (param $0 i32) (param $1 i32) (result i32) + (func $export:bindings/esm/objectFunction (param $0 i32) (param $1 i32) (result 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 + block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 2276 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $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-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 + block $__inlined_func$bindings/esm/PlainObject#constructor$4 (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 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 + i32.const 68 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + 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 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $2 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + 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 + i32.const 0 + i32.store8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store16 offset=2 + 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 + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store8 offset=16 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store16 offset=18 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 0 + i64.store offset=24 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=32 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=36 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store8 offset=40 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f32.const 0 + f32.store offset=44 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f64.const 0 + f64.store offset=48 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=56 + 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=60 + 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=64 + local.get $2 + i32.const 0 + 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 + local.get $2 + br $__inlined_func$bindings/esm/PlainObject#constructor$4 + 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=4 + i32.store offset=8 local.get $2 - 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 + local.get $3 + local.get $1 + i32.load8_s + i32.add + i32.store8 global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store local.get $2 - 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 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 - i32.store offset=4 - local.get $2 + 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 - call $bindings/esm/stringFunction - local.set $0 + i32.load16_s offset=2 + i32.add + i32.store16 offset=2 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -3502,7 +3397,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $2 return end i32.const 35072 @@ -3512,8 +3407,7 @@ call $~lib/builtins/abort unreachable ) - (func $export:bindings/esm/typedarrayFunction (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $export:bindings/esm/internrefFunction (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3530,23 +3424,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + 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 $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $export:bindings/esm/staticarrayFunction (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) @@ -3555,189 +3444,101 @@ 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 2276 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - block $__inlined_func$bindings/esm/staticarrayFunction$2 (result i32) - local.get $3 - i32.const 12 - 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 - local.tee $3 - i64.const 0 - i64.store - local.get $3 - i32.const 0 - i32.store offset=8 - local.get $3 - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 2 - i32.shr_u - local.set $4 - local.get $3 - local.get $1 - i32.store - local.get $4 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 2 - i32.shr_u - i32.add - local.set $4 - local.get $3 - 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 1248 - i32.const 1856 - 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 $3 - local.get $4 - i32.store offset=4 - loop $for-loop|0 - global.get $~lib/memory/__stack_pointer - local.tee $3 - 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 - local.get $3 - local.get $4 - i32.store - local.get $3 - 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.tee $3 - 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 - local.get $3 - local.get $4 - i32.store - local.get $3 - 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 $5 - local.get $3 - local.get $1 - i32.store offset=8 - local.get $4 - local.get $5 - 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$2 - end - br $folding-inner1 + global.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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + local.set $2 + 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 + 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 - local.set $0 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 + local.get $2 + memory.copy + local.get $2 + local.get $5 + 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 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 return end i32.const 35072 @@ -3747,34 +3548,7 @@ call $~lib/builtins/abort unreachable ) - (func $export:bindings/esm/staticarrayU16 (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 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.tee $1 - local.get $0 - i32.store - local.get $1 - 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) + (func $export:bindings/esm/arrayOfStringsFunction (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3790,14 +3564,13 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $3 - i32.const 12 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -3805,27 +3578,26 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 - i32.const 0 - i32.store offset=8 - local.get $3 + 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 $3 local.get $1 call $~lib/array/Array#get:length local.get $4 i32.add - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -3835,47 +3607,46 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 11 + i32.const 12 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $5 i32.store 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 - 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 @@ -3888,54 +3659,54 @@ 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 @@ -3947,17 +3718,22 @@ i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - local.get $6 - local.get $2 + i32.store offset=12 local.get $0 local.get $2 - call $~lib/array/Array#__get - call $~lib/array/Array#__set + call $~lib/array/Array<~lib/string/String>#__get + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $5 + local.get $2 + local.get $3 + call $~lib/array/Array<~lib/string/String>#__set local.get $2 i32.const 1 i32.add @@ -3977,11 +3753,11 @@ i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=12 local.get $0 call $~lib/array/Array#get:length local.get $2 @@ -3989,13 +3765,18 @@ local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 - local.get $6 - local.get $3 + i32.store offset=12 local.get $1 local.get $2 - call $~lib/array/Array#__get - call $~lib/array/Array#__set + call $~lib/array/Array<~lib/string/String>#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $5 + local.get $3 + local.get $4 + call $~lib/array/Array<~lib/string/String>#__set local.get $2 i32.const 1 i32.add @@ -4004,14 +3785,14 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 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 + local.get $5 return end i32.const 35072 @@ -4021,7 +3802,7 @@ call $~lib/builtins/abort unreachable ) - (func $export:bindings/esm/arrayOfStringsFunction (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) @@ -4037,14 +3818,13 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $3 - i32.const 16 + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -4052,27 +3832,26 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 - i64.const 0 - i64.store offset=8 - local.get $3 + 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 $3 local.get $1 call $~lib/array/Array#get:length local.get $4 i32.add - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -4082,47 +3861,46 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 12 + i32.const 11 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 - local.get $5 + local.get $6 i32.const 0 i32.store - local.get $5 + local.get $6 i32.const 0 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 - local.get $5 + local.get $6 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 - local.get $5 + local.get $6 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 - local.get $5 + local.get $6 i32.const 0 i32.store offset=12 - local.get $4 + local.get $5 i32.const 268435455 i32.gt_u if @@ -4135,54 +3913,54 @@ end global.get $~lib/memory/__stack_pointer i32.const 8 - local.get $4 - local.get $4 + local.get $5 + local.get $5 i32.const 8 i32.le_u select i32.const 2 i32.shl - local.tee $6 + local.tee $3 i32.const 1 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=12 - local.get $5 - local.get $3 + local.get $6 + local.get $4 i32.store - local.get $5 - local.get $3 + local.get $6 + local.get $4 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 - local.get $5 - local.get $3 + local.get $6 + local.get $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 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 $5 + local.get $6 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 $5 + local.get $6 i32.store offset=4 loop $for-loop|0 global.get $~lib/memory/__stack_pointer @@ -4194,22 +3972,17 @@ i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 - local.get $0 - local.get $2 - call $~lib/array/Array<~lib/string/String>#__get - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 i32.store offset=8 - local.get $5 + local.get $6 local.get $2 - local.get $3 - call $~lib/array/Array<~lib/string/String>#__set + local.get $0 + local.get $2 + call $~lib/array/Array#__get + call $~lib/array/Array#__set local.get $2 i32.const 1 i32.add @@ -4229,11 +4002,11 @@ i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 local.get $0 call $~lib/array/Array#get:length local.get $2 @@ -4241,18 +4014,13 @@ local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 - local.get $1 - local.get $2 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 i32.store offset=8 - local.get $5 + local.get $6 local.get $3 - local.get $4 - call $~lib/array/Array<~lib/string/String>#__set + local.get $1 + local.get $2 + call $~lib/array/Array#__get + call $~lib/array/Array#__set local.get $2 i32.const 1 i32.add @@ -4261,14 +4029,14 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 16 + 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 35072 @@ -4278,12 +4046,15 @@ call $~lib/builtins/abort unreachable ) - (func $export:bindings/esm/objectFunction (param $0 i32) (param $1 i32) (result i32) + (func $bindings/esm/typedarrayFunction (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 i32) + (local $4 f32) + (local $5 i32) + (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 @@ -4292,31 +4063,27 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store - local.get $2 - local.get $1 - i32.store offset=4 - local.get $2 - 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-inner1 - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - block $__inlined_func$bindings/esm/PlainObject#constructor$5 (result i32) + 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 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -4327,21 +4094,20 @@ i32.lt_s br_if $folding-inner00 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 - i32.const 68 - i32.const 13 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 7 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $2 i32.store offset=4 - local.get $3 - i32.const 4 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -4349,191 +4115,260 @@ i32.lt_s br_if $folding-inner00 global.get $~lib/memory/__stack_pointer - local.tee $4 - i32.const 0 - i32.store - local.get $0 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + local.get $2 i32.eqz if - local.get $4 - i32.const 0 - i32.const 0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 3 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.store end global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $0 + 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 $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 - i32.store8 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 - i32.store16 offset=2 + i32.store offset=8 + local.get $5 + 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 $0 + 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 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $2 + local.get $5 + 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 $0 + 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 - i64.const 0 - i64.store offset=8 + 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 - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store8 offset=16 + i32.const 2276 + i32.lt_s + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 i32.const 0 - i32.store16 offset=18 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store + local.get $3 local.get $0 - i32.const 0 - i32.store offset=20 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.ge_u + if + i32.const 1552 + i32.const 1792 + i32.const 452 + i32.const 64 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store local.get $0 - i64.const 0 - i64.store offset=24 + i32.load offset=4 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=32 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + local.get $3 + local.get $5 + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + i32.const 0 + local.set $3 + loop $for-loop|1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/typedarray/Float32Array#get:length + local.get $3 + i32.gt_s + if global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=36 + local.get $2 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store offset=8 local.get $0 - i32.const 0 - i32.store8 offset=40 + call $~lib/typedarray/Int16Array#get:length + local.get $3 + i32.add + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - f32.const 0 - f32.store offset=44 + local.get $1 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - f64.const 0 - f64.store offset=48 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=56 - local.get $0 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link + i32.const 2276 + i32.lt_s + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=60 - local.get $0 i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link + i32.store global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=64 - local.get $0 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link + local.get $1 + i32.store + local.get $3 + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 1552 + i32.const 1792 + i32.const 1304 + i32.const 64 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $1 + i32.store + local.get $1 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - br $__inlined_func$bindings/esm/PlainObject#constructor$5 + local.get $2 + local.get $5 + local.get $4 + i64.trunc_sat_f32_u + call $~lib/typedarray/Uint64Array#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 end - br $folding-inner1 end - local.tee $0 - i32.store global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store offset=4 - local.get $3 - local.get $2 - i32.store offset=8 - local.get $2 - i32.load8_s - local.set $4 - local.get $3 - local.get $1 - i32.store offset=8 - local.get $0 - local.get $4 - local.get $1 - i32.load8_s - i32.add - i32.store8 - local.get $3 - local.get $0 - i32.store offset=4 - local.get $3 - local.get $2 - i32.store offset=8 - local.get $2 - i32.load16_s offset=2 - local.set $2 - local.get $3 - local.get $1 - i32.store offset=8 - local.get $0 - local.get $2 - local.get $1 - i32.load16_s offset=2 - i32.add - i32.store16 offset=2 - local.get $3 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 $0 + local.get $2 return end i32.const 35072 @@ -4543,10 +4378,20 @@ call $~lib/builtins/abort unreachable ) - (func $export:bindings/esm/internrefFunction (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $bindings/esm/plainFunction64 (param $0 i64) (param $1 i64) (result i64) + local.get $0 + local.get $1 + i64.add + ) + (func $bindings/esm/plainFunction (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) + (func $bindings/esm/newInternref (result i32) + (local $0 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -4561,16 +4406,24 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 + i32.const 0 i32.store - local.get $2 - local.get $1 - i32.store offset=4 - local.get $2 - i32.const 8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 15 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) + (func $bindings/esm/getMaxUnsigned64 (result i64) + i64.const -1 + ) + (func $bindings/esm/getMaxUnsigned32 (result i32) + i32.const -1 + ) ) diff --git a/tests/compiler/bindings/noExportRuntime.debug.js b/tests/compiler/bindings/noExportRuntime.debug.js index 9db98d97b4..bdf08ae5ff 100644 --- a/tests/compiler/bindings/noExportRuntime.debug.js +++ b/tests/compiler/bindings/noExportRuntime.debug.js @@ -1,6 +1,6 @@ async function instantiate(module, imports = {}) { const adaptedImports = { - env: Object.assign(Object.create(globalThis), imports.env || {}, { + env: Object.setPrototypeOf({ abort(message, fileName, lineNumber, columnNumber) { // ~lib/builtins/abort(~lib/string/String | null?, ~lib/string/String | null?, u32?, u32?) => void message = __liftString(message >>> 0); @@ -12,7 +12,7 @@ async function instantiate(module, imports = {}) { 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; @@ -162,8 +162,9 @@ export const { takesFunction, } = await (async url => instantiate( await (async () => { - try { return await globalThis.WebAssembly.compileStreaming(globalThis.fetch(url)); } - catch { return globalThis.WebAssembly.compile(await (await import("node:fs/promises")).readFile(url)); } + const isNodeOrBun = typeof process != "undefined" && process.versions != null && (process.versions.node != null || process.versions.bun != null); + if (isNodeOrBun) { return globalThis.WebAssembly.compile(await (await import("node:fs/promises")).readFile(url)); } + else { return await globalThis.WebAssembly.compileStreaming(globalThis.fetch(url)); } })(), { } ))(new URL("noExportRuntime.debug.wasm", import.meta.url)); diff --git a/tests/compiler/bindings/noExportRuntime.debug.wat b/tests/compiler/bindings/noExportRuntime.debug.wat index bfe4a74937..ba2e2f6010 100644 --- a/tests/compiler/bindings/noExportRuntime.debug.wat +++ b/tests/compiler/bindings/noExportRuntime.debug.wat @@ -1650,14 +1650,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + drop global.get $~lib/rt/itcms/total - i64.extend_i32_u i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 + i32.const 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold @@ -2361,8 +2364,6 @@ (func $start:bindings/noExportRuntime (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) memory.size i32.const 16 i32.shl @@ -2471,12 +2472,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/bindings/noExportRuntime.release.js b/tests/compiler/bindings/noExportRuntime.release.js index de99664237..24a1b9596b 100644 --- a/tests/compiler/bindings/noExportRuntime.release.js +++ b/tests/compiler/bindings/noExportRuntime.release.js @@ -1,6 +1,6 @@ async function instantiate(module, imports = {}) { const adaptedImports = { - env: Object.assign(Object.create(globalThis), imports.env || {}, { + env: Object.setPrototypeOf({ abort(message, fileName, lineNumber, columnNumber) { // ~lib/builtins/abort(~lib/string/String | null?, ~lib/string/String | null?, u32?, u32?) => void message = __liftString(message >>> 0); @@ -12,7 +12,7 @@ async function instantiate(module, imports = {}) { 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; @@ -162,8 +162,9 @@ export const { takesFunction, } = await (async url => instantiate( await (async () => { - try { return await globalThis.WebAssembly.compileStreaming(globalThis.fetch(url)); } - catch { return globalThis.WebAssembly.compile(await (await import("node:fs/promises")).readFile(url)); } + const isNodeOrBun = typeof process != "undefined" && process.versions != null && (process.versions.node != null || process.versions.bun != null); + if (isNodeOrBun) { return globalThis.WebAssembly.compile(await (await import("node:fs/promises")).readFile(url)); } + else { return await globalThis.WebAssembly.compileStreaming(globalThis.fetch(url)); } })(), { } ))(new URL("noExportRuntime.release.wasm", import.meta.url)); diff --git a/tests/compiler/bindings/noExportRuntime.release.wat b/tests/compiler/bindings/noExportRuntime.release.wat index ae70539bb7..8db482731d 100644 --- a/tests/compiler/bindings/noExportRuntime.release.wat +++ b/tests/compiler/bindings/noExportRuntime.release.wat @@ -1,8 +1,8 @@ (module (type $0 (func (result i32))) (type $1 (func (param i32))) - (type $2 (func)) - (type $3 (func (param i32 i32))) + (type $2 (func (param 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 i64))) @@ -68,203 +68,6 @@ (export "_start" (func $~start)) (export "takesNonPlainObject" (func $export:bindings/noExportRuntime/takesNonPlainObject)) (export "takesFunction" (func $export:bindings/noExportRuntime/takesNonPlainObject)) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1056 - call $~lib/rt/itcms/__visit - global.get $bindings/noExportRuntime/isBuffer - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $bindings/noExportRuntime/isTypedArray - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 1632 - call $~lib/rt/itcms/__visit - i32.const 1712 - call $~lib/rt/itcms/__visit - i32.const 1392 - call $~lib/rt/itcms/__visit - i32.const 1088 - call $~lib/rt/itcms/__visit - i32.const 1200 - 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) - (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 1264 - 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 34548 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1264 - 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 1264 - 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 1744 - i32.load - i32.gt_u - if - i32.const 1392 - i32.const 1456 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.const 1748 - 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 @@ -289,330 +92,387 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (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.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + (local $6 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u if - i32.const 0 - i32.const 1536 - i32.const 268 - i32.const 14 + i32.const 1200 + i32.const 1264 + i32.const 261 + i32.const 31 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - i32.const 0 - i32.const 1536 - 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 + 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 - local.tee $3 - i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u - i32.and + global.get $~lib/rt/tlsf/ROOT i32.eqz if - i32.const 0 + 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 1200 i32.const 1536 - i32.const 284 - i32.const 14 + i32.const 461 + i32.const 29 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 + 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.get $5 + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz if 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.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 + i32.load offset=1568 + memory.size + local.tee $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.set $3 + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s 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 + memory.grow + i32.const 0 + i32.lt_s if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - i32.rotl - i32.and - i32.store + 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 1536 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + 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 + local.get $5 + local.get $2 + i32.load + i32.const -4 + i32.and + i32.gt_u if i32.const 0 i32.const 1536 - i32.const 201 + i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 + local.get $2 + call $~lib/rt/tlsf/removeBlock + local.get $2 i32.load - local.tee $3 - i32.const 1 + local.set $6 + local.get $5 + i32.const 4 + i32.add + i32.const 15 i32.and - i32.eqz if i32.const 0 i32.const 1536 - i32.const 203 + i32.const 361 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load + local.get $6 i32.const -4 i32.and - i32.add - local.tee $4 - i32.load - local.tee $2 - i32.const 1 - i32.and + local.get $5 + i32.sub + local.tee $3 + i32.const 16 + i32.ge_u 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 + local.get $5 + local.get $6 + i32.const 2 i32.and - i32.add - local.tee $3 + i32.or i32.store - local.get $1 + local.get $2 i32.const 4 i32.add - local.get $1 - i32.load - i32.const -4 - i32.and + local.get $5 i32.add - local.tee $4 - i32.load - local.set $2 - end - local.get $3 - i32.const 2 - i32.and - if - local.get $1 + local.tee $5 + local.get $3 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 1536 - 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 + 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 $3 + 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 $4 local.get $2 - i32.const 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 + 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 - local.tee $2 - i32.const 12 - i32.lt_u + 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/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 1536 - i32.const 233 + i32.const 268 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 + local.get $3 + i32.const -4 + i32.and + local.tee $3 + i32.const 12 + i32.lt_u if i32.const 0 i32.const 1536 - i32.const 234 + i32.const 270 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 + local.get $3 i32.const 256 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 4 i32.shr_u else i32.const 31 i32.const 1073741820 - local.get $2 - local.get $2 + local.get $3 + local.get $3 i32.const 1073741820 i32.ge_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.tee $3 + local.tee $4 i32.const 7 i32.sub - local.set $5 - local.get $2 + 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 $2 + local.tee $3 i32.const 16 i32.lt_u - local.get $5 + local.get $2 i32.const 23 i32.lt_u i32.and @@ -620,523 +480,575 @@ if i32.const 0 i32.const 1536 - i32.const 251 + i32.const 284 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 + i32.load offset=8 + local.set $5 local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 + i32.load offset=4 + local.tee $4 if - local.get $3 - local.get $1 + 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 $5 - i32.const 4 - i32.shl local.get $2 - i32.add - i32.const 2 + i32.const 4 i32.shl + local.get $3 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 + local.tee $1 + i32.load offset=96 + i32.eq if - i32.const 0 - i32.const 1536 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 19 - i32.add - i32.const -16 + 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 1536 + 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 1536 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 i32.const 4 - i32.sub - local.set $1 - local.get $0 - i32.load offset=1568 - local.tee $3 + 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.gt_u - if - i32.const 0 - i32.const 1536 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 + i32.const 4 + i32.add 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.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.gt_u + 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 1536 - i32.const 402 - i32.const 5 + 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.wrap_i64 - i32.const -16 + i32.const 2 + i32.or + i32.store + local.get $3 + i32.const -4 i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 + local.tee $2 + i32.const 12 i32.lt_u if - return + i32.const 0 + i32.const 1536 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable 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 + local.get $2 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 + i32.ne if + i32.const 0 + i32.const 1536 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort unreachable end - i32.const 34560 - i32.const 0 - i32.store - i32.const 36128 - i32.const 0 + local.get $4 + i32.const 4 + i32.sub + local.get $1 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 34560 - 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 34560 - 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 + 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 - i32.const 34560 - i32.const 36132 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34560 - global.set $~lib/rt/tlsf/ROOT + 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 1536 + 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/itcms/step (result i32) - (local $0 i32) + (func $~lib/rt/itcms/Object#makeGray (param $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 + (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 - 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 34548 - 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 + i32.const 1264 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$132 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz 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.load offset=8 i32.eqz - local.get $1 - i32.const 3 + local.get $0 + i32.const 34548 + i32.lt_u i32.and - i32.ne + i32.eqz if i32.const 0 i32.const 1264 - i32.const 229 - i32.const 20 + i32.const 128 + i32.const 18 call $~lib/builtins/abort unreachable end - local.get $0 - i32.const 34548 - 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 34548 - 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.set $1 - 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 + br $__inlined_func$~lib/rt/itcms/Object#unlink$132 + end + local.get $0 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1264 + 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 1744 + i32.load + i32.gt_u + if + i32.const 1392 + i32.const 1456 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1748 + 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/__visit_members (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + block $folding-inner1 + block $folding-inner0 + block $invalid + block $bindings/noExportRuntime/NonPlainObject + block $~lib/array/Array<~lib/array/Array> + block $~lib/array/Array + block $~lib/typedarray/Int32Array + 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/Int32Array $~lib/array/Array $~lib/array/Array<~lib/array/Array> $bindings/noExportRuntime/NonPlainObject $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 + 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 1780 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1536 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.store + br $folding-inner1 end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1780 + 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 $1 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store local.get $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock + 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 + br $folding-inner1 end + return end - i32.const 10 - return + unreachable end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 34576 + i32.const 34624 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - i32.const 0 + 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 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1193,399 +1105,339 @@ if i32.const 0 i32.const 1536 - 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 1536 - 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 1200 - i32.const 1264 - i32.const 261 - i32.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 - 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 $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 - 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 1200 - i32.const 1536 - 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 + 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 16 - i32.shl i32.const 4 - i32.sub - i32.ne i32.shl i32.add - i32.const 65535 + i32.const 2 + i32.shl i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $3 + i32.load offset=96 + else + local.get $0 + i32.load + i32.const -1 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 + 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 1536 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort 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 + 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 - i32.const 1536 - 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 + ) + (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.const 1536 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort + i32.lt_s + else + i32.const 0 + end + if unreachable end - local.get $4 - local.get $2 - call $~lib/rt/tlsf/removeBlock + i32.const 34560 + i32.const 0 + i32.store + i32.const 36128 + 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 34560 + 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 34560 + 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 34560 + i32.const 36132 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34560 + global.set $~lib/rt/tlsf/ROOT + ) + (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 - i32.load - local.set $6 - local.get $5 - i32.const 4 - i32.add - i32.const 15 - i32.and + local.get $1 + i64.extend_i32_u + i64.lt_u if i32.const 0 i32.const 1536 - i32.const 361 + i32.const 382 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $6 - i32.const -4 + local.get $1 + i32.const 19 + i32.add + i32.const -16 i32.and - local.get $5 + i32.const 4 i32.sub + local.set $1 + local.get $0 + i32.load offset=1568 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 + local.get $3 i32.const 4 i32.add - local.get $5 - i32.add - local.tee $5 + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1536 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end local.get $3 - i32.const 4 + local.get $1 + i32.const 16 i32.sub - i32.const 1 - i32.or - i32.store - local.get $4 - local.get $5 - call $~lib/rt/tlsf/insertBlock + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + local.set $1 + end 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 + local.get $0 + i32.const 1572 i32.add - local.tee $3 - local.get $3 - i32.load - i32.const -3 - i32.and - i32.store + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1536 + 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.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 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end 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 + 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 - local.get $2 + i32.const 0 i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $2 - i32.load - i32.const -4 - i32.and + local.get $1 i32.const 4 i32.add + local.get $3 i32.add - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 local.get $0 - memory.fill local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1056 + call $~lib/rt/itcms/__visit + global.get $bindings/noExportRuntime/isBuffer + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $bindings/noExportRuntime/isTypedArray + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 1632 + call $~lib/rt/itcms/__visit + i32.const 1712 + call $~lib/rt/itcms/__visit + i32.const 1392 + call $~lib/rt/itcms/__visit + i32.const 1088 + call $~lib/rt/itcms/__visit + i32.const 1200 + 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/arraybuffer/ArrayBufferView#set:buffer (param $0 i32) (param $1 i32) - (local $2 i32) local.get $0 local.get $1 i32.store @@ -1602,7 +1454,6 @@ unreachable end global.get $~lib/rt/itcms/white - local.tee $2 local.get $1 i32.const 20 i32.sub @@ -1619,7 +1470,7 @@ i32.const 3 i32.and local.tee $0 - local.get $2 + global.get $~lib/rt/itcms/white i32.eqz i32.eq if @@ -1638,145 +1489,32 @@ call $~lib/rt/itcms/Object#makeGray end end - end - end - ) - (func $bindings/noExportRuntime/takesReturnsBasic (param $0 i32) (result i32) - global.get $bindings/noExportRuntime/isBasic - ) - (func $bindings/noExportRuntime/returnsString (result i32) - i32.const 1056 - ) - (func $bindings/noExportRuntime/returnsBuffer (result i32) - global.get $bindings/noExportRuntime/isBuffer - ) - (func $bindings/noExportRuntime/returnsTypedArray (result i32) - global.get $bindings/noExportRuntime/isTypedArray - ) - (func $bindings/noExportRuntime/returnsArrayOfBasic (result i32) - i32.const 1632 - ) - (func $bindings/noExportRuntime/returnsArrayOfArray (result i32) - i32.const 1712 - ) - (func $~lib/rt/__visit_members (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - block $folding-inner2 - block $folding-inner1 - block $folding-inner0 - block $invalid - block $bindings/noExportRuntime/NonPlainObject - block $~lib/array/Array<~lib/array/Array> - block $~lib/array/Array - 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-inner2 $folding-inner2 $~lib/array/Array $~lib/array/Array<~lib/array/Array> $bindings/noExportRuntime/NonPlainObject $invalid - end - return - end - return - end - 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 1780 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - br $folding-inner1 - 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 1780 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $1 - local.get $2 - 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 - br $folding-inner1 - end - return - end - unreachable - end - i32.const 34576 - i32.const 34624 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - 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 - local.get $0 - i32.load - local.tee $0 + end + end + ) + (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 + global.get $~lib/memory/__stack_pointer + i32.const 1780 + i32.lt_s if - local.get $0 - call $~lib/rt/itcms/__visit + i32.const 34576 + i32.const 34624 + 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 ) (func $~start (local $0 i32) @@ -1824,17 +1562,16 @@ i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - block $__inlined_func$start:bindings/noExportRuntime$2 + block $__inlined_func$start:bindings/noExportRuntime block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 1780 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 1 call $~lib/rt/itcms/__new @@ -1855,136 +1592,385 @@ 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 4 + call $~lib/rt/itcms/__new local.tee $0 + i32.store + 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 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1780 + 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 $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:buffer + 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 + i32.const 0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=8 + 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=12 + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#set:buffer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + 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 + i32.const 16 + 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 $bindings/noExportRuntime/isTypedArray + br $__inlined_func$start:bindings/noExportRuntime + end + i32.const 34576 + i32.const 34624 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + 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 34548 + 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.const 12 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer + i32.load offset=4 local.tee $1 - local.get $0 - i32.store offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz local.get $1 - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1780 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i64.const 0 - i64.store offset=8 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1264 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.eqz + i32.const 34548 + i32.lt_u if - local.get $2 - i32.const 12 - i32.const 3 - call $~lib/rt/itcms/__new + 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.store + i32.const 34548 + 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 1536 + 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:buffer - 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 - i32.const 0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 - local.get $0 - local.get $2 - call $~lib/arraybuffer/ArrayBufferView#set:buffer - 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 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - 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 $bindings/noExportRuntime/isTypedArray - br $__inlined_func$start:bindings/noExportRuntime$2 + i32.const 10 + return end - i32.const 34576 - i32.const 34624 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + 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 $export:bindings/noExportRuntime/takesNonPlainObject (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 1780 - i32.lt_s - if - i32.const 34576 - i32.const 34624 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store - local.get $1 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + (func $bindings/noExportRuntime/takesReturnsBasic (param $0 i32) (result i32) + global.get $bindings/noExportRuntime/isBasic + ) + (func $bindings/noExportRuntime/returnsTypedArray (result i32) + global.get $bindings/noExportRuntime/isTypedArray + ) + (func $bindings/noExportRuntime/returnsString (result i32) + i32.const 1056 + ) + (func $bindings/noExportRuntime/returnsBuffer (result i32) + global.get $bindings/noExportRuntime/isBuffer + ) + (func $bindings/noExportRuntime/returnsArrayOfBasic (result i32) + i32.const 1632 + ) + (func $bindings/noExportRuntime/returnsArrayOfArray (result i32) + i32.const 1712 ) ) diff --git a/tests/compiler/bindings/raw.debug.js b/tests/compiler/bindings/raw.debug.js index cc59b6a796..564035a225 100644 --- a/tests/compiler/bindings/raw.debug.js +++ b/tests/compiler/bindings/raw.debug.js @@ -1,6 +1,6 @@ export async function instantiate(module, imports = {}) { const adaptedImports = { - env: Object.assign(Object.create(globalThis), imports.env || {}, { + env: Object.setPrototypeOf({ trace(message, n, a0, a1, a2, a3, a4) { // ~lib/builtins/trace(~lib/string/String, i32?, f64?, f64?, f64?, f64?, f64?) => void message = __liftString(message >>> 0); @@ -44,7 +44,7 @@ export async function instantiate(module, imports = {}) { 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; diff --git a/tests/compiler/bindings/raw.debug.wat b/tests/compiler/bindings/raw.debug.wat index 7bf955aa6b..c54a11e383 100644 --- a/tests/compiler/bindings/raw.debug.wat +++ b/tests/compiler/bindings/raw.debug.wat @@ -124,6 +124,27 @@ (export "functionFunction" (func $export:bindings/esm/functionFunction)) (func $start:bindings/esm~anonymous|0 ) + (func $start:bindings/esm + i32.const 128 + i32.const 1 + f64.const 42 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 160 + call $~lib/bindings/dom/console.log + global.get $~lib/bindings/dom/Math.E + call $~lib/bindings/dom/Math.log + drop + global.get $bindings/esm/immutableGlobal + drop + global.get $bindings/esm/immutableGlobalNested + drop + call $bindings/esm/Date_getTimezoneOffset + drop + ) (func $start:bindings/raw call $start:bindings/esm ) @@ -1737,14 +1758,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + drop global.get $~lib/rt/itcms/total - i64.extend_i32_u i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 + i32.const 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold @@ -2877,12 +2901,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -2944,28 +2964,16 @@ call $~lib/object/Object~visit local.get $0 i32.load offset=56 - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit local.get $0 i32.load offset=60 - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit local.get $0 i32.load offset=64 - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/typedarray/Uint8Array~visit (param $0 i32) (param $1 i32) local.get $0 @@ -3100,50 +3108,6 @@ unreachable end ) - (func $start:bindings/esm - (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 128 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 1 - f64.const 42 - f64.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - i32.const 160 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/bindings/dom/console.log - global.get $~lib/bindings/dom/Math.E - call $~lib/bindings/dom/Math.log - drop - global.get $bindings/esm/immutableGlobal - drop - global.get $bindings/esm/immutableGlobalNested - drop - call $bindings/esm/Date_getTimezoneOffset - drop - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) (func $bindings/esm/bufferFunction (param $a i32) (param $b i32) (result i32) (local $aByteLength i32) (local $bByteLength i32) diff --git a/tests/compiler/bindings/raw.release.js b/tests/compiler/bindings/raw.release.js index cc59b6a796..564035a225 100644 --- a/tests/compiler/bindings/raw.release.js +++ b/tests/compiler/bindings/raw.release.js @@ -1,6 +1,6 @@ export async function instantiate(module, imports = {}) { const adaptedImports = { - env: Object.assign(Object.create(globalThis), imports.env || {}, { + env: Object.setPrototypeOf({ trace(message, n, a0, a1, a2, a3, a4) { // ~lib/builtins/trace(~lib/string/String, i32?, f64?, f64?, f64?, f64?, f64?) => void message = __liftString(message >>> 0); @@ -44,7 +44,7 @@ export async function instantiate(module, imports = {}) { 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; diff --git a/tests/compiler/bindings/raw.release.wat b/tests/compiler/bindings/raw.release.wat index 4bb5843896..6d66004d1a 100644 --- a/tests/compiler/bindings/raw.release.wat +++ b/tests/compiler/bindings/raw.release.wat @@ -2,22 +2,22 @@ (type $0 (func (param i32 i32) (result i32))) (type $1 (func (param i32))) (type $2 (func (param i32) (result i32))) - (type $3 (func (result i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) + (type $3 (func (param i32 i32 i32))) + (type $4 (func (result i32))) + (type $5 (func)) (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 $8 (func (param i32 i32 i32 i32))) + (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" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (import "env" "trace" (func $~lib/builtins/trace (param i32 i32 f64 f64 f64 f64 f64))) (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 (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)) @@ -120,218 +120,6 @@ (export "objectFunction" (func $export:bindings/esm/objectFunction)) (export "internrefFunction" (func $export:bindings/esm/internrefFunction)) (export "functionFunction" (func $export:bindings/esm/staticarrayU16)) - (func $bindings/esm/plainFunction (param $0 i32) (param $1 i32) (result i32) - local.get $0 - local.get $1 - i32.add - ) - (func $bindings/esm/plainFunction64 (param $0 i64) (param $1 i64) (result i64) - local.get $0 - local.get $1 - i64.add - ) - (func $bindings/esm/getMaxUnsigned32 (result i32) - i32.const -1 - ) - (func $bindings/esm/getMaxUnsigned64 (result i64) - i64.const -1 - ) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1552 - call $~lib/rt/itcms/__visit - i32.const 1248 - call $~lib/rt/itcms/__visit - i32.const 1968 - call $~lib/rt/itcms/__visit - i32.const 1360 - call $~lib/rt/itcms/__visit - i32.const 2096 - call $~lib/rt/itcms/__visit - i32.const 2160 - call $~lib/rt/itcms/__visit - i32.const 1056 - call $~lib/rt/itcms/__visit - global.get $bindings/esm/mutableStringGlobal - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - 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 1424 - 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#unlink (param $0 i32) - (local $1 i32) - 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 35044 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1424 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $0 - i32.load offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1424 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - 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 - ) - (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 1424 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.set $~lib/rt/itcms/iter - end - local.get $0 - call $~lib/rt/itcms/Object#unlink - global.get $~lib/rt/itcms/toSpace - local.set $1 - local.get $0 - i32.load offset=12 - local.tee $2 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $2 - i32.const 2208 - i32.load - i32.gt_u - if - i32.const 1552 - i32.const 1616 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 2 - i32.shl - i32.const 2212 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $1 - i32.load offset=8 - local.set $2 - local.get $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $1 - 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 - ) (func $~lib/rt/itcms/__visit (param $0 i32) local.get $0 i32.eqz @@ -356,591 +144,407 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (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.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + (local $6 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u if - i32.const 0 - i32.const 1696 - i32.const 268 - i32.const 14 + i32.const 1360 + i32.const 1424 + i32.const 261 + i32.const 31 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - i32.const 0 - i32.const 1696 - 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 + block $__inlined_func$~lib/rt/itcms/interrupt$71 + 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$71 + 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 - local.tee $3 - i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u - i32.and + global.get $~lib/rt/tlsf/ROOT i32.eqz if - i32.const 0 + 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 1360 i32.const 1696 - i32.const 284 - i32.const 14 + i32.const 461 + i32.const 29 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 + 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.get $5 + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz if 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.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 + i32.load offset=1568 + memory.size + local.tee $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.set $3 + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s 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 + memory.grow + i32.const 0 + i32.lt_s if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - i32.rotl - i32.and - i32.store + 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 1696 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + 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 + local.get $5 + local.get $2 + i32.load + i32.const -4 + i32.and + i32.gt_u if i32.const 0 i32.const 1696 - i32.const 201 + i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 + local.get $2 + call $~lib/rt/tlsf/removeBlock + local.get $2 i32.load - local.tee $3 - i32.const 1 + local.set $6 + local.get $5 + i32.const 4 + i32.add + i32.const 15 i32.and - i32.eqz if i32.const 0 i32.const 1696 - i32.const 203 + i32.const 361 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load + local.get $6 i32.const -4 i32.and - i32.add - local.tee $4 - i32.load - local.tee $2 - i32.const 1 - i32.and + local.get $5 + i32.sub + local.tee $3 + i32.const 16 + i32.ge_u 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 + local.get $5 + local.get $6 + i32.const 2 i32.and - i32.add - local.tee $3 + i32.or i32.store - local.get $1 + local.get $2 i32.const 4 i32.add - local.get $1 - i32.load - i32.const -4 - i32.and + local.get $5 i32.add - local.tee $4 - i32.load - local.set $2 - end - local.get $3 - i32.const 2 - i32.and - if - local.get $1 + local.tee $5 + local.get $3 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 1696 - 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 + 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 $3 + 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 $4 local.get $2 - i32.const 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 + i32.store offset=4 + local.get $2 local.get $3 - i32.const -4 + i32.store offset=8 + local.get $3 + local.get $2 + local.get $3 + i32.load offset=4 + i32.const 3 i32.and - local.tee $2 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1696 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $4 + 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 - i32.ne + 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) (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 1696 - i32.const 234 + i32.const 1424 + i32.const 295 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 - i32.const 4 - i32.sub + global.get $~lib/rt/itcms/white 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.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $0 + i32.const 20 i32.sub + local.tee $0 + i32.load offset=4 + i32.const 3 + i32.and local.tee $3 - 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 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $0 + local.get $1 + local.get $2 + select + call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + local.get $3 + i32.const 3 + i32.eq + i32.and + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + end + end end - local.tee $2 - i32.const 16 - i32.lt_u - local.get $5 - i32.const 23 - i32.lt_u - i32.and - i32.eqz + ) + (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 0 - i32.const 1696 - i32.const 251 - i32.const 14 + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 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.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 + global.get $~lib/memory/__stack_pointer 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 1696 - 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 1696 - 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 1696 - 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 + local.get $0 + i32.load offset=12 + 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 35056 - i32.const 0 - i32.store - i32.const 36624 - 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 35056 - 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 35056 - 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 35056 - i32.const 36628 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 35056 - global.set $~lib/rt/tlsf/ROOT + global.set $~lib/memory/__stack_pointer ) (func $~lib/rt/itcms/step (result i32) (local $0 i32) @@ -1152,7 +756,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1185,7 +788,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1194,62 +796,195 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 + 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) + (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 1424 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + global.get $~lib/rt/itcms/toSpace + local.set $1 + local.get $0 + i32.load offset=12 + local.tee $2 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $2 + i32.const 2208 + i32.load + i32.gt_u + if + i32.const 1552 + i32.const 1616 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 2 + i32.shl + i32.const 2212 + i32.add + i32.load + i32.const 32 + i32.and + end + local.set $3 local.get $1 - i32.const 256 + i32.load offset=8 + local.set $2 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $1 + 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 + ) + (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/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 1696 + 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 - local.get $1 + i32.const 0 + i32.const 1696 + 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 - 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.const 1073741820 + local.get $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 i32.clz i32.sub - local.tee $2 + 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 - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 end - local.get $1 + local.tee $3 i32.const 16 i32.lt_u local.get $2 @@ -1260,634 +995,374 @@ if i32.const 0 i32.const 1696 - i32.const 334 + 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 2 + i32.const 4 i32.shl + local.get $3 i32.add - i32.load offset=4 - i32.const -1 - local.get $1 + i32.const 2 i32.shl - i32.and + i32.add local.tee $1 - if (result i32) - local.get $0 + i32.load offset=96 + i32.eq + if 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 $5 + i32.store offset=96 + local.get $5 + i32.eqz + if local.get $0 - local.get $1 - i32.ctz - local.tee $1 + local.get $2 i32.const 2 i32.shl i32.add + local.tee $1 i32.load offset=4 - local.tee $2 + 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 - i32.const 0 - i32.const 1696 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $2 + i32.rotl + i32.and + i32.store 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) + (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 $0 - i32.const 1073741804 - i32.ge_u + local.get $1 + i32.eqz if - i32.const 1360 - i32.const 1424 - i32.const 261 - i32.const 31 + i32.const 0 + i32.const 1696 + i32.const 201 + 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$71 - 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$71 - end - local.get $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 - 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 + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and 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 1360 + i32.const 0 i32.const 1696 - i32.const 461 - i32.const 29 + i32.const 203 + i32.const 14 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.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.eqz + i32.const 1 + i32.and 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 $0 local.get $4 - i32.load offset=1568 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $3 + i32.const 4 + i32.add local.get $2 - i32.const 16 - i32.shl + i32.const -4 + i32.and + i32.add + local.tee $3 + i32.store + local.get $1 i32.const 4 - i32.sub - i32.ne - i32.shl i32.add - i32.const 65535 + local.get $1 + i32.load + i32.const -4 + i32.and i32.add - i32.const -65536 + 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.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 1696 - i32.const 499 + i32.const 221 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 + 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 1696 - i32.const 501 + i32.const 233 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 + local.get $1 i32.const 4 i32.add - i32.const 15 - i32.and + local.get $2 + i32.add + i32.ne if i32.const 0 i32.const 1696 - i32.const 361 + i32.const 234 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $6 - i32.const -4 - i32.and - local.get $5 + local.get $4 + i32.const 4 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 $1 + i32.store + local.get $2 + i32.const 256 + i32.lt_u + if (result i32) 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 + i32.shr_u else + i32.const 31 + i32.const 1073741820 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 + 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.load - i32.const -3 - i32.and - i32.store + 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 1696 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable 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 $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.get $~lib/rt/itcms/white - i32.or + i32.const 0 i32.store offset=4 - local.get $2 + 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 - local.get $3 + 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 3 - i32.and + i32.const 1 + local.get $2 + i32.shl 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 + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + local.get $0 + i32.load offset=4 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) (param $2 i32) - (local $3 i32) - local.get $1 i32.eqz if + local.get $0 + i32.load offset=8 + i32.eqz + local.get $0 + i32.const 35044 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1424 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end return end local.get $0 + i32.load offset=8 + local.tee $0 i32.eqz if i32.const 0 i32.const 1424 - i32.const 295 - i32.const 14 + i32.const 132 + i32.const 16 call $~lib/builtins/abort unreachable end - global.get $~lib/rt/itcms/white - local.tee $3 local.get $1 - i32.const 20 - i32.sub - local.tee $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.eq - if - local.get $3 - i32.eqz - local.get $0 - i32.const 20 - i32.sub - local.tee $0 - i32.load offset=4 - i32.const 3 - i32.and - local.tee $3 - i32.eq - if - local.get $0 - local.get $1 - local.get $2 - select - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - local.get $3 - i32.const 3 - i32.eq - i32.and - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - end - end - end - ) - (func $bindings/esm/newInternref (result i32) - (local $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 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.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 0 - i32.const 15 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/rt/itcms/__pin (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - if - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.eq - if - i32.const 2096 - i32.const 1424 - i32.const 338 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - local.get $1 - call $~lib/rt/itcms/Object#unlink - global.get $~lib/rt/itcms/pinSpace - local.tee $3 - i32.load offset=8 - local.set $2 - local.get $1 - local.get $3 - i32.const 3 - i32.or - 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 - local.get $3 - local.get $1 - i32.store offset=8 - end - local.get $0 - ) - (func $~lib/rt/itcms/__unpin (param $0 i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.eqz - if - return - end - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 2160 - i32.const 1424 - i32.const 352 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - else - local.get $1 - call $~lib/rt/itcms/Object#unlink - global.get $~lib/rt/itcms/fromSpace - local.tee $0 - i32.load offset=8 - 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 - 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 - local.get $0 - local.get $1 - i32.store offset=8 - end - ) - (func $~lib/rt/itcms/__collect - global.get $~lib/rt/itcms/state - i32.const 0 - i32.gt_s - if - loop $while-continue|0 - global.get $~lib/rt/itcms/state - 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 - 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 + i32.or + i32.store offset=4 ) (func $~lib/rt/__visit_members (param $0 i32) (local $1 i32) @@ -1929,10 +1404,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -1972,16 +1446,15 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 local.set $1 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -2014,25 +1487,13 @@ end local.get $0 i32.load offset=56 - local.tee $1 - if - local.get $1 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit local.get $0 i32.load offset=60 - local.tee $1 - if - local.get $1 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit local.get $0 i32.load offset=64 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end return @@ -2048,11 +1509,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end global.get $~lib/memory/__stack_pointer @@ -2066,18 +1523,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~setArgumentsLength (param $0 i32) - local.get $0 - global.set $~argumentsLength - ) - (func $~start - (local $0 i32) - global.get $~started - if - return - end - i32.const 1 - global.set $~started + (func $export:bindings/esm/staticarrayU16 (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2094,196 +1540,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store local.get $0 - i32.const 1152 i32.store - i32.const 1152 - i32.const 1 - f64.const 42 - f64.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - global.get $~lib/memory/__stack_pointer - i32.const 1184 - i32.store - i32.const 1184 - call $~lib/bindings/dom/console.log - global.get $~lib/bindings/dom/Math.E - call $~lib/bindings/dom/Math.log - drop - call $bindings/esm/Date_getTimezoneOffset - drop global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - memory.size - i32.const 16 - i32.shl - i32.const 35044 - 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 - ) - (func $bindings/esm/stringFunction (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 2276 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - local.get $0 - i32.store - local.get $2 - local.get $1 - i32.store offset=4 - local.get $2 - 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 - local.tee $2 - i64.const 0 - i64.store - local.get $2 - local.get $0 - i32.store - local.get $2 - local.get $1 - i32.store offset=4 - local.get $2 - 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 - local.tee $2 - i64.const 0 - i64.store - local.get $2 - 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 - local.get $2 - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$281 - 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 $5 - i32.eqz - if - local.get $2 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1760 - local.set $2 - br $__inlined_func$~lib/string/String#concat$281 - end - global.get $~lib/memory/__stack_pointer - local.get $5 - 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 + local.get $0 ) - (func $~lib/typedarray/Int16Array#get:length (param $0 i32) (result i32) - (local $1 i32) + (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 @@ -2300,25 +1565,42 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store + local.get $1 local.get $0 i32.load offset=8 - i32.const 1 + i32.const 3 i32.shr_u - local.set $0 + i32.ge_u + if + i32.const 1552 + i32.const 1792 + 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 - local.get $0 ) (func $~lib/typedarray/Float32Array#get:length (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2335,25 +1617,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.set $0 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/typedarray/Uint64Array#__set (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) + (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 @@ -2370,385 +1648,608 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + 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.const 20 + i32.sub + i32.load offset=16 + i32.const 2 i32.shr_u i32.ge_u if i32.const 1552 - i32.const 1792 - i32.const 1173 - i32.const 64 + i32.const 1856 + i32.const 93 + i32.const 41 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 - i32.load offset=4 local.get $1 - i32.const 3 + i32.const 2 i32.shl i32.add local.get $2 - i64.store - local.get $3 + i32.store + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $bindings/esm/typedarrayFunction (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 f32) - (local $5 i32) - (local $6 i32) - (local $7 i32) + (func $~lib/staticarray/StaticArray#__get (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i32.const 0 - i32.store offset=8 - local.get $2 - local.get $0 - i32.store - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $2 - block $__inlined_func$~lib/typedarray/Uint64Array#constructor$1 (result i32) + 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 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/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 - call $~lib/typedarray/Float32Array#get:length - local.get $5 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl i32.add - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 1 i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner00 - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner00 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i32.const 12 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $6 - local.get $2 - i32.store offset=4 - local.get $6 - 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-inner00 - global.get $~lib/memory/__stack_pointer - local.tee $7 - i64.const 0 - i64.store - local.get $7 - i64.const 0 - i64.store offset=8 - local.get $2 - i32.eqz - if - local.get $7 - i32.const 12 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - end - 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 - 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 $5 - i32.const 3 - i32.shl - local.tee $5 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - 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 $7 - i32.store offset=12 - local.get $2 - local.get $7 - i32.store - local.get $2 - local.get $7 - 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 $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $5 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - 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$1 + 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 1696 + 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 1696 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable end - br $folding-inner1 + 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 - local.tee $2 - i32.store offset=4 - loop $for-loop|0 - global.get $~lib/memory/__stack_pointer + end + ) + (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 35056 + i32.const 0 + i32.store + i32.const 36624 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if local.get $0 - i32.store + i32.const 2 + i32.shl + i32.const 35056 + 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 35056 + 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 - call $~lib/typedarray/Int16Array#get:length + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 35056 + i32.const 36628 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 35056 + global.set $~lib/rt/tlsf/ROOT + ) + (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 1696 + 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 1696 + 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.gt_s + 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 1696 + 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/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1552 + call $~lib/rt/itcms/__visit + i32.const 1248 + call $~lib/rt/itcms/__visit + i32.const 1968 + call $~lib/rt/itcms/__visit + i32.const 1360 + call $~lib/rt/itcms/__visit + i32.const 2096 + call $~lib/rt/itcms/__visit + i32.const 2160 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + global.get $bindings/esm/mutableStringGlobal + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + 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 - 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 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $5 i32.const 0 - i32.store - local.get $5 - 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 1552 - i32.const 1792 - i32.const 452 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $5 - 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 $6 - local.get $5 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $3 - local.get $6 - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 + i32.const 1424 + 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 - i32.const 0 - local.set $3 - loop $for-loop|1 - global.get $~lib/memory/__stack_pointer + end + ) + (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$270 + 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 - i32.store local.get $1 - call $~lib/typedarray/Float32Array#get:length - local.get $3 - i32.gt_s + 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 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.get $3 - i32.add - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - 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 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $6 - i32.const 0 - i32.store - local.get $6 - local.get $1 - i32.store - local.get $3 - local.get $1 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.ge_u - if - i32.const 1552 - i32.const 1792 - i32.const 1304 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $6 - local.get $1 - i32.store - local.get $1 - i32.load offset=4 - local.get $3 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $4 - local.get $6 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $5 local.get $4 - i64.trunc_sat_f32_u - call $~lib/typedarray/Uint64Array#__set local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|1 + i32.store offset=16 + local.get $2 + local.set $1 + br $__inlined_func$~lib/rt/itcms/__renew$270 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 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $1 local.get $2 - return + 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 end - i32.const 35072 - i32.const 35120 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + 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) - (local $2 i32) + (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 @@ -2765,45 +2266,63 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + 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.load offset=12 i32.ge_u if - i32.const 1552 - i32.const 1856 - i32.const 78 - i32.const 41 - call $~lib/builtins/abort - unreachable + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 1552 + i32.const 1920 + 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 - i32.load - local.set $0 + 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 - local.get $0 ) - (func $~lib/staticarray/StaticArray#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 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 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -2818,46 +2337,54 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $3 + i64.const 0 + i64.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.load offset=12 i32.ge_u if i32.const 1552 - i32.const 1856 - i32.const 93 - i32.const 41 + i32.const 1920 + i32.const 114 + i32.const 42 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 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 - local.get $2 - i32.store - local.get $3 - i32.const 4 + i32.load + local.tee $0 + i32.store offset=4 + local.get $0 + i32.eqz + if + i32.const 1968 + i32.const 1920 + 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#get:length (param $0 i32) (result i32) - (local $1 i32) + (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 @@ -2874,23 +2401,57 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store + local.get $1 local.get $0 i32.load offset=12 - local.set $0 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 1552 + i32.const 1920 + 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 - local.get $0 ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2907,10 +2468,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -2926,7 +2486,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $0 @@ -2936,218 +2495,339 @@ i32.shl i32.add i32.load - local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) + (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 4 + 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.tee $2 - i32.const 0 - i32.store - local.get $2 - 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 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer 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 + i32.store offset=4 + global.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 - block $__inlined_func$~lib/rt/itcms/__renew$265 - 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 $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$285 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.load offset=16 + i32.const -2 i32.and - i32.const 16 - i32.sub - i32.le_u + local.tee $4 + local.get $3 + i32.add + local.tee $2 + i32.eqz if - local.get $4 - local.get $3 - i32.store offset=16 - local.get $2 - local.set $1 - br $__inlined_func$~lib/rt/itcms/__renew$265 + 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$285 end - local.get $3 - local.get $4 - i32.load offset=12 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 2 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 + i32.store offset=4 local.get $2 + local.get $0 local.get $3 - local.get $4 - i32.load offset=16 - local.tee $4 + memory.copy + local.get $2 local.get $3 + i32.add + local.get $1 local.get $4 - i32.lt_u - select memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer end - local.get $1 + 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 - 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 + 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) - global.get $~lib/memory/__stack_pointer - i32.const 4 + (func $~start + global.get $~started + if + return + end + i32.const 1 + global.set $~started + i32.const 1152 + i32.const 1 + f64.const 42 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 1184 + call $~lib/bindings/dom/console.log + global.get $~lib/bindings/dom/Math.E + call $~lib/bindings/dom/Math.log + drop + call $bindings/esm/Date_getTimezoneOffset + drop + memory.size + i32.const 16 + i32.shl + i32.const 35044 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s + 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 + ) + (func $~setArgumentsLength (param $0 i32) + local.get $0 + global.set $~argumentsLength + ) + (func $~lib/rt/itcms/__unpin (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.eqz if - i32.const 35072 - i32.const 35120 - i32.const 1 - i32.const 1 + return + end + local.get $0 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 2160 + i32.const 1424 + i32.const 352 + i32.const 5 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store - local.get $1 + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + else + local.get $1 + call $~lib/rt/itcms/Object#unlink + global.get $~lib/rt/itcms/fromSpace + local.tee $0 + i32.load offset=8 + 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 + 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 + local.get $0 + local.get $1 + i32.store offset=8 + end + ) + (func $~lib/rt/itcms/__pin (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) local.get $0 - i32.load offset=12 - i32.ge_u if - local.get $1 - i32.const 0 - i32.lt_s + local.get $0 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.eq if - i32.const 1552 - i32.const 1920 - i32.const 130 - i32.const 22 + i32.const 2096 + i32.const 1424 + i32.const 338 + i32.const 7 call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 - i32.const 1 - i32.add + call $~lib/rt/itcms/Object#unlink + global.get $~lib/rt/itcms/pinSpace local.tee $3 - call $~lib/array/ensureCapacity - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 + i32.load offset=8 + local.set $2 + local.get $1 local.get $3 - i32.store offset=12 + i32.const 3 + i32.or + 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 + local.get $3 + local.get $1 + i32.store offset=8 end - global.get $~lib/memory/__stack_pointer - local.tee $3 - 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 $3 - i32.const 4 + ) + (func $~lib/rt/itcms/__collect + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + global.get $~lib/rt/itcms/state + 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 + 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/memory/__stack_pointer + global.set $~lib/rt/itcms/threshold ) - (func $~lib/array/Array<~lib/string/String>#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $export:bindings/esm/typedarrayFunction (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3164,233 +2844,304 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 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 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store - local.get $2 - 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 118 - i32.const 40 - call $~lib/builtins/abort - unreachable - end + local.get $1 + call $bindings/esm/typedarrayFunction 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) + (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 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.tee $3 - i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_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.const 0 + 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 - if - i32.const 1552 - i32.const 1920 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable + 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 + 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 2276 + i32.lt_s + if + i32.const 35072 + i32.const 35120 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 + i32.const 1 + call $~lib/builtins/abort + unreachable end 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.const 2 - i32.shl - i32.add - local.get $2 - i32.store + i32.store offset=4 local.get $0 - local.get $2 - i32.const 1 - call $~lib/rt/itcms/__link + local.get $1 + call $bindings/esm/stringFunction global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 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/staticarrayFunction (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 + block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 2276 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 - local.get $1 - i32.store offset=4 - local.get $2 - 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 - local.tee $3 - i64.const 0 - i64.store - local.get $3 - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - local.set $4 - local.get $3 - local.get $1 - i32.store local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - local.tee $2 - local.get $4 - i32.add - local.set $5 - local.get $3 - 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 - 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 $3 - local.get $5 i32.store offset=4 - local.get $5 - local.get $0 - local.get $4 - memory.copy - local.get $4 - local.get $5 - i32.add - local.get $1 - local.get $2 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + 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 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 1248 + i32.const 1856 + 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 - local.get $5 return end i32.const 35072 @@ -3400,100 +3151,244 @@ call $~lib/builtins/abort unreachable ) - (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 - 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.tee $2 - local.get $0 - i32.store - local.get $2 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - call $bindings/esm/stringFunction - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $export:bindings/esm/stringFunctionOptional@varargs (param $0 i32) (param $1 i32) (result i32) + (func $export:bindings/esm/objectFunction (param $0 i32) (param $1 i32) (result 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 + block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 2276 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $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-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 + block $__inlined_func$bindings/esm/PlainObject#constructor$4 (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 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 + i32.const 68 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + 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 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $2 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + 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 + i32.const 0 + i32.store8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store16 offset=2 + 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 + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store8 offset=16 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store16 offset=18 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 0 + i64.store offset=24 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=32 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=36 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store8 offset=40 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f32.const 0 + f32.store offset=44 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f64.const 0 + f64.store offset=48 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=56 + 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=60 + 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=64 + local.get $2 + i32.const 0 + 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 + local.get $2 + br $__inlined_func$bindings/esm/PlainObject#constructor$4 + 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=4 + i32.store offset=8 local.get $2 - 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 + local.get $3 + local.get $1 + i32.load8_s + i32.add + i32.store8 global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store local.get $2 - 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 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 - i32.store offset=4 - local.get $2 + 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 - call $bindings/esm/stringFunction - local.set $0 + i32.load16_s offset=2 + i32.add + i32.store16 offset=2 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -3502,7 +3397,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $2 return end i32.const 35072 @@ -3512,8 +3407,7 @@ call $~lib/builtins/abort unreachable ) - (func $export:bindings/esm/typedarrayFunction (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $export:bindings/esm/internrefFunction (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3530,23 +3424,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + 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 $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $export:bindings/esm/staticarrayFunction (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) @@ -3555,189 +3444,101 @@ 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 2276 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - block $__inlined_func$bindings/esm/staticarrayFunction$2 (result i32) - local.get $3 - i32.const 12 - 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 - local.tee $3 - i64.const 0 - i64.store - local.get $3 - i32.const 0 - i32.store offset=8 - local.get $3 - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 2 - i32.shr_u - local.set $4 - local.get $3 - local.get $1 - i32.store - local.get $4 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 2 - i32.shr_u - i32.add - local.set $4 - local.get $3 - 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 1248 - i32.const 1856 - 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 $3 - local.get $4 - i32.store offset=4 - loop $for-loop|0 - global.get $~lib/memory/__stack_pointer - local.tee $3 - 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 - local.get $3 - local.get $4 - i32.store - local.get $3 - 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.tee $3 - 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 - local.get $3 - local.get $4 - i32.store - local.get $3 - 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 $5 - local.get $3 - local.get $1 - i32.store offset=8 - local.get $4 - local.get $5 - 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$2 - end - br $folding-inner1 + global.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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + local.set $2 + 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 + 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 - local.set $0 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 + local.get $2 + memory.copy + local.get $2 + local.get $5 + 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 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 return end i32.const 35072 @@ -3747,34 +3548,7 @@ call $~lib/builtins/abort unreachable ) - (func $export:bindings/esm/staticarrayU16 (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 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.tee $1 - local.get $0 - i32.store - local.get $1 - 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) + (func $export:bindings/esm/arrayOfStringsFunction (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3790,14 +3564,13 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $3 - i32.const 12 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -3805,27 +3578,26 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 - i32.const 0 - i32.store offset=8 - local.get $3 + 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 $3 local.get $1 call $~lib/array/Array#get:length local.get $4 i32.add - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -3835,47 +3607,46 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 11 + i32.const 12 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $5 i32.store 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 - 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 @@ -3888,54 +3659,54 @@ 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 @@ -3947,17 +3718,22 @@ i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - local.get $6 - local.get $2 + i32.store offset=12 local.get $0 local.get $2 - call $~lib/array/Array#__get - call $~lib/array/Array#__set + call $~lib/array/Array<~lib/string/String>#__get + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $5 + local.get $2 + local.get $3 + call $~lib/array/Array<~lib/string/String>#__set local.get $2 i32.const 1 i32.add @@ -3977,11 +3753,11 @@ i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=12 local.get $0 call $~lib/array/Array#get:length local.get $2 @@ -3989,13 +3765,18 @@ local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 - local.get $6 - local.get $3 + i32.store offset=12 local.get $1 local.get $2 - call $~lib/array/Array#__get - call $~lib/array/Array#__set + call $~lib/array/Array<~lib/string/String>#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $5 + local.get $3 + local.get $4 + call $~lib/array/Array<~lib/string/String>#__set local.get $2 i32.const 1 i32.add @@ -4004,14 +3785,14 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 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 + local.get $5 return end i32.const 35072 @@ -4021,7 +3802,7 @@ call $~lib/builtins/abort unreachable ) - (func $export:bindings/esm/arrayOfStringsFunction (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) @@ -4037,14 +3818,13 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $3 - i32.const 16 + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -4052,27 +3832,26 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 - i64.const 0 - i64.store offset=8 - local.get $3 + 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 $3 local.get $1 call $~lib/array/Array#get:length local.get $4 i32.add - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -4082,47 +3861,46 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 12 + i32.const 11 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 - local.get $5 + local.get $6 i32.const 0 i32.store - local.get $5 + local.get $6 i32.const 0 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 - local.get $5 + local.get $6 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 - local.get $5 + local.get $6 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 - local.get $5 + local.get $6 i32.const 0 i32.store offset=12 - local.get $4 + local.get $5 i32.const 268435455 i32.gt_u if @@ -4135,54 +3913,54 @@ end global.get $~lib/memory/__stack_pointer i32.const 8 - local.get $4 - local.get $4 + local.get $5 + local.get $5 i32.const 8 i32.le_u select i32.const 2 i32.shl - local.tee $6 + local.tee $3 i32.const 1 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=12 - local.get $5 - local.get $3 + local.get $6 + local.get $4 i32.store - local.get $5 - local.get $3 + local.get $6 + local.get $4 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 - local.get $5 - local.get $3 + local.get $6 + local.get $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 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 $5 + local.get $6 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 $5 + local.get $6 i32.store offset=4 loop $for-loop|0 global.get $~lib/memory/__stack_pointer @@ -4194,22 +3972,17 @@ i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 - local.get $0 - local.get $2 - call $~lib/array/Array<~lib/string/String>#__get - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 i32.store offset=8 - local.get $5 + local.get $6 local.get $2 - local.get $3 - call $~lib/array/Array<~lib/string/String>#__set + local.get $0 + local.get $2 + call $~lib/array/Array#__get + call $~lib/array/Array#__set local.get $2 i32.const 1 i32.add @@ -4229,11 +4002,11 @@ i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 local.get $0 call $~lib/array/Array#get:length local.get $2 @@ -4241,18 +4014,13 @@ local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 - local.get $1 - local.get $2 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 i32.store offset=8 - local.get $5 + local.get $6 local.get $3 - local.get $4 - call $~lib/array/Array<~lib/string/String>#__set + local.get $1 + local.get $2 + call $~lib/array/Array#__get + call $~lib/array/Array#__set local.get $2 i32.const 1 i32.add @@ -4261,14 +4029,14 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 16 + 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 35072 @@ -4278,12 +4046,15 @@ call $~lib/builtins/abort unreachable ) - (func $export:bindings/esm/objectFunction (param $0 i32) (param $1 i32) (result i32) + (func $bindings/esm/typedarrayFunction (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 i32) + (local $4 f32) + (local $5 i32) + (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 @@ -4292,31 +4063,27 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store - local.get $2 - local.get $1 - i32.store offset=4 - local.get $2 - 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-inner1 - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - block $__inlined_func$bindings/esm/PlainObject#constructor$5 (result i32) + 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 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -4327,21 +4094,20 @@ i32.lt_s br_if $folding-inner00 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 - i32.const 68 - i32.const 13 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 7 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $2 i32.store offset=4 - local.get $3 - i32.const 4 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -4349,191 +4115,260 @@ i32.lt_s br_if $folding-inner00 global.get $~lib/memory/__stack_pointer - local.tee $4 - i32.const 0 - i32.store - local.get $0 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + local.get $2 i32.eqz if - local.get $4 - i32.const 0 - i32.const 0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 3 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.store end global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $0 + 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 $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 - i32.store8 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 - i32.store16 offset=2 + i32.store offset=8 + local.get $5 + 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 $0 + 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 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $2 + local.get $5 + 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 $0 + 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 - i64.const 0 - i64.store offset=8 + 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 - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store8 offset=16 + i32.const 2276 + i32.lt_s + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 i32.const 0 - i32.store16 offset=18 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store + local.get $3 local.get $0 - i32.const 0 - i32.store offset=20 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.ge_u + if + i32.const 1552 + i32.const 1792 + i32.const 452 + i32.const 64 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store local.get $0 - i64.const 0 - i64.store offset=24 + i32.load offset=4 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=32 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + local.get $3 + local.get $5 + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + i32.const 0 + local.set $3 + loop $for-loop|1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/typedarray/Float32Array#get:length + local.get $3 + i32.gt_s + if global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=36 + local.get $2 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store offset=8 local.get $0 - i32.const 0 - i32.store8 offset=40 + call $~lib/typedarray/Int16Array#get:length + local.get $3 + i32.add + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - f32.const 0 - f32.store offset=44 + local.get $1 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - f64.const 0 - f64.store offset=48 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=56 - local.get $0 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link + i32.const 2276 + i32.lt_s + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=60 - local.get $0 i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link + i32.store global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=64 - local.get $0 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link + local.get $1 + i32.store + local.get $3 + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 1552 + i32.const 1792 + i32.const 1304 + i32.const 64 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $1 + i32.store + local.get $1 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - br $__inlined_func$bindings/esm/PlainObject#constructor$5 + local.get $2 + local.get $5 + local.get $4 + i64.trunc_sat_f32_u + call $~lib/typedarray/Uint64Array#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 end - br $folding-inner1 end - local.tee $0 - i32.store global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store offset=4 - local.get $3 - local.get $2 - i32.store offset=8 - local.get $2 - i32.load8_s - local.set $4 - local.get $3 - local.get $1 - i32.store offset=8 - local.get $0 - local.get $4 - local.get $1 - i32.load8_s - i32.add - i32.store8 - local.get $3 - local.get $0 - i32.store offset=4 - local.get $3 - local.get $2 - i32.store offset=8 - local.get $2 - i32.load16_s offset=2 - local.set $2 - local.get $3 - local.get $1 - i32.store offset=8 - local.get $0 - local.get $2 - local.get $1 - i32.load16_s offset=2 - i32.add - i32.store16 offset=2 - local.get $3 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 $0 + local.get $2 return end i32.const 35072 @@ -4543,10 +4378,20 @@ call $~lib/builtins/abort unreachable ) - (func $export:bindings/esm/internrefFunction (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $bindings/esm/plainFunction64 (param $0 i64) (param $1 i64) (result i64) + local.get $0 + local.get $1 + i64.add + ) + (func $bindings/esm/plainFunction (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) + (func $bindings/esm/newInternref (result i32) + (local $0 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -4561,16 +4406,24 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 + i32.const 0 i32.store - local.get $2 - local.get $1 - i32.store offset=4 - local.get $2 - i32.const 8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 15 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) + (func $bindings/esm/getMaxUnsigned64 (result i64) + i64.const -1 + ) + (func $bindings/esm/getMaxUnsigned32 (result i32) + i32.const -1 + ) ) diff --git a/tests/compiler/builtins.debug.wat b/tests/compiler/builtins.debug.wat index c5c210aea4..fd74409ab4 100644 --- a/tests/compiler/builtins.debug.wat +++ b/tests/compiler/builtins.debug.wat @@ -549,16 +549,13 @@ (local $52 i32) (local $53 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 i32.const 1 drop i32.const 0 @@ -2551,7 +2548,7 @@ local.set $53 global.get $~lib/memory/__stack_pointer local.get $53 - i32.store offset=8 + i32.store offset=4 local.get $53 call $~lib/function/Function<%28i32%2Ci32%29=>i32>#get:name local.set $53 @@ -2560,11 +2557,6 @@ i32.store local.get $53 i32.const 32 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store offset=4 - local.get $53 call $~lib/string/String.__eq i32.eqz if @@ -2615,7 +2607,7 @@ local.set $53 global.get $~lib/memory/__stack_pointer local.get $53 - i32.store offset=8 + i32.store offset=4 local.get $53 call $~lib/function/Function<%28i32%2Ci32%29=>i32>#toString local.set $53 @@ -2624,11 +2616,6 @@ i32.store local.get $53 i32.const 176 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store offset=4 - local.get $53 call $~lib/string/String.__eq i32.eqz if @@ -3270,11 +3257,6 @@ i32.const 52 local.set $52 i32.const 256 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store - local.get $53 i32.const 5 local.get $48 f64.convert_i32_u @@ -3336,17 +3318,7 @@ unreachable end i32.const 352 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store - local.get $53 i32.const 352 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store offset=4 - local.get $53 call $~lib/string/String.__eq i32.eqz if @@ -3358,17 +3330,7 @@ unreachable end i32.const 352 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store - local.get $53 i32.const 352 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store offset=4 - local.get $53 call $~lib/string/String.__eq i32.eqz if @@ -3380,17 +3342,7 @@ unreachable end i32.const 400 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store - local.get $53 i32.const 400 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store offset=4 - local.get $53 call $~lib/string/String.__eq i32.eqz if @@ -3402,17 +3354,7 @@ unreachable end i32.const 432 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store - local.get $53 i32.const 432 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store offset=4 - local.get $53 call $~lib/string/String.__eq i32.eqz if @@ -3424,17 +3366,7 @@ unreachable end i32.const 464 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store - local.get $53 i32.const 464 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store offset=4 - local.get $53 call $~lib/string/String.__eq i32.eqz if @@ -3446,17 +3378,7 @@ unreachable end i32.const 496 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store - local.get $53 i32.const 496 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store offset=4 - local.get $53 call $~lib/string/String.__eq i32.eqz if @@ -3468,17 +3390,7 @@ unreachable end i32.const 528 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store - local.get $53 i32.const 528 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store offset=4 - local.get $53 call $~lib/string/String.__eq i32.eqz if @@ -3490,17 +3402,7 @@ unreachable end i32.const 560 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store - local.get $53 i32.const 560 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store offset=4 - local.get $53 call $~lib/string/String.__eq i32.eqz if @@ -3512,17 +3414,7 @@ unreachable end i32.const 592 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store - local.get $53 i32.const 592 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store offset=4 - local.get $53 call $~lib/string/String.__eq i32.eqz if @@ -3534,17 +3426,7 @@ unreachable end i32.const 624 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store - local.get $53 i32.const 624 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store offset=4 - local.get $53 call $~lib/string/String.__eq i32.eqz if @@ -3556,17 +3438,7 @@ unreachable end i32.const 656 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store - local.get $53 i32.const 656 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store offset=4 - local.get $53 call $~lib/string/String.__eq i32.eqz if @@ -3578,17 +3450,7 @@ unreachable end i32.const 688 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store - local.get $53 i32.const 688 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store offset=4 - local.get $53 call $~lib/string/String.__eq i32.eqz if @@ -3600,17 +3462,7 @@ unreachable end i32.const 720 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store - local.get $53 i32.const 720 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store offset=4 - local.get $53 call $~lib/string/String.__eq i32.eqz if @@ -3622,17 +3474,7 @@ unreachable end i32.const 752 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store - local.get $53 i32.const 752 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store offset=4 - local.get $53 call $~lib/string/String.__eq i32.eqz if @@ -3644,17 +3486,7 @@ unreachable end i32.const 784 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store - local.get $53 i32.const 784 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store offset=4 - local.get $53 call $~lib/string/String.__eq i32.eqz if @@ -3666,17 +3498,7 @@ unreachable end i32.const 816 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store - local.get $53 i32.const 816 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store offset=4 - local.get $53 call $~lib/string/String.__eq i32.eqz if @@ -3688,17 +3510,7 @@ unreachable end i32.const 848 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store - local.get $53 i32.const 848 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store offset=4 - local.get $53 call $~lib/string/String.__eq i32.eqz if @@ -3710,17 +3522,7 @@ unreachable end i32.const 880 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store - local.get $53 i32.const 880 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store offset=4 - local.get $53 call $~lib/string/String.__eq i32.eqz if @@ -3732,17 +3534,7 @@ unreachable end i32.const 432 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store - local.get $53 i32.const 432 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store offset=4 - local.get $53 call $~lib/string/String.__eq i32.eqz if @@ -3754,17 +3546,7 @@ unreachable end i32.const 352 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store - local.get $53 i32.const 352 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store offset=4 - local.get $53 call $~lib/string/String.__eq i32.eqz if @@ -3902,7 +3684,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/builtins.release.wat b/tests/compiler/builtins.release.wat index 28d046b18c..856132d52c 100644 --- a/tests/compiler/builtins.release.wat +++ b/tests/compiler/builtins.release.wat @@ -70,18 +70,6 @@ (export "test" (func $start:builtins~anonymous|1)) (export "memory" (memory $0)) (start $~start) - (func $start:builtins~anonymous|0 (param $0 i32) (param $1 i32) (result i32) - local.get $0 - local.get $1 - i32.add - ) - (func $start:builtins~anonymous|1 - ) - (func $start:builtins~anonymous|2 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - ) - (func $~start - call $start:builtins - ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -103,14 +91,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store local.get $0 local.get $1 i32.eq if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -125,8 +112,6 @@ i32.or br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $4 - local.tee $2 local.get $0 i32.store local.get $0 @@ -136,7 +121,7 @@ i32.const 1 i32.shr_u local.set $3 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $3 @@ -148,12 +133,12 @@ i32.shr_u i32.ne br_if $folding-inner0 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.set $2 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $3 @@ -247,10 +232,22 @@ global.set $~lib/memory/__stack_pointer i32.const 0 ) + (func $start:builtins~anonymous|1 + ) + (func $~start + call $start:builtins + ) + (func $start:builtins~anonymous|2 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + unreachable + ) + (func $start:builtins~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) (func $start:builtins - (local $0 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -265,12 +262,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 - i32.const 0 - i32.store offset=8 i32.const 1 global.set $builtins/i i32.const 0 @@ -604,13 +597,9 @@ global.set $builtins/I f64.const 1.24e-322 global.set $builtins/F - memory.size - drop i32.const 1 memory.grow drop - memory.size - drop i32.const 1 memory.grow drop @@ -656,15 +645,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1168 - i32.store offset=8 - local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store - local.get $0 - i32.const 1056 - i32.store offset=4 i32.const 1056 i32.const 1056 call $~lib/string/String.__eq @@ -678,21 +663,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1168 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1168 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1168 - i32.store offset=8 - local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 1200 i32.store - local.get $0 - i32.const 1200 - i32.store offset=4 i32.const 1200 i32.const 1200 call $~lib/string/String.__eq @@ -774,9 +755,6 @@ i32.const 8 f64.const 1 f64.store - global.get $~lib/memory/__stack_pointer - i32.const 1280 - i32.store i32.const 1280 i32.const 5 f64.const 0 @@ -785,13 +763,6 @@ f64.const 52 f64.const 52 call $~lib/builtins/trace - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1376 - i32.store - local.get $0 - i32.const 1376 - i32.store offset=4 i32.const 1376 i32.const 1376 call $~lib/string/String.__eq @@ -804,13 +775,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1376 - i32.store - local.get $0 - i32.const 1376 - i32.store offset=4 i32.const 1376 i32.const 1376 call $~lib/string/String.__eq @@ -823,13 +787,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1424 - i32.store - local.get $0 - i32.const 1424 - i32.store offset=4 i32.const 1424 i32.const 1424 call $~lib/string/String.__eq @@ -842,13 +799,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1456 - i32.store - local.get $0 - i32.const 1456 - i32.store offset=4 i32.const 1456 i32.const 1456 call $~lib/string/String.__eq @@ -861,13 +811,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1488 - i32.store - local.get $0 - i32.const 1488 - i32.store offset=4 i32.const 1488 i32.const 1488 call $~lib/string/String.__eq @@ -880,13 +823,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1520 - i32.store - local.get $0 - i32.const 1520 - i32.store offset=4 i32.const 1520 i32.const 1520 call $~lib/string/String.__eq @@ -899,13 +835,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1552 - i32.store - local.get $0 - i32.const 1552 - i32.store offset=4 i32.const 1552 i32.const 1552 call $~lib/string/String.__eq @@ -918,13 +847,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1584 - i32.store - local.get $0 - i32.const 1584 - i32.store offset=4 i32.const 1584 i32.const 1584 call $~lib/string/String.__eq @@ -937,13 +859,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1616 - i32.store - local.get $0 - i32.const 1616 - i32.store offset=4 i32.const 1616 i32.const 1616 call $~lib/string/String.__eq @@ -956,13 +871,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1648 - i32.store - local.get $0 - i32.const 1648 - i32.store offset=4 i32.const 1648 i32.const 1648 call $~lib/string/String.__eq @@ -975,13 +883,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1680 - i32.store - local.get $0 - i32.const 1680 - i32.store offset=4 i32.const 1680 i32.const 1680 call $~lib/string/String.__eq @@ -994,13 +895,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1712 - i32.store - local.get $0 - i32.const 1712 - i32.store offset=4 i32.const 1712 i32.const 1712 call $~lib/string/String.__eq @@ -1013,13 +907,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1744 - i32.store - local.get $0 - i32.const 1744 - i32.store offset=4 i32.const 1744 i32.const 1744 call $~lib/string/String.__eq @@ -1032,13 +919,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1776 - i32.store - local.get $0 - i32.const 1776 - i32.store offset=4 i32.const 1776 i32.const 1776 call $~lib/string/String.__eq @@ -1051,13 +931,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1808 - i32.store - local.get $0 - i32.const 1808 - i32.store offset=4 i32.const 1808 i32.const 1808 call $~lib/string/String.__eq @@ -1070,13 +943,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1840 - i32.store - local.get $0 - i32.const 1840 - i32.store offset=4 i32.const 1840 i32.const 1840 call $~lib/string/String.__eq @@ -1089,13 +955,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1872 - i32.store - local.get $0 - i32.const 1872 - i32.store offset=4 i32.const 1872 i32.const 1872 call $~lib/string/String.__eq @@ -1108,13 +967,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1904 - i32.store - local.get $0 - i32.const 1904 - i32.store offset=4 i32.const 1904 i32.const 1904 call $~lib/string/String.__eq @@ -1127,13 +979,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1456 - i32.store - local.get $0 - i32.const 1456 - i32.store offset=4 i32.const 1456 i32.const 1456 call $~lib/string/String.__eq @@ -1146,13 +991,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1376 - i32.store - local.get $0 - i32.const 1376 - i32.store offset=4 i32.const 1376 i32.const 1376 call $~lib/string/String.__eq @@ -1166,7 +1004,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/call-inferred.debug.wat b/tests/compiler/call-inferred.debug.wat index 9f7eb4fa7e..1d07f41be0 100644 --- a/tests/compiler/call-inferred.debug.wat +++ b/tests/compiler/call-inferred.debug.wat @@ -1,16 +1,46 @@ (module - (type $0 (func (param f32) (result f32))) - (type $1 (func)) - (type $2 (func (param i32) (result i32))) - (type $3 (func (param i32 i32 i32 i32))) - (type $4 (func (param f64) (result f64))) + (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 f32) (result f32))) + (type $6 (func (param i32 i32 i32))) + (type $7 (func (param i32 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 (param i32 i32 i32 i32))) (global $~argumentsLength (mut 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 $~lib/rt/itcms/total (mut 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/rt/itcms/fromSpace (mut i32) (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 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) "<\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)) @@ -46,7 +76,2422 @@ 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 + 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 160 + 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 160 + 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 160 + 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 288 + i32.const 352 + 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 160 + 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 432 + 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 432 + 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 432 + 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 432 + 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 432 + 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 432 + 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 432 + 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 432 + 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 432 + 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 432 + 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 432 + 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 432 + 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 432 + 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 160 + 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 96 + i32.const 432 + 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 432 + 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 432 + 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 432 + 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 432 + 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 432 + 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 96 + i32.const 160 + i32.const 261 + i32.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 $call-inferred/Foo#set:value (param $this i32) (param $value i32) + local.get $this + local.get $value + i32.store + ) + (func $call-inferred/Foo#get:value (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $call-inferred/Foo.create (param $value i32) (result i32) + i32.const 0 + local.get $value + call $call-inferred/Foo#constructor + return + ) + (func $call-inferred/Bar#doSomething (param $this i32) (param $a i32) (result i32) + local.get $a + return + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + i32.const 288 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 96 + 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 $call-inferred/Baz + block $call-inferred/Bar + block $call-inferred/Foo + 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 $call-inferred/Foo $call-inferred/Bar $call-inferred/Baz $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 $~start + call $start:call-inferred + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 33312 + i32.const 33360 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $call-inferred/Foo#constructor (param $this i32) (param $value 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 + i32.const 4 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $value + call $call-inferred/Foo#set:value + 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 $2 + ) + (func $call-inferred/Bar#constructor (param $this i32) (result 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 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 5 + 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 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $call-inferred/Baz#constructor (param $this i32) (param $value 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 + i32.const 4 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $value + call $call-inferred/Foo#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 $2 + ) (func $start:call-inferred + (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 42 call $call-inferred/foo i32.const 42 @@ -101,8 +2546,133 @@ 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 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $call-inferred/Foo#get:value + i32.const 42 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 22 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 42 + call $call-inferred/Foo.create + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $call-inferred/Foo#get:value + i32.const 42 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 23 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $call-inferred/Bar#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 42 + call $call-inferred/Bar#doSomething + i32.const 42 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 31 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 42 + call $call-inferred/Baz#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $call-inferred/Foo#get:value + i32.const 42 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 34 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~start - call $start:call-inferred + (func $~lib/object/Object#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 + 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 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 ) ) diff --git a/tests/compiler/call-inferred.release.wat b/tests/compiler/call-inferred.release.wat index d3392d9a85..07fa104b08 100644 --- a/tests/compiler/call-inferred.release.wat +++ b/tests/compiler/call-inferred.release.wat @@ -1,6 +1,1793 @@ (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 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 (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 34304)) (memory $0 1) (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/__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 1184 + 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 34304 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1184 + 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 1184 + 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 1504 + i32.load + i32.gt_u + if + i32.const 1312 + i32.const 1376 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 2 + i32.shl + i32.const 1508 + 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/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 1120 + i32.const 1184 + i32.const 261 + i32.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 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$70 + end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.const 10 + i32.shl + i32.add + global.set $~lib/rt/itcms/threshold + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.set $4 + local.get $0 + i32.const 16 + i32.add + local.tee $2 + i32.const 1073741820 + i32.gt_u + if + i32.const 1120 + i32.const 1456 + 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 + 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 + memory.size + local.tee $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.set $3 + local.get $2 + local.get $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 1456 + 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 1456 + 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 1456 + 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/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 1456 + 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 1456 + 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 1456 + 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 1456 + 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 1456 + 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 1456 + 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 1456 + 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 1456 + 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 1456 + 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/__visit_members (param $0 i32) + block $invalid + block $call-inferred/Baz + block $call-inferred/Bar + block $call-inferred/Foo + 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 $call-inferred/Foo $call-inferred/Bar $call-inferred/Baz $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 $call-inferred/Foo#constructor (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 1536 + i32.lt_s + if + i32.const 34336 + i32.const 34384 + 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 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 42 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $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 1456 + 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 1456 + 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/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 34304 + i32.const 0 + i32.store + i32.const 35872 + 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 34304 + 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 34304 + 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 34304 + i32.const 35876 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34304 + global.set $~lib/rt/tlsf/ROOT + ) + (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 1456 + 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 1456 + 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 1456 + 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/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1312 + call $~lib/rt/itcms/__visit + i32.const 1120 + 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 1184 + 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 $~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 1536 + 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 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 + i32.const 1272 + i32.const 1264 + i32.store + i32.const 1264 + global.set $~lib/rt/itcms/toSpace + i32.const 1412 + i32.const 1408 + i32.store + i32.const 1416 + i32.const 1408 + i32.store + i32.const 1408 + global.set $~lib/rt/itcms/fromSpace + i32.const 0 + call $call-inferred/Foo#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + i32.const 42 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 22 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $call-inferred/Foo#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + i32.const 42 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 23 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1536 + 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 + i32.store + 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 1536 + i32.lt_s + br_if $folding-inner0 + 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 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 + 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 1536 + 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 6 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $call-inferred/Foo#constructor + local.tee $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 $0 + i32.store + local.get $0 + i32.load + i32.const 42 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 34 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34336 + i32.const 34384 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (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 34304 + 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 1184 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34304 + 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 34304 + 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 1456 + 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 + ) ) diff --git a/tests/compiler/call-inferred.ts b/tests/compiler/call-inferred.ts index b0ec7e57b6..4c2dfb21bb 100644 --- a/tests/compiler/call-inferred.ts +++ b/tests/compiler/call-inferred.ts @@ -12,6 +12,27 @@ function bar(a: T = 42.0): T { assert(bar() == 42); +class Foo { + constructor(public value: T) {} + static create(value: T): Foo { + return new Foo(value); + } +} + +assert(new Foo(42).value == 42); +assert(Foo.create(42).value == 42); + +class Bar { + doSomething(a: T): T { + return a; + } +} + +assert(new Bar().doSomething(42) == 42); + +class Baz extends Foo {} +assert(new Baz(42).value == 42); + // TODO: this'd require return type inference, i.e., omitted return type // function baz(a: i32): T { // return a; diff --git a/tests/compiler/call-optional.release.wat b/tests/compiler/call-optional.release.wat index 79b66938d4..7f53c6549f 100644 --- a/tests/compiler/call-optional.release.wat +++ b/tests/compiler/call-optional.release.wat @@ -13,30 +13,6 @@ (elem $0 (i32.const 1) $call-optional/opt@varargs) (export "memory" (memory $0)) (start $~start) - (func $call-optional/opt@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - block $2of2 - block $1of2 - block $0of2 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of2 $1of2 $2of2 $outOfRange - end - unreachable - end - i32.const -1 - local.set $1 - end - i32.const -2 - local.set $2 - end - local.get $1 - i32.const 3 - i32.add - local.get $2 - i32.add - ) (func $~start i32.const 1 global.set $~argumentsLength @@ -95,4 +71,28 @@ unreachable end ) + (func $call-optional/opt@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const -1 + local.set $1 + end + i32.const -2 + local.set $2 + end + local.get $1 + i32.const 3 + i32.add + local.get $2 + i32.add + ) ) diff --git a/tests/compiler/call-rest-err.json b/tests/compiler/call-rest-err.json new file mode 100644 index 0000000000..6ba27c0d67 --- /dev/null +++ b/tests/compiler/call-rest-err.json @@ -0,0 +1,14 @@ +{ + "asc_flags": [ + ], + "stderr": [ + "TS2322: Type '~lib/string/String' is not assignable to type 'i32'.", + "sum('a', 'b')", + "TS2322: Type '~lib/string/String' is not assignable to type 'i32'.", + "sum('a', 'b')", + "TS2322: Type '~lib/string/String' is not assignable to type 'i32'.", + "count(1, 'a')", + "TS1140: Type argument expected.", + "count()" + ] +} diff --git a/tests/compiler/call-rest-err.ts b/tests/compiler/call-rest-err.ts new file mode 100644 index 0000000000..8008ede2c9 --- /dev/null +++ b/tests/compiler/call-rest-err.ts @@ -0,0 +1,15 @@ +function sum(...args: i32[]): i32 { + let sum = 0; + for (let i = 0, k = args.length; i < k; ++i) { + sum += args[i]; + } + return sum; +} + +function count(...args: T[]): i32 { + return args.length; +} + +sum('a', 'b'); // expect a type mismatch error on each argument +count(1, 'a'); // expect a type mismatch error on the second argument +count(); // expect type inference error diff --git a/tests/compiler/call-rest.debug.wat b/tests/compiler/call-rest.debug.wat new file mode 100644 index 0000000000..4bedb4c4ec --- /dev/null +++ b/tests/compiler/call-rest.debug.wat @@ -0,0 +1,4015 @@ +(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 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) (result 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 (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 $~argumentsLength (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/native/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $call-rest/indirect (mut i32) (i32.const 624)) + (global $~lib/native/ASC_RUNTIME i32 (i32.const 2)) + (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) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00I\00n\00d\00e\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)) + (start $~start) + (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/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 240 + 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 240 + 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 240 + 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 32 + i32.const 368 + 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 240 + 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 448 + 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 448 + 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 448 + 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 448 + 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 448 + 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 448 + 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 448 + 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 448 + 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 448 + 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 448 + 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 448 + 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 448 + 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 448 + 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 240 + 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 176 + i32.const 448 + 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 448 + 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 448 + 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 448 + 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 448 + 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 448 + 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 176 + i32.const 240 + i32.const 261 + i32.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/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 + end + local.get $buffer + 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 $~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#set:length_ (param $this i32) (param $length_ i32) + local.get $this + local.get $length_ + i32.store offset=12 + ) + (func $call-rest/Foo#set:values (param $this i32) (param $values i32) + local.get $this + local.get $values + i32.store + local.get $this + local.get $values + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $call-rest/Foo#get:values (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/array/Array<~lib/string/String>#get:length_ (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + i32.const 32 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 720 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 176 + 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#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/function/Function<%28i32%2Ci32?%2C...~lib/array/Array%29=>i32>#get:_env (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/function/Function<%28i32%2Ci32?%2C...~lib/array/Array%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?%2C...~lib/array/Array%29=>i32>#__visit + ) + (func $call-rest/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 + ) + (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: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 $call-rest/Foo + block $~lib/function/Function<%28i32%2Ci32?%2C...~lib/array/Array%29=>i32> + block $~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/function/Function<%28i32%2Ci32?%2C...~lib/array/Array%29=>i32> $call-rest/Foo $~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~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%2Ci32?%2C...~lib/array/Array%29=>i32>~visit + return + end + local.get $0 + local.get $1 + call $call-rest/Foo~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String>~visit + return + end + unreachable + ) + (func $~start + call $start:call-rest + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 33904 + i32.const 33952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (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/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 4 + 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 32 + i32.const 96 + 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 + 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 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + ) + (func $call-rest/fn (param $a i32) (param $b i32) (param $rest i32) (result i32) + (local $sum i32) + (local $i i32) + (local $k i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $a + local.get $b + i32.add + local.set $sum + i32.const 0 + local.set $i + local.get $rest + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + call $~lib/array/Array#get:length + local.set $k + loop $for-loop|0 + local.get $i + local.get $k + i32.lt_s + if + local.get $sum + local.get $rest + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $i + call $~lib/array/Array#__get + i32.add + local.set $sum + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $sum + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return + ) + (func $call-rest/fn@varargs (param $a i32) (param $b i32) (param $rest i32) (result i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $b + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 2 + i32.const 5 + i32.const 144 + call $~lib/rt/__newArray + local.tee $rest + i32.store + end + local.get $a + local.get $b + local.get $rest + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $call-rest/fn + 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/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 720 + i32.const 96 + 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) + (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 32 + i32.const 96 + 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_ + 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#push (param $this i32) (param $value i32) (result i32) + (local $oldLen i32) + (local $len 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/array/Array#get:length_ + local.set $oldLen + local.get $oldLen + i32.const 1 + i32.add + local.set $len + local.get $this + local.get $len + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + i32.const 0 + drop + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/array/Array#get:dataStart + local.get $oldLen + i32.const 2 + i32.shl + i32.add + local.get $value + i32.store + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + local.get $len + call $~lib/array/Array#set:length_ + local.get $len + 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 $call-rest/Foo#constructor (param $this i32) (param $a i32) (param $b i32) (param $rest i32) (result i32) + (local $4 i32) + (local $i i32) + (local $k i32) + (local $7 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 4 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + call $call-rest/Foo#set:values + local.get $this + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 2 + i32.const 4 + i32.const 0 + call $~lib/rt/__newArray + local.tee $4 + i32.store offset=12 + local.get $4 + i32.const 0 + local.get $a + call $~lib/array/Array#__set + local.get $4 + i32.const 1 + local.get $b + call $~lib/array/Array#__set + local.get $4 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + call $call-rest/Foo#set:values + i32.const 0 + local.set $i + local.get $rest + 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 + local.set $k + loop $for-loop|0 + local.get $i + local.get $k + i32.lt_s + if + local.get $this + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + call $call-rest/Foo#get:values + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $rest + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + local.get $i + call $~lib/array/Array#__get + call $~lib/array/Array#push + drop + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $this + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) + (func $call-rest/Foo#constructor@varargs (param $this i32) (param $a i32) (param $b i32) (param $rest i32) (result i32) + (local $4 i32) + (local $5 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 $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $b + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 2 + i32.const 5 + i32.const 768 + call $~lib/rt/__newArray + local.tee $rest + 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 + local.get $a + local.get $b + local.get $rest + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $5 + call $call-rest/Foo#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + ) + (func $call-rest/Foo#sum (param $this i32) (result i32) + (local $sum i32) + (local $i i32) + (local $k 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 + local.set $sum + i32.const 0 + local.set $i + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $call-rest/Foo#get:values + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/array/Array#get:length + local.set $k + loop $for-loop|0 + local.get $i + local.get $k + i32.lt_s + if + local.get $sum + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $call-rest/Foo#get:values + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + local.get $i + call $~lib/array/Array#__get + i32.add + local.set $sum + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $sum + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + return + ) + (func $call-rest/count (param $args 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 $args + 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 $call-rest/count@varargs (param $args 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 + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 2 + i32.const 5 + i32.const 864 + call $~lib/rt/__newArray + local.tee $args + i32.store + end + local.get $args + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $call-rest/count + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (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 4 + i32.sub + global.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<~lib/string/String>#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 $call-rest/count<~lib/string/String> (param $args 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 $args + local.set $1 + global.get $~lib/memory/__stack_pointer + 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 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $start:call-rest + (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) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 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 400 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + i32.const 1 + i32.const 0 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $call-rest/fn@varargs + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 512 + i32.const 9 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 2 + i32.const 2 + global.set $~argumentsLength + i32.const 0 + call $call-rest/fn@varargs + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 512 + i32.const 10 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 2 + i32.const 1 + i32.const 2 + i32.const 4 + i32.const 560 + call $~lib/rt/__newArray + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + call $call-rest/fn + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 512 + i32.const 11 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 2 + i32.const 3 + i32.const 2 + i32.const 4 + i32.const 592 + call $~lib/rt/__newArray + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + call $call-rest/fn + i32.const 15 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 512 + i32.const 12 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + i32.const 0 + i32.const 1 + global.set $~argumentsLength + global.get $call-rest/indirect + i32.load + call_indirect (type $3) + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 512 + i32.const 16 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 2 + i32.const 0 + i32.const 2 + global.set $~argumentsLength + global.get $call-rest/indirect + i32.load + call_indirect (type $3) + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 512 + i32.const 17 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $call-rest/indirect + local.tee $3 + i32.store offset=4 + i32.const 1 + i32.const 2 + i32.const 1 + i32.const 2 + i32.const 4 + i32.const 656 + call $~lib/rt/__newArray + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 3 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $3) + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 512 + i32.const 18 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $call-rest/indirect + local.tee $5 + i32.store offset=8 + i32.const 1 + i32.const 2 + i32.const 3 + i32.const 2 + i32.const 4 + i32.const 688 + call $~lib/rt/__newArray + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 3 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect (type $3) + i32.const 15 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 512 + i32.const 19 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1 + i32.const 0 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $call-rest/Foo#constructor@varargs + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + call $call-rest/Foo#sum + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 512 + i32.const 40 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1 + i32.const 2 + i32.const 2 + global.set $~argumentsLength + i32.const 0 + call $call-rest/Foo#constructor@varargs + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + call $call-rest/Foo#sum + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 512 + i32.const 41 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1 + i32.const 2 + i32.const 1 + i32.const 2 + i32.const 4 + i32.const 800 + call $~lib/rt/__newArray + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=12 + local.get $11 + call $call-rest/Foo#constructor + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + call $call-rest/Foo#sum + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 512 + i32.const 42 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1 + i32.const 2 + i32.const 3 + i32.const 2 + i32.const 4 + i32.const 832 + call $~lib/rt/__newArray + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=12 + local.get $11 + call $call-rest/Foo#constructor + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + call $call-rest/Foo#sum + i32.const 15 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 512 + i32.const 43 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $call-rest/count@varargs + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 512 + i32.const 49 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 2 + i32.const 4 + i32.const 896 + call $~lib/rt/__newArray + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + call $call-rest/count + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 512 + i32.const 50 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 2 + i32.const 4 + i32.const 928 + call $~lib/rt/__newArray + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + call $call-rest/count + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 512 + i32.const 51 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 2 + i32.const 8 + i32.const 1056 + call $~lib/rt/__newArray + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + call $call-rest/count<~lib/string/String> + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 512 + i32.const 54 + i32.const 1 + 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/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/function/Function<%28i32%2Ci32?%2C...~lib/array/Array%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?%2C...~lib/array/Array%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/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 + ) + (func $~lib/rt/__newArray (param $length i32) (param $alignLog2 i32) (param $id i32) (param $data i32) (result i32) + (local $bufferSize i32) + (local $buffer i32) + (local $array 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 $length + local.get $alignLog2 + i32.shl + local.set $bufferSize + global.get $~lib/memory/__stack_pointer + local.get $bufferSize + i32.const 1 + local.get $data + call $~lib/rt/__newBuffer + local.tee $buffer + i32.store + i32.const 16 + local.get $id + call $~lib/rt/itcms/__new + local.set $array + local.get $array + local.get $buffer + i32.store + local.get $array + local.get $buffer + i32.const 0 + call $~lib/rt/itcms/__link + local.get $array + local.get $buffer + i32.store offset=4 + local.get $array + local.get $bufferSize + i32.store offset=8 + local.get $array + local.get $length + i32.store offset=12 + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + return + ) +) diff --git a/tests/compiler/call-rest.json b/tests/compiler/call-rest.json new file mode 100644 index 0000000000..1bdd02b1be --- /dev/null +++ b/tests/compiler/call-rest.json @@ -0,0 +1,4 @@ +{ + "asc_flags": [ + ] +} diff --git a/tests/compiler/call-rest.release.wat b/tests/compiler/call-rest.release.wat new file mode 100644 index 0000000000..418eed48ad --- /dev/null +++ b/tests/compiler/call-rest.release.wat @@ -0,0 +1,2974 @@ +(module + (type $0 (func (param i32 i32 i32) (result i32))) + (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)) + (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 (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (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 34904)) + (memory $0 1) + (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)) + (start $~start) + (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 2136 + i32.lt_s + if + 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.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 + 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/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/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 1200 + i32.const 1264 + i32.const 261 + i32.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 1200 + i32.const 1472 + 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 + 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 + memory.size + local.tee $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.set $3 + local.get $2 + local.get $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 1472 + 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 1472 + 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 1472 + 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 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 $~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 2136 + i32.lt_s + if + 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.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 $call-rest/count (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 2136 + i32.lt_s + if + 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.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $call-rest/Foo#sum (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 + global.get $~lib/memory/__stack_pointer + i32.const 2136 + i32.lt_s + if + i32.const 34928 + i32.const 34976 + 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 offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $3 + i32.store + local.get $3 + call $~lib/array/Array#get:length + local.set $4 + loop $for-loop|0 + local.get $1 + local.get $4 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $3 + i32.store + local.get $3 + local.get $1 + call $~lib/array/Array#__get + local.get $2 + i32.add + local.set $2 + 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 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (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 1472 + 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 1472 + 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 1472 + 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 1472 + 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 1472 + 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 1472 + 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 1472 + 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 1472 + 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 1472 + 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/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 1264 + 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$160 + 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 34904 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1264 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$160 + end + local.get $0 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1264 + 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 2096 + i32.load + i32.gt_u + if + i32.const 1056 + i32.const 1392 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 2100 + 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/__visit_members (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + block $folding-inner0 + block $invalid + block $~lib/array/Array<~lib/string/String> + block $call-rest/Foo + block $~lib/function/Function<%28i32%2Ci32?%2C...~lib/array/Array%29=>i32> + block $~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/function/Function<%28i32%2Ci32?%2C...~lib/array/Array%29=>i32> $call-rest/Foo $~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 + 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 2136 + 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 + 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 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2136 + 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 $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 + end + i32.const 34928 + i32.const 34976 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (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 2136 + i32.lt_s + if + 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.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 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 $call-rest/fn@varargs (param $0 i32) (param $1 i32) (param $2 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 2136 + i32.lt_s + if + i32.const 34928 + i32.const 34976 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 5 + i32.const 1168 + call $~lib/rt/__newArray + local.tee $2 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $1 + local.get $2 + call $call-rest/fn + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $call-rest/fn (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 2136 + i32.lt_s + if + 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.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#get:length + local.set $3 + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + local.get $2 + call $~lib/array/Array#__get + local.get $0 + i32.add + local.set $0 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $call-rest/Foo#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 2136 + 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 4 + i32.const 7 + 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 + local.get $2 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 4 + i32.const 0 + call $~lib/rt/__newArray + local.tee $3 + i32.store offset=12 + local.get $3 + i32.const 0 + i32.const 1 + call $~lib/array/Array#__set + local.get $3 + i32.const 1 + local.get $0 + call $~lib/array/Array#__set + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $2 + local.get $3 + i32.store + local.get $2 + local.get $3 + call $~lib/rt/itcms/__link + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/array/Array#get:length + local.set $7 + loop $for-loop|0 + local.get $0 + local.get $7 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.load + local.tee $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $0 + call $~lib/array/Array#__get + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2136 + 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 $6 + i32.store + local.get $6 + local.get $6 + i32.load offset=12 + local.tee $4 + i32.const 1 + i32.add + local.tee $5 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + i32.load offset=4 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.get $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + i32.const 34928 + i32.const 34976 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (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 1472 + 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 1472 + 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/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 34912 + i32.const 0 + i32.store + i32.const 36480 + 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 34912 + 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 34912 + 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 34912 + i32.const 36484 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34912 + global.set $~lib/rt/tlsf/ROOT + ) + (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 1472 + 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 1472 + 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 1472 + 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/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1056 + call $~lib/rt/itcms/__visit + i32.const 1744 + call $~lib/rt/itcms/__visit + i32.const 1200 + 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/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 2136 + i32.lt_s + if + 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.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 1744 + i32.const 1120 + 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$154 + 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$154 + 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 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/rt/itcms/__link + end + local.get $0 + local.get $3 + 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~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 2136 + i32.lt_s + if + 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.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 + ) + (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 2136 + i32.lt_s + if + 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.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 1056 + i32.const 1120 + 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 $call-rest/Foo#constructor@varargs (param $0 i32) (result i32) + (local $1 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 2136 + i32.lt_s + if + i32.const 34928 + i32.const 34976 + 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 + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $0 + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 5 + i32.const 1792 + call $~lib/rt/__newArray + local.tee $1 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 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 $call-rest/Foo#constructor + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~start + call $start:call-rest + ) + (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 34904 + 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 1264 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34904 + 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 34904 + 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 1472 + 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 $start:call-rest + (local $0 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 2136 + 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 + memory.size + i32.const 16 + i32.shl + i32.const 34904 + 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 1428 + i32.const 1424 + i32.store + i32.const 1432 + i32.const 1424 + i32.store + i32.const 1424 + global.set $~lib/rt/itcms/fromSpace + i32.const 1 + global.set $~argumentsLength + i32.const 1 + i32.const 0 + i32.const 0 + call $call-rest/fn@varargs + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1536 + i32.const 9 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + global.set $~argumentsLength + i32.const 1 + i32.const 2 + i32.const 0 + call $call-rest/fn@varargs + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1536 + i32.const 10 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 4 + i32.const 1584 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 2 + local.get $0 + call $call-rest/fn + i32.const 6 + i32.ne + if + i32.const 0 + i32.const 1536 + i32.const 11 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 4 + i32.const 1616 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 2 + local.get $0 + call $call-rest/fn + i32.const 15 + i32.ne + if + i32.const 0 + i32.const 1536 + i32.const 12 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + i32.const 1 + i32.const 0 + i32.const 0 + i32.const 1648 + i32.load + call_indirect (type $0) + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1536 + i32.const 16 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + global.set $~argumentsLength + i32.const 1 + i32.const 2 + i32.const 0 + i32.const 1648 + i32.load + call_indirect (type $0) + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1536 + i32.const 17 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1648 + i32.store offset=4 + i32.const 1 + i32.const 4 + i32.const 1680 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 3 + global.set $~argumentsLength + i32.const 1 + i32.const 2 + local.get $0 + i32.const 1648 + i32.load + call_indirect (type $0) + i32.const 6 + i32.ne + if + i32.const 0 + i32.const 1536 + i32.const 18 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1648 + i32.store offset=8 + i32.const 3 + i32.const 4 + i32.const 1712 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 3 + global.set $~argumentsLength + i32.const 1 + i32.const 2 + local.get $0 + i32.const 1648 + i32.load + call_indirect (type $0) + i32.const 15 + i32.ne + if + i32.const 0 + i32.const 1536 + i32.const 19 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $call-rest/Foo#constructor@varargs + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $call-rest/Foo#sum + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1536 + i32.const 40 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + global.set $~argumentsLength + i32.const 2 + call $call-rest/Foo#constructor@varargs + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $call-rest/Foo#sum + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1536 + i32.const 41 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 4 + i32.const 1824 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + i32.const 2 + local.get $0 + call $call-rest/Foo#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $call-rest/Foo#sum + i32.const 6 + i32.ne + if + i32.const 0 + i32.const 1536 + i32.const 42 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 4 + i32.const 1856 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + i32.const 2 + local.get $0 + call $call-rest/Foo#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $call-rest/Foo#sum + i32.const 15 + i32.ne + if + i32.const 0 + i32.const 1536 + i32.const 43 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2136 + 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 + i32.const 1888 + call $~lib/rt/__newArray + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $call-rest/count + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + if + i32.const 0 + i32.const 1536 + i32.const 49 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 4 + i32.const 1920 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $call-rest/count + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1536 + i32.const 50 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 4 + i32.const 1952 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $call-rest/count + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1536 + i32.const 51 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 8 + i32.const 2080 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $call-rest/count + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1536 + i32.const 54 + i32.const 1 + 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 34928 + i32.const 34976 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) +) diff --git a/tests/compiler/call-rest.ts b/tests/compiler/call-rest.ts new file mode 100644 index 0000000000..bb0336a939 --- /dev/null +++ b/tests/compiler/call-rest.ts @@ -0,0 +1,54 @@ +// direct call test +function fn(a: i32, b: i32 = 0, ...rest: i32[]): i32 { + let sum = a + b; + for (let i = 0, k = rest.length; i < k; ++i) { + sum += rest[i]; + } + return sum; +} +assert(fn(1) == 1); +assert(fn(1, 2) == 3); +assert(fn(1, 2, 3) == 6); +assert(fn(1, 2, 3, 4, 5) == 15); + +// indirect call test +var indirect = fn; +assert(indirect(1) == 1); +assert(indirect(1, 2) == 3); +assert(indirect(1, 2, 3) == 6); +assert(indirect(1, 2, 3, 4, 5) == 15); + +// constructor test +class Foo{ + values: i32[]; + + constructor(a: i32, b: i32 = 0, ...rest: i32[]) { + this.values = [a, b]; + for (let i = 0, k = rest.length; i < k; ++i) { + this.values.push(rest[i]); + } + } + + sum(): i32 { + let sum = 0; + for (let i = 0, k = this.values.length; i < k; ++i) { + sum += this.values[i]; + } + return sum; + } +} +assert(new Foo(1).sum() == 1); +assert(new Foo(1, 2).sum() == 3); +assert(new Foo(1, 2, 3).sum() == 6); +assert(new Foo(1, 2, 3, 4, 5).sum() == 15); + +// generic test +function count(...args: T[]): i32 { + return args.length; +} +assert(count() == 0); +assert(count(1) == 1); +assert(count(1, 2, 3) == 3); + +// inferred generic test +assert(count('a','b','c') == 3); diff --git a/tests/compiler/call-super.debug.wat b/tests/compiler/call-super.debug.wat index 050aff4d05..9e413d5a8e 100644 --- a/tests/compiler/call-super.debug.wat +++ b/tests/compiler/call-super.debug.wat @@ -1625,14 +1625,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 @@ -2372,12 +2375,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/call-super.release.wat b/tests/compiler/call-super.release.wat index 35171b786e..003836b8dc 100644 --- a/tests/compiler/call-super.release.wat +++ b/tests/compiler/call-super.release.wat @@ -1,12 +1,12 @@ (module (type $0 (func)) - (type $1 (func (param i32))) - (type $2 (func (param i32 i32))) - (type $3 (func (param i32 i32) (result i32))) + (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 i32 i32))) (type $5 (func (param i32 i32 i64))) - (type $6 (func (result i32))) - (type $7 (func (param i32) (result i32))) + (type $6 (func (param i32) (result i32))) + (type $7 (func (result i32))) (import "env" "abort" (func $~lib/builtins/abort (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)) @@ -35,1503 +35,1588 @@ (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 1296 - call $~lib/rt/itcms/__visit - i32.const 1104 - 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 1168 - 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) + (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.eqz + i32.const 1073741804 + i32.ge_u if - return + i32.const 1104 + i32.const 1168 + i32.const 261 + i32.const 31 + call $~lib/builtins/abort + unreachable 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 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u 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 1168 - 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$158 - 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 34316 - i32.lt_u - i32.and + 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 - i32.const 0 - i32.const 1168 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable + 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 - br $__inlined_func$~lib/rt/itcms/Object#unlink$158 - end - local.get $1 - i32.load offset=8 - local.tee $2 - i32.eqz - if + local.get $2 i32.const 0 - i32.const 1168 - 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 1488 - i32.load - i32.gt_u - if - i32.const 1296 - i32.const 1360 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable + i32.gt_s + br_if $do-loop|0 end - local.get $0 - i32.const 2 + 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.const 1492 i32.add - i32.load - i32.const 32 - i32.and + global.set $~lib/rt/itcms/threshold 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 + global.get $~lib/rt/tlsf/ROOT i32.eqz if - i32.const 0 + 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 1104 i32.const 1440 - i32.const 268 - i32.const 14 + i32.const 461 + i32.const 29 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const -4 - i32.and - local.tee $3 + local.get $4 + local.get $2 i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1440 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u + i32.le_u if (result i32) - local.get $3 - i32.const 4 - i32.shr_u + i32.const 12 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 + local.get $2 + i32.const 19 + i32.add + i32.const -16 + i32.and 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 + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 i32.eqz - if - i32.const 0 - i32.const 1440 - 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 + 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.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 + i32.load offset=1568 + memory.size + local.tee $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.set $3 + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s 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 + memory.grow + i32.const 0 + i32.lt_s if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - i32.rotl - i32.and - i32.store + 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 1440 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + 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 + local.get $5 + local.get $2 + i32.load + i32.const -4 + i32.and + i32.gt_u if i32.const 0 i32.const 1440 - i32.const 201 + i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 + local.get $2 + call $~lib/rt/tlsf/removeBlock + local.get $2 i32.load - local.tee $3 - i32.const 1 + local.set $6 + local.get $5 + i32.const 4 + i32.add + i32.const 15 i32.and - i32.eqz if i32.const 0 i32.const 1440 - i32.const 203 + i32.const 361 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load + local.get $6 i32.const -4 i32.and - i32.add - local.tee $4 - i32.load - local.tee $2 - i32.const 1 - i32.and + local.get $5 + i32.sub + local.tee $3 + i32.const 16 + i32.ge_u 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 + local.get $5 + local.get $6 + i32.const 2 i32.and - i32.add - local.tee $3 + i32.or i32.store - local.get $1 + local.get $2 i32.const 4 i32.add - local.get $1 - i32.load - i32.const -4 - i32.and + local.get $5 i32.add - local.tee $4 - i32.load - local.set $2 - end - local.get $3 - i32.const 2 - i32.and - if - local.get $1 + local.tee $5 + local.get $3 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 1440 - 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 + 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 $3 + 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 $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 1440 - 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 1440 - 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 + i32.store offset=12 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 1440 - 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 + 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 - i32.const 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 - 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 $3 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 local.get $1 - i32.store offset=96 - local.get $0 - local.get $0 + local.get $2 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $2 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.const -4 + i32.and + i32.const 4 i32.add - local.tee $0 - local.get $0 - i32.load offset=4 - i32.const 1 + i32.add + global.set $~lib/rt/itcms/total local.get $2 - i32.shl - i32.or - i32.store offset=4 + i32.const 20 + i32.add + local.tee $1 + i32.const 0 + local.get $0 + memory.fill + local.get $1 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/rt/itcms/__visit (param $0 i32) + (local $1 i32) + (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u + local.get $0 + i32.eqz if - i32.const 0 - i32.const 1440 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable + return end - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - local.set $1 + global.get $~lib/rt/itcms/white local.get $0 - i32.load offset=1568 - local.tee $3 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq if - local.get $3 - i32.const 4 - i32.add local.get $1 - i32.gt_u + global.get $~lib/rt/itcms/iter + i32.eq if - i32.const 0 - i32.const 1440 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable + local.get $1 + i32.load offset=8 + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1168 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $0 + global.set $~lib/rt/itcms/iter end - local.get $3 + block $__inlined_func$~lib/rt/itcms/Object#unlink$158 + 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 34316 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1168 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$158 + end + local.get $1 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1168 + 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.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 + 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 1488 i32.load - local.set $4 - local.get $5 - local.set $1 + i32.gt_u + if + i32.const 1296 + i32.const 1360 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 2 + i32.shl + i32.const 1492 + i32.add + i32.load + i32.const 32 + i32.and end - else + 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 - i32.const 1572 - i32.add local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1440 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + 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 - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and + ) + (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.sub + i32.load local.tee $3 - i32.const 20 - i32.lt_u + i32.const 1 + i32.and + i32.eqz if - return + i32.const 0 + i32.const 1440 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable 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 + i32.const -4 + i32.and local.tee $3 - i32.const 2 - i32.store - local.get $0 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1440 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end 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 + i32.const 256 + i32.lt_u if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s + local.get $3 + i32.const 4 + i32.shr_u else - i32.const 0 - end - if - unreachable + 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 - i32.const 34320 - i32.const 0 - i32.store - i32.const 35888 - i32.const 0 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 23 - i32.lt_u + 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 1440 + 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.const 34320 i32.add - i32.const 0 + 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 - 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 34320 - 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 + 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 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 end end - i32.const 34320 - i32.const 35892 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34320 - 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 34316 - 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 1168 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 34316 - 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 34316 - 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.set $1 - 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 1440 - 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 $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (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.const 256 - i32.lt_u + i32.eqz 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 + i32.const 0 + i32.const 1440 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable end local.get $1 - i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u + i32.load + local.tee $3 + i32.const 1 i32.and i32.eqz if i32.const 0 i32.const 1440 - i32.const 334 + i32.const 203 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $0 - local.get $2 - i32.const 2 - i32.shl + local.get $1 + i32.const 4 i32.add - i32.load offset=4 - i32.const -1 local.get $1 - i32.shl + i32.load + i32.const -4 i32.and - local.tee $1 - if (result i32) + 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 - i32.ctz + 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.shl i32.add - i32.const 2 - i32.shl + local.get $1 + i32.load + i32.const -4 + i32.and i32.add - i32.load offset=96 - else - local.get $0 + local.tee $4 i32.load - i32.const -1 - local.get $2 + 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.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 1440 - 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 1104 - i32.const 1168 - i32.const 261 - i32.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 - 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 $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 - 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 1104 - i32.const 1440 - 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 1440 - i32.const 499 + 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 $5 + local.get $4 local.get $2 - i32.load + i32.const 2 + i32.or + i32.store + local.get $3 i32.const -4 i32.and - i32.gt_u + local.tee $2 + i32.const 12 + i32.lt_u if i32.const 0 i32.const 1440 - i32.const 501 + i32.const 233 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 + local.get $1 i32.const 4 i32.add - i32.const 15 - i32.and + local.get $2 + i32.add + i32.ne if i32.const 0 i32.const 1440 - i32.const 361 + i32.const 234 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $6 - i32.const -4 - i32.and - local.get $5 + local.get $4 + i32.const 4 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 $1 + i32.store + local.get $2 + i32.const 256 + i32.lt_u + if (result i32) local.get $2 i32.const 4 - i32.add - local.get $5 - i32.add - local.tee $5 + 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.const 1 - i32.or - i32.store - local.get $4 - local.get $5 - call $~lib/rt/tlsf/insertBlock + 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 1440 + 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/__visit_members (param $0 i32) + block $invalid + block $call-super/I + block $call-super/J + block $call-super/G + block $call-super/H + block $call-super/E + block $call-super/F + block $call-super/C + block $call-super/D + block $call-super/A + block $call-super/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 $call-super/B $call-super/A $call-super/D $call-super/C $call-super/F $call-super/E $call-super/H $call-super/G $call-super/J $call-super/I $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 + return + end + return + end + return + end + return + end + return + end + return + end + return + end + unreachable + ) + (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 - local.get $6 - i32.const -2 - i32.and - i32.store + 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 1440 + 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 - local.get $2 - i32.load - i32.const -4 - i32.and + i32.const 2 + i32.shl i32.add - local.tee $3 - local.get $3 - i32.load - i32.const -3 + 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 1440 + 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/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 34320 + i32.const 0 + i32.store + i32.const 35888 + 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 34320 + 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 34320 + 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 34320 + i32.const 35892 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34320 + global.set $~lib/rt/tlsf/ROOT + ) + (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 1440 + 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 1440 + 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 1440 + 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/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1296 + call $~lib/rt/itcms/__visit + i32.const 1104 + 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 1168 + 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/object/Object#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 1548 + i32.lt_s + if + 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.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $0 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 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~start + call $start:call-super + ) + (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 34316 + 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 1168 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34316 + 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 34316 + 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 1440 + 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 - local.get $0 - memory.fill - local.get $1 ) (func $start:call-super (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) memory.size i32.const 16 i32.shl @@ -1574,10 +1659,10 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -1586,26 +1671,25 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=4 local.get $0 i32.const 2 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -1614,13 +1698,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store local.get $0 i32.eqz if - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 5 call $~lib/rt/itcms/__new @@ -1628,13 +1711,12 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store offset=4 local.get $0 i32.const 1 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -1653,7 +1735,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1690,7 +1771,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1736,10 +1816,10 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -1748,26 +1828,25 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.const 6 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=4 local.get $0 i32.const 2 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -1776,13 +1855,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store local.get $0 i32.eqz if - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 7 call $~lib/rt/itcms/__new @@ -1790,10 +1868,9 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -1808,7 +1885,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1845,7 +1921,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1891,10 +1966,10 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -1903,20 +1978,19 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.const 8 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -1925,13 +1999,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store local.get $0 i32.eqz if - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 9 call $~lib/rt/itcms/__new @@ -1939,13 +2012,12 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store offset=4 local.get $0 i32.const 1 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -1964,7 +2036,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1977,7 +2048,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -2023,10 +2093,10 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2035,20 +2105,19 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.const 10 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2057,13 +2126,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store local.get $0 i32.eqz if - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 11 call $~lib/rt/itcms/__new @@ -2071,10 +2139,9 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -2089,7 +2156,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -2102,7 +2168,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -2148,10 +2213,10 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2160,20 +2225,19 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.const 12 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2182,13 +2246,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store local.get $0 i32.eqz if - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 13 call $~lib/rt/itcms/__new @@ -2196,17 +2259,15 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store offset=4 local.get $0 i32.const 1 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -2219,7 +2280,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -2265,103 +2325,4 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $call-super/I - block $call-super/J - block $call-super/G - block $call-super/H - block $call-super/E - block $call-super/F - block $call-super/C - block $call-super/D - block $call-super/A - block $call-super/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 $call-super/B $call-super/A $call-super/D $call-super/C $call-super/F $call-super/E $call-super/H $call-super/G $call-super/J $call-super/I $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end - unreachable - ) - (func $~start - call $start:call-super - ) - (func $~lib/object/Object#constructor (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1548 - i32.lt_s - if - i32.const 34336 - i32.const 34384 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - local.get $1 - 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 - ) ) diff --git a/tests/compiler/cast.debug.wat b/tests/compiler/cast.debug.wat index 2800488edc..3a7ae38bce 100644 --- a/tests/compiler/cast.debug.wat +++ b/tests/compiler/cast.debug.wat @@ -12,21 +12,21 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x i32.extend8_s @@ -34,7 +34,7 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x i32.extend8_s @@ -42,7 +42,7 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x i32.extend8_s @@ -50,7 +50,7 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x i32.extend8_s @@ -58,7 +58,7 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i64) + (func $"cast/test" (param $x i32) (result i64) (local $y i64) local.get $x i32.extend8_s @@ -67,7 +67,7 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i64) + (func $"cast/test" (param $x i32) (result i64) (local $y i64) local.get $x i32.extend8_s @@ -76,28 +76,28 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x i32.const 255 @@ -106,7 +106,7 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x i32.const 255 @@ -115,7 +115,7 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x i32.const 255 @@ -124,7 +124,7 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x i32.const 255 @@ -133,7 +133,7 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i64) + (func $"cast/test" (param $x i32) (result i64) (local $y i64) local.get $x i32.const 255 @@ -143,7 +143,7 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i64) + (func $"cast/test" (param $x i32) (result i64) (local $y i64) local.get $x i32.const 255 @@ -153,42 +153,42 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x i32.extend16_s @@ -196,7 +196,7 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x i32.extend16_s @@ -204,7 +204,7 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i64) + (func $"cast/test" (param $x i32) (result i64) (local $y i64) local.get $x i32.extend16_s @@ -213,7 +213,7 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i64) + (func $"cast/test" (param $x i32) (result i64) (local $y i64) local.get $x i32.extend16_s @@ -222,42 +222,42 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x i32.const 65535 @@ -266,7 +266,7 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x i32.const 65535 @@ -275,7 +275,7 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i64) + (func $"cast/test" (param $x i32) (result i64) (local $y i64) local.get $x i32.const 65535 @@ -285,7 +285,7 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i64) + (func $"cast/test" (param $x i32) (result i64) (local $y i64) local.get $x i32.const 65535 @@ -295,56 +295,56 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i64) + (func $"cast/test" (param $x i32) (result i64) (local $y i64) local.get $x i64.extend_i32_s @@ -352,7 +352,7 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i64) + (func $"cast/test" (param $x i32) (result i64) (local $y i64) local.get $x i64.extend_i32_s @@ -360,56 +360,56 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i64) + (func $"cast/test" (param $x i32) (result i64) (local $y i64) local.get $x i64.extend_i32_u @@ -417,7 +417,7 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i64) + (func $"cast/test" (param $x i32) (result i64) (local $y i64) local.get $x i64.extend_i32_u @@ -425,14 +425,14 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i64) (result i32) + (func $"cast/test" (param $x i64) (result i32) (local $y i32) local.get $x i32.wrap_i64 @@ -440,7 +440,7 @@ local.get $y return ) - (func $cast/test (param $x i64) (result i32) + (func $"cast/test" (param $x i64) (result i32) (local $y i32) local.get $x i32.wrap_i64 @@ -448,7 +448,7 @@ local.get $y return ) - (func $cast/test (param $x i64) (result i32) + (func $"cast/test" (param $x i64) (result i32) (local $y i32) local.get $x i32.wrap_i64 @@ -456,7 +456,7 @@ local.get $y return ) - (func $cast/test (param $x i64) (result i32) + (func $"cast/test" (param $x i64) (result i32) (local $y i32) local.get $x i32.wrap_i64 @@ -464,7 +464,7 @@ local.get $y return ) - (func $cast/test (param $x i64) (result i32) + (func $"cast/test" (param $x i64) (result i32) (local $y i32) local.get $x i32.wrap_i64 @@ -472,7 +472,7 @@ local.get $y return ) - (func $cast/test (param $x i64) (result i32) + (func $"cast/test" (param $x i64) (result i32) (local $y i32) local.get $x i32.wrap_i64 @@ -480,21 +480,21 @@ local.get $y return ) - (func $cast/test (param $x i64) (result i64) + (func $"cast/test" (param $x i64) (result i64) (local $y i64) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i64) (result i64) + (func $"cast/test" (param $x i64) (result i64) (local $y i64) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i64) (result i32) + (func $"cast/test" (param $x i64) (result i32) (local $y i32) local.get $x i64.const 0 @@ -503,7 +503,7 @@ local.get $y return ) - (func $cast/test (param $x i64) (result i32) + (func $"cast/test" (param $x i64) (result i32) (local $y i32) local.get $x i32.wrap_i64 @@ -511,7 +511,7 @@ local.get $y return ) - (func $cast/test (param $x i64) (result i32) + (func $"cast/test" (param $x i64) (result i32) (local $y i32) local.get $x i32.wrap_i64 @@ -519,7 +519,7 @@ local.get $y return ) - (func $cast/test (param $x i64) (result i32) + (func $"cast/test" (param $x i64) (result i32) (local $y i32) local.get $x i32.wrap_i64 @@ -527,7 +527,7 @@ local.get $y return ) - (func $cast/test (param $x i64) (result i32) + (func $"cast/test" (param $x i64) (result i32) (local $y i32) local.get $x i32.wrap_i64 @@ -535,7 +535,7 @@ local.get $y return ) - (func $cast/test (param $x i64) (result i32) + (func $"cast/test" (param $x i64) (result i32) (local $y i32) local.get $x i32.wrap_i64 @@ -543,7 +543,7 @@ local.get $y return ) - (func $cast/test (param $x i64) (result i32) + (func $"cast/test" (param $x i64) (result i32) (local $y i32) local.get $x i32.wrap_i64 @@ -551,21 +551,21 @@ local.get $y return ) - (func $cast/test (param $x i64) (result i64) + (func $"cast/test" (param $x i64) (result i64) (local $y i64) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i64) (result i64) + (func $"cast/test" (param $x i64) (result i64) (local $y i64) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i64) (result i32) + (func $"cast/test" (param $x i64) (result i32) (local $y i32) local.get $x i64.const 0 @@ -574,7 +574,7 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x i32.const 0 @@ -583,7 +583,7 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x i32.const 0 @@ -592,7 +592,7 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x i32.const 0 @@ -601,7 +601,7 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x i32.const 0 @@ -610,7 +610,7 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x i32.const 0 @@ -619,7 +619,7 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x i32.const 0 @@ -628,7 +628,7 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i64) + (func $"cast/test" (param $x i32) (result i64) (local $y i64) local.get $x i32.const 0 @@ -638,7 +638,7 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i64) + (func $"cast/test" (param $x i32) (result i64) (local $y i64) local.get $x i32.const 0 @@ -648,7 +648,7 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y @@ -657,247 +657,247 @@ ) (func $start:cast i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i64.const 0 - call $cast/test + call $"cast/test" drop i64.const 0 - call $cast/test + call $"cast/test" drop i64.const 0 - call $cast/test + call $"cast/test" drop i64.const 0 - call $cast/test + call $"cast/test" drop i64.const 0 - call $cast/test + call $"cast/test" drop i64.const 0 - call $cast/test + call $"cast/test" drop i64.const 0 - call $cast/test + call $"cast/test" drop i64.const 0 - call $cast/test + call $"cast/test" drop i64.const 0 - call $cast/test + call $"cast/test" drop i64.const 0 - call $cast/test + call $"cast/test" drop i64.const 0 - call $cast/test + call $"cast/test" drop i64.const 0 - call $cast/test + call $"cast/test" drop i64.const 0 - call $cast/test + call $"cast/test" drop i64.const 0 - call $cast/test + call $"cast/test" drop i64.const 0 - call $cast/test + call $"cast/test" drop i64.const 0 - call $cast/test + call $"cast/test" drop i64.const 0 - call $cast/test + call $"cast/test" drop i64.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop ) (func $~start diff --git a/tests/compiler/class-errors.json b/tests/compiler/class-errors.json new file mode 100644 index 0000000000..d852107478 --- /dev/null +++ b/tests/compiler/class-errors.json @@ -0,0 +1,9 @@ +{ + "asc_flags": [ + ], + "stderr": [ + "TS2304: Cannot find name 'T'.", + "TS2339: Property 'v' does not exist on type 'class-errors/A'.", + "EOF" + ] +} diff --git a/tests/compiler/class-errors.ts b/tests/compiler/class-errors.ts new file mode 100644 index 0000000000..ff71b03088 --- /dev/null +++ b/tests/compiler/class-errors.ts @@ -0,0 +1,7 @@ +class A { + v: T; +} + +new A().v; + +ERROR("EOF"); diff --git a/tests/compiler/class-extends.release.wat b/tests/compiler/class-extends.release.wat index 91954a1585..5ff350f382 100644 --- a/tests/compiler/class-extends.release.wat +++ b/tests/compiler/class-extends.release.wat @@ -7,7 +7,6 @@ (export "memory" (memory $0)) (export "test" (func $export:class-extends/test)) (func $export:class-extends/test (param $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -18,10 +17,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -30,34 +28,33 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load drop - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load16_s offset=4 drop - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.const 2 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.const 3 i32.store16 offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/class-implements.debug.wat b/tests/compiler/class-implements.debug.wat index e967a93f72..a7eac9aaaf 100644 --- a/tests/compiler/class-implements.debug.wat +++ b/tests/compiler/class-implements.debug.wat @@ -1628,14 +1628,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 @@ -2698,12 +2701,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/class-implements.release.wat b/tests/compiler/class-implements.release.wat index e253112e6b..54da044a10 100644 --- a/tests/compiler/class-implements.release.wat +++ b/tests/compiler/class-implements.release.wat @@ -1,10 +1,10 @@ (module (type $0 (func (param i32) (result i32))) - (type $1 (func)) - (type $2 (func (param i32 i32))) - (type $3 (func (param i32))) - (type $4 (func (result i32))) - (type $5 (func (param i32 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 (result i32))) (type $6 (func (param i32 i32 i32 i32))) (type $7 (func (param i32 i32 i64))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) @@ -42,104 +42,372 @@ (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/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - global.get $class-implements/a - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $class-implements/c - local.tee $0 + (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 - local.get $0 - call $~lib/rt/itcms/__visit + i32.const 1056 + i32.const 1120 + i32.const 261 + i32.const 31 + call $~lib/builtins/abort + unreachable end - global.get $class-implements/d - local.tee $0 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - local.get $0 - call $~lib/rt/itcms/__visit + 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 $class-implements/e - local.tee $0 + global.get $~lib/rt/tlsf/ROOT + i32.eqz if - local.get $0 - call $~lib/rt/itcms/__visit + call $~lib/rt/tlsf/initialize end - global.get $class-implements/f - local.tee $0 + 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 - local.get $0 - call $~lib/rt/itcms/__visit + i32.const 1056 + i32.const 1392 + i32.const 461 + i32.const 29 + call $~lib/builtins/abort + unreachable end - global.get $class-implements/g - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit + 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 - global.get $class-implements/h - local.tee $0 + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz if - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 1248 - 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 + 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 + memory.size + local.tee $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.set $3 + local.get $2 + local.get $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 - i32.const 3 - i32.and - i32.const 3 - i32.ne + local.get $3 + memory.grow + i32.const 0 + i32.lt_s 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 + 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 - ) - (func $~lib/rt/itcms/__visit (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.eqz + local.get $5 + local.get $2 + i32.load + i32.const -4 + i32.and + i32.gt_u if - return + i32.const 0 + i32.const 1392 + i32.const 501 + i32.const 14 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/white - local.get $0 + 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 $class-implements/I2#get:foo@override (param $0 i32) (result i32) + block $case5 + block $case4 + block $case3 + block $case2 + block $case1 + block $case0 + block $tablify|0 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 14 + i32.sub + br_table $case4 $tablify|0 $case0 $case1 $case5 $case2 $case3 $tablify|0 + end + unreachable + end + local.get $0 + i32.load + return + end + local.get $0 + i32.load + return + end + local.get $0 + call $class-implements/B3#get:foo + return + end + local.get $0 + call $class-implements/B3#get:foo + return + end + local.get $0 + i32.load + return + end + local.get $0 + call $class-implements/B2#get:foo + ) + (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 @@ -281,71 +549,195 @@ 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 + (func $class-implements/B3#get:foo (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 1592 + i32.lt_s if - i32.const 0 - i32.const 1392 - i32.const 268 - i32.const 14 + i32.const 34384 + i32.const 34432 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u + 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/object/Object#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 1592 + i32.lt_s if - i32.const 0 - i32.const 1392 - i32.const 270 - i32.const 14 + i32.const 34384 + i32.const 34432 + i32.const 1 + i32.const 1 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 + 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 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 + ) + (func $class-implements/I2#set:foo@override (param $0 i32) (param $1 i32) + block $folding-inner0 + block $case5 + block $case3 + block $case2 + block $tablify|0 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 14 + i32.sub + br_table $folding-inner0 $tablify|0 $folding-inner0 $folding-inner0 $case5 $case2 $case3 $tablify|0 + end + unreachable + end + local.get $0 + local.get $1 + call $class-implements/B3#set:foo + return + end + local.get $0 + local.get $1 + call $class-implements/B3#set:foo + 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 1592 + i32.lt_s + if + 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.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + local.get $0 + local.get $1 + i32.store + ) + (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 @@ -673,158 +1065,429 @@ 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 + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $class-implements/B4 + block $class-implements/B3 + block $class-implements/B2 + block $class-implements/A4 + block $class-implements/A3 + block $class-implements/I2 + block $class-implements/A2 + block $class-implements/K + block $class-implements/G + block $class-implements/F + block $class-implements/E + block $class-implements/J + block $class-implements/D + block $class-implements/B + block $class-implements/C + block $class-implements/I + block $class-implements/A + 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-implements/A $class-implements/I $class-implements/C $class-implements/B $class-implements/D $class-implements/J $class-implements/E $class-implements/F $class-implements/G $class-implements/K $class-implements/A2 $class-implements/I2 $class-implements/A3 $class-implements/A4 $class-implements/B2 $class-implements/B3 $class-implements/B4 $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 + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + unreachable + ) + (func $class-implements/F#constructor (result i32) + (local $0 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 1592 + i32.lt_s if - i32.const 0 - i32.const 1392 - i32.const 382 - i32.const 14 + i32.const 34384 + i32.const 34432 + i32.const 1 + i32.const 1 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 + 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 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=1568 - local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $class-implements/D#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $class-implements/D#constructor (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 1592 + i32.lt_s 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 + i32.const 34384 + i32.const 34432 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable 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 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz if - return + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/object/Object#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $class-implements/B2#constructor (param $0 i32) (result i32) + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store - local.get $1 - i32.const 0 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1592 + i32.lt_s + if + i32.const 34384 + i32.const 34432 + 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 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 18 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $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 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/object/Object#constructor + local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $3 - i32.store offset=1568 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer 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) + (func $class-implements/A2#constructor (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 1592 + i32.lt_s + if + i32.const 34384 + i32.const 34432 i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 + i32.const 1 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz if - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 14 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store end - i32.const 34368 - i32.const 0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/object/Object#constructor + local.tee $0 i32.store - i32.const 35936 - i32.const 0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 i32.store - loop $for-loop|0 - local.get $0 - i32.const 23 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $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 $0 - i32.const 2 - i32.shl - i32.const 34368 - i32.add - i32.const 0 - i32.store offset=4 + 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/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 34368 + i32.const 0 + i32.store + i32.const 35936 + 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 34368 + i32.add + i32.const 0 + i32.store offset=4 i32.const 0 local.set $1 loop $for-loop|1 @@ -867,1194 +1530,561 @@ i32.const 34368 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 + (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 - 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 34360 - 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 + i32.const 1392 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + 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/itcms/visitRoots + (local $0 i32) + (local $1 i32) + global.get $class-implements/a + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $class-implements/c + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $class-implements/d + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $class-implements/e + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $class-implements/f + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $class-implements/g + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $class-implements/h + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 1248 + 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 - 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.const 3 i32.ne if i32.const 0 i32.const 1120 - i32.const 229 - i32.const 20 + i32.const 160 + i32.const 16 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 34360 - 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 34360 - 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.set $1 - 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 $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.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.const 20 i32.add - i32.const 1 - i32.sub - local.set $1 + 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 - 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 + ) + (func $class-implements/B3#set:foo (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 1592 + i32.lt_s if - i32.const 0 - i32.const 1392 - i32.const 334 - i32.const 14 + 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.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store 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) + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $class-implements/B2#get:foo@override (param $0 i32) (result i32) + (local $1 i32) + block $default + block $case1 local.get $0 - local.get $1 - i32.ctz + i32.const 8 + i32.sub + i32.load local.tee $1 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $2 - i32.eqz + i32.const 19 + i32.ne if - i32.const 0 - i32.const 1392 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable + local.get $1 + i32.const 20 + i32.eq + br_if $case1 + br $default 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 + call $class-implements/B3#get:foo + return end + local.get $0 + call $class-implements/B3#get:foo + return 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 + call $class-implements/B2#get:foo + ) + (func $class-implements/B2#get:foo (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 1592 + i32.lt_s if - i32.const 1056 - i32.const 1120 - i32.const 261 - i32.const 31 + i32.const 34384 + i32.const 34432 + 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$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 - 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 $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 - 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 + global.get $~lib/memory/__stack_pointer + i32.const 4 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 + global.set $~lib/memory/__stack_pointer + ) + (func $~start + call $start:class-implements + ) + (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 - i32.sub - else - local.get $5 + 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 - 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 + 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 - 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 $class-implements/I2#get:foo@override (param $0 i32) (result i32) - block $default - block $case5 - block $case4 - block $case3 - block $case2 - block $case1 - block $case0 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 14 - i32.sub - br_table $case4 $default $case0 $case1 $case5 $case2 $case3 $default - end - local.get $0 - i32.load - return - end + 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 34360 + i32.lt_u + if local.get $0 i32.load - return + call $~lib/rt/itcms/__visit + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 end - local.get $0 - call $class-implements/B3#get:foo - return end - local.get $0 - call $class-implements/B3#get:foo - return - end - local.get $0 - i32.load - return - end - local.get $0 - call $class-implements/B2#get:foo - return - end - unreachable - ) - (func $class-implements/I2#set:foo@override (param $0 i32) (param $1 i32) - (local $2 i32) - block $folding-inner0 - block $default - block $case5 - block $case3 - block $case2 + 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.const 8 - i32.sub - i32.load - i32.const 14 - i32.sub - br_table $folding-inner0 $default $folding-inner0 $folding-inner0 $case5 $case2 $case3 $default + 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 - local.get $0 - local.get $1 - call $class-implements/B3#set:foo - return 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 - call $class-implements/B3#set:foo - return + 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/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1592 - i32.lt_s + 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 34384 - i32.const 34432 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1120 + i32.const 229 + i32.const 20 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store local.get $0 - local.get $1 - i32.store - local.get $2 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - unreachable - end - local.get $0 - local.get $1 - i32.store - ) - (func $class-implements/B2#get:foo@override (param $0 i32) (result i32) - (local $1 i32) - block $default - block $case1 - local.get $0 - i32.const 8 - i32.sub - i32.load - local.tee $1 - i32.const 19 - i32.ne + i32.const 34360 + i32.lt_u if - local.get $1 - i32.const 20 - i32.eq - br_if $case1 - br $default - end - local.get $0 - call $class-implements/B3#get:foo - return - end - local.get $0 - call $class-implements/B3#get:foo - return - end - local.get $0 - call $class-implements/B2#get:foo - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $class-implements/B4 - block $class-implements/B3 - block $class-implements/B2 - block $class-implements/A4 - block $class-implements/A3 - block $class-implements/I2 - block $class-implements/A2 - block $class-implements/K - block $class-implements/G - block $class-implements/F - block $class-implements/E - block $class-implements/J - block $class-implements/D - block $class-implements/B - block $class-implements/C - block $class-implements/I - block $class-implements/A - 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-implements/A $class-implements/I $class-implements/C $class-implements/B $class-implements/D $class-implements/J $class-implements/E $class-implements/F $class-implements/G $class-implements/K $class-implements/A2 $class-implements/I2 $class-implements/A3 $class-implements/A4 $class-implements/B2 $class-implements/B3 $class-implements/B4 $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end - return + 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 34360 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize end - return + 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 - return end + i32.const 10 return end - return - end - unreachable - ) - (func $~start - call $start:class-implements - ) - (func $class-implements/D#constructor (param $0 i32) (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 1592 - i32.lt_s - if - i32.const 34384 - i32.const 34432 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $0 - i32.eqz - if - local.get $1 - i32.const 0 - i32.const 8 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/object/Object#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $class-implements/F#constructor (result i32) - (local $0 i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1592 - i32.lt_s - if - i32.const 34384 - i32.const 34432 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - local.get $0 - call $class-implements/D#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $class-implements/A2#constructor (param $0 i32) (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 1592 - i32.lt_s - if - i32.const 34384 - i32.const 34432 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $0 - i32.eqz - if - local.get $1 - i32.const 4 - i32.const 14 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/object/Object#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 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $class-implements/B2#constructor (param $0 i32) (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 1592 - i32.lt_s - if - i32.const 34384 - i32.const 34432 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $0 - i32.eqz - if - local.get $1 - i32.const 4 - i32.const 18 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/object/Object#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $class-implements/B2#get:foo (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1592 - i32.lt_s - if - i32.const 34384 - i32.const 34432 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - local.get $0 - i32.store - local.get $0 - i32.load - local.set $0 - local.get $1 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $class-implements/B3#get:foo (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1592 - i32.lt_s - if - i32.const 34384 - i32.const 34432 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + 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 - global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 - i32.store - local.get $1 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $0 - local.get $1 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $start:class-implements (local $0 i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 28 i32.sub @@ -2065,7 +2095,6 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.const 28 memory.fill @@ -2101,7 +2130,7 @@ i32.store i32.const 1344 global.set $~lib/rt/itcms/fromSpace - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2110,20 +2139,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -2146,20 +2173,19 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 6 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2168,13 +2194,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store local.get $0 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 7 call $~lib/rt/itcms/__new @@ -2182,10 +2207,9 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -2194,7 +2218,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -2209,22 +2232,19 @@ i32.const 0 call $class-implements/D#constructor global.set $class-implements/d - 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 - i32.store - i32.const 4 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 11 - i32.eq - br_if $__inlined_func$class-implements/D#foo@override$163 - drop - i32.const 3 - end + global.get $~lib/memory/__stack_pointer + global.get $class-implements/d + local.tee $0 + i32.store + i32.const 4 + i32.const 3 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 11 + i32.eq + select i32.const 3 i32.ne if @@ -2244,20 +2264,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 10 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $class-implements/D#constructor local.tee $0 @@ -2268,22 +2286,19 @@ global.set $~lib/memory/__stack_pointer local.get $0 global.set $class-implements/e - 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 - i32.store - i32.const 4 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 11 - i32.eq - br_if $__inlined_func$class-implements/D#foo@override$165 - drop - i32.const 3 - end + global.get $~lib/memory/__stack_pointer + global.get $class-implements/e + local.tee $0 + i32.store + i32.const 4 + i32.const 3 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 11 + i32.eq + select i32.const 3 i32.ne if @@ -2301,22 +2316,19 @@ i32.store call $class-implements/F#constructor global.set $class-implements/g - 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 - i32.store - i32.const 4 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 11 - i32.eq - br_if $__inlined_func$class-implements/D#foo@override$166 - drop - i32.const 3 - end + global.get $~lib/memory/__stack_pointer + global.get $class-implements/g + local.tee $0 + i32.store + i32.const 4 + i32.const 3 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 11 + i32.eq + select i32.const 4 i32.ne if @@ -2333,39 +2345,33 @@ global.get $class-implements/h local.tee $0 i32.store - block $__inlined_func$class-implements/I#foo@override$167 - block $default2 - block $case3 - block $case2 - block $case1 - block $case03 + block $__inlined_func$class-implements/I#foo@override$167 (result i32) + block $case3 + block $case2 + block $case1 + block $case013 + block $tablify|0 local.get $0 i32.const 8 i32.sub i32.load i32.const 4 i32.sub - br_table $case1 $default2 $case2 $default2 $case3 $default2 $case3 $case03 $default2 + br_table $case1 $tablify|0 $case2 $tablify|0 $case3 $tablify|0 $case3 $case013 $tablify|0 end - i32.const 4 - local.set $0 - br $__inlined_func$class-implements/I#foo@override$167 + unreachable end - i32.const 1 - local.set $0 + i32.const 4 br $__inlined_func$class-implements/I#foo@override$167 end - i32.const 2 - local.set $0 + i32.const 1 br $__inlined_func$class-implements/I#foo@override$167 end - i32.const 3 - local.set $0 + i32.const 2 br $__inlined_func$class-implements/I#foo@override$167 end - unreachable + i32.const 3 end - local.get $0 i32.const 4 i32.ne if @@ -2385,20 +2391,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 12 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -2410,37 +2414,32 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - block $__inlined_func$class-implements/J#foo@override$169 - block $default3 - block $case34 - block $case25 - block $case16 - block $case07 + block $__inlined_func$class-implements/J#foo@override$169 (result i32) + block $case315 + block $case216 + block $case117 + block $case018 + block $tablify|00 local.get $0 i32.const 8 i32.sub i32.load i32.const 8 i32.sub - br_table $case25 $default3 $case25 $case16 $case34 $case07 $default3 + br_table $case216 $tablify|00 $case216 $case117 $case315 $case018 $tablify|00 end unreachable end - i32.const 4 - local.set $0 - br $__inlined_func$class-implements/J#foo@override$169 + unreachable end - i32.const 3 - local.set $0 + i32.const 4 br $__inlined_func$class-implements/J#foo@override$169 end - i32.const 1 - local.set $0 + i32.const 3 br $__inlined_func$class-implements/J#foo@override$169 end - unreachable + i32.const 1 end - local.get $0 i32.const 1 i32.ne if @@ -2523,7 +2522,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2532,20 +2531,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 16 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 call $class-implements/A2#constructor local.tee $1 @@ -2560,7 +2557,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -2630,7 +2626,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2639,20 +2635,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 17 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 call $class-implements/A2#constructor local.tee $1 @@ -2667,7 +2661,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -2808,7 +2801,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2817,20 +2810,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.const 19 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 call $class-implements/B2#constructor local.tee $1 @@ -2845,7 +2836,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=20 global.get $~lib/memory/__stack_pointer @@ -2915,7 +2905,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2924,20 +2914,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.const 20 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 call $class-implements/B2#constructor local.tee $1 @@ -2952,7 +2940,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=24 global.get $~lib/memory/__stack_pointer @@ -3034,73 +3021,4 @@ call $~lib/builtins/abort unreachable ) - (func $class-implements/B3#set:foo (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 1592 - i32.lt_s - if - i32.const 34384 - i32.const 34432 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $0 - local.get $1 - i32.store offset=4 - local.get $2 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/object/Object#constructor (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1592 - i32.lt_s - if - i32.const 34384 - i32.const 34432 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - local.get $1 - 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 - ) ) diff --git a/tests/compiler/class-overloading-cast.debug.wat b/tests/compiler/class-overloading-cast.debug.wat index e73494ed95..c108e6d09e 100644 --- a/tests/compiler/class-overloading-cast.debug.wat +++ b/tests/compiler/class-overloading-cast.debug.wat @@ -1634,14 +1634,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 @@ -2376,7 +2379,7 @@ i32.const 0 return ) - (func $class-overloading-cast/B#foo (param $this i32) (param $a i32) (result i32) + (func $"class-overloading-cast/B#foo" (param $this i32) (param $a i32) (result i32) i32.const 464 return ) @@ -2392,11 +2395,11 @@ i32.const 608 return ) - (func $class-overloading-cast/B#foo (param $this i32) (param $a i32) (result i32) + (func $"class-overloading-cast/B#foo" (param $this i32) (param $a i32) (result i32) i32.const 464 return ) - (func $class-overloading-cast/B#foo (param $this i32) (param $a f64) (result i32) + (func $"class-overloading-cast/B#foo" (param $this i32) (param $a f64) (result i32) i32.const 464 return ) @@ -2422,12 +2425,12 @@ end local.get $0 local.get $1 - call $class-overloading-cast/B#foo + call $"class-overloading-cast/B#foo" return end local.get $0 local.get $1 - call $class-overloading-cast/B#foo + call $"class-overloading-cast/B#foo" return end local.get $0 @@ -2451,7 +2454,7 @@ end local.get $0 local.get $1 - call $class-overloading-cast/B#foo + call $"class-overloading-cast/B#foo" return end local.get $0 @@ -2513,27 +2516,23 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + 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-overloading-cast/A - block $class-overloading-cast/B + block $"class-overloading-cast/B" block $class-overloading-cast/D block $class-overloading-cast/A<~lib/string/String> block $class-overloading-cast/C block $class-overloading-cast/A - block $class-overloading-cast/B - block $class-overloading-cast/B + block $"class-overloading-cast/B" + block $"class-overloading-cast/B" block $class-overloading-cast/A - block $class-overloading-cast/B + block $"class-overloading-cast/B" block $~lib/arraybuffer/ArrayBufferView block $~lib/string/String block $~lib/arraybuffer/ArrayBuffer @@ -2542,7 +2541,7 @@ i32.const 8 i32.sub i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $class-overloading-cast/B $class-overloading-cast/A $class-overloading-cast/B $class-overloading-cast/B $class-overloading-cast/A $class-overloading-cast/C $class-overloading-cast/A<~lib/string/String> $class-overloading-cast/D $class-overloading-cast/B $class-overloading-cast/A $invalid + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $"class-overloading-cast/B" $class-overloading-cast/A $"class-overloading-cast/B" $"class-overloading-cast/B" $class-overloading-cast/A $class-overloading-cast/C $class-overloading-cast/A<~lib/string/String> $class-overloading-cast/D $"class-overloading-cast/B" $class-overloading-cast/A $invalid end return end @@ -2637,7 +2636,7 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $class-overloading-cast/B#constructor (param $this i32) (result i32) + (func $"class-overloading-cast/B#constructor" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -2675,7 +2674,7 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $class-overloading-cast/B#constructor (param $this i32) (result i32) + (func $"class-overloading-cast/B#constructor" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -2751,7 +2750,7 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $class-overloading-cast/B#constructor (param $this i32) (result i32) + (func $"class-overloading-cast/B#constructor" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -2999,7 +2998,7 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $class-overloading-cast/B#constructor (param $this i32) (result i32) + (func $"class-overloading-cast/B#constructor" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -3064,7 +3063,7 @@ local.get $1 i32.store offset=4 local.get $1 - call $class-overloading-cast/B#constructor + call $"class-overloading-cast/B#constructor" local.tee $this i32.store local.get $this @@ -3078,16 +3077,13 @@ (func $start:class-overloading-cast (local $0 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 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 memory.size i32.const 16 i32.shl @@ -3106,19 +3102,19 @@ call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace i32.const 0 - call $class-overloading-cast/B#constructor + call $"class-overloading-cast/B#constructor" global.set $class-overloading-cast/v i32.const 0 - call $class-overloading-cast/B#constructor + call $"class-overloading-cast/B#constructor" global.set $class-overloading-cast/v2 i32.const 0 - call $class-overloading-cast/B#constructor + call $"class-overloading-cast/B#constructor" global.set $class-overloading-cast/v3 global.get $class-overloading-cast/v local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 1 call $class-overloading-cast/A#foo@override @@ -3128,11 +3124,6 @@ i32.store local.get $0 i32.const 464 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3147,21 +3138,16 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 1 - call $class-overloading-cast/B#foo + call $"class-overloading-cast/B#foo" local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.const 464 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3176,7 +3162,7 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 f64.const 1.1 call $class-overloading-cast/A#foo@override @@ -3186,11 +3172,6 @@ i32.store local.get $0 i32.const 464 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3208,14 +3189,9 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 576 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 call $class-overloading-cast/A<~lib/string/String>#foo@override local.set $0 global.get $~lib/memory/__stack_pointer @@ -3223,11 +3199,6 @@ i32.store local.get $0 i32.const 432 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3242,14 +3213,9 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 576 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 call $class-overloading-cast/A<~lib/string/String>#foo@override local.set $0 global.get $~lib/memory/__stack_pointer @@ -3257,11 +3223,6 @@ i32.store local.get $0 i32.const 432 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3277,7 +3238,7 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 f32.const 2.5 call $class-overloading-cast/D#bar @@ -3287,11 +3248,6 @@ i32.store local.get $0 i32.const 608 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3303,7 +3259,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/class-overloading-cast.release.wat b/tests/compiler/class-overloading-cast.release.wat index 1ac11532a6..a06c23f70d 100644 --- a/tests/compiler/class-overloading-cast.release.wat +++ b/tests/compiler/class-overloading-cast.release.wat @@ -1,12 +1,12 @@ (module - (type $0 (func)) - (type $1 (func (param i32) (result i32))) + (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 i32 i32))) - (type $5 (func (param i32 i32 i64))) - (type $6 (func (result i32))) - (type $7 (func (param i32 i32) (result i32))) + (type $5 (func (param i32 i32) (result i32))) + (type $6 (func (param i32 i32 i64))) + (type $7 (func (result i32))) (import "env" "abort" (func $~lib/builtins/abort (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)) @@ -48,429 +48,173 @@ (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/rt/itcms/visitRoots - (local $0 i32) + (func $~lib/rt/itcms/__new (param $0 i32) (result i32) (local $1 i32) - global.get $class-overloading-cast/v - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $class-overloading-cast/v2 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $class-overloading-cast/v3 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $class-overloading-cast/c - local.tee $0 + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 1248 - 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 + 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.const 1120 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.gt_s + br_if $do-loop|0 end - local.get $0 - i32.const 20 + 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 - call $~lib/rt/__visit_members - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 + global.set $~lib/rt/itcms/threshold end end - ) - (func $~lib/rt/itcms/__visit (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 + global.get $~lib/rt/tlsf/ROOT i32.eqz if - return + call $~lib/rt/tlsf/initialize end - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 - i32.sub + global.get $~lib/rt/tlsf/ROOT + local.tee $2 + call $~lib/rt/tlsf/searchBlock local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq + i32.eqz if + i32.const 4 + local.get $2 + i32.load offset=1568 + memory.size + local.tee $1 + 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.set $3 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 1120 - 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$141 - 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 34476 - 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$141 - end - local.get $1 - 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 $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 $3 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 1648 - i32.load - i32.gt_u + 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 - i32.const 1248 - i32.const 1312 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort unreachable end - local.get $0 - i32.const 2 - i32.shl - i32.const 1652 - 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 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory 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 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end 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.const 28 i32.lt_u - i32.and - i32.eqz if i32.const 0 i32.const 1392 - i32.const 284 + i32.const 501 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 + call $~lib/rt/tlsf/removeBlock 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 + i32.const 28 + i32.sub local.tee $4 - i32.load - local.tee $2 - i32.const 1 - i32.and + i32.const 16 + i32.ge_u 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.const 2 i32.and + i32.const 28 + i32.or + i32.store + local.get $1 + i32.const 32 i32.add local.tee $3 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $2 + local.get $3 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const -2 + i32.and i32.store local.get $1 i32.const 4 @@ -480,872 +224,610 @@ 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 + local.tee $2 + local.get $2 i32.load - local.tee $6 - i32.const 1 + i32.const -3 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 + local.get $1 + 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 $0 + i32.load offset=8 + local.set $2 + local.get $1 + local.get $0 + global.get $~lib/rt/itcms/white 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 + i32.store offset=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 + i32.store offset=8 + local.get $2 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.load offset=4 + i32.const 3 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.or i32.store offset=4 + local.get $0 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 + global.get $~lib/rt/itcms/total + local.get $1 + i32.load + i32.const -4 + i32.and i32.const 4 - i32.shl - local.get $2 i32.add - i32.const 2 - i32.shl i32.add + global.set $~lib/rt/itcms/total 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.const 20 i32.add local.tee $0 + i32.const 0 + i32.const 0 + memory.fill 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) + (func $~lib/rt/itcms/__visit (param $0 i32) + (local $1 i32) + (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u + local.get $0 + i32.eqz if - i32.const 0 - i32.const 1392 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable + return end - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - local.set $1 + global.get $~lib/rt/itcms/white local.get $0 - i32.load offset=1568 - local.tee $3 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq 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 + global.get $~lib/rt/itcms/iter i32.eq if - local.get $3 - i32.load - local.set $4 - local.get $5 - local.set $1 + local.get $1 + i32.load offset=8 + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $0 + global.set $~lib/rt/itcms/iter 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 34480 - i32.const 0 - i32.store - i32.const 36048 - 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 34480 - i32.add - i32.const 0 - i32.store offset=4 - i32.const 0 - local.set $1 - loop $for-loop|1 + block $__inlined_func$~lib/rt/itcms/Object#unlink$141 + local.get $1 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $0 + i32.eqz + if local.get $1 - i32.const 16 + i32.load offset=8 + i32.eqz + local.get $1 + i32.const 34476 i32.lt_u + i32.and + i32.eqz if - local.get $0 - i32.const 4 - i32.shl - local.get $1 - i32.add - i32.const 2 - i32.shl - i32.const 34480 - i32.add i32.const 0 - i32.store offset=96 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|1 + i32.const 1120 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable end + br $__inlined_func$~lib/rt/itcms/Object#unlink$141 + end + local.get $1 + 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 $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 1648 + i32.load + i32.gt_u + if + i32.const 1248 + i32.const 1312 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 2 + i32.shl + i32.const 1652 i32.add - local.set $0 - br $for-loop|0 + 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 - i32.const 34480 - i32.const 36052 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34480 - global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/rt/itcms/step (result i32) - (local $0 i32) - (local $1 i32) + (func $~lib/string/String.__eq (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) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1708 + i32.lt_s + if + i32.const 34496 + i32.const 34544 + 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 + if (result i32) + local.get $2 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + else + i32.const 1 + end + i32.eqz + if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq if - local.get $0 - global.set $~lib/rt/itcms/iter + local.get $2 + i32.const 8 + i32.add + local.set $2 local.get $1 + i32.const 8 + i32.add + local.set $1 local.get $0 - i32.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 + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-loop|0 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 34476 - 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 + end + block $__inlined_func$~lib/util/string/compareImpl$87 + loop $while-continue|1 + local.get $0 + local.tee $3 + i32.const 1 + i32.sub local.set $0 - loop $while-continue|2 - local.get $0 - global.get $~lib/rt/itcms/toSpace + local.get $3 + if + local.get $2 + i32.load16_u + local.tee $5 + local.get $1 + i32.load16_u + local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 i32.ne - 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 + br_if $__inlined_func$~lib/util/string/compareImpl$87 + local.get $2 + i32.const 2 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 end - 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 + i32.const 0 + local.set $3 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 34476 - 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 34476 - 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.set $1 - 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 $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.eqz + return end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) + (func $~lib/object/Object#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 1708 + i32.lt_s + if + 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.store 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 $2 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $1 - 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 $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 - i32.const 0 - end + i32.eqz + if + global.get $~lib/memory/__stack_pointer + 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 ) - (func $~lib/rt/itcms/__new (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 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 $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 - local.tee $1 - local.get $1 - 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 + (local $5 i32) + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and i32.eqz if - call $~lib/rt/tlsf/initialize + i32.const 0 + i32.const 1392 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/tlsf/ROOT - local.tee $2 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - memory.size - local.tee $1 - i32.const 4 - local.get $2 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl + 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.sub - i32.ne - i32.shl - i32.const 65563 - i32.add - i32.const -65536 - i32.and - i32.const 16 i32.shr_u - local.tee $3 - local.get $1 + else + i32.const 31 + i32.const 1073741820 local.get $3 - i32.gt_s + local.get $3 + i32.const 1073741820 + i32.ge_u select - memory.grow + 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.lt_s + 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 - memory.grow - i32.const 0 - i32.lt_s + i32.rotl + i32.and + local.set $3 + local.get $1 + local.get $3 + i32.store offset=4 + local.get $3 + i32.eqz if - unreachable + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $2 + i32.rotl + i32.and + i32.store end end - local.get $2 - 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 $2 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - 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 - i32.const -4 + local.tee $3 + i32.const 1 i32.and - i32.const 28 - i32.lt_u + i32.eqz if i32.const 0 i32.const 1392 - i32.const 501 + i32.const 203 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $2 local.get $1 - call $~lib/rt/tlsf/removeBlock + i32.const 4 + i32.add local.get $1 i32.load - local.tee $3 i32.const -4 i32.and - i32.const 28 - i32.sub + i32.add local.tee $4 - i32.const 16 - i32.ge_u + 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 2 - i32.and - i32.const 28 - i32.or - i32.store - local.get $1 - i32.const 32 - i32.add - local.tee $3 - local.get $4 i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store + i32.add local.get $2 - local.get $3 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $3 - i32.const -2 + i32.const -4 i32.and + i32.add + local.tee $3 i32.store local.get $1 i32.const 4 @@ -1355,72 +837,199 @@ i32.const -4 i32.and i32.add - local.tee $2 - local.get $2 + local.tee $4 i32.load - i32.const -3 - i32.and - i32.store + local.set $2 end - local.get $1 - 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 $0 - i32.load offset=8 - 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 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 + 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 offset=4 - local.get $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 1392 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/total + 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.load - i32.const -4 + 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 - global.set $~lib/rt/itcms/total local.get $1 - i32.const 20 + 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 - i32.const 0 - i32.const 0 - memory.fill local.get $0 + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 ) (func $~lib/rt/__visit_members (param $0 i32) block $invalid block $class-overloading-cast/A - block $class-overloading-cast/B + block $"class-overloading-cast/B" block $class-overloading-cast/D block $class-overloading-cast/A<~lib/string/String> block $class-overloading-cast/C block $class-overloading-cast/A - block $class-overloading-cast/B - block $class-overloading-cast/B + block $"class-overloading-cast/B" + block $"class-overloading-cast/B" block $class-overloading-cast/A - block $class-overloading-cast/B + block $"class-overloading-cast/B" block $~lib/arraybuffer/ArrayBufferView block $~lib/string/String block $~lib/arraybuffer/ArrayBuffer @@ -1429,7 +1038,7 @@ i32.const 8 i32.sub i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $class-overloading-cast/B $class-overloading-cast/A $class-overloading-cast/B $class-overloading-cast/B $class-overloading-cast/A $class-overloading-cast/C $class-overloading-cast/A<~lib/string/String> $class-overloading-cast/D $class-overloading-cast/B $class-overloading-cast/A $invalid + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $"class-overloading-cast/B" $class-overloading-cast/A $"class-overloading-cast/B" $"class-overloading-cast/B" $class-overloading-cast/A $class-overloading-cast/C $class-overloading-cast/A<~lib/string/String> $class-overloading-cast/D $"class-overloading-cast/B" $class-overloading-cast/A $invalid end return end @@ -1439,11 +1048,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end return @@ -1456,244 +1061,655 @@ end return end - return + return + end + return + end + return + end + return + end + return + end + unreachable + ) + (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 $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $1 + 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 $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 + i32.const 0 + end + end + ) + (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 34480 + i32.const 0 + i32.store + i32.const 36048 + 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 34480 + 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 34480 + 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 34480 + i32.const 36052 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34480 + global.set $~lib/rt/tlsf/ROOT + ) + (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/itcms/visitRoots + (local $0 i32) + (local $1 i32) + global.get $class-overloading-cast/v + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $class-overloading-cast/v2 + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $class-overloading-cast/v3 + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $class-overloading-cast/c + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 1248 + 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 $class-overloading-cast/A#constructor (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 1708 + i32.lt_s + if + i32.const 34496 + i32.const 34544 + 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 + i32.eqz + if + 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 + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/object/Object#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~start + global.get $~started + if + return + end + i32.const 1 + global.set $~started + call $start:class-overloading-cast + ) + (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 34476 + 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 - return end - return + 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 - return - end - unreachable - ) - (func $~start - global.get $~started - if - return - end - i32.const 1 - global.set $~started - call $start:class-overloading-cast - ) - (func $class-overloading-cast/A#constructor (param $0 i32) (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 1708 - i32.lt_s - if - i32.const 34496 - i32.const 34544 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $0 - i32.eqz - if - local.get $1 - i32.const 5 - call $~lib/rt/itcms/__new + global.get $~lib/rt/itcms/iter local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/object/Object#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (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 1708 - i32.lt_s - if - i32.const 34496 - i32.const 34544 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $0 - local.get $1 - i32.eq - if - local.get $2 - 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.tee $4 - local.tee $2 - 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 - local.get $2 - 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 + global.get $~lib/rt/itcms/toSpace i32.ne - br_if $folding-inner0 - local.get $4 - local.get $0 - i32.store - local.get $0 - local.set $2 - local.get $4 - 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 + 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 7 + i32.const 3 i32.and - i32.or - else - i32.const 1 - end - i32.eqz - if - loop $do-loop|0 - local.get $2 - i64.load - local.get $1 - i64.load - i64.eq + 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 34476 + 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 34476 + 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 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end - end - end - block $__inlined_func$~lib/util/string/compareImpl$87 - loop $while-continue|1 - local.get $0 - local.tee $3 - i32.const 1 - i32.sub - local.set $0 - local.get $3 - if local.get $2 - i32.load16_u - local.tee $5 - local.get $1 - i32.load16_u - local.tee $4 - i32.sub - local.set $3 - local.get $4 - local.get $5 - i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$87 + i32.load + i32.const 1 + i32.or + i32.store local.get $2 - i32.const 2 - i32.add - local.set $2 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 + call $~lib/rt/tlsf/insertBlock end end - i32.const 0 - local.set $3 + i32.const 10 + return end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - i32.eqz - return + 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 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer i32.const 0 ) (func $start:class-overloading-cast (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -1702,12 +1718,8 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 - i64.const 0 - i64.store offset=8 memory.size i32.const 16 i32.shl @@ -1740,7 +1752,7 @@ i32.store i32.const 1344 global.set $~lib/rt/itcms/fromSpace - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -1749,19 +1761,17 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $class-overloading-cast/A#constructor local.tee $0 @@ -1781,19 +1791,17 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 6 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $class-overloading-cast/A#constructor local.tee $0 @@ -1813,19 +1821,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 7 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -1834,23 +1841,21 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store local.get $0 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 call $~lib/rt/itcms/__new local.tee $0 i32.store end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -1859,7 +1864,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1869,11 +1873,11 @@ local.get $0 global.set $class-overloading-cast/v3 global.get $~lib/memory/__stack_pointer + global.get $class-overloading-cast/v + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer 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 - i32.store offset=8 block $default block $case1 local.get $0 @@ -1900,9 +1904,6 @@ end local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1488 - i32.store offset=4 local.get $0 i32.const 1488 call $~lib/string/String.__eq @@ -1916,15 +1917,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $class-overloading-cast/v2 - i32.store offset=8 - local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 1488 i32.store - local.get $0 - i32.const 1488 - i32.store offset=4 i32.const 1488 i32.const 1488 call $~lib/string/String.__eq @@ -1937,31 +1934,23 @@ call $~lib/builtins/abort unreachable end - block $__inlined_func$class-overloading-cast/A#foo@override$137 (result i32) - global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $class-overloading-cast/v3 - local.tee $1 - i32.store offset=8 - i32.const 1488 - local.get $1 - i32.const 8 - i32.sub - i32.load - i32.const 7 - i32.eq - br_if $__inlined_func$class-overloading-cast/A#foo@override$137 - drop - i32.const 1456 - end - local.set $1 - local.get $0 - local.get $1 - i32.store global.get $~lib/memory/__stack_pointer - i32.const 1488 + global.get $class-overloading-cast/v3 + local.tee $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer + i32.const 1488 + i32.const 1456 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 7 + i32.eq + select + local.tee $0 + i32.store + local.get $0 i32.const 1488 call $~lib/string/String.__eq i32.eqz @@ -1982,19 +1971,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 9 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2003,23 +1991,21 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store local.get $0 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/rt/itcms/__new local.tee $0 i32.store end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -2028,7 +2014,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -2040,10 +2025,7 @@ global.get $~lib/memory/__stack_pointer global.get $class-overloading-cast/c local.tee $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1600 - i32.store offset=12 + i32.store offset=4 local.get $0 i32.const 8 i32.sub @@ -2052,9 +2034,6 @@ global.get $~lib/memory/__stack_pointer i32.const 1456 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1456 - i32.store offset=4 i32.const 1456 i32.const 1456 call $~lib/string/String.__eq @@ -2068,24 +2047,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $class-overloading-cast/c - local.tee $1 - i32.store offset=8 + local.tee $0 + i32.store offset=4 local.get $0 - i32.const 1600 - i32.store offset=12 - local.get $1 i32.const 8 i32.sub i32.load drop - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1456 i32.store - local.get $0 - i32.const 1456 - i32.store offset=4 i32.const 1456 i32.const 1456 call $~lib/string/String.__eq @@ -2107,19 +2079,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2128,23 +2099,22 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store local.get $0 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 12 call $~lib/rt/itcms/__new local.tee $0 i32.store end global.get $~lib/memory/__stack_pointer - local.tee $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2153,23 +2123,21 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store local.get $0 i32.eqz if - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 13 call $~lib/rt/itcms/__new local.tee $0 i32.store end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -2178,14 +2146,12 @@ i32.const 8 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 - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -2194,13 +2160,10 @@ global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 1632 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1632 - i32.store offset=4 i32.const 1632 i32.const 1632 call $~lib/string/String.__eq @@ -2214,7 +2177,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer return @@ -2226,40 +2189,4 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/object/Object#constructor (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1708 - i32.lt_s - if - i32.const 34496 - i32.const 34544 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - local.get $1 - 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 - ) ) diff --git a/tests/compiler/class-overloading.debug.wat b/tests/compiler/class-overloading.debug.wat index 4f55946065..7cdea8bbb4 100644 --- a/tests/compiler/class-overloading.debug.wat +++ b/tests/compiler/class-overloading.debug.wat @@ -1638,14 +1638,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 @@ -2811,12 +2814,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -3122,13 +3121,13 @@ (func $class-overloading/C#a (param $this i32) (param $a i32) (local $2 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 $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -3144,11 +3143,6 @@ i32.store local.get $2 i32.const 496 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 call $~lib/string/String.__eq i32.eqz if @@ -3162,7 +3156,7 @@ i32.const 592 global.set $class-overloading/which global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) @@ -3435,13 +3429,13 @@ (func $start:class-overloading (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 + i32.const 0 + i32.store memory.size i32.const 16 i32.shl @@ -3477,11 +3471,6 @@ i32.store local.get $0 i32.const 496 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3509,11 +3498,6 @@ i32.store local.get $0 i32.const 496 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3541,11 +3525,6 @@ i32.store local.get $0 i32.const 496 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3573,11 +3552,6 @@ i32.store local.get $0 i32.const 496 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3608,11 +3582,6 @@ i32.store local.get $0 i32.const 592 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3640,11 +3609,6 @@ i32.store local.get $0 i32.const 592 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3672,11 +3636,6 @@ i32.store local.get $0 i32.const 592 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3702,11 +3661,6 @@ i32.store local.get $0 i32.const 592 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3737,11 +3691,6 @@ i32.store local.get $0 i32.const 496 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3769,11 +3718,6 @@ i32.store local.get $0 i32.const 496 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3801,11 +3745,6 @@ i32.store local.get $0 i32.const 496 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3831,11 +3770,6 @@ i32.store local.get $0 i32.const 496 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3866,11 +3800,6 @@ i32.store local.get $0 i32.const 496 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3898,11 +3827,6 @@ i32.store local.get $0 i32.const 496 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3930,11 +3854,6 @@ i32.store local.get $0 i32.const 496 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3960,11 +3879,6 @@ i32.store local.get $0 i32.const 496 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3995,11 +3909,6 @@ i32.store local.get $0 i32.const 624 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4027,11 +3936,6 @@ i32.store local.get $0 i32.const 624 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4059,11 +3963,6 @@ i32.store local.get $0 i32.const 624 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4091,11 +3990,6 @@ i32.store local.get $0 i32.const 624 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4125,11 +4019,6 @@ i32.store local.get $0 i32.const 656 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4159,11 +4048,6 @@ i32.store local.get $0 i32.const 688 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4196,7 +4080,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/class-overloading.release.wat b/tests/compiler/class-overloading.release.wat index bd6ade0aaf..5552f940ac 100644 --- a/tests/compiler/class-overloading.release.wat +++ b/tests/compiler/class-overloading.release.wat @@ -1,12 +1,12 @@ (module (type $0 (func (param i32) (result i32))) - (type $1 (func)) - (type $2 (func (param i32))) + (type $1 (func (param i32))) + (type $2 (func)) (type $3 (func (param i32 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) (result i32))) + (type $5 (func (param i32 i32) (result i32))) + (type $6 (func (param i32 i32 i64))) + (type $7 (func (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $class-overloading/which (mut i32) (i32.const 1056)) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) @@ -58,441 +58,335 @@ (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/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - global.get $class-overloading/which - local.tee $0 + (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 1868 + i32.lt_s if - local.get $0 - call $~lib/rt/itcms/__visit + i32.const 34656 + i32.const 34704 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - global.get $class-overloading/a - local.tee $0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + local.get $1 + i32.eq if - local.get $0 - call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return end - global.get $class-overloading/c - local.tee $0 - if + block $folding-inner0 + local.get $1 + i32.eqz local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $class-overloading/ia - local.tee $0 - if + i32.eqz + i32.or + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $class-overloading/ic - local.tee $0 - if + i32.store local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $class-overloading/b2 - local.tee $0 - if + 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 - call $~lib/rt/itcms/__visit - end - i32.const 1280 - call $~lib/rt/itcms/__visit - i32.const 1088 - 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 + i32.store local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.ne - if - local.get $0 - i32.load offset=4 - i32.const 3 + 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 i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1152 - 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 + local.get $1 + i32.const 7 i32.and - local.set $0 - br $while-continue|0 + i32.or + else + i32.const 1 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 + i32.eqz if - local.get $1 - i32.load offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1152 - 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$171 - 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 + loop $do-loop|0 + local.get $2 + i64.load local.get $1 - i32.const 34636 - i32.lt_u - i32.and - i32.eqz + i64.load + i64.eq if - i32.const 0 - i32.const 1152 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $0 + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-loop|0 end - br $__inlined_func$~lib/rt/itcms/Object#unlink$171 - end - local.get $1 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1152 - 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 1792 - i32.load - i32.gt_u - if - i32.const 1280 - i32.const 1344 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable + block $__inlined_func$~lib/util/string/compareImpl$95 + loop $while-continue|1 + local.get $0 + local.tee $3 + i32.const 1 + i32.sub + local.set $0 + local.get $3 + if + local.get $2 + i32.load16_u + local.tee $5 + local.get $1 + i32.load16_u + local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 + i32.ne + br_if $__inlined_func$~lib/util/string/compareImpl$95 + local.get $2 + i32.const 2 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end end - local.get $0 - i32.const 2 + i32.const 0 + local.set $3 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.eqz + return + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (func $~lib/rt/itcms/__new (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 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 $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.const 1796 i32.add - i32.load - i32.const 32 - i32.and + global.set $~lib/rt/itcms/threshold end - local.set $3 + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if + i32.const 4 local.get $2 - i32.load offset=8 - local.set $0 + i32.load offset=1568 + memory.size + local.tee $1 + 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.set $3 + local.get $1 + local.get $3 local.get $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 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 $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 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory 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 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1424 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end 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.const -4 i32.and - i32.eqz + i32.const 28 + i32.lt_u if i32.const 0 i32.const 1424 - i32.const 268 + i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $3 + 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.tee $3 - i32.const 12 - i32.lt_u + i32.const 28 + i32.sub + local.tee $4 + i32.const 16 + i32.ge_u if - i32.const 0 - i32.const 1424 - 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 $1 local.get $3 - i32.const 1073741820 - i32.ge_u - select + i32.const 2 + i32.and + i32.const 28 + i32.or + i32.store + local.get $1 + i32.const 32 + i32.add 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 1424 - 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 1424 - 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 1424 - 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 + i32.const 1 + i32.or + i32.store + local.get $2 + local.get $3 + call $~lib/rt/tlsf/insertBlock + else local.get $1 local.get $3 - i32.const 4 - i32.add - local.get $2 - i32.const -4 + i32.const -2 i32.and - i32.add - local.tee $3 i32.store local.get $1 i32.const 4 @@ -502,643 +396,807 @@ 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 + local.tee $2 + local.get $2 i32.load - local.tee $6 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1424 - 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.const -3 i32.and - i32.add - local.tee $3 i32.store end - local.get $4 + local.get $1 + 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 $0 + i32.load offset=8 + 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 - i32.const 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 - local.get $3 + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $1 + i32.load i32.const -4 i32.and - local.tee $2 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1424 - 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 1424 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $4 - i32.const 4 - i32.sub + global.set $~lib/rt/itcms/total 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 1424 - 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.const 20 i32.add local.tee $0 + i32.const 0 + i32.const 0 + memory.fill 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) + (func $~lib/rt/itcms/__visit (param $0 i32) + (local $1 i32) + (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u + local.get $0 + i32.eqz if - i32.const 0 - i32.const 1424 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable + return end - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - local.set $1 + global.get $~lib/rt/itcms/white local.get $0 - i32.load offset=1568 - local.tee $3 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq if - local.get $3 - i32.const 4 - i32.add local.get $1 - i32.gt_u + global.get $~lib/rt/itcms/iter + i32.eq if - i32.const 0 - i32.const 1424 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable + local.get $1 + i32.load offset=8 + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $0 + global.set $~lib/rt/itcms/iter end - local.get $3 + block $__inlined_func$~lib/rt/itcms/Object#unlink$171 + 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 34636 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$171 + end + local.get $1 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1152 + 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.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 + 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 1792 i32.load - local.set $4 - local.get $5 - local.set $1 + i32.gt_u + if + i32.const 1280 + i32.const 1344 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 2 + i32.shl + i32.const 1796 + i32.add + i32.load + i32.const 32 + i32.and end - else - local.get $0 - i32.const 1572 - i32.add + local.set $3 + local.get $2 + i32.load offset=8 + local.set $0 local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1424 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + 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 - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 + ) + (func $~lib/object/Object#constructor (param $0 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - local.tee $3 - i32.const 20 - i32.lt_u + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1868 + i32.lt_s + if + 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.store + local.get $0 + i32.eqz if + global.get $~lib/memory/__stack_pointer + 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 + ) + (func $class-overloading/A#a@override (param $0 i32) + block $default + block $case2 + block $case1 + block $case0 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 5 + i32.sub + br_table $case0 $case1 $case0 $case0 $case2 $default + end + i32.const 1520 + global.set $class-overloading/which + return + end + local.get $0 + call $class-overloading/C#a + return + end + i32.const 1648 + global.set $class-overloading/which return end + i32.const 1488 + global.set $class-overloading/which + ) + (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 - local.get $4 - i32.const 2 + i32.load + local.tee $3 + i32.const 1 i32.and + i32.eqz + if + i32.const 0 + i32.const 1424 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end local.get $3 - i32.const 8 - i32.sub + i32.const -4 + i32.and local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1424 + 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 1424 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end local.get $1 - i32.const 0 - i32.store offset=4 + i32.load offset=8 + local.set $5 local.get $1 - i32.const 0 - i32.store offset=8 + 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.add + i32.shl 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 + i32.shl + i32.add 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 + i32.load offset=96 + i32.eq if - unreachable - end - i32.const 34640 - i32.const 0 - i32.store - i32.const 36208 - i32.const 0 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 23 - i32.lt_u + 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.const 34640 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 34640 - 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 + 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 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 end end - i32.const 34640 - i32.const 36212 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34640 - global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/rt/itcms/step (result i32) - (local $0 i32) - (local $1 i32) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $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 + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 1424 + 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 1424 + 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 - 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 34636 - 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 + i32.const 1424 + 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 1424 + 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 1424 + 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 1424 + 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/__visit_members (param $0 i32) + block $invalid + block $class-overloading/A1 + block $class-overloading/B1 + block $class-overloading/B2 + block $class-overloading/A2 + block $class-overloading/CC + block $class-overloading/IC + block $class-overloading/CA + block $class-overloading/IA + block $class-overloading/F + block $class-overloading/E + block $class-overloading/D + block $class-overloading/C + block $class-overloading/B + block $class-overloading/A + 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-overloading/A $class-overloading/B $class-overloading/C $class-overloading/D $class-overloading/E $class-overloading/F $class-overloading/IA $class-overloading/CA $class-overloading/IC $class-overloading/CC $class-overloading/A2 $class-overloading/B2 $class-overloading/B1 $class-overloading/A1 $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 + return + end + return + end + return + end + return + end + return + end + return end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 + return end + return 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 + return 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 + return + end + unreachable + ) + (func $class-overloading/B#constructor (param $0 i32) (result i32) + (local $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 1868 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz 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 1152 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 34636 - 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 34636 - 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.set $1 - 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 1424 - 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 $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store end - global.get $~lib/rt/itcms/toSpace - local.tee $0 + 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 1868 + 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 local.get $0 i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 + call $~lib/object/Object#constructor + local.tee $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 offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return end - i32.const 0 + i32.const 34656 + i32.const 34704 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -1197,740 +1255,685 @@ end end ) - (func $~lib/rt/itcms/__new (param $0 i32) (result i32) + (func $~lib/rt/tlsf/initialize + (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.ge_u + 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 - block $__inlined_func$~lib/rt/itcms/interrupt$69 - i32.const 2048 + unreachable + end + i32.const 34640 + i32.const 0 + i32.store + i32.const 36208 + 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 34640 + i32.add + i32.const 0 + i32.store offset=4 + i32.const 0 local.set $1 - loop $do-loop|0 + loop $for-loop|1 local.get $1 - call $~lib/rt/itcms/step - i32.sub - local.set $1 - global.get $~lib/rt/itcms/state - i32.eqz + i32.const 16 + i32.lt_u 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 + local.get $0 + i32.const 4 + i32.shl + local.get $1 i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$69 + i32.const 2 + i32.shl + i32.const 34640 + 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 - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 end - global.get $~lib/rt/itcms/total - local.tee $1 - local.get $1 - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl + local.get $0 + i32.const 1 i32.add - global.set $~lib/rt/itcms/threshold + local.set $0 + br $for-loop|0 end end - global.get $~lib/rt/tlsf/ROOT - i32.eqz + i32.const 34640 + i32.const 36212 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34640 + global.set $~lib/rt/tlsf/ROOT + ) + (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 - call $~lib/rt/tlsf/initialize + i32.const 0 + i32.const 1424 + 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 1424 + 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 1424 + 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/itcms/visitRoots + (local $0 i32) + (local $1 i32) + global.get $class-overloading/which + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $class-overloading/a + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $class-overloading/c + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $class-overloading/ia + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $class-overloading/ic + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $class-overloading/b2 + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit end - global.get $~lib/rt/tlsf/ROOT - local.tee $2 - call $~lib/rt/tlsf/searchBlock + i32.const 1280 + call $~lib/rt/itcms/__visit + i32.const 1088 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace local.tee $1 - i32.eqz - if - memory.size - local.tee $1 - i32.const 4 - local.get $2 - i32.load offset=1568 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|0 + local.get $0 local.get $1 - 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 $3 - local.get $1 - 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 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne if + i32.const 0 + i32.const 1152 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort unreachable end - end - local.get $2 - 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 $2 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1424 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable + 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 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 28 - i32.lt_u + ) + (func $class-overloading/E#constructor (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 1868 + i32.lt_s if - i32.const 0 - i32.const 1424 - i32.const 501 - i32.const 14 + i32.const 34656 + i32.const 34704 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $2 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.tee $3 - i32.const -4 - i32.and - i32.const 28 - i32.sub - local.tee $4 - i32.const 16 - i32.ge_u + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz if - local.get $1 - local.get $3 - i32.const 2 - i32.and - i32.const 28 - i32.or + global.get $~lib/memory/__stack_pointer + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $0 i32.store - local.get $1 - i32.const 32 - i32.add - local.tee $3 - local.get $4 - i32.const 4 - i32.sub + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $class-overloading/D#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $class-overloading/D#constructor (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 1868 + i32.lt_s + if + i32.const 34656 + i32.const 34704 i32.const 1 - i32.or - i32.store - local.get $2 - local.get $3 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $3 - 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.const 1 + call $~lib/builtins/abort + unreachable + end + 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 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 - local.get $1 - i32.const 0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $class-overloading/B#constructor local.tee $0 - i32.load offset=8 - local.set $2 - local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 - global.get $~lib/rt/itcms/white - i32.or - 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 + ) + (func $class-overloading/C#a (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 1868 + i32.lt_s + if + 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.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - i32.const -4 - i32.and + i32.store + i32.const 1520 + global.set $class-overloading/which + global.get $~lib/memory/__stack_pointer + i32.const 1520 + i32.store + i32.const 1520 + i32.const 1520 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + i32.const 1616 + global.set $class-overloading/which + 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 $0 - i32.const 0 - i32.const 0 - memory.fill - local.get $0 + global.set $~lib/memory/__stack_pointer ) - (func $class-overloading/A#a@override (param $0 i32) - block $default - block $case2 - block $case1 - block $case0 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 5 - i32.sub - br_table $case0 $case1 $case0 $case0 $case2 $default - end - i32.const 1520 - global.set $class-overloading/which - return - end - local.get $0 - call $class-overloading/C#a - return - end - i32.const 1648 - global.set $class-overloading/which + (func $~start + global.get $~started + if return end - i32.const 1488 - global.set $class-overloading/which + i32.const 1 + global.set $~started + call $start:class-overloading ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $class-overloading/A1 - block $class-overloading/B1 - block $class-overloading/B2 - block $class-overloading/A2 - block $class-overloading/CC - block $class-overloading/IC - block $class-overloading/CA - block $class-overloading/IA - block $class-overloading/F - block $class-overloading/E - block $class-overloading/D - block $class-overloading/C - block $class-overloading/B - block $class-overloading/A - 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-overloading/A $class-overloading/B $class-overloading/C $class-overloading/D $class-overloading/E $class-overloading/F $class-overloading/IA $class-overloading/CA $class-overloading/IC $class-overloading/CC $class-overloading/A2 $class-overloading/B2 $class-overloading/B1 $class-overloading/A1 $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + 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 - return + 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 34636 + 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 - return + 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 - return - end - unreachable - ) - (func $~start - global.get $~started - if - return - end - i32.const 1 - global.set $~started - call $start:class-overloading - ) - (func $class-overloading/B#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 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1868 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $0 - i32.eqz - if - local.get $1 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1868 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $0 - i32.eqz - if - local.get $2 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store offset=4 - local.get $2 - local.get $0 - call $~lib/object/Object#constructor + global.get $~lib/rt/itcms/iter local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - 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 - return - end - i32.const 34656 - i32.const 34704 - i32.const 1 - i32.const 1 - 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 1868 - i32.lt_s - if - i32.const 34656 - i32.const 34704 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $0 - local.get $1 - i32.eq - if - local.get $2 - 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.tee $4 - local.tee $2 - 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 - local.get $2 - 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 + global.get $~lib/rt/itcms/toSpace i32.ne - br_if $folding-inner0 - local.get $4 - local.get $0 - i32.store - local.get $0 - local.set $2 - local.get $4 - 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 + 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 7 + i32.const 3 i32.and - i32.or - else - i32.const 1 - end - i32.eqz - if - loop $do-loop|0 - local.get $2 - i64.load - local.get $1 - i64.load - i64.eq - if - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end + i32.ne + if + i32.const 0 + i32.const 1152 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable end - end - block $__inlined_func$~lib/util/string/compareImpl$95 - loop $while-continue|1 + local.get $0 + i32.const 34636 + 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 - local.tee $3 - i32.const 1 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add i32.sub - local.set $0 - local.get $3 + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 4 + i32.add + local.tee $0 + i32.const 34636 + i32.ge_u if - local.get $2 - i32.load16_u - local.tee $5 - local.get $1 - i32.load16_u - local.tee $4 + 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 $3 - local.get $4 - local.get $5 - i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$95 - local.get $2 - i32.const 2 - i32.add local.set $2 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 + 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 1424 + 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 0 - local.set $3 + i32.const 10 + return end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - i32.eqz - return - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $class-overloading/C#a (param $0 i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1868 - i32.lt_s - if - i32.const 34656 - i32.const 34704 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - local.get $0 - i32.store - i32.const 1520 - global.set $class-overloading/which - local.get $1 - i32.const 1520 - i32.store - local.get $1 - i32.const 1520 - i32.store offset=4 - i32.const 1520 - i32.const 1520 - call $~lib/string/String.__eq - i32.eqz - if + 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 - i32.const 1552 - i32.const 52 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - i32.const 1616 - global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $class-overloading/D#constructor (param $0 i32) (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 1868 - i32.lt_s - if - i32.const 34656 - i32.const 34704 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $0 - i32.eqz - if - local.get $1 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - local.get $0 - call $class-overloading/B#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $class-overloading/E#constructor (param $0 i32) (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 1868 - i32.lt_s - if - i32.const 34656 - i32.const 34704 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $0 - i32.eqz - if - local.get $1 - i32.const 8 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store + global.set $~lib/rt/itcms/state end - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - local.get $0 - call $class-overloading/D#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 ) (func $start:class-overloading (local $0 i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 @@ -1939,8 +1942,8 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store memory.size i32.const 16 i32.shl @@ -1986,9 +1989,6 @@ global.get $class-overloading/which local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1520 - i32.store offset=4 local.get $0 i32.const 1520 call $~lib/string/String.__eq @@ -2036,15 +2036,11 @@ global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $class-overloading/which - local.tee $1 + local.tee $0 i32.store local.get $0 i32.const 1520 - i32.store offset=4 - local.get $1 - i32.const 1520 call $~lib/string/String.__eq i32.eqz if @@ -2062,17 +2058,17 @@ local.tee $0 i32.store block $__inlined_func$class-overloading/A#get:c@override$154 - block $default0 - block $case21 - block $case12 - block $case03 + block $default4 + block $case25 + block $case16 + block $case07 local.get $0 i32.const 8 i32.sub i32.load i32.const 5 i32.sub - br_table $case03 $case12 $case03 $case03 $case21 $default0 + br_table $case07 $case16 $case07 $case07 $case25 $default4 end i32.const 1520 global.set $class-overloading/which @@ -2090,15 +2086,11 @@ global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $class-overloading/which - local.tee $1 + local.tee $0 i32.store local.get $0 i32.const 1520 - i32.store offset=4 - local.get $1 - i32.const 1520 call $~lib/string/String.__eq i32.eqz if @@ -2116,17 +2108,17 @@ local.tee $0 i32.store block $__inlined_func$class-overloading/A#b@override$155 - block $default1 - block $case22 - block $case13 - block $case04 + block $default8 + block $case29 + block $case110 + block $case011 local.get $0 i32.const 8 i32.sub i32.load i32.const 5 i32.sub - br_table $case04 $case13 $case04 $case04 $case22 $default1 + br_table $case011 $case110 $case011 $case011 $case29 $default8 end i32.const 1520 global.set $class-overloading/which @@ -2144,15 +2136,11 @@ global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $class-overloading/which - local.tee $1 + local.tee $0 i32.store local.get $0 i32.const 1520 - i32.store offset=4 - local.get $1 - i32.const 1520 call $~lib/string/String.__eq i32.eqz if @@ -2172,19 +2160,17 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 6 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $class-overloading/B#constructor local.tee $0 @@ -2207,9 +2193,6 @@ global.get $class-overloading/which local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1616 - i32.store offset=4 local.get $0 i32.const 1616 call $~lib/string/String.__eq @@ -2225,17 +2208,13 @@ i32.const 1056 global.set $class-overloading/which global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $class-overloading/c i32.store i32.const 1616 global.set $class-overloading/which - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1616 i32.store - local.get $0 - i32.const 1616 - i32.store offset=4 i32.const 1616 i32.const 1616 call $~lib/string/String.__eq @@ -2251,17 +2230,13 @@ i32.const 1056 global.set $class-overloading/which global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $class-overloading/c i32.store i32.const 1616 global.set $class-overloading/which - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1616 i32.store - local.get $0 - i32.const 1616 - i32.store offset=4 i32.const 1616 i32.const 1616 call $~lib/string/String.__eq @@ -2275,17 +2250,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $class-overloading/c i32.store i32.const 1616 global.set $class-overloading/which - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1616 i32.store - local.get $0 - i32.const 1616 - i32.store offset=4 i32.const 1616 i32.const 1616 call $~lib/string/String.__eq @@ -2313,9 +2284,6 @@ global.get $class-overloading/which local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1520 - i32.store offset=4 local.get $0 i32.const 1520 call $~lib/string/String.__eq @@ -2335,17 +2303,17 @@ local.tee $0 i32.store block $__inlined_func$class-overloading/A#b@override$157 - block $default2 - block $case23 - block $case14 - block $case05 + block $default16 + block $case217 + block $case118 + block $case019 local.get $0 i32.const 8 i32.sub i32.load i32.const 5 i32.sub - br_table $case05 $case14 $case05 $case05 $case23 $default2 + br_table $case019 $case118 $case019 $case019 $case217 $default16 end i32.const 1520 global.set $class-overloading/which @@ -2363,15 +2331,11 @@ global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $class-overloading/which - local.tee $1 + local.tee $0 i32.store local.get $0 i32.const 1520 - i32.store offset=4 - local.get $1 - i32.const 1520 call $~lib/string/String.__eq i32.eqz if @@ -2389,17 +2353,17 @@ local.tee $0 i32.store block $__inlined_func$class-overloading/A#get:c@override$158 - block $default3 - block $case24 - block $case15 - block $case06 + block $default24 + block $case225 + block $case126 + block $case027 local.get $0 i32.const 8 i32.sub i32.load i32.const 5 i32.sub - br_table $case06 $case15 $case06 $case06 $case24 $default3 + br_table $case027 $case126 $case027 $case027 $case225 $default24 end i32.const 1520 global.set $class-overloading/which @@ -2417,15 +2381,11 @@ global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $class-overloading/which - local.tee $1 + local.tee $0 i32.store local.get $0 i32.const 1520 - i32.store offset=4 - local.get $1 - i32.const 1520 call $~lib/string/String.__eq i32.eqz if @@ -2441,17 +2401,17 @@ local.tee $0 i32.store block $__inlined_func$class-overloading/A#b@override$159 - block $default4 - block $case25 - block $case16 - block $case07 + block $default32 + block $case233 + block $case134 + block $case035 local.get $0 i32.const 8 i32.sub i32.load i32.const 5 i32.sub - br_table $case07 $case16 $case07 $case07 $case25 $default4 + br_table $case035 $case134 $case035 $case035 $case233 $default32 end i32.const 1520 global.set $class-overloading/which @@ -2469,15 +2429,11 @@ global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $class-overloading/which - local.tee $1 + local.tee $0 i32.store local.get $0 i32.const 1520 - i32.store offset=4 - local.get $1 - i32.const 1520 call $~lib/string/String.__eq i32.eqz if @@ -2503,9 +2459,6 @@ global.get $class-overloading/which local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1520 - i32.store offset=4 local.get $0 i32.const 1520 call $~lib/string/String.__eq @@ -2525,17 +2478,17 @@ local.tee $0 i32.store block $__inlined_func$class-overloading/A#b@override$160 - block $default5 - block $case26 - block $case17 - block $case08 + block $default40 + block $case241 + block $case142 + block $case043 local.get $0 i32.const 8 i32.sub i32.load i32.const 5 i32.sub - br_table $case08 $case17 $case08 $case08 $case26 $default5 + br_table $case043 $case142 $case043 $case043 $case241 $default40 end i32.const 1520 global.set $class-overloading/which @@ -2553,15 +2506,11 @@ global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $class-overloading/which - local.tee $1 + local.tee $0 i32.store local.get $0 i32.const 1520 - i32.store offset=4 - local.get $1 - i32.const 1520 call $~lib/string/String.__eq i32.eqz if @@ -2579,17 +2528,17 @@ local.tee $0 i32.store block $__inlined_func$class-overloading/A#get:c@override$161 - block $default6 - block $case27 - block $case18 - block $case09 + block $default48 + block $case249 + block $case150 + block $case051 local.get $0 i32.const 8 i32.sub i32.load i32.const 5 i32.sub - br_table $case09 $case18 $case09 $case09 $case27 $default6 + br_table $case051 $case150 $case051 $case051 $case249 $default48 end i32.const 1520 global.set $class-overloading/which @@ -2607,15 +2556,11 @@ global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $class-overloading/which - local.tee $1 + local.tee $0 i32.store local.get $0 i32.const 1520 - i32.store offset=4 - local.get $1 - i32.const 1520 call $~lib/string/String.__eq i32.eqz if @@ -2631,17 +2576,17 @@ local.tee $0 i32.store block $__inlined_func$class-overloading/A#b@override$162 - block $default7 - block $case28 - block $case19 - block $case010 + block $default56 + block $case257 + block $case158 + block $case059 local.get $0 i32.const 8 i32.sub i32.load i32.const 5 i32.sub - br_table $case010 $case19 $case010 $case010 $case28 $default7 + br_table $case059 $case158 $case059 $case059 $case257 $default56 end i32.const 1520 global.set $class-overloading/which @@ -2659,15 +2604,11 @@ global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $class-overloading/which - local.tee $1 + local.tee $0 i32.store local.get $0 i32.const 1520 - i32.store offset=4 - local.get $1 - i32.const 1520 call $~lib/string/String.__eq i32.eqz if @@ -2687,19 +2628,17 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 9 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $class-overloading/E#constructor local.tee $0 @@ -2722,9 +2661,6 @@ global.get $class-overloading/which local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1648 - i32.store offset=4 local.get $0 i32.const 1648 call $~lib/string/String.__eq @@ -2744,17 +2680,17 @@ local.tee $0 i32.store block $__inlined_func$class-overloading/A#b@override$164 - block $default8 - block $case29 - block $case110 - block $case011 + block $default64 + block $case265 + block $case166 + block $case067 local.get $0 i32.const 8 i32.sub i32.load i32.const 5 i32.sub - br_table $case011 $case110 $case011 $case011 $case29 $default8 + br_table $case067 $case166 $case067 $case067 $case265 $default64 end i32.const 1520 global.set $class-overloading/which @@ -2772,15 +2708,11 @@ global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $class-overloading/which - local.tee $1 + local.tee $0 i32.store local.get $0 i32.const 1648 - i32.store offset=4 - local.get $1 - i32.const 1648 call $~lib/string/String.__eq i32.eqz if @@ -2798,17 +2730,17 @@ local.tee $0 i32.store block $__inlined_func$class-overloading/A#get:c@override$165 - block $default9 - block $case210 - block $case111 - block $case012 + block $default72 + block $case273 + block $case174 + block $case075 local.get $0 i32.const 8 i32.sub i32.load i32.const 5 i32.sub - br_table $case012 $case111 $case012 $case012 $case210 $default9 + br_table $case075 $case174 $case075 $case075 $case273 $default72 end i32.const 1520 global.set $class-overloading/which @@ -2826,15 +2758,11 @@ global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $class-overloading/which - local.tee $1 + local.tee $0 i32.store local.get $0 i32.const 1648 - i32.store offset=4 - local.get $1 - i32.const 1648 call $~lib/string/String.__eq i32.eqz if @@ -2852,17 +2780,17 @@ local.tee $0 i32.store block $__inlined_func$class-overloading/A#b@override$166 - block $default10 - block $case211 - block $case112 - block $case013 + block $default80 + block $case281 + block $case182 + block $case083 local.get $0 i32.const 8 i32.sub i32.load i32.const 5 i32.sub - br_table $case013 $case112 $case013 $case013 $case211 $default10 + br_table $case083 $case182 $case083 $case083 $case281 $default80 end i32.const 1520 global.set $class-overloading/which @@ -2880,15 +2808,11 @@ global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $class-overloading/which - local.tee $1 + local.tee $0 i32.store local.get $0 i32.const 1648 - i32.store offset=4 - local.get $1 - i32.const 1648 call $~lib/string/String.__eq i32.eqz if @@ -2908,19 +2832,17 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -2938,42 +2860,34 @@ local.tee $0 i32.store block $__inlined_func$class-overloading/IA#foo@override$168 - block $default11 - block $case113 + block $case189 + local.get $0 + i32.const 8 + i32.sub + i32.load + local.tee $0 + i32.const 11 + i32.ne + if local.get $0 - i32.const 8 - i32.sub - i32.load - local.tee $0 - i32.const 11 - i32.ne - if - local.get $0 - i32.const 13 - i32.eq - br_if $case113 - br $default11 - end - i32.const 1680 - global.set $class-overloading/which - br $__inlined_func$class-overloading/IA#foo@override$168 + i32.const 13 + i32.eq + br_if $case189 + unreachable end - i32.const 1712 + i32.const 1680 global.set $class-overloading/which br $__inlined_func$class-overloading/IA#foo@override$168 end - unreachable + i32.const 1712 + global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $class-overloading/which - local.tee $1 + local.tee $0 i32.store local.get $0 i32.const 1680 - i32.store offset=4 - local.get $1 - i32.const 1680 call $~lib/string/String.__eq i32.eqz if @@ -2993,19 +2907,17 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 13 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -3023,42 +2935,34 @@ local.tee $0 i32.store block $__inlined_func$class-overloading/IA#foo@override$170 - block $default12 - block $case114 + block $case192 + local.get $0 + i32.const 8 + i32.sub + i32.load + local.tee $0 + i32.const 11 + i32.ne + if local.get $0 - i32.const 8 - i32.sub - i32.load - local.tee $0 - i32.const 11 - i32.ne - if - local.get $0 - i32.const 13 - i32.eq - br_if $case114 - br $default12 - end - i32.const 1680 - global.set $class-overloading/which - br $__inlined_func$class-overloading/IA#foo@override$170 + i32.const 13 + i32.eq + br_if $case192 + unreachable end - i32.const 1712 + i32.const 1680 global.set $class-overloading/which br $__inlined_func$class-overloading/IA#foo@override$170 end - unreachable + i32.const 1712 + global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $class-overloading/which - local.tee $1 + local.tee $0 i32.store local.get $0 i32.const 1712 - i32.store offset=4 - local.get $1 - i32.const 1712 call $~lib/string/String.__eq i32.eqz if @@ -3078,19 +2982,18 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 15 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -3099,23 +3002,21 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store local.get $0 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 14 call $~lib/rt/itcms/__new local.tee $0 i32.store end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -3124,7 +3025,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -3154,10 +3054,9 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -3166,19 +3065,18 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 16 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -3187,23 +3085,21 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store local.get $0 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 17 call $~lib/rt/itcms/__new local.tee $0 i32.store end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -3212,7 +3108,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -3231,10 +3126,9 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -3269,7 +3163,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer return @@ -3281,40 +3175,4 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/object/Object#constructor (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1868 - i32.lt_s - if - i32.const 34656 - i32.const 34704 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - local.get $1 - 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 - ) ) diff --git a/tests/compiler/class-override.debug.wat b/tests/compiler/class-override.debug.wat new file mode 100644 index 0000000000..7ec0ffa3a3 --- /dev/null +++ b/tests/compiler/class-override.debug.wat @@ -0,0 +1,2672 @@ +(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 i32))) + (type $7 (func (param i32 i32 i64) (result i32))) + (type $8 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (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/shared/runtime/Runtime.Stub i32 (i32.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/fromSpace (mut i32) (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 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) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00(\00\00\00A\00l\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/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 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 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 $class-override/A#f (param $this i32) (param $a i32) (result i32) + local.get $a + i32.const 1 + i32.add + return + ) + (func $start:class-override + 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 + i32.const 0 + call $class-override/D#constructor + global.set $class-override/x + i32.const 0 + call $class-override/fn + i32.const 111 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 24 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $class-override/A#f@override (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + block $default + block $case1 + block $case0 + local.get $0 + i32.const 8 + i32.sub + i32.load + local.set $2 + local.get $2 + i32.const 7 + i32.eq + br_if $case0 + local.get $2 + i32.const 5 + i32.eq + br_if $case1 + local.get $2 + i32.const 6 + i32.eq + br_if $case1 + br $default + end + local.get $0 + local.get $1 + call $class-override/B#f + return + end + local.get $0 + local.get $1 + call $class-override/C#f + return + end + local.get $0 + local.get $1 + call $class-override/A#f + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + global.get $class-override/x + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 224 + 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/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $class-override/B + block $class-override/C + block $class-override/D + block $class-override/A + 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-override/A $class-override/D $class-override/C $class-override/B $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 + return + end + unreachable + ) + (func $~start + call $start:class-override + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 33312 + i32.const 33360 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $class-override/A#constructor (param $this i32) (result 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 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 4 + 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 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $class-override/B#constructor (param $this i32) (result 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 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + 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 $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $class-override/A#constructor + local.tee $this + i32.store + 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 $1 + ) + (func $class-override/C#constructor (param $this i32) (result 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 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 6 + 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 $class-override/B#constructor + local.tee $this + i32.store + 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 $1 + ) + (func $class-override/D#constructor (param $this i32) (result 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 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 5 + 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 $class-override/C#constructor + local.tee $this + i32.store + 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 $1 + ) + (func $class-override/fn (param $n 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 + global.get $class-override/x + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + local.get $n + call $class-override/A#f@override + 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 $class-override/B#f (param $this i32) (param $a 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 $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $a + call $class-override/A#f + i32.const 10 + i32.add + 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 $class-override/C#f (param $this i32) (param $a 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 $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $a + call $class-override/B#f + i32.const 100 + i32.add + 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/object/Object#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 + 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 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) +) diff --git a/tests/compiler/class-override.json b/tests/compiler/class-override.json new file mode 100644 index 0000000000..1bdd02b1be --- /dev/null +++ b/tests/compiler/class-override.json @@ -0,0 +1,4 @@ +{ + "asc_flags": [ + ] +} diff --git a/tests/compiler/class-override.release.wat b/tests/compiler/class-override.release.wat new file mode 100644 index 0000000000..470d06af94 --- /dev/null +++ b/tests/compiler/class-override.release.wat @@ -0,0 +1,1728 @@ +(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 i32 i32))) + (type $5 (func (param i32 i32 i64))) + (type $6 (func (param i32 i32) (result i32))) + (type $7 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (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 $class-override/x (mut i32) (i32.const 0)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34308)) + (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\"\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/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 1120 + 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 34308 + 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$120 + end + local.get $1 + 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 $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 1504 + i32.load + i32.gt_u + if + i32.const 1248 + i32.const 1312 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 2 + i32.shl + i32.const 1508 + 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/itcms/__new (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 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 $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.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if + i32.const 4 + local.get $2 + i32.load offset=1568 + memory.size + local.tee $1 + 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.set $3 + local.get $1 + local.get $3 + local.get $1 + 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 $2 + 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 $2 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + local.get $1 + i32.load + i32.const -4 + i32.and + i32.const 28 + i32.lt_u + if + i32.const 0 + i32.const 1392 + i32.const 501 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $1 + call $~lib/rt/tlsf/removeBlock + local.get $1 + i32.load + local.tee $3 + i32.const -4 + i32.and + i32.const 28 + i32.sub + local.tee $4 + i32.const 16 + i32.ge_u + if + local.get $1 + local.get $3 + i32.const 2 + i32.and + i32.const 28 + i32.or + i32.store + local.get $1 + i32.const 32 + i32.add + local.tee $3 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $2 + local.get $3 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + 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 + 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 $0 + i32.load offset=8 + 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 + 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 + local.get $0 + 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 $0 + i32.const 0 + i32.const 0 + memory.fill + local.get $0 + ) + (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/__visit_members (param $0 i32) + block $invalid + block $class-override/B + block $class-override/C + block $class-override/D + block $class-override/A + 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-override/A $class-override/D $class-override/C $class-override/B $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 + return + end + unreachable + ) + (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 $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $1 + 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 $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 + i32.const 0 + end + end + ) + (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 34320 + i32.const 0 + i32.store + i32.const 35888 + 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 34320 + 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 34320 + 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 34320 + i32.const 35892 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34320 + global.set $~lib/rt/tlsf/ROOT + ) + (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/itcms/visitRoots + (local $0 i32) + (local $1 i32) + global.get $class-override/x + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 1248 + 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 $class-override/fn (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 + block $folding-inner0 + 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.store + global.get $~lib/memory/__stack_pointer + global.get $class-override/x + local.tee $1 + i32.store + block $__inlined_func$class-override/A#f@override$126 + block $default + block $case1 + block $case0 + local.get $1 + i32.const 8 + i32.sub + i32.load + i32.const 5 + i32.sub + br_table $case1 $case1 $case0 $default + end + local.get $1 + local.get $0 + call $class-override/B#f + local.set $0 + br $__inlined_func$class-override/A#f@override$126 + 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 1540 + 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 $1 + i32.store + local.get $1 + local.get $0 + call $class-override/B#f + i32.const 100 + i32.add + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$class-override/A#f@override$126 + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + i32.const 34336 + i32.const 34384 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $class-override/B#f (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 1540 + i32.lt_s + if + 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.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 + local.get $1 + i32.const 11 + i32.add + ) + (func $~start + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + 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 + 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 + block $folding-inner0 + 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 + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + 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 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 + 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.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + 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 1456 + i32.const 24 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$start:class-override + end + i32.const 34336 + i32.const 34384 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + 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 34308 + 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 34308 + 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 34308 + 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 + ) +) diff --git a/tests/compiler/class-override.ts b/tests/compiler/class-override.ts new file mode 100644 index 0000000000..08121693e6 --- /dev/null +++ b/tests/compiler/class-override.ts @@ -0,0 +1,24 @@ +export function fn(n: i32): i32 { + return x.f(n); +} + +class A { + f(a: i32): i32 { + return a + 1; + } +} +class B extends A { + f(a: i32): i32 { + return super.f(a) + 10; + } +} +class C extends B { + f(a: i32): i32 { + return super.f(a) + 100; + } +} +class D extends C {} + +let x: A = new D(); + +assert(fn(0) == 111); diff --git a/tests/compiler/class-static-function.release.wat b/tests/compiler/class-static-function.release.wat index e8a4c3c3ca..2cec4c8884 100644 --- a/tests/compiler/class-static-function.release.wat +++ b/tests/compiler/class-static-function.release.wat @@ -1,7 +1,7 @@ (module (type $0 (func (result i32))) - (type $1 (func (param i32 i32 i32 i32))) - (type $2 (func)) + (type $1 (func)) + (type $2 (func (param i32 i32 i32 i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33916)) (memory $0 1) @@ -13,11 +13,7 @@ (elem $0 (i32.const 1) $class-static-function/Example.staticFunc) (export "memory" (memory $0)) (start $~start) - (func $class-static-function/Example.staticFunc (result i32) - i32.const 42 - ) (func $~start - (local $0 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -34,10 +30,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store i32.const 1056 @@ -49,4 +44,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $class-static-function/Example.staticFunc (result i32) + i32.const 42 + ) ) diff --git a/tests/compiler/class.debug.wat b/tests/compiler/class.debug.wat index e8f373491e..c69e4d351d 100644 --- a/tests/compiler/class.debug.wat +++ b/tests/compiler/class.debug.wat @@ -1706,14 +1706,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 @@ -2452,12 +2455,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -2468,12 +2467,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this diff --git a/tests/compiler/class.release.wat b/tests/compiler/class.release.wat index 710aef17f0..7a93b429d2 100644 --- a/tests/compiler/class.release.wat +++ b/tests/compiler/class.release.wat @@ -39,185 +39,6 @@ (export "memory" (memory $0)) (export "test" (func $export:class/test)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1248 - call $~lib/rt/itcms/__visit - i32.const 1456 - 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$137 - 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 34336 - 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$137 - 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 1536 - i32.load - i32.gt_u - if - i32.const 1248 - i32.const 1312 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.const 1540 - 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 @@ -242,330 +63,387 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (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.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + (local $6 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u if - i32.const 0 - i32.const 1392 - i32.const 268 - i32.const 14 + i32.const 1056 + i32.const 1120 + i32.const 261 + i32.const 31 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - i32.const 0 - i32.const 1392 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable + block $__inlined_func$~lib/rt/itcms/interrupt$71 + 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$71 + 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 - 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 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize end - local.tee $3 + global.get $~lib/rt/tlsf/ROOT + local.set $4 + local.get $0 i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u - i32.and - i32.eqz + i32.add + local.tee $2 + i32.const 1073741820 + i32.gt_u if - i32.const 0 + i32.const 1056 i32.const 1392 - i32.const 284 - i32.const 14 + i32.const 461 + i32.const 29 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 + 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.get $5 + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz if 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.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 + i32.load offset=1568 + memory.size + local.tee $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.set $3 + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s 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 + memory.grow + i32.const 0 + i32.lt_s if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - i32.rotl - i32.and - i32.store + 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 - ) - (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 + 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 201 + i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 + local.get $2 + call $~lib/rt/tlsf/removeBlock + local.get $2 i32.load - local.tee $3 - i32.const 1 + local.set $6 + local.get $5 + i32.const 4 + i32.add + i32.const 15 i32.and - i32.eqz if i32.const 0 i32.const 1392 - i32.const 203 + i32.const 361 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load + local.get $6 i32.const -4 i32.and - i32.add - local.tee $4 - i32.load - local.tee $2 - i32.const 1 - i32.and + local.get $5 + i32.sub + local.tee $3 + i32.const 16 + i32.ge_u 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 + local.get $5 + local.get $6 + i32.const 2 i32.and - i32.add - local.tee $3 + i32.or i32.store - local.get $1 + local.get $2 i32.const 4 i32.add - local.get $1 - i32.load - i32.const -4 - i32.and + local.get $5 i32.add - local.tee $4 - i32.load - local.set $2 - end - local.get $3 - i32.const 2 - i32.and - if - local.get $1 + local.tee $5 + local.get $3 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 + 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 $3 + 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 $4 local.get $2 - i32.const 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 + 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 - local.tee $2 - i32.const 12 - i32.lt_u + 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/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 233 + i32.const 268 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 + 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 234 + i32.const 270 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 + local.get $3 i32.const 256 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 4 i32.shr_u else i32.const 31 i32.const 1073741820 - local.get $2 - local.get $2 + local.get $3 + local.get $3 i32.const 1073741820 i32.ge_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.tee $3 + local.tee $4 i32.const 7 i32.sub - local.set $5 - local.get $2 + 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 $2 + local.tee $3 i32.const 16 i32.lt_u - local.get $5 + local.get $2 i32.const 23 i32.lt_u i32.and @@ -573,523 +451,575 @@ if i32.const 0 i32.const 1392 - i32.const 251 + i32.const 284 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 + i32.load offset=8 + local.set $5 local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 + i32.load offset=4 + local.tee $4 if - local.get $3 - local.get $1 + 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 $5 - i32.const 4 - i32.shl local.get $2 - i32.add - i32.const 2 + i32.const 4 i32.shl + local.get $3 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 + local.tee $1 + i32.load offset=96 + i32.eq 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 + 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.load - local.set $4 - local.get $5 - local.set $1 + 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 - else + 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 - i32.const 1572 + 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.gt_u + 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 402 - i32.const 5 + 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.wrap_i64 - i32.const -16 + i32.const 2 + i32.or + i32.store + local.get $3 + i32.const -4 i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 + local.tee $2 + i32.const 12 i32.lt_u if - return + i32.const 0 + i32.const 1392 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable 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 + local.get $2 i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 - local.get $0 + 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 - 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 + i32.store + local.get $2 + i32.const 256 + i32.lt_u if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s + local.get $2 + i32.const 4 + i32.shr_u else - i32.const 0 + 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 - unreachable + i32.const 0 + i32.const 1392 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable end - i32.const 34336 - i32.const 0 - i32.store - i32.const 35904 + 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 - loop $for-loop|0 + 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/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.const 23 - i32.lt_u + i32.load offset=8 + local.tee $1 + i32.eqz if - local.get $0 - i32.const 2 - i32.shl - i32.const 34336 - 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 34336 - 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 + 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 - i32.const 34336 - i32.const 35908 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34336 - 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 + block $__inlined_func$~lib/rt/itcms/Object#unlink$139 + 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.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 + local.get $0 + i32.const 34336 + i32.lt_u 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 + 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$139 + end + local.get $0 + i32.load offset=8 + local.tee $2 + i32.eqz + if 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 34336 - 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 + 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 1536 + i32.load + i32.gt_u + if + i32.const 1248 + i32.const 1312 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1540 + 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/__visit_members (param $0 i32) + block $invalid + block $~lib/array/Array + block $class/GenericInitializer + block $class/Animal + 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/Animal $class/GenericInitializer $~lib/array/Array $invalid + end + return + end + return end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 + return end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return 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 + return end - global.get $~lib/rt/itcms/visitCount + local.get $0 + i32.load + call $~lib/rt/itcms/__visit return end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 4 + 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 + 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 + unreachable + ) + (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $1 + if + 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 - local.tee $1 - i32.const -4 + i32.const 3 i32.and - global.set $~lib/rt/itcms/iter + local.tee $0 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 34336 - i32.lt_u + i32.eq if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 + local.get $1 + call $~lib/rt/itcms/Object#makeGray else - global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq local.get $0 - i32.load - i32.const -4 + i32.const 3 + i32.eq 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 34336 - 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.set $1 - 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 $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock + call $~lib/rt/itcms/Object#makeGray end end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state end - i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1161,438 +1091,685 @@ 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$71 - 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$71 - end - local.get $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 - 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.tee $1 + if (result i32) + local.get $0 + local.get $1 + i32.ctz local.get $2 - i32.const 16 - i32.shl i32.const 4 - i32.sub - i32.ne i32.shl i32.add - i32.const 65535 + i32.const 2 + i32.shl i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $3 + i32.load offset=96 + else + local.get $0 + i32.load + i32.const -1 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 + 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 - 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 + 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 - 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 + ) + (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.const 1392 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort + i32.lt_s + else + i32.const 0 + end + if unreachable end - local.get $4 - local.get $2 - call $~lib/rt/tlsf/removeBlock + i32.const 34336 + i32.const 0 + i32.store + i32.const 35904 + 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 34336 + 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 34336 + 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 34336 + i32.const 35908 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34336 + global.set $~lib/rt/tlsf/ROOT + ) + (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 - i32.load - local.set $6 - local.get $5 - i32.const 4 - i32.add - i32.const 15 - i32.and + local.get $1 + i64.extend_i32_u + i64.lt_u if i32.const 0 i32.const 1392 - i32.const 361 + i32.const 382 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $6 - i32.const -4 + local.get $1 + i32.const 19 + i32.add + i32.const -16 i32.and - local.get $5 + i32.const 4 i32.sub + local.set $1 + local.get $0 + i32.load offset=1568 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 + local.get $3 i32.const 4 i32.add - local.get $5 - i32.add - local.tee $5 + 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 - i32.const 4 + local.get $1 + i32.const 16 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 + 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.tee $3 - local.get $3 - i32.load - i32.const -3 - i32.and - i32.store + 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.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 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end 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 + 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 - local.get $2 + i32.const 0 i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $2 - i32.load - i32.const -4 - i32.and + local.get $1 i32.const 4 i32.add + local.get $3 i32.add - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 + local.tee $3 + i32.const 2 + i32.store local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) - (local $2 i32) + local.get $3 + i32.store offset=1568 local.get $0 local.get $1 - i32.store - local.get $1 - if + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1248 + call $~lib/rt/itcms/__visit + i32.const 1456 + 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 - i32.eqz + 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 $~start + memory.size + i32.const 16 + i32.shl + i32.const 34336 + 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 + ) + (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 - i32.const 1120 - i32.const 295 - i32.const 14 - call $~lib/builtins/abort - unreachable + 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 34336 + 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/white - local.tee $2 - local.get $1 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne if local.get $0 - i32.const 20 - i32.sub i32.load offset=4 - i32.const 3 + local.tee $1 + i32.const -4 i32.and - local.tee $0 - local.get $2 + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white i32.eqz - i32.eq + local.get $1 + i32.const 3 + i32.and + i32.ne if - local.get $1 - call $~lib/rt/itcms/Object#makeGray + i32.const 0 + i32.const 1120 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34336 + 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/state - i32.const 1 - i32.eq + global.get $~lib/rt/itcms/total local.get $0 - i32.const 3 - i32.eq + 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 34336 + i32.ge_u if - local.get $1 - call $~lib/rt/itcms/Object#makeGray + 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 $export:class/test (param $0 i32) (result 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 1568 + 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 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1568 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + 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 + 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.load8_s offset=6 + drop + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 2 + i32.store16 offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 3 + i32.store8 offset=6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + 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 + local.get $0 + return end + i32.const 34368 + i32.const 34416 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) (func $class/testGenericInitializer (local $0 i32) @@ -1608,23 +1785,22 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 5 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1633,13 +1809,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 call $~lib/rt/itcms/__new @@ -1650,7 +1825,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1665,73 +1839,72 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 6 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 0 call $~lib/array/Array#set:buffer global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 32 i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 local.get $1 + i32.store offset=12 local.get $2 + local.get $1 call $~lib/array/Array#set:buffer global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 local.get $2 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 32 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 0 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -1739,10 +1912,10 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 call $~lib/array/Array#set:buffer global.get $~lib/memory/__stack_pointer i32.const 12 @@ -1757,192 +1930,4 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/rt/__visit_members (param $0 i32) - (local $1 i32) - block $folding-inner0 - block $invalid - block $~lib/array/Array - block $class/Animal - 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-inner0 $class/Animal $folding-inner0 $~lib/array/Array $invalid - end - return - end - return - end - return - end - 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 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 - local.tee $1 - i32.const 0 - i32.store - local.get $1 - 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 - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - ) - (func $~start - memory.size - i32.const 16 - i32.shl - i32.const 34336 - 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 - ) - (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 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1568 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store - local.get $1 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1568 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.store - local.get $0 - i32.load - drop - local.get $1 - local.get $0 - i32.store - local.get $0 - i32.load16_s offset=4 - drop - local.get $1 - local.get $0 - i32.store - local.get $0 - i32.load8_s offset=6 - drop - local.get $1 - local.get $0 - i32.store - local.get $0 - i32.const 1 - i32.store - local.get $1 - local.get $0 - i32.store - local.get $0 - i32.const 2 - i32.store16 offset=4 - local.get $1 - local.get $0 - i32.store - local.get $0 - i32.const 3 - i32.store8 offset=6 - local.get $1 - local.get $0 - i32.store offset=4 - local.get $1 - 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 - local.get $0 - return - end - i32.const 34368 - i32.const 34416 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) ) diff --git a/tests/compiler/comma.release.wat b/tests/compiler/comma.release.wat index 3e05eea00a..bf36eae36e 100644 --- a/tests/compiler/comma.release.wat +++ b/tests/compiler/comma.release.wat @@ -84,10 +84,9 @@ loop $for-loop|0 local.get $0 global.get $comma/a - local.tee $1 i32.lt_s if - local.get $1 + global.get $comma/a i32.const 1 i32.sub global.set $comma/a diff --git a/tests/compiler/const-folding.release.wat b/tests/compiler/const-folding.release.wat index bdd34a3c6c..2056595ad5 100644 --- a/tests/compiler/const-folding.release.wat +++ b/tests/compiler/const-folding.release.wat @@ -1,12 +1,16 @@ (module - (type $0 (func (param i64) (result i64))) - (type $1 (func)) + (type $0 (func)) + (type $1 (func (param i64) (result i64))) (global $const-folding/x (mut i32) (i32.const 0)) (memory $0 0) (export "x" (global $const-folding/x)) (export "test" (func $const-folding/test)) (export "memory" (memory $0)) (start $~start) + (func $~start + i32.const 30 + global.set $const-folding/x + ) (func $const-folding/test (param $0 i64) (result i64) local.get $0 i64.const 1 @@ -16,8 +20,4 @@ i64.shr_u i64.add ) - (func $~start - i32.const 30 - global.set $const-folding/x - ) ) diff --git a/tests/compiler/constructor.debug.wat b/tests/compiler/constructor.debug.wat index 5ab44a6260..9e1fc9db1d 100644 --- a/tests/compiler/constructor.debug.wat +++ b/tests/compiler/constructor.debug.wat @@ -1634,14 +1634,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 @@ -2422,12 +2425,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/constructor.release.wat b/tests/compiler/constructor.release.wat index ca81fa3733..0299cca344 100644 --- a/tests/compiler/constructor.release.wat +++ b/tests/compiler/constructor.release.wat @@ -1,12 +1,12 @@ (module (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 $2 (func (param i32 i32) (result i32))) + (type $3 (func (param i32 i32))) + (type $4 (func (result i32))) (type $5 (func (param i32 i32 i32 i32))) - (type $6 (func (param i32 i32 i64))) - (type $7 (func (param i32) (result i32))) + (type $6 (func (param i32) (result i32))) + (type $7 (func (param i32 i32 i64))) (import "env" "abort" (func $~lib/builtins/abort (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)) @@ -44,105 +44,6 @@ (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/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - global.get $constructor/emptyCtor - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $constructor/emptyCtorWithFieldInit - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $constructor/emptyCtorWithFieldNoInit - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $constructor/emptyCtorWithFieldAccess - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $constructor/none - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $constructor/justFieldInit - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $constructor/justFieldNoInit - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $constructor/ctorConditionallyReturnsThis - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $constructor/ctorFieldInitOrder - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 1248 - 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/__visit (param $0 i32) (local $1 i32) (local $2 i32) @@ -181,7 +82,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$152 + block $__inlined_func$~lib/rt/itcms/Object#unlink$153 local.get $1 i32.load offset=4 i32.const -4 @@ -205,7 +106,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$152 + br $__inlined_func$~lib/rt/itcms/Object#unlink$153 end local.get $1 i32.load offset=8 @@ -295,330 +196,422 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (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.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + (local $6 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u if - i32.const 0 - i32.const 1392 - i32.const 268 - i32.const 14 + i32.const 1056 + i32.const 1120 + i32.const 261 + i32.const 31 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - i32.const 0 + 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 270 - i32.const 14 + i32.const 461 + i32.const 29 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const 256 - i32.lt_u + local.get $4 + local.get $2 + i32.const 12 + i32.le_u if (result i32) - local.get $3 - i32.const 4 - i32.shr_u + i32.const 12 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 + local.get $2 + i32.const 19 + i32.add + i32.const -16 + i32.and 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 + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 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 + 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 + memory.size + local.tee $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.set $3 + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s 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 + memory.grow + i32.const 0 + i32.lt_s if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - i32.rotl - i32.and - i32.store + 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 - ) - (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 + 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 201 + i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 + local.get $2 + call $~lib/rt/tlsf/removeBlock + local.get $2 i32.load - local.tee $3 - i32.const 1 + local.set $6 + local.get $5 + i32.const 4 + i32.add + i32.const 15 i32.and - i32.eqz if i32.const 0 i32.const 1392 - i32.const 203 + i32.const 361 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load + local.get $6 i32.const -4 i32.and - i32.add - local.tee $4 - i32.load - local.tee $2 - i32.const 1 - i32.and + local.get $5 + i32.sub + local.tee $3 + i32.const 16 + i32.ge_u 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 + local.get $5 + local.get $6 + i32.const 2 i32.and - i32.add - local.tee $3 + i32.or i32.store - local.get $1 + local.get $2 i32.const 4 i32.add - local.get $1 - i32.load - i32.const -4 - i32.and + local.get $5 i32.add - local.tee $4 - i32.load - local.set $2 - end - local.get $3 - i32.const 2 - i32.and - if - local.get $1 + local.tee $5 + local.get $3 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 + 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 $3 + 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 $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 + i32.store offset=12 local.get $2 - i32.add - i32.ne + 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/object/Object#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 1556 + i32.lt_s + if + 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.store + local.get $0 + i32.eqz + if + 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 + ) + (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 234 + i32.const 268 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 + 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 $2 + local.get $3 i32.const 4 i32.shr_u else i32.const 31 i32.const 1073741820 - local.get $2 - local.get $2 + local.get $3 + local.get $3 i32.const 1073741820 i32.ge_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.tee $3 + local.tee $4 i32.const 7 i32.sub - local.set $5 - local.get $2 + 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 $2 + local.tee $3 i32.const 16 i32.lt_u - local.get $5 + local.get $2 i32.const 23 i32.lt_u i32.and @@ -626,197 +619,529 @@ if i32.const 0 i32.const 1392 - i32.const 251 + i32.const 284 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 + i32.load offset=8 + local.set $5 local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 + i32.load offset=4 + local.tee $4 if - local.get $3 - local.get $1 + 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 $5 - i32.const 4 - i32.shl local.get $2 - i32.add - i32.const 2 + i32.const 4 i32.shl + local.get $3 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 + 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/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - local.get $2 + (local $6 i32) local.get $1 - i64.extend_i32_u - i64.lt_u + i32.eqz if i32.const 0 i32.const 1392 - i32.const 382 + i32.const 201 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 + i32.load local.tee $3 + i32.const 1 + i32.and + i32.eqz if - local.get $3 - i32.const 4 - i32.add + 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 - 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 + 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 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.const 4 i32.add local.get $1 - i32.gt_u + 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 402 - i32.const 5 + 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.wrap_i64 - i32.const -16 + i32.const 2 + i32.or + i32.store + local.get $3 + i32.const -4 i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 + local.tee $2 + i32.const 12 i32.lt_u if - return + 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 2 - i32.and - local.get $3 - i32.const 8 + i32.const 4 i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or + 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 - i32.const 0 + local.get $3 i32.store offset=8 - local.get $1 - i32.const 4 - i32.add 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 - local.tee $3 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 $3 - i32.store offset=1568 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.tee $0 local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 ) - (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 + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $constructor/CtorFieldInitOrder + block $constructor/CtorFieldInitWithoutConstructor + block $constructor/CtorConditionallyReturnsThis + block $constructor/CtorConditionallyReturns + block $constructor/CtorReturns + block $constructor/JustFieldNoInit + block $constructor/JustFieldInit + block $constructor/None + block $constructor/EmptyCtorWithFieldAccess + block $constructor/EmptyCtorWithFieldNoInit + block $constructor/EmptyCtorWithFieldInit + block $constructor/EmptyCtor + 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 $constructor/EmptyCtor $constructor/EmptyCtorWithFieldInit $constructor/EmptyCtorWithFieldNoInit $constructor/EmptyCtorWithFieldAccess $constructor/None $constructor/JustFieldInit $constructor/JustFieldNoInit $constructor/CtorReturns $constructor/CtorConditionallyReturns $constructor/CtorConditionallyReturnsThis $constructor/CtorFieldInitWithoutConstructor $constructor/CtorFieldInitOrder $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 + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + unreachable + ) + (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/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 @@ -881,795 +1206,291 @@ i32.const 34336 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 34324 - 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 34324 - 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 34324 - 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.set $1 - 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 $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.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 - 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 $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 - 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 + (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 - i32.load - i32.const -4 - i32.and - i32.gt_u + local.get $1 + i64.extend_i32_u + i64.lt_u if i32.const 0 i32.const 1392 - i32.const 501 + i32.const 382 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 + local.get $1 + i32.const 19 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.const -16 i32.and - local.get $5 + i32.const 4 i32.sub + local.set $1 + local.get $0 + i32.load offset=1568 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 + local.get $3 i32.const 4 i32.add - local.get $5 - i32.add - local.tee $5 + 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 - i32.const 4 + local.get $1 + i32.const 16 i32.sub - i32.const 1 - i32.or - i32.store - local.get $4 - local.get $5 - call $~lib/rt/tlsf/insertBlock + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + local.set $1 + end 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 + local.get $0 + i32.const 1572 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 $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 - 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.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 - local.get $2 + i32.const 0 i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $2 - i32.load - i32.const -4 - i32.and + local.get $1 i32.const 4 i32.add + local.get $3 i32.add - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 local.get $0 - memory.fill local.get $1 + call $~lib/rt/tlsf/insertBlock ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $constructor/CtorFieldInitOrder - block $constructor/CtorFieldInitWithoutConstructor - block $constructor/CtorConditionallyReturnsThis - block $constructor/CtorConditionallyReturns - block $constructor/CtorReturns - block $constructor/JustFieldNoInit - block $constructor/JustFieldInit - block $constructor/None - block $constructor/EmptyCtorWithFieldAccess - block $constructor/EmptyCtorWithFieldNoInit - block $constructor/EmptyCtorWithFieldInit - block $constructor/EmptyCtor - 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 $constructor/EmptyCtor $constructor/EmptyCtorWithFieldInit $constructor/EmptyCtorWithFieldNoInit $constructor/EmptyCtorWithFieldAccess $constructor/None $constructor/JustFieldInit $constructor/JustFieldNoInit $constructor/CtorReturns $constructor/CtorConditionallyReturns $constructor/CtorConditionallyReturnsThis $constructor/CtorFieldInitWithoutConstructor $constructor/CtorFieldInitOrder $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end - return + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + global.get $constructor/emptyCtor + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $constructor/emptyCtorWithFieldInit + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $constructor/emptyCtorWithFieldNoInit + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $constructor/emptyCtorWithFieldAccess + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $constructor/none + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $constructor/justFieldInit + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $constructor/justFieldNoInit + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $constructor/ctorConditionallyReturnsThis + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $constructor/ctorFieldInitOrder + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 1248 + 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 - return + 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 - return end - unreachable + ) + (func $constructor/CtorFieldInitWithoutConstructor#constructor (result i32) + (local $0 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 1556 + i32.lt_s + if + i32.const 34352 + i32.const 34400 + 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 + i32.const 8 + 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/object/Object#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 10 + i32.store + 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 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 ) (func $~start (local $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 - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 1556 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store memory.size @@ -1704,19 +1525,18 @@ i32.store i32.const 1344 global.set $~lib/rt/itcms/fromSpace - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1556 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 4 call $~lib/rt/itcms/__new @@ -1735,25 +1555,23 @@ global.get $~lib/memory/__stack_pointer i32.const 1556 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 5 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 local.get $0 i32.const 1 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -1766,25 +1584,23 @@ global.get $~lib/memory/__stack_pointer i32.const 1556 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 6 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 local.get $0 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -1797,31 +1613,29 @@ global.get $~lib/memory/__stack_pointer i32.const 1556 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 7 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 local.get $0 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.const 1 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -1834,22 +1648,20 @@ global.get $~lib/memory/__stack_pointer i32.const 1556 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 8 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -1867,22 +1679,20 @@ global.get $~lib/memory/__stack_pointer i32.const 1556 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 9 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -1906,22 +1716,20 @@ global.get $~lib/memory/__stack_pointer i32.const 1556 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 10 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -1945,12 +1753,11 @@ global.get $~lib/memory/__stack_pointer i32.const 1556 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 12 call $~lib/rt/itcms/__new @@ -1966,12 +1773,11 @@ global.get $~lib/memory/__stack_pointer i32.const 1556 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 13 call $~lib/rt/itcms/__new @@ -2024,55 +1830,53 @@ global.get $~lib/memory/__stack_pointer i32.const 1556 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 15 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=4 - local.get $1 + local.get $0 i32.const 2 i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=8 - local.get $1 + local.get $0 i32.load offset=4 - local.set $2 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=8 + local.get $0 local.get $1 - local.get $2 - local.get $1 + local.get $0 i32.load offset=8 i32.add i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=4 - local.get $1 + local.get $0 i32.load offset=4 i32.const 1 i32.ne @@ -2085,9 +1889,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.load offset=8 i32.const 2 i32.ne @@ -2100,9 +1904,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.load i32.const 3 i32.ne @@ -2118,7 +1922,7 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 global.set $constructor/ctorFieldInitOrder global.get $~lib/memory/__stack_pointer global.get $constructor/ctorFieldInitOrder @@ -2152,132 +1956,293 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - global.get $constructor/ctorFieldInitOrder + global.get $~lib/memory/__stack_pointer + global.get $constructor/ctorFieldInitOrder + local.tee $0 + i32.store + local.get $0 + i32.load + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 112 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34352 + i32.const 34400 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (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 34324 + 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 - i32.store - local.get $0 - i32.load - i32.const 3 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1456 - i32.const 112 - i32.const 1 - call $~lib/builtins/abort - unreachable + 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 34324 + 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 34324 + 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/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 34352 - i32.const 34400 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $constructor/CtorFieldInitWithoutConstructor#constructor (result i32) - (local $0 i32) - (local $1 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 1556 - i32.lt_s - if - i32.const 34352 - i32.const 34400 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 8 - i32.const 14 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/object/Object#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 10 - i32.store - 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 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/object/Object#constructor (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1556 - i32.lt_s - if - i32.const 34352 - i32.const 34400 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - local.get $1 - i32.const 0 + 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 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store + global.set $~lib/rt/itcms/state end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 ) ) diff --git a/tests/compiler/declare.release.wat b/tests/compiler/declare.release.wat index 93d8dcee02..795c5041aa 100644 --- a/tests/compiler/declare.release.wat +++ b/tests/compiler/declare.release.wat @@ -3,9 +3,9 @@ (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 (param i32 i32 i32 i32))) (import "declare" "my.externalFunction" (func $declare/my.externalFunction)) + (import "declare" "externalFunction" (func $declare/externalFunction)) (memory $0 1) (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") diff --git a/tests/compiler/do.debug.wat b/tests/compiler/do.debug.wat index 1327ed8a52..cb3313e590 100644 --- a/tests/compiler/do.debug.wat +++ b/tests/compiler/do.debug.wat @@ -2028,14 +2028,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 @@ -3024,12 +3027,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/do.release.wat b/tests/compiler/do.release.wat index 59a6b45e99..09a5e6e6a9 100644 --- a/tests/compiler/do.release.wat +++ b/tests/compiler/do.release.wat @@ -1,8 +1,8 @@ (module (type $0 (func)) - (type $1 (func (param i32))) - (type $2 (func (param i32 i32))) - (type $3 (func (result i32))) + (type $1 (func (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 i32 i32))) (type $6 (func (param i32 i32 i64))) @@ -34,132 +34,347 @@ (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 + (func $~lib/rt/itcms/step (result i32) (local $0 i32) (local $1 i32) - i32.const 1280 - call $~lib/rt/itcms/__visit - i32.const 1088 - 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 + (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 - i32.const 1152 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + 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 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - local.get $0 + 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 - 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 1152 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable + 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 - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$125 - local.get $1 + 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 - local.tee $0 - i32.eqz + i32.eq if - local.get $1 - i32.load offset=8 - i32.eqz - local.get $1 - i32.const 34264 - i32.lt_u + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 34264 + 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 - i32.eqz - if - i32.const 0 - i32.const 1152 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable + 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 - br $__inlined_func$~lib/rt/itcms/Object#unlink$125 + 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 - local.get $1 - i32.load offset=8 - local.tee $2 + 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 1152 - i32.const 132 - i32.const 16 + i32.const 229 + i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 + i32.const 34264 + 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 34264 + 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 1424 + 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) + (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 1152 + 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 34264 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1152 + 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 1152 + 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 @@ -231,6 +446,70 @@ global.set $~lib/rt/itcms/visitCount end ) + (func $do/Ref#constructor (result i32) + (local $0 i32) + (local $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 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 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + 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 1496 + i32.lt_s + br_if $folding-inner0 + 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 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 + return + end + i32.const 34288 + i32.const 34336 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -623,119 +902,90 @@ 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 1424 - 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 1424 - 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 + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $do/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 $do/Ref $invalid + end + return + end + return + end + return + end + local.get $0 i32.load - local.set $4 - local.get $5 - local.set $1 + call $~lib/rt/itcms/__visit + return end - else + return + end + unreachable + ) + (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 - i32.const 1572 - i32.add local.get $1 - i32.gt_u - if + 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 $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1424 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + 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 i32.const 0 - i32.const 1424 - 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) @@ -817,323 +1067,162 @@ i32.const 34272 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 + (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 1424 + 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 - 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 34264 - 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 + i32.const 1424 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq 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 1152 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 34264 - 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 34264 - 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.set $1 - 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 1424 - 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 $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return + local.get $3 + i32.load + local.set $4 + local.get $5 + local.set $1 end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 + else local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 1572 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1424 + 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/searchBlock (param $0 i32) (result i32) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) (local $1 i32) - (local $2 i32) - local.get $0 + i32.const 1280 + call $~lib/rt/itcms/__visit + i32.const 1088 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 i32.load offset=4 - i32.const -2 + i32.const -4 i32.and - local.tee $1 - if (result i32) + local.set $0 + loop $while-continue|0 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) + i32.ne + if local.get $0 - local.get $1 - i32.ctz - local.tee $2 - i32.const 2 - i32.shl - i32.add i32.load offset=4 - local.tee $1 - i32.eqz + i32.const 3 + i32.and + i32.const 3 + i32.ne if i32.const 0 - i32.const 1424 - i32.const 347 - i32.const 18 + i32.const 1152 + i32.const 160 + i32.const 16 call $~lib/builtins/abort unreachable end local.get $0 - local.get $1 - i32.ctz - local.get $2 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl + i32.const 20 i32.add - i32.load offset=96 - else - i32.const 0 + 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 ) @@ -1158,12 +1247,8 @@ i32.eqz if global.get $~lib/rt/itcms/total - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 + i32.const 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold @@ -1175,8 +1260,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $1 - local.get $1 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1198,12 +1282,11 @@ local.tee $1 i32.eqz if - memory.size - local.tee $1 i32.const 4 local.get $2 i32.load offset=1568 - local.get $1 + memory.size + local.tee $1 i32.const 16 i32.shl i32.const 4 @@ -1216,7 +1299,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.set $3 + local.get $1 + local.get $3 local.get $1 local.get $3 i32.gt_s @@ -1371,6 +1456,9 @@ memory.fill local.get $0 ) + (func $~start + call $start:do + ) (func $start:do (local $0 i32) (local $1 i32) @@ -1517,11 +1605,10 @@ local.tee $0 i32.const 10 i32.ne + local.tee $1 br_if $do-loop|02 end - local.get $0 - i32.const 10 - i32.ne + local.get $1 if i32.const 0 i32.const 1056 @@ -1539,11 +1626,10 @@ local.tee $0 i32.const 10 i32.ne + local.tee $1 br_if $do-loop|03 end - local.get $0 - i32.const 10 - i32.ne + local.get $1 if i32.const 0 i32.const 1056 @@ -1554,21 +1640,20 @@ end i32.const 0 local.set $0 - loop $do-loop|07 + loop $do-loop|09 local.get $0 i32.const 1 i32.add local.tee $0 i32.const 10 i32.ne + local.tee $1 i32.const 0 local.get $0 select - br_if $do-loop|07 + br_if $do-loop|09 end - local.get $0 - i32.const 10 - i32.ne + local.get $1 if i32.const 0 i32.const 1056 @@ -1581,7 +1666,7 @@ local.set $0 i32.const 0 local.set $1 - loop $do-loop|08 + loop $do-loop|011 local.get $0 i32.const 1 i32.add @@ -1589,7 +1674,7 @@ i32.const 10 i32.ne if - loop $do-loop|110 + loop $do-loop|113 local.get $1 i32.const 1 i32.add @@ -1599,10 +1684,10 @@ i32.const 0 local.get $1 select - br_if $do-loop|110 + br_if $do-loop|113 end local.get $0 - br_if $do-loop|08 + br_if $do-loop|011 end end local.get $0 @@ -1669,15 +1754,14 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store i32.const 0 local.set $1 - local.get $0 + global.get $~lib/memory/__stack_pointer call $do/Ref#constructor i32.store - loop $do-loop|09 + loop $do-loop|05 local.get $1 i32.const 1 i32.add @@ -1694,7 +1778,7 @@ i32.store end local.get $0 - br_if $do-loop|09 + br_if $do-loop|05 end local.get $1 i32.const 10 @@ -1729,17 +1813,16 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store i32.const 0 local.set $0 - local.get $1 + global.get $~lib/memory/__stack_pointer call $do/Ref#constructor local.tee $1 i32.store - loop $do-loop|010 - block $do-break|03 + loop $do-loop|08 + block $do-break|06 local.get $0 i32.const 1 i32.add @@ -1749,10 +1832,10 @@ if i32.const 0 local.set $1 - br $do-break|03 + br $do-break|06 end call $do/Ref#constructor - br_if $do-loop|010 + br_if $do-loop|08 end end local.get $0 @@ -1821,107 +1904,4 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $do/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 $do/Ref $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - return - end - return - end - unreachable - ) - (func $~start - call $start:do - ) - (func $do/Ref#constructor (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 - global.get $~lib/memory/__stack_pointer - i32.const 1496 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1496 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - local.get $2 - 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 $1 - 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 - return - end - i32.const 34288 - i32.const 34336 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) ) diff --git a/tests/compiler/duplicate-fields.debug.wat b/tests/compiler/duplicate-fields.debug.wat index 79b3b9b121..752c8deba5 100644 --- a/tests/compiler/duplicate-fields.debug.wat +++ b/tests/compiler/duplicate-fields.debug.wat @@ -1628,14 +1628,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 @@ -2407,12 +2410,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -2423,12 +2422,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $duplicate-fields/B2~visit (param $0 i32) (param $1 i32) (local $2 i32) @@ -2437,12 +2432,8 @@ call $duplicate-fields/A2~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/duplicate-fields.release.wat b/tests/compiler/duplicate-fields.release.wat index adac54bdc2..93f8386acc 100644 --- a/tests/compiler/duplicate-fields.release.wat +++ b/tests/compiler/duplicate-fields.release.wat @@ -1,7 +1,7 @@ (module - (type $0 (func)) - (type $1 (func (param i32))) - (type $2 (func (param i32 i32))) + (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 i32 i32 i32))) (type $5 (func (param i32 i32 i64))) @@ -36,194 +36,319 @@ (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/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - global.get $duplicate-fields/foo - local.tee $0 + (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 - local.get $0 - call $~lib/rt/itcms/__visit + i32.const 1056 + i32.const 1120 + i32.const 261 + i32.const 31 + call $~lib/builtins/abort + unreachable end - global.get $duplicate-fields/raz - local.tee $0 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 1248 - 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 + 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.const 1120 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.gt_s + br_if $do-loop|0 end - local.get $0 - i32.const 20 + 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 - call $~lib/rt/__visit_members - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 + global.set $~lib/rt/itcms/threshold end end - ) - (func $~lib/rt/itcms/Object#makeGray (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) + 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 - global.get $~lib/rt/itcms/iter - i32.eq + i32.const 16 + i32.add + local.tee $2 + i32.const 1073741820 + i32.gt_u 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 + i32.const 1056 + i32.const 1392 + i32.const 461 + i32.const 29 + call $~lib/builtins/abort + unreachable end - block $__inlined_func$~lib/rt/itcms/Object#unlink$136 - local.get $0 - i32.load offset=4 - i32.const -4 + 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 - local.tee $1 - i32.eqz - if - local.get $0 - i32.load offset=8 - i32.eqz - local.get $0 - i32.const 34320 + i32.const 4 + i32.sub + end + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + local.get $5 + i32.const 256 + i32.ge_u + if (result i32) + local.get $5 + i32.const 536870910 i32.lt_u - i32.and - i32.eqz + 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 + memory.size + local.tee $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.set $3 + local.get $2 + local.get $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 - 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$136 end - local.get $0 - i32.load 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 1120 - i32.const 132 + i32.const 1392 + i32.const 499 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) + 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 $1 - i32.const 1504 + 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.gt_u - if - i32.const 1248 - i32.const 1312 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.const 1508 + i32.const -4 + i32.and i32.add + local.tee $3 + local.get $3 i32.load - i32.const 32 + i32.const -3 i32.and + i32.store end - local.set $3 local.get $2 - i32.load offset=8 - local.set $1 + local.get $1 + i32.store offset=12 + local.get $2 local.get $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select + 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 $0 - local.get $1 + local.get $2 + local.get $3 i32.store offset=8 - local.get $1 - local.get $0 - local.get $1 + 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 - local.get $0 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/__visit (param $0 i32) local.get $0 @@ -249,6 +374,61 @@ global.set $~lib/rt/itcms/visitCount end ) + (func $duplicate-fields/A2#set:bar (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $1 + if + 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 + end + ) (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -641,464 +821,184 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + (local $2 i32) (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 + global.get $~lib/rt/itcms/iter + i32.eq if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz if i32.const 0 - i32.const 1392 - i32.const 389 - i32.const 16 + i32.const 1120 + i32.const 148 + i32.const 30 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 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$139 + 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 34320 + 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$139 end - else local.get $0 - i32.const 1572 - i32.add + 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 1504 + i32.load i32.gt_u if - i32.const 0 - i32.const 1392 - i32.const 402 - i32.const 5 + i32.const 1248 + i32.const 1312 + i32.const 21 + i32.const 28 call $~lib/builtins/abort unreachable end + local.get $1 + i32.const 2 + i32.shl + i32.const 1508 + i32.add + i32.load + i32.const 32 + i32.and end + local.set $3 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.load offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz i32.const 2 - i32.and local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or + select + local.get $2 i32.or - i32.store - local.get $1 - i32.const 0 i32.store offset=4 + local.get $0 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 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $2 + local.get $0 + i32.store offset=8 ) - (func $~lib/rt/tlsf/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 34320 - i32.const 0 - i32.store - i32.const 35888 - 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 34320 - 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 + (func $~lib/rt/__visit_members (param $0 i32) + block $folding-inner0 + block $invalid + block $duplicate-fields/A3 + block $duplicate-fields/B3 + block $duplicate-fields/B2 + block $duplicate-fields/Foo + block $duplicate-fields/B + block $duplicate-fields/A + 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-inner0 $duplicate-fields/A $duplicate-fields/B $folding-inner0 $duplicate-fields/Foo $duplicate-fields/B2 $duplicate-fields/B3 $duplicate-fields/A3 $invalid + end + return + end + return + end + return + end + return + end + return + end + return + end local.get $0 - i32.const 4 - i32.shl - local.get $1 - i32.add - i32.const 2 - i32.shl - i32.const 34320 - i32.add - i32.const 0 - i32.store offset=96 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|1 + i32.load + call $~lib/rt/itcms/__visit + br $folding-inner0 end + return end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 + return end + unreachable end - i32.const 34320 - i32.const 35892 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34320 - global.set $~lib/rt/tlsf/ROOT + local.get $0 + i32.load + call $~lib/rt/itcms/__visit ) - (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 34320 - 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 34320 - 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 34320 - 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.set $1 - 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 $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 i32.const 256 @@ -1226,440 +1126,261 @@ 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 $~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 - 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 + i32.const 34320 + i32.const 0 + i32.store + i32.const 35888 + 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 34320 + 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 - 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 + local.get $0 + i32.const 4 + i32.shl + local.get $1 i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$69 + i32.const 2 + i32.shl + i32.const 34320 + 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 - local.get $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 end - global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl + local.get $0 + i32.const 1 i32.add - global.set $~lib/rt/itcms/threshold + local.set $0 + br $for-loop|0 end end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.set $4 - local.get $0 - i32.const 16 - i32.add - local.tee $2 - i32.const 1073741820 - i32.gt_u + i32.const 34320 + i32.const 35892 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34320 + global.set $~lib/rt/tlsf/ROOT + ) + (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 1056 + i32.const 0 i32.const 1392 - i32.const 461 - i32.const 29 + i32.const 382 + i32.const 14 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 + 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 - 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 + local.get $3 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 + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 - i32.const 499 + i32.const 389 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 + local.get $1 + i32.const 16 i32.sub - i32.const 1 - i32.or - i32.store - local.get $4 - local.get $5 - call $~lib/rt/tlsf/insertBlock + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + local.set $1 + end 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 + local.get $0 + i32.const 1572 i32.add - local.tee $3 - local.get $3 - i32.load - i32.const -3 - i32.and - i32.store + 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.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 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end 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 + 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 - local.get $2 + i32.const 0 i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $2 - i32.load - i32.const -4 - i32.and + local.get $1 i32.const 4 i32.add + local.get $3 i32.add - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 + local.tee $3 + i32.const 2 + i32.store local.get $0 - memory.fill - local.get $1 - ) - (func $duplicate-fields/A2#set:bar (param $0 i32) (param $1 i32) - (local $2 i32) + local.get $3 + i32.store offset=1568 local.get $0 local.get $1 - i32.store - local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + global.get $duplicate-fields/foo + local.tee $0 if 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.tee $2 + call $~lib/rt/itcms/__visit + end + global.get $duplicate-fields/raz + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 1248 + 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.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq + i32.ne if local.get $0 - i32.const 20 - i32.sub i32.load offset=4 i32.const 3 i32.and - local.tee $0 - local.get $2 - i32.eqz - i32.eq + i32.const 3 + i32.ne 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 + 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/__visit_members (param $0 i32) - (local $1 i32) - block $folding-inner0 - block $invalid - block $duplicate-fields/A3 - block $duplicate-fields/B3 - block $duplicate-fields/B2 - block $duplicate-fields/Foo - block $duplicate-fields/B - block $duplicate-fields/A - 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-inner0 $duplicate-fields/A $duplicate-fields/B $folding-inner0 $duplicate-fields/Foo $duplicate-fields/B2 $duplicate-fields/B3 $duplicate-fields/A3 $invalid - end - return - end - return - end - return - end - return - end - return - end - return - end - local.get $0 - i32.load - local.tee $1 - if - local.get $1 - call $~lib/rt/itcms/__visit - end - br $folding-inner0 - end - return - end - return - end - unreachable - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - ) - (func $~start - (local $0 i32) + (func $~start + (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1670,7 +1391,6 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store memory.size @@ -1705,7 +1425,7 @@ i32.store i32.const 1344 global.set $~lib/rt/itcms/fromSpace - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -1714,26 +1434,25 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 5 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 local.get $0 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -1742,13 +1461,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store local.get $0 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 4 call $~lib/rt/itcms/__new @@ -1756,23 +1474,21 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=4 local.get $0 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.const 10 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1812,29 +1528,27 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 7 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store offset=4 local.get $1 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 i32.const 1 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -1850,13 +1564,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 8 call $~lib/rt/itcms/__new @@ -1869,7 +1582,6 @@ i32.const 0 call $duplicate-fields/A2#set:bar global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1885,16 +1597,15 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 local.get $0 i32.eqz if - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 6 call $~lib/rt/itcms/__new @@ -1920,7 +1631,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1968,20 +1678,19 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.const 9 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -1990,13 +1699,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store local.get $0 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.const 10 call $~lib/rt/itcms/__new @@ -2004,10 +1712,10 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.tee $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2016,13 +1724,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 call $~lib/rt/itcms/__new @@ -2033,7 +1740,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -2052,7 +1758,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -2084,4 +1789,264 @@ call $~lib/builtins/abort unreachable ) + (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 34320 + 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 34320 + 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 34320 + 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 + ) ) diff --git a/tests/compiler/duplicate-function-in-scope.json b/tests/compiler/duplicate-function-in-scope.json new file mode 100644 index 0000000000..be8607a6b1 --- /dev/null +++ b/tests/compiler/duplicate-function-in-scope.json @@ -0,0 +1,8 @@ +{ + "asc_flags": [], + "stderr": [ + "EOF", + "TS2300: Duplicate identifier 'inner'.", + "TS2393: Duplicate function implementation." + ] +} diff --git a/tests/compiler/duplicate-function-in-scope.ts b/tests/compiler/duplicate-function-in-scope.ts new file mode 100644 index 0000000000..7d91e2abfc --- /dev/null +++ b/tests/compiler/duplicate-function-in-scope.ts @@ -0,0 +1,16 @@ +// Duplicate named function declarations in the same scope should +// produce a diagnostic instead of crashing the compiler. + +export function testMixed1(): void { + const inner = function (): void {}; + function inner(): void {} + inner(); +} + +export function test(): void { + function inner(): void {} + function inner(): void {} + inner(); +} + +ERROR("EOF"); diff --git a/tests/compiler/empty-exportruntime.debug.wat b/tests/compiler/empty-exportruntime.debug.wat index e0441f24cb..e95efa75fe 100644 --- a/tests/compiler/empty-exportruntime.debug.wat +++ b/tests/compiler/empty-exportruntime.debug.wat @@ -1627,14 +1627,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 @@ -2384,12 +2387,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/empty-exportruntime.release.wat b/tests/compiler/empty-exportruntime.release.wat index 4e5d52200a..422cd0bc5a 100644 --- a/tests/compiler/empty-exportruntime.release.wat +++ b/tests/compiler/empty-exportruntime.release.wat @@ -4,8 +4,8 @@ (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 $5 (func (result i32))) + (type $6 (func (param i32 i32 i64))) (type $7 (func (param i32) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) @@ -42,190 +42,6 @@ (export "__rtti_base" (global $~lib/rt/__rtti_base)) (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 1056 - call $~lib/rt/itcms/__visit - i32.const 1456 - call $~lib/rt/itcms/__visit - i32.const 1520 - 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#unlink (param $0 i32) - (local $1 i32) - 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 34356 - 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 - return - end - local.get $0 - i32.load offset=8 - local.tee $0 - 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 $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 - ) - (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 - local.get $0 - call $~lib/rt/itcms/Object#unlink - global.get $~lib/rt/itcms/toSpace - local.set $1 - local.get $0 - i32.load offset=12 - local.tee $2 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $2 - i32.const 1568 - i32.load - i32.gt_u - if - i32.const 1248 - i32.const 1312 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 2 - i32.shl - i32.const 1572 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $1 - i32.load offset=8 - local.set $2 - local.get $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $1 - 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 - ) (func $~lib/rt/itcms/__visit (param $0 i32) local.get $0 i32.eqz @@ -250,76 +66,336 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $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 + 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 + i32.const 34356 + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 34356 + 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 34356 + 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 34356 + 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/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 @@ -642,119 +718,209 @@ 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 + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + 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 34356 + 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 + return + end + local.get $0 + i32.load offset=8 + local.tee $0 + i32.eqz if i32.const 0 - i32.const 1392 - i32.const 382 - i32.const 14 + i32.const 1120 + i32.const 132 + i32.const 16 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 + 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 + ) + (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 + ) + (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 $3 + local.get $1 i32.const 4 - i32.add + i32.shr_u + local.set $1 + else local.get $1 - i32.gt_u + i32.const 536870910 + i32.lt_u if - i32.const 0 - i32.const 1392 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable + 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 $3 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.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 + local.set $2 end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and local.get $1 - i32.sub - local.tee $3 - i32.const 20 + 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 1392 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable end - local.get $1 - local.get $4 + local.get $0 + local.get $2 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.shl i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 - local.get $0 + i32.load offset=4 + i32.const -1 local.get $1 - call $~lib/rt/tlsf/insertBlock + 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/tlsf/initialize (local $0 i32) @@ -815,417 +981,417 @@ 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 34368 - i32.const 35940 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34368 - 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 - i32.const 34356 - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 34356 - 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 + local.set $1 + br $for-loop|1 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 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + end + i32.const 34368 + i32.const 35940 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34368 + global.set $~lib/rt/tlsf/ROOT + ) + (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/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1248 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + i32.const 1456 + call $~lib/rt/itcms/__visit + i32.const 1520 + 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 - 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.const 3 i32.ne if i32.const 0 i32.const 1120 - i32.const 229 - i32.const 20 + i32.const 160 + i32.const 16 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 34356 - 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 34356 - 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.set $1 - 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 $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return + 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 - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state end - i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u + (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 - i32.const 4 - i32.shr_u - local.set $1 + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + global.get $~lib/rt/itcms/toSpace + local.set $1 + local.get $0 + i32.load offset=12 + local.tee $2 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 else - local.get $1 - i32.const 536870910 - i32.lt_u + local.get $2 + i32.const 1568 + i32.load + i32.gt_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 + i32.const 1248 + i32.const 1312 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable 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 + i32.const 2 + i32.shl + i32.const 1572 + i32.add + i32.load + i32.const 32 + i32.and end + local.set $3 local.get $1 - i32.const 16 - i32.lt_u + i32.load offset=8 + local.set $2 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $1 + i32.or + i32.store offset=4 + local.get $0 local.get $2 - i32.const 23 - i32.lt_u + 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 + ) + (func $~start + memory.size + i32.const 16 + i32.shl + i32.const 34356 + 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 + ) + (func $~lib/rt/itcms/__unpin (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 i32.eqz if - i32.const 0 - i32.const 1392 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable + return end local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add + i32.const 20 + i32.sub + local.tee $1 i32.load offset=4 - i32.const -1 - local.get $1 - i32.shl + i32.const 3 i32.and - local.tee $1 - if (result i32) + i32.const 3 + i32.ne + if + i32.const 1520 + i32.const 1120 + i32.const 352 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + else + local.get $1 + call $~lib/rt/itcms/Object#unlink + global.get $~lib/rt/itcms/fromSpace + local.tee $0 + i32.load offset=8 + 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 + 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 + local.get $0 + local.get $1 + i32.store offset=8 + end + ) + (func $~lib/rt/itcms/__pin (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + if local.get $0 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.eq + if + i32.const 1456 + i32.const 1120 + i32.const 338 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/rt/itcms/Object#unlink + global.get $~lib/rt/itcms/pinSpace + local.tee $3 + i32.load offset=8 + local.set $2 + local.get $1 + local.get $3 + i32.const 3 + i32.or + i32.store offset=4 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 + i32.store offset=8 local.get $2 - i32.const 1 - i32.add - i32.shl + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 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 + i32.or + i32.store offset=4 + local.get $3 + local.get $1 + i32.store offset=8 end + local.get $0 ) (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1260,12 +1426,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 @@ -1277,8 +1439,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1330,8 +1491,6 @@ local.tee $2 i32.eqz if - memory.size - local.tee $2 local.get $5 i32.const 256 i32.ge_u @@ -1359,7 +1518,8 @@ i32.const 4 local.get $4 i32.load offset=1568 - local.get $2 + memory.size + local.tee $2 i32.const 16 i32.shl i32.const 4 @@ -1373,7 +1533,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.set $3 + local.get $2 + local.get $3 local.get $2 local.get $3 i32.gt_s @@ -1545,116 +1707,6 @@ memory.fill local.get $1 ) - (func $~lib/rt/itcms/__pin (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - if - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.eq - if - i32.const 1456 - i32.const 1120 - i32.const 338 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - local.get $1 - call $~lib/rt/itcms/Object#unlink - global.get $~lib/rt/itcms/pinSpace - local.tee $3 - i32.load offset=8 - local.set $2 - local.get $1 - local.get $3 - i32.const 3 - i32.or - 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 - local.get $3 - local.get $1 - i32.store offset=8 - end - local.get $0 - ) - (func $~lib/rt/itcms/__unpin (param $0 i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.eqz - if - return - end - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 1520 - i32.const 1120 - i32.const 352 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - else - local.get $1 - call $~lib/rt/itcms/Object#unlink - global.get $~lib/rt/itcms/fromSpace - local.tee $0 - i32.load offset=8 - 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 - 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 - local.get $0 - local.get $1 - i32.store offset=8 - end - ) (func $~lib/rt/itcms/__collect global.get $~lib/rt/itcms/state i32.const 0 @@ -1690,67 +1742,4 @@ i32.add global.set $~lib/rt/itcms/threshold ) - (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 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - return - end - unreachable - ) - (func $~start - memory.size - i32.const 16 - i32.shl - i32.const 34356 - 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 - ) ) diff --git a/tests/compiler/empty-new.debug.wat b/tests/compiler/empty-new.debug.wat index dc8a97157f..424bdfc617 100644 --- a/tests/compiler/empty-new.debug.wat +++ b/tests/compiler/empty-new.debug.wat @@ -1620,14 +1620,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + drop global.get $~lib/rt/itcms/total - i64.extend_i32_u i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 + i32.const 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold @@ -2280,12 +2283,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/empty-new.release.wat b/tests/compiler/empty-new.release.wat index 6b99e2fa8c..f4381da8f1 100644 --- a/tests/compiler/empty-new.release.wat +++ b/tests/compiler/empty-new.release.wat @@ -3,9 +3,9 @@ (type $1 (func (param i32))) (type $2 (func (param i32 i32))) (type $3 (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))) + (type $4 (func (param i32) (result i32))) + (type $5 (func (param i32 i32 i64))) + (type $6 (func (result i32))) (import "env" "abort" (func $~lib/builtins/abort (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)) @@ -31,51 +31,6 @@ (data $8 (i32.const 1440) "\04\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 1248 - 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/__visit (param $0 i32) (local $1 i32) (local $2 i32) @@ -620,6 +575,168 @@ i32.or i32.store offset=4 ) + (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 + ) + (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 $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $1 + 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 $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 + i32.const 0 + end + end + ) + (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 34240 + i32.const 0 + i32.store + i32.const 35808 + 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 34240 + 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 34240 + 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 34240 + i32.const 35812 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34240 + global.set $~lib/rt/tlsf/ROOT + ) (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) (local $3 i32) (local $4 i32) @@ -734,85 +851,85 @@ local.get $1 call $~lib/rt/tlsf/insertBlock ) - (func $~lib/rt/tlsf/initialize + (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - memory.size + i32.const 1248 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace 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 34240 - i32.const 0 - i32.store - i32.const 35808 - i32.const 0 - i32.store - loop $for-loop|0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|0 local.get $0 - i32.const 23 - i32.lt_u + local.get $1 + i32.ne if local.get $0 - i32.const 2 - i32.shl - i32.const 34240 - i32.add - i32.const 0 - i32.store offset=4 - i32.const 0 - local.set $1 - loop $for-loop|1 - local.get $1 + 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 - i32.lt_u - if - local.get $0 - i32.const 4 - i32.shl - local.get $1 - i32.add - i32.const 2 - i32.shl - i32.const 34240 - 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 + call $~lib/builtins/abort + unreachable end local.get $0 - i32.const 1 + 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 $for-loop|0 + br $while-continue|0 end end - i32.const 34240 - i32.const 35812 + ) + (func $~start memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34240 - global.set $~lib/rt/tlsf/ROOT + i32.const 16 + i32.shl + i32.const 34228 + 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 $~lib/rt/itcms/__new ) (func $~lib/rt/itcms/step (result i32) (local $0 i32) @@ -1024,7 +1141,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1057,7 +1173,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1066,74 +1181,16 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + 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 $2 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $1 - 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 $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 - i32.const 0 - end - end - ) (func $~lib/rt/itcms/__new (local $0 i32) (local $1 i32) @@ -1155,12 +1212,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 @@ -1172,14 +1225,13 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $0 + 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 - local.get $0 i32.add global.set $~lib/rt/itcms/threshold end @@ -1195,12 +1247,11 @@ local.tee $0 i32.eqz if - memory.size - local.tee $0 i32.const 4 local.get $1 i32.load offset=1568 - local.get $0 + memory.size + local.tee $0 i32.const 16 i32.shl i32.const 4 @@ -1213,7 +1264,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $2 + local.set $2 + local.get $0 + local.get $2 local.get $0 local.get $2 i32.gt_s @@ -1366,68 +1419,4 @@ i32.const 0 memory.fill ) - (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 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - return - end - unreachable - ) - (func $~start - memory.size - i32.const 16 - i32.shl - i32.const 34228 - 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 $~lib/rt/itcms/__new - ) ) diff --git a/tests/compiler/enum-to-string-error.json b/tests/compiler/enum-to-string-error.json new file mode 100644 index 0000000000..1165029fc1 --- /dev/null +++ b/tests/compiler/enum-to-string-error.json @@ -0,0 +1,7 @@ +{ + "asc_flags": [], + "stderr": [ + "TS2476: A const enum member can only be accessed using a string literal.", + "EOF" + ] +} diff --git a/tests/compiler/enum-to-string-error.ts b/tests/compiler/enum-to-string-error.ts new file mode 100644 index 0000000000..cbb58deb38 --- /dev/null +++ b/tests/compiler/enum-to-string-error.ts @@ -0,0 +1,9 @@ +const enum CE { + CE0, + CE1, + CE2, +} + +assert(CE[CE.CE0] === "CE0"); + +ERROR("EOF"); \ No newline at end of file diff --git a/tests/compiler/enum-to-string.debug.wat b/tests/compiler/enum-to-string.debug.wat new file mode 100644 index 0000000000..0f60906aa8 --- /dev/null +++ b/tests/compiler/enum-to-string.debug.wat @@ -0,0 +1,613 @@ +(module + (type $0 (func (param i32) (result i32))) + (type $1 (func)) + (type $2 (func (param i32 i32 i32 i32 i32) (result i32))) + (type $3 (func (param i32 i32 i32 i32))) + (type $4 (func (param i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (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/native/ASC_SHRINK_LEVEL 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)) + (global $enum-to-string/EnumWithInit.E2 i32 (i32.const 4)) + (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/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) "<\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)) + (start $~start) + (func $enum-to-string/Enum#__enum_to_string (param $0 i32) (result i32) + global.get $enum-to-string/Enum.E2 + local.get $0 + i32.eq + if + i32.const 32 + return + end + global.get $enum-to-string/Enum.E1 + local.get $0 + i32.eq + if + i32.const 64 + return + end + global.get $enum-to-string/Enum.E0 + local.get $0 + i32.eq + if + i32.const 96 + return + 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/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 $enum-to-string/InlineEnum#__enum_to_string (param $0 i32) (result i32) + i32.const 2 + local.get $0 + i32.eq + if + i32.const 192 + return + end + i32.const 1 + local.get $0 + i32.eq + if + i32.const 224 + return + end + i32.const 0 + local.get $0 + i32.eq + if + i32.const 256 + return + end + unreachable + ) + (func $enum-to-string/EnumWithInit#__enum_to_string (param $0 i32) (result i32) + global.get $enum-to-string/EnumWithInit.E2 + local.get $0 + i32.eq + if + i32.const 32 + return + end + global.get $enum-to-string/EnumWithInit.E1 + local.get $0 + i32.eq + if + i32.const 64 + return + end + global.get $enum-to-string/EnumWithInit.E0 + local.get $0 + i32.eq + if + i32.const 96 + return + end + unreachable + ) + (func $enum-to-string/EnumWithDup#__enum_to_string (param $0 i32) (result i32) + global.get $enum-to-string/EnumWithDup.E2 + local.get $0 + i32.eq + if + i32.const 32 + return + end + global.get $enum-to-string/EnumWithDup.E1 + local.get $0 + i32.eq + if + i32.const 64 + return + end + global.get $enum-to-string/EnumWithDup.E0 + local.get $0 + i32.eq + if + i32.const 96 + return + end + unreachable + ) + (func $~start + call $start:enum-to-string + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 33056 + i32.const 33104 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/string/String.__eq (param $left i32) (param $right i32) (result i32) + (local $leftLength 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 $left + local.get $right + i32.eq + if + i32.const 1 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + local.get $left + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $right + i32.const 0 + i32.eq + end + if + i32.const 0 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + local.get $left + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/string/String#get:length + local.set $leftLength + local.get $leftLength + local.get $right + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/string/String#get:length + i32.ne + if + i32.const 0 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + local.get $left + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + i32.const 0 + local.get $right + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + local.get $leftLength + call $~lib/util/string/compareImpl + i32.eqz + 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 $start:enum-to-string + (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 + global.get $enum-to-string/Enum.E0 + call $enum-to-string/Enum#__enum_to_string + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 96 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 7 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $enum-to-string/Enum.E1 + call $enum-to-string/Enum#__enum_to_string + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 64 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 8 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $enum-to-string/Enum.E2 + call $enum-to-string/Enum#__enum_to_string + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 32 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 9 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $enum-to-string/Enum.E2 + global.set $enum-to-string/v + global.get $enum-to-string/v + call $enum-to-string/Enum#__enum_to_string + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 32 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 12 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $enum-to-string/InlineEnum#__enum_to_string + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 256 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 21 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + call $enum-to-string/InlineEnum#__enum_to_string + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 224 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 22 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + call $enum-to-string/InlineEnum#__enum_to_string + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 192 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 23 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $enum-to-string/EnumWithInit.E0 + call $enum-to-string/EnumWithInit#__enum_to_string + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 96 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 31 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $enum-to-string/EnumWithInit.E1 + call $enum-to-string/EnumWithInit#__enum_to_string + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 64 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 32 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $enum-to-string/EnumWithInit.E2 + call $enum-to-string/EnumWithInit#__enum_to_string + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 32 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 33 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $enum-to-string/EnumWithDup.E0 + call $enum-to-string/EnumWithDup#__enum_to_string + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 32 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 41 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $enum-to-string/EnumWithDup.E1 + call $enum-to-string/EnumWithDup#__enum_to_string + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 64 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 42 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $enum-to-string/EnumWithDup.E2 + call $enum-to-string/EnumWithDup#__enum_to_string + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 32 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 43 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) +) diff --git a/tests/compiler/enum-to-string.json b/tests/compiler/enum-to-string.json new file mode 100644 index 0000000000..ea57a955e1 --- /dev/null +++ b/tests/compiler/enum-to-string.json @@ -0,0 +1,3 @@ +{ + "asc_flags": [] +} diff --git a/tests/compiler/enum-to-string.release.wat b/tests/compiler/enum-to-string.release.wat new file mode 100644 index 0000000000..9e1363df6d --- /dev/null +++ b/tests/compiler/enum-to-string.release.wat @@ -0,0 +1,408 @@ +(module + (type $0 (func)) + (type $1 (func (param i32 i32 i32 i32))) + (type $2 (func (param i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (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") + (data $1 (i32.const 1068) "\1c") + (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) "<") + (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/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 1292 + i32.lt_s + if + i32.const 34080 + i32.const 34128 + 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 + if (result i32) + local.get $2 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + else + i32.const 1 + end + i32.eqz + if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $0 + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + block $__inlined_func$~lib/util/string/compareImpl$2 + loop $while-continue|1 + local.get $0 + local.tee $3 + i32.const 1 + i32.sub + local.set $0 + local.get $3 + if + local.get $2 + i32.load16_u + local.tee $5 + local.get $1 + i32.load16_u + local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 + i32.ne + br_if $__inlined_func$~lib/util/string/compareImpl$2 + local.get $2 + i32.const 2 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end + end + i32.const 0 + local.set $3 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.eqz + return + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (func $~start + call $start:enum-to-string + ) + (func $start:enum-to-string + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1292 + i32.lt_s + if + i32.const 34080 + i32.const 34128 + 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 1120 + i32.store + i32.const 1120 + i32.const 1120 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 7 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1088 + i32.store + i32.const 1088 + i32.const 1088 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 8 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 1056 + i32.const 1056 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 9 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 1056 + i32.const 1056 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 12 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1280 + i32.store + i32.const 1280 + i32.const 1280 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 21 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1248 + i32.store + i32.const 1248 + i32.const 1248 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 22 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1216 + i32.store + i32.const 1216 + i32.const 1216 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 23 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1120 + i32.store + i32.const 1120 + i32.const 1120 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 31 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1088 + i32.store + i32.const 1088 + i32.const 1088 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 32 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 1056 + i32.const 1056 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 33 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 1056 + i32.const 1056 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 41 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1088 + i32.store + i32.const 1088 + i32.const 1088 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 42 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 1056 + i32.const 1056 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 43 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) +) diff --git a/tests/compiler/enum-to-string.ts b/tests/compiler/enum-to-string.ts new file mode 100644 index 0000000000..2fc056323d --- /dev/null +++ b/tests/compiler/enum-to-string.ts @@ -0,0 +1,43 @@ +enum Enum { + E0, + E1, + E2, +} + +assert(Enum[Enum.E0] === "E0"); +assert(Enum[Enum.E1] === "E1"); +assert(Enum[Enum.E2] === "E2"); + +let v = Enum.E2; +assert(Enum[v] === "E2"); + +@inline +enum InlineEnum { + CE0, + CE1, + CE2, +} + +assert(InlineEnum[InlineEnum.CE0] === "CE0"); +assert(InlineEnum[InlineEnum.CE1] === "CE1"); +assert(InlineEnum[InlineEnum.CE2] === "CE2"); + +enum EnumWithInit { + E0 = 1, + E1 = 2, + E2 = 4, +} + +assert(EnumWithInit[EnumWithInit.E0] === "E0"); +assert(EnumWithInit[EnumWithInit.E1] === "E1"); +assert(EnumWithInit[EnumWithInit.E2] === "E2"); + +enum EnumWithDup { + E0 = 1, + E1 = 2, + E2 = 1, +} + +assert(EnumWithDup[EnumWithDup.E0] === "E2"); +assert(EnumWithDup[EnumWithDup.E1] === "E1"); +assert(EnumWithDup[EnumWithDup.E2] === "E2"); diff --git a/tests/compiler/export.release.wat b/tests/compiler/export.release.wat index cab08e7ae1..89f40fe121 100644 --- a/tests/compiler/export.release.wat +++ b/tests/compiler/export.release.wat @@ -11,11 +11,6 @@ (export "b" (global $export/b)) (export "renamed_c" (global $export/c)) (export "memory" (memory $0)) - (func $export/add (param $0 i32) (param $1 i32) (result i32) - local.get $0 - local.get $1 - i32.add - ) (func $export/sub (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 @@ -26,4 +21,9 @@ local.get $1 i32.mul ) + (func $export/add (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) ) diff --git a/tests/compiler/exportimport-table.release.wat b/tests/compiler/exportimport-table.release.wat index 9c5d7e1158..57904fd960 100644 --- a/tests/compiler/exportimport-table.release.wat +++ b/tests/compiler/exportimport-table.release.wat @@ -4,9 +4,9 @@ (memory $0 1) (data $0 (i32.const 1036) "\1c") (data $0.1 (i32.const 1048) "\04\00\00\00\08\00\00\00\01") - (elem $0 (i32.const 1) $start:exportimport-table~anonymous|0) + (elem $0 (i32.const 1) $~start) (export "memory" (memory $0)) (export "table" (table $0)) - (func $start:exportimport-table~anonymous|0 + (func $~start ) ) diff --git a/tests/compiler/exports-lazy.debug.wat b/tests/compiler/exports-lazy.debug.wat index 13d15c1553..af546f4467 100644 --- a/tests/compiler/exports-lazy.debug.wat +++ b/tests/compiler/exports-lazy.debug.wat @@ -18,7 +18,6 @@ (start $~start) (func $start:exports-lazy (local $0 i32) - (local $1 i32) global.get $exports-lazy/lazyGlobalUsed drop call $exports-lazy/lazyFuncUsed diff --git a/tests/compiler/exports.release.wat b/tests/compiler/exports.release.wat index ec7aad9f8e..c928da80f0 100644 --- a/tests/compiler/exports.release.wat +++ b/tests/compiler/exports.release.wat @@ -12,10 +12,9 @@ (export "renamed_mul" (func $export/mul)) (export "memory" (memory $0)) (export "__setArgumentsLength" (func $~setArgumentsLength)) - (func $exports/add (param $0 i32) (param $1 i32) (result i32) + (func $~setArgumentsLength (param $0 i32) local.get $0 - local.get $1 - i32.add + global.set $~argumentsLength ) (func $exports/subOpt@varargs (param $0 i32) (param $1 i32) (result i32) block $1of1 @@ -35,13 +34,14 @@ local.get $1 i32.sub ) - (func $export/mul (param $0 i32) (param $1 i32) (result i32) + (func $exports/add (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 - i32.mul + i32.add ) - (func $~setArgumentsLength (param $0 i32) + (func $export/mul (param $0 i32) (param $1 i32) (result i32) local.get $0 - global.set $~argumentsLength + local.get $1 + i32.mul ) ) diff --git a/tests/compiler/exportstar-rereexport.debug.wat b/tests/compiler/exportstar-rereexport.debug.wat index 22900fa807..26289418ed 100644 --- a/tests/compiler/exportstar-rereexport.debug.wat +++ b/tests/compiler/exportstar-rereexport.debug.wat @@ -1660,14 +1660,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + drop global.get $~lib/rt/itcms/total - i64.extend_i32_u i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 + i32.const 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold @@ -2327,12 +2330,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/exportstar-rereexport.release.wat b/tests/compiler/exportstar-rereexport.release.wat index eb1d1cc17c..29956c7614 100644 --- a/tests/compiler/exportstar-rereexport.release.wat +++ b/tests/compiler/exportstar-rereexport.release.wat @@ -47,69 +47,6 @@ (export "renamed_default" (func $export-default/theDefault)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1296 - call $~lib/rt/itcms/__visit - i32.const 1104 - call $~lib/rt/itcms/__visit - global.get $rereexport/car - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $rereexport/exportsNamespaceCar - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $reexport/car - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - 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 1168 - 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) @@ -654,127 +591,169 @@ 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 1440 - 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 1440 - 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 + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $exports/Car + 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 $exports/Car $invalid + end + return + end + return + end + return + end + local.get $0 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 1440 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable + call $~lib/rt/itcms/__visit + return end + return end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 + unreachable + ) + (func $exports/Car#get:numDoors (param $0 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - local.tee $3 - i32.const 20 - i32.lt_u + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1560 + i32.lt_s if - return + i32.const 34352 + i32.const 34400 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 + 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 + ) + (func $exports/Car#constructor (result i32) + (local $0 i32) + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1560 + i32.lt_s + if + i32.const 34352 + i32.const 34400 + 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 $0 i32.store - local.get $1 - i32.const 0 + global.get $~lib/memory/__stack_pointer + local.get $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 + local.get $0 i32.const 2 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $3 - i32.store offset=1568 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) - memory.size + (local $2 i32) + local.get $0 + i32.load offset=4 + i32.const -2 + i32.and local.tee $1 - i32.const 0 - i32.le_s + 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 $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1440 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + 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 + i32.const 0 + end + end + ) + (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 @@ -848,6 +827,315 @@ i32.const 34336 global.set $~lib/rt/tlsf/ROOT ) + (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 1440 + 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 1440 + 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 1440 + 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/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1296 + call $~lib/rt/itcms/__visit + i32.const 1104 + call $~lib/rt/itcms/__visit + global.get $rereexport/car + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $rereexport/exportsNamespaceCar + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $reexport/car + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + 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 1168 + 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 $export-default/theDefault + ) + (func $~start + (local $0 i32) + 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 1560 + 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 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1560 + 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 34328 + 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 + call $exports/Car#constructor + global.set $reexport/car + global.get $~lib/memory/__stack_pointer + global.get $reexport/car + local.tee $0 + i32.store + local.get $0 + call $exports/Car#get:numDoors + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 40 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + call $exports/Car#constructor + global.set $rereexport/car + global.get $~lib/memory/__stack_pointer + global.get $rereexport/car + local.tee $0 + i32.store + local.get $0 + call $exports/Car#get:numDoors + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1504 + i32.const 18 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + call $exports/Car#constructor + global.set $rereexport/exportsNamespaceCar + global.get $~lib/memory/__stack_pointer + global.get $rereexport/exportsNamespaceCar + local.tee $0 + i32.store + local.get $0 + call $exports/Car#get:numDoors + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1504 + i32.const 24 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$start:exportstar-rereexport$1 + end + i32.const 34352 + i32.const 34400 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) (func $~lib/rt/itcms/step (result i32) (local $0 i32) (local $1 i32) @@ -1058,7 +1346,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1091,7 +1378,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1100,74 +1386,16 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + 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 $2 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1440 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - 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 - i32.const 0 - end - end - ) (func $~lib/rt/itcms/__new (result i32) (local $0 i32) (local $1 i32) @@ -1189,12 +1417,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 @@ -1206,8 +1430,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1229,12 +1452,11 @@ local.tee $0 i32.eqz if - memory.size - local.tee $0 i32.const 4 local.get $1 i32.load offset=1568 - local.get $0 + memory.size + local.tee $0 i32.const 16 i32.shl i32.const 4 @@ -1247,7 +1469,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $2 + local.set $2 + local.get $0 + local.get $2 local.get $0 local.get $2 i32.gt_s @@ -1401,247 +1625,4 @@ i32.store align=1 local.get $0 ) - (func $export-default/theDefault - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $exports/Car - 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 $exports/Car $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - return - end - return - end - unreachable - ) - (func $~start - (local $0 i32) - 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 1560 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1560 - 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 34328 - 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 - call $exports/Car#constructor - global.set $reexport/car - global.get $~lib/memory/__stack_pointer - global.get $reexport/car - local.tee $0 - i32.store - local.get $0 - call $exports/Car#get:numDoors - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 40 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - call $exports/Car#constructor - global.set $rereexport/car - global.get $~lib/memory/__stack_pointer - global.get $rereexport/car - local.tee $0 - i32.store - local.get $0 - call $exports/Car#get:numDoors - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1504 - i32.const 18 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - call $exports/Car#constructor - global.set $rereexport/exportsNamespaceCar - global.get $~lib/memory/__stack_pointer - global.get $rereexport/exportsNamespaceCar - local.tee $0 - i32.store - local.get $0 - call $exports/Car#get:numDoors - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1504 - i32.const 24 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$start:exportstar-rereexport$1 - end - i32.const 34352 - i32.const 34400 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - ) - (func $exports/Car#constructor (result i32) - (local $0 i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1560 - i32.lt_s - if - i32.const 34352 - i32.const 34400 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.store - local.get $1 - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.store - local.get $1 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $exports/Car#get:numDoors (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1560 - i32.lt_s - if - i32.const 34352 - i32.const 34400 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - local.get $0 - i32.store - local.get $0 - i32.load - local.set $0 - local.get $1 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) ) diff --git a/tests/compiler/exportstar.release.wat b/tests/compiler/exportstar.release.wat index cab08e7ae1..89f40fe121 100644 --- a/tests/compiler/exportstar.release.wat +++ b/tests/compiler/exportstar.release.wat @@ -11,11 +11,6 @@ (export "b" (global $export/b)) (export "renamed_c" (global $export/c)) (export "memory" (memory $0)) - (func $export/add (param $0 i32) (param $1 i32) (result i32) - local.get $0 - local.get $1 - i32.add - ) (func $export/sub (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 @@ -26,4 +21,9 @@ local.get $1 i32.mul ) + (func $export/add (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) ) diff --git a/tests/compiler/extends-baseaggregate.debug.wat b/tests/compiler/extends-baseaggregate.debug.wat index 42df283bce..9842604142 100644 --- a/tests/compiler/extends-baseaggregate.debug.wat +++ b/tests/compiler/extends-baseaggregate.debug.wat @@ -1630,14 +1630,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 @@ -2442,12 +2445,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -2458,12 +2457,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $extends-baseaggregate/A1~visit (param $0 i32) (param $1 i32) (local $2 i32) @@ -2472,12 +2467,8 @@ call $~lib/object/Object~visit local.get $0 i32.load offset=16 - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $extends-baseaggregate/C1~visit (param $0 i32) (param $1 i32) (local $2 i32) @@ -2486,12 +2477,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $extends-baseaggregate/A2~visit (param $0 i32) (param $1 i32) local.get $0 @@ -2895,8 +2882,6 @@ (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 @@ -2923,18 +2908,18 @@ call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace global.get $extends-baseaggregate/poolA - local.set $4 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store - local.get $4 + local.get $2 i32.const 0 call $extends-baseaggregate/A2#constructor - local.set $4 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store offset=4 - local.get $4 + local.get $2 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/extends-baseaggregate.release.wat b/tests/compiler/extends-baseaggregate.release.wat index 83ddca752b..7ece00a053 100644 --- a/tests/compiler/extends-baseaggregate.release.wat +++ b/tests/compiler/extends-baseaggregate.release.wat @@ -1,12 +1,12 @@ (module (type $0 (func (param i32))) (type $1 (func)) - (type $2 (func (param i32 i32))) - (type $3 (func (param i32 i32) (result i32))) + (type $2 (func (param i32 i32) (result i32))) + (type $3 (func (param i32 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))) + (type $5 (func (param i32 i32 i32))) + (type $6 (func (param i32 i32 i64))) + (type $7 (func (result i32))) (import "env" "abort" (func $~lib/builtins/abort (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)) @@ -46,189 +46,6 @@ (data $14.1 (i32.const 1732) "\02A\00\00\02A") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1088 - call $~lib/rt/itcms/__visit - i32.const 1168 - call $~lib/rt/itcms/__visit - i32.const 1408 - call $~lib/rt/itcms/__visit - i32.const 1616 - call $~lib/rt/itcms/__visit - i32.const 1216 - 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 1280 - 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 1280 - 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$137 - 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 34508 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1280 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$137 - end - local.get $0 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1280 - 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 1696 - i32.load - i32.gt_u - if - i32.const 1408 - i32.const 1472 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.const 1700 - 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 @@ -253,330 +70,387 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (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.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + (local $6 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u if - i32.const 0 - i32.const 1552 - i32.const 268 - i32.const 14 + i32.const 1216 + i32.const 1280 + i32.const 261 + i32.const 31 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - i32.const 0 - i32.const 1552 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable + 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 - 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 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize end - local.tee $3 + global.get $~lib/rt/tlsf/ROOT + local.set $4 + local.get $0 i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u - i32.and - i32.eqz + i32.add + local.tee $2 + i32.const 1073741820 + i32.gt_u if - i32.const 0 + i32.const 1216 i32.const 1552 - i32.const 284 - i32.const 14 + i32.const 461 + i32.const 29 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 + 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.get $5 + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz if 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.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 + i32.load offset=1568 + memory.size + local.tee $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.set $3 + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s 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 + memory.grow + i32.const 0 + i32.lt_s if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - i32.rotl - i32.and - i32.store + 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 1552 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + 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 + local.get $5 + local.get $2 + i32.load + i32.const -4 + i32.and + i32.gt_u if i32.const 0 i32.const 1552 - i32.const 201 + i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 + local.get $2 + call $~lib/rt/tlsf/removeBlock + local.get $2 i32.load - local.tee $3 - i32.const 1 + local.set $6 + local.get $5 + i32.const 4 + i32.add + i32.const 15 i32.and - i32.eqz if i32.const 0 i32.const 1552 - i32.const 203 + i32.const 361 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load + local.get $6 i32.const -4 i32.and - i32.add - local.tee $4 - i32.load - local.tee $2 - i32.const 1 - i32.and + local.get $5 + i32.sub + local.tee $3 + i32.const 16 + i32.ge_u 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 + local.get $5 + local.get $6 + i32.const 2 + i32.and + i32.or i32.store - local.get $1 + local.get $2 i32.const 4 i32.add - local.get $1 - i32.load - i32.const -4 - i32.and + local.get $5 i32.add - local.tee $4 - i32.load - local.set $2 - end - local.get $3 - i32.const 2 - i32.and - if - local.get $1 + local.tee $5 + local.get $3 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 1552 - 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 + 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 $3 + 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 $4 local.get $2 - i32.const 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 + 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 - local.tee $2 - i32.const 12 - i32.lt_u + 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/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 1552 - i32.const 233 + i32.const 268 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 + local.get $3 + i32.const -4 + i32.and + local.tee $3 + i32.const 12 + i32.lt_u if i32.const 0 i32.const 1552 - i32.const 234 + i32.const 270 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 + local.get $3 i32.const 256 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 4 i32.shr_u else i32.const 31 i32.const 1073741820 - local.get $2 - local.get $2 + local.get $3 + local.get $3 i32.const 1073741820 i32.ge_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.tee $3 + local.tee $4 i32.const 7 i32.sub - local.set $5 - local.get $2 + 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 $2 + local.tee $3 i32.const 16 i32.lt_u - local.get $5 + local.get $2 i32.const 23 i32.lt_u i32.and @@ -584,523 +458,560 @@ if i32.const 0 i32.const 1552 - i32.const 251 + i32.const 284 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 + i32.load offset=8 + local.set $5 local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 + i32.load offset=4 + local.tee $4 if - local.get $3 - local.get $1 + 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 $5 - i32.const 4 - i32.shl local.get $2 - i32.add - i32.const 2 + i32.const 4 i32.shl + local.get $3 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 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 + local.tee $1 + i32.load offset=96 + i32.eq 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 + 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.load - local.set $4 - local.get $5 - local.set $1 + 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 - else + 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 1552 + 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 1552 + 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 - i32.const 1572 + 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.gt_u + 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 1552 - i32.const 402 - i32.const 5 + 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.wrap_i64 - i32.const -16 + i32.const 2 + i32.or + i32.store + local.get $3 + i32.const -4 i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 + local.tee $2 + i32.const 12 i32.lt_u if - return + i32.const 0 + i32.const 1552 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable 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 + local.get $2 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 + i32.ne if + i32.const 0 + i32.const 1552 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort unreachable end - i32.const 34512 - i32.const 0 - i32.store - i32.const 36080 - i32.const 0 + local.get $4 + i32.const 4 + i32.sub + local.get $1 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 34512 - 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 34512 - 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 $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 1552 + 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/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 1280 + 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 + local.tee $0 + i32.load offset=4 + i32.const 3 + i32.and + local.tee $3 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if local.get $0 + local.get $1 + local.get $2 + select + call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state i32.const 1 - i32.add - local.set $0 - br $for-loop|0 + i32.eq + local.get $3 + i32.const 3 + i32.eq + i32.and + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + end end end - i32.const 34512 - i32.const 36084 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34512 - global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/rt/itcms/step (result i32) - (local $0 i32) + (func $~lib/rt/itcms/Object#makeGray (param $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 + (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 - 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 34508 - 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 + i32.const 1280 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$142 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz 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.load offset=8 i32.eqz - local.get $1 - i32.const 3 + local.get $0 + i32.const 34508 + i32.lt_u i32.and - i32.ne + i32.eqz if i32.const 0 i32.const 1280 - i32.const 229 - i32.const 20 + i32.const 128 + i32.const 18 call $~lib/builtins/abort unreachable end - local.get $0 - i32.const 34508 - 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 34508 - 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.set $1 - 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 1552 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable + br $__inlined_func$~lib/rt/itcms/Object#unlink$142 + end + local.get $0 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1280 + 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 1696 + i32.load + i32.gt_u + if + i32.const 1408 + i32.const 1472 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1700 + 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/__visit_members (param $0 i32) + block $folding-inner0 + block $invalid + block $~lib/array/Array + block $~lib/array/Array + block $extends-baseaggregate/A2 + block $extends-baseaggregate/A1 + 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-inner0 $folding-inner0 $extends-baseaggregate/A1 $folding-inner0 $extends-baseaggregate/A2 $~lib/array/Array $~lib/array/Array $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load offset=16 + call $~lib/rt/itcms/__visit + return end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock + local.get $0 + i32.load offset=16 + call $~lib/rt/itcms/__visit + return end + local.get $0 + call $~lib/array/Array~visit + return end - i32.const 10 + local.get $0 + call $~lib/array/Array~visit return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + unreachable end - i32.const 0 + local.get $0 + i32.load + call $~lib/rt/itcms/__visit ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1230,381 +1141,248 @@ 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 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$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 - 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 $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 - 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 1216 - i32.const 1552 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u + (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 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.const 1 + local.get $1 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 + else + i32.const 0 + end + if + unreachable + end + i32.const 34512 + i32.const 0 + i32.store + i32.const 36080 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u if - local.get $3 - memory.grow + local.get $0 + i32.const 2 + i32.shl + i32.const 34512 + i32.add 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.store offset=4 i32.const 0 - i32.const 1552 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable + 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 34512 + 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 - local.get $5 + i32.const 34512 + i32.const 36084 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34512 + global.set $~lib/rt/tlsf/ROOT + ) + (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 - i32.load - i32.const -4 - i32.and - i32.gt_u + local.get $1 + i64.extend_i32_u + i64.lt_u if i32.const 0 i32.const 1552 - i32.const 501 + i32.const 382 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 + local.get $1 + i32.const 19 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 $6 - i32.const -4 + i32.const -16 i32.and - local.get $5 + i32.const 4 i32.sub + local.set $1 + local.get $0 + i32.load offset=1568 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 + local.get $3 i32.const 4 i32.add - local.get $5 - i32.add - local.tee $5 + 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 - i32.const 4 + local.get $1 + i32.const 16 i32.sub - i32.const 1 - i32.or - i32.store - local.get $4 - local.get $5 - call $~lib/rt/tlsf/insertBlock + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + local.set $1 + end 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 + local.get $0 + i32.const 1572 i32.add - local.tee $3 - local.get $3 - i32.load - i32.const -3 - i32.and - i32.store + 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.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 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end 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 + 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 - local.get $2 + i32.const 0 i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $2 - i32.load - i32.const -4 - i32.and + local.get $1 i32.const 4 i32.add + local.get $3 i32.add - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 + local.tee $3 + i32.const 2 + i32.store local.get $0 - memory.fill - local.get $1 - ) - (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 $3 + i32.store offset=1568 local.get $0 - i32.eqz - if - i32.const 0 - i32.const 1280 - i32.const 295 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/itcms/white - local.tee $3 local.get $1 - i32.const 20 - i32.sub + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1088 + call $~lib/rt/itcms/__visit + i32.const 1168 + call $~lib/rt/itcms/__visit + i32.const 1408 + call $~lib/rt/itcms/__visit + i32.const 1616 + call $~lib/rt/itcms/__visit + i32.const 1216 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace local.tee $1 i32.load offset=4 - i32.const 3 + i32.const -4 i32.and - i32.eq - if - local.get $3 - i32.eqz + local.set $0 + loop $while-continue|0 local.get $0 - i32.const 20 - i32.sub - local.tee $0 - i32.load offset=4 - i32.const 3 - i32.and - local.tee $3 - i32.eq + local.get $1 + i32.ne if local.get $0 - local.get $1 - local.get $2 - select - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - local.get $3 + i32.load offset=4 i32.const 3 - i32.eq i32.and + i32.const 3 + i32.ne if - local.get $1 - call $~lib/rt/itcms/Object#makeGray + i32.const 0 + i32.const 1280 + 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 ) @@ -1628,16 +1406,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 local.set $1 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -1677,54 +1454,6 @@ 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 $~lib/array/Array - block $~lib/array/Array - 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-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner1 $~lib/array/Array $~lib/array/Array $invalid - 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 - unreachable - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - return - end - local.get $0 - i32.load offset=16 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - ) (func $~start (local $0 i32) (local $1 i32) @@ -1743,7 +1472,6 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store memory.size @@ -1778,10 +1506,10 @@ i32.store i32.const 1504 global.set $~lib/rt/itcms/fromSpace - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1168 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -1790,20 +1518,19 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 20 i32.const 7 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $5 + global.get $~lib/memory/__stack_pointer + local.get $6 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -1812,267 +1539,521 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $5 + local.get $6 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $6 + 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 1740 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $6 i32.eqz if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + f64.const 0 + f64.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + f64.const 0 + f64.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=16 + local.get $6 + i32.const 0 + 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 + local.get $6 + 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 $6 + 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 1740 + 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 1168 + i32.store + i32.const 1180 + i32.load + local.tee $5 + i32.const 1 + i32.add + local.tee $4 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1740 + 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 1168 + i32.store + local.get $2 + i32.const 1176 + i32.load + local.tee $0 + i32.const 2 + i32.shr_u + i32.gt_u + if + local.get $2 + i32.const 268435455 + i32.gt_u + if + i32.const 1616 + i32.const 1664 + i32.const 19 + i32.const 48 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1168 + i32.store + block $__inlined_func$~lib/rt/itcms/__renew$141 + i32.const 1073741820 + local.get $0 + i32.const 1 + i32.shl + local.tee $0 + local.get $0 + i32.const 1073741820 + i32.ge_u + select + local.tee $1 + i32.const 8 + local.get $2 + local.get $2 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $0 + local.get $0 + local.get $1 + i32.lt_u + select + local.tee $3 + i32.const 1168 + i32.load + local.tee $0 + i32.const 20 + i32.sub + local.tee $2 + i32.load + i32.const -4 + i32.and + i32.const 16 + i32.sub + i32.le_u + if + local.get $2 + local.get $3 + i32.store offset=16 + local.get $0 + local.set $1 + br $__inlined_func$~lib/rt/itcms/__renew$141 + end + local.get $3 + local.get $2 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.tee $1 + local.get $0 + local.get $3 + local.get $2 + i32.load offset=16 + local.tee $2 + local.get $2 + local.get $3 + i32.gt_u + select + memory.copy + end + local.get $0 local.get $1 - i32.const 20 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $5 + i32.ne + if + i32.const 1168 + local.get $1 + i32.store + i32.const 1172 + local.get $1 + i32.store + i32.const 1168 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + end + i32.const 1176 + local.get $3 i32.store end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $5 - i32.store offset=4 - local.get $1 i32.const 4 - i32.sub + i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1740 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 + i32.const 1168 i32.store + i32.const 1172 + i32.load local.get $5 - i32.eqz - if - local.get $2 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $5 + local.get $6 i32.store - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - f64.const 0 - f64.store - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - f64.const 0 - f64.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=16 - local.get $5 - i32.const 0 - i32.const 0 + i32.const 1168 + local.get $6 + i32.const 1 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 - local.get $5 + i32.const 1168 + i32.store + i32.const 1180 + local.get $4 i32.store global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub + i32.const 8 + i32.add global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1740 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer + return + end + i32.const 34528 + i32.const 34576 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (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 34508 + 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 - i32.const 0 - i32.store - local.get $0 - i32.const 1168 - i32.store - i32.const 1180 - i32.load - local.tee $4 - i32.const 1 - i32.add - local.tee $3 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1740 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - i32.const 1168 - i32.store - local.get $0 - i32.const 1176 - i32.load - local.tee $1 - i32.const 2 - i32.shr_u - i32.gt_u + global.get $~lib/rt/itcms/toSpace + i32.ne if local.get $0 - i32.const 268435455 - i32.gt_u + 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 1616 - i32.const 1664 - i32.const 19 - i32.const 48 + i32.const 0 + i32.const 1280 + i32.const 229 + i32.const 20 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1168 - i32.store - block $__inlined_func$~lib/rt/itcms/__renew$136 - i32.const 1073741820 - local.get $1 - i32.const 1 - i32.shl - local.tee $1 - local.get $1 - i32.const 1073741820 - i32.ge_u - select - local.tee $1 - i32.const 8 + local.get $0 + i32.const 34508 + i32.lt_u + if local.get $0 + i32.const 0 + i32.store offset=4 local.get $0 - i32.const 8 - i32.le_u - select - i32.const 2 - i32.shl - local.tee $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total local.get $0 - local.get $1 - i32.lt_u - select - local.tee $2 - i32.const 1168 - i32.load - local.tee $1 - i32.const 20 - i32.sub - local.tee $6 i32.load i32.const -4 i32.and - i32.const 16 + i32.const 4 + i32.add i32.sub - i32.le_u + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 4 + i32.add + local.tee $0 + i32.const 34508 + i32.ge_u if - local.get $6 + 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 1552 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.store offset=16 - local.get $1 - local.set $0 - br $__inlined_func$~lib/rt/itcms/__renew$136 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $6 - i32.load offset=12 - call $~lib/rt/itcms/__new - local.tee $0 - local.get $1 - local.get $2 - local.get $6 - i32.load offset=16 - local.tee $6 - local.get $2 - local.get $6 - i32.lt_u - select - memory.copy - end - local.get $0 - local.get $1 - i32.ne - if - i32.const 1168 - local.get $0 - i32.store - i32.const 1172 - local.get $0 - i32.store - i32.const 1168 - local.get $0 - i32.const 0 - call $~lib/rt/itcms/__link end - i32.const 1176 - local.get $2 - i32.store + i32.const 10 + return end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1168 - i32.store - i32.const 1172 - i32.load - local.get $4 - i32.const 2 - i32.shl - i32.add - local.get $5 - i32.store - i32.const 1168 - local.get $5 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 1168 - i32.store - i32.const 1180 - local.get $3 - 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 8 - i32.add - global.set $~lib/memory/__stack_pointer - return + 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 34528 - i32.const 34576 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + i32.const 0 ) ) diff --git a/tests/compiler/extends-recursive.debug.wat b/tests/compiler/extends-recursive.debug.wat index e0074d457f..a4d78b0d14 100644 --- a/tests/compiler/extends-recursive.debug.wat +++ b/tests/compiler/extends-recursive.debug.wat @@ -1620,14 +1620,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + drop global.get $~lib/rt/itcms/total - i64.extend_i32_u i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 + i32.const 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold @@ -2356,12 +2359,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -2377,12 +2376,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/extends-recursive.release.wat b/tests/compiler/extends-recursive.release.wat index d1bc04b223..4ae0ed92db 100644 --- a/tests/compiler/extends-recursive.release.wat +++ b/tests/compiler/extends-recursive.release.wat @@ -32,51 +32,6 @@ (data $8 (i32.const 1440) "\06\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 1248 - 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/__visit (param $0 i32) (local $1 i32) (local $2 i32) @@ -115,7 +70,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$113 + block $__inlined_func$~lib/rt/itcms/Object#unlink$116 local.get $0 i32.load offset=4 i32.const -4 @@ -139,7 +94,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$113 + br $__inlined_func$~lib/rt/itcms/Object#unlink$116 end local.get $0 i32.load offset=8 @@ -621,1078 +576,1106 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (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.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u + (local $6 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u if - i32.const 0 - i32.const 1392 - i32.const 382 - i32.const 14 + i32.const 1056 + i32.const 1120 + i32.const 261 + i32.const 31 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 + 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.load offset=1568 - local.tee $3 + i32.const 16 + i32.add + local.tee $2 + i32.const 1073741820 + i32.gt_u if - local.get $3 - i32.const 4 + 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 - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1392 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable + 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 + 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.get $3 - local.get $1 + i32.const 4 + local.get $4 + i32.load offset=1568 + memory.size + local.tee $2 i32.const 16 + i32.shl + i32.const 4 i32.sub - local.tee $5 - i32.eq + i32.ne + i32.shl + i32.add + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.set $3 + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s if local.get $3 - i32.load - local.set $4 - local.get $5 - local.set $1 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end end - else - local.get $0 - i32.const 1572 - i32.add - local.get $1 - i32.gt_u + 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 402 - i32.const 5 + i32.const 499 + i32.const 16 call $~lib/builtins/abort unreachable end end + local.get $5 local.get $2 - i32.wrap_i64 - i32.const -16 + i32.load + i32.const -4 i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u + i32.gt_u if - return + i32.const 0 + i32.const 1392 + i32.const 501 + i32.const 14 + call $~lib/builtins/abort + unreachable end - local.get $1 local.get $4 - i32.const 2 + 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 - local.get $3 - i32.const 8 + 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 1 + 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 - local.get $1 - i32.const 0 i32.store offset=4 local.get $1 - i32.const 0 + local.get $2 i32.store offset=8 - local.get $1 + global.get $~lib/rt/itcms/total + local.get $2 + i32.load + i32.const -4 + i32.and 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 + 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 - 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 + (func $~lib/rt/__visit_members (param $0 i32) + block $folding-inner0 + block $invalid + 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-inner0 $folding-inner0 $folding-inner0 $invalid + end + return + end + return + end + return + end unreachable end - i32.const 34240 - i32.const 0 - i32.store - i32.const 35808 - i32.const 0 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 23 + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + ) + (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 $0 - i32.const 2 + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub i32.shl - i32.const 34240 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 34240 - 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 + 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 - i32.const 34240 - i32.const 35812 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34240 - global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/rt/itcms/step (result i32) + (func $~lib/rt/tlsf/initialize (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 + 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 34240 + i32.const 0 + i32.store + i32.const 35808 + 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 34240 + i32.add + i32.const 0 + i32.store offset=4 + i32.const 0 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 + loop $for-loop|1 + local.get $1 + i32.const 16 + i32.lt_u if local.get $0 - global.set $~lib/rt/itcms/iter + i32.const 4 + i32.shl 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 + i32.add + i32.const 2 + i32.shl + i32.const 34240 + 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 34240 + i32.const 35812 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34240 + global.set $~lib/rt/tlsf/ROOT + ) + (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 - 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 34236 - 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 + i32.const 1392 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + 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/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1248 + 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 - 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.const 3 i32.ne if i32.const 0 i32.const 1120 - i32.const 229 - i32.const 20 + i32.const 160 + i32.const 16 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 34236 - 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 34236 - 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.set $1 - 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 $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return + 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 - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state end - i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (func $~start + (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 - 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 + block $__inlined_func$start:extends-recursive$1 + memory.size 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 34236 + i32.sub i32.const 1 - i32.add - i32.shl - i32.and - local.tee $1 - if (result i32) + 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 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + 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 4 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + 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 1468 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store 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 + global.get $~lib/memory/__stack_pointer + i32.const 4 + 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 - local.get $2 - i32.ctz - local.get $1 + 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 1468 + i32.lt_s + br_if $folding-inner0 + 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 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.shl - i32.add - i32.const 2 - i32.shl i32.add - i32.load offset=96 - else + 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 i32.const 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 + br $__inlined_func$start:extends-recursive$1 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 + i32.const 34256 + i32.const 34304 + 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$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 - 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 + ) + (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 - local.get $2 + i32.const 1 + global.set $~lib/rt/itcms/state i32.const 0 - i32.gt_s - br_if $do-loop|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/total - local.tee $2 - local.get $2 - 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 + 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 - 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 + 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 - 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/__visit_members (param $0 i32) - block $folding-inner0 - block $invalid - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 34236 + 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.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $folding-inner0 $folding-inner0 $invalid + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 end - return end - return + 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 - unreachable - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - ) - (func $~start - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - block $__inlined_func$start:extends-recursive$4 - memory.size - i32.const 16 - i32.shl - i32.const 34236 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1468 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $0 - i32.const 4 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer + i32.load offset=4 local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1468 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $0 + 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 - local.get $2 - i32.const 4 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store + i32.const 0 + i32.const 1120 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store offset=4 - local.get $2 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1468 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store local.get $0 - i32.eqz + i32.const 34236 + i32.lt_u if - local.get $3 + local.get $0 i32.const 0 + i32.store offset=4 + local.get $0 i32.const 0 - call $~lib/rt/itcms/__new + 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.store + i32.const 34236 + 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $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 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$start:extends-recursive$4 + i32.const 10 + return end - i32.const 34256 - i32.const 34304 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + 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 ) ) diff --git a/tests/compiler/external.release.wat b/tests/compiler/external.release.wat index 26463e94fb..5101b88d4c 100644 --- a/tests/compiler/external.release.wat +++ b/tests/compiler/external.release.wat @@ -1,9 +1,9 @@ (module (type $0 (func)) (import "foo" "var" (global $external/var_ i32)) - (import "external" "foo" (func $external/foo)) (import "external" "bar" (func $external/two)) (import "foo" "baz" (func $external/three)) + (import "external" "foo" (func $external/foo)) (memory $0 0) (export "foo" (func $external/foo)) (export "two" (func $external/two)) diff --git a/tests/compiler/features/reference-types.release.wat b/tests/compiler/features/reference-types.release.wat index 1c580b033e..40fd3e75ca 100644 --- a/tests/compiler/features/reference-types.release.wat +++ b/tests/compiler/features/reference-types.release.wat @@ -1,12 +1,12 @@ (module (type $0 (func (result externref))) - (type $1 (func)) - (type $2 (func (param externref) (result externref))) + (type $1 (func (param externref) (result externref))) + (type $2 (func)) (type $3 (func (param i32 i32 i32 i32))) - (import "reference-types" "somethingReal" (func $features/reference-types/somethingReal (result externref))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) - (import "reference-types" "somethingNull" (func $features/reference-types/somethingNull (result externref))) + (import "reference-types" "somethingReal" (func $features/reference-types/somethingReal (result externref))) (import "reference-types" "external" (func $features/reference-types/external (param externref) (result externref))) + (import "reference-types" "somethingNull" (func $features/reference-types/somethingNull (result externref))) (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)) @@ -28,14 +28,6 @@ (export "nonNullReal" (global $features/reference-types/nonNullReal)) (export "memory" (memory $0)) (start $~start) - (func $features/reference-types/someFunc - ) - (func $features/reference-types/internal (param $0 externref) (result externref) - local.get $0 - call $features/reference-types/external - call $features/reference-types/external - call $features/reference-types/external - ) (func $~start (local $0 externref) call $features/reference-types/somethingReal @@ -111,4 +103,12 @@ local.get $0 global.set $features/reference-types/nonNullReal ) + (func $features/reference-types/internal (param $0 externref) (result externref) + local.get $0 + call $features/reference-types/external + call $features/reference-types/external + call $features/reference-types/external + ) + (func $features/reference-types/someFunc + ) ) diff --git a/tests/compiler/features/relaxed-simd.debug.wat b/tests/compiler/features/relaxed-simd.debug.wat index ceff3d4db6..0ede0f4814 100644 --- a/tests/compiler/features/relaxed-simd.debug.wat +++ b/tests/compiler/features/relaxed-simd.debug.wat @@ -43,82 +43,82 @@ global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v - f32x4.relaxed_fma + f32x4.relaxed_madd global.set $features/relaxed-simd/r global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v - f32x4.relaxed_fma + f32x4.relaxed_madd global.set $features/relaxed-simd/r global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v - f32x4.relaxed_fms + f32x4.relaxed_nmadd global.set $features/relaxed-simd/r global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v - f32x4.relaxed_fms + f32x4.relaxed_nmadd global.set $features/relaxed-simd/r global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v - f64x2.relaxed_fma + f64x2.relaxed_madd global.set $features/relaxed-simd/r global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v - f64x2.relaxed_fma + f64x2.relaxed_madd global.set $features/relaxed-simd/r global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v - f64x2.relaxed_fms + f64x2.relaxed_nmadd global.set $features/relaxed-simd/r global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v - f64x2.relaxed_fms + f64x2.relaxed_nmadd global.set $features/relaxed-simd/r global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v - i8x16.laneselect + i8x16.relaxed_laneselect global.set $features/relaxed-simd/r global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v - i8x16.laneselect + i8x16.relaxed_laneselect global.set $features/relaxed-simd/r global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v - i16x8.laneselect + i16x8.relaxed_laneselect global.set $features/relaxed-simd/r global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v - i16x8.laneselect + i16x8.relaxed_laneselect global.set $features/relaxed-simd/r global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v - i32x4.laneselect + i32x4.relaxed_laneselect global.set $features/relaxed-simd/r global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v - i32x4.laneselect + i32x4.relaxed_laneselect global.set $features/relaxed-simd/r global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v - i64x2.laneselect + i64x2.relaxed_laneselect global.set $features/relaxed-simd/r global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v - i64x2.laneselect + i64x2.relaxed_laneselect global.set $features/relaxed-simd/r global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v @@ -162,11 +162,11 @@ global.set $features/relaxed-simd/r global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v - i16x8.dot_i8x16_i7x16_s + i16x8.relaxed_dot_i8x16_i7x16_s global.set $features/relaxed-simd/r global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v - i16x8.dot_i8x16_i7x16_s + i16x8.relaxed_dot_i8x16_i7x16_s global.set $features/relaxed-simd/r ) (func $~start diff --git a/tests/compiler/features/threads.debug.wat b/tests/compiler/features/threads.debug.wat index 17de349d94..b3b7038f39 100644 --- a/tests/compiler/features/threads.debug.wat +++ b/tests/compiler/features/threads.debug.wat @@ -4,7 +4,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)) - (memory $0 (shared 1 10)) + (memory $0 1 10 shared) (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) diff --git a/tests/compiler/features/threads.release.wat b/tests/compiler/features/threads.release.wat index d6fed43d29..3db113d7ca 100644 --- a/tests/compiler/features/threads.release.wat +++ b/tests/compiler/features/threads.release.wat @@ -1,9 +1,13 @@ (module (type $0 (func)) - (memory $0 (shared 1 10)) + (memory $0 1 10 shared) (export "memory" (memory $0)) (start $~start) - (func $features/threads/testAtomic + (func $~start + call $features/threads/testAtomic + call $features/threads/testAtomicAsm + ) + (func $features/threads/testAtomicAsm i32.const 0 i32.atomic.load8_u drop @@ -25,9 +29,6 @@ i32.const 0 i64.atomic.load drop - i32.const 8 - i64.atomic.load - drop i32.const 0 i32.const 1 i32.atomic.store8 @@ -49,9 +50,6 @@ i32.const 0 i64.const 1 i64.atomic.store - i32.const 8 - i64.const 1 - i64.atomic.store i32.const 0 i32.const 1 i32.atomic.rmw8.add_u @@ -81,10 +79,6 @@ i64.atomic.rmw.add drop i32.const 0 - i64.const 1 - i64.atomic.rmw.add offset=8 - drop - i32.const 0 i32.const 1 i32.atomic.rmw8.sub_u drop @@ -113,10 +107,6 @@ i64.atomic.rmw.sub drop i32.const 0 - i64.const 1 - i64.atomic.rmw.sub offset=8 - drop - i32.const 0 i32.const 1 i32.atomic.rmw8.and_u drop @@ -145,10 +135,6 @@ i64.atomic.rmw.and drop i32.const 0 - i64.const 1 - i64.atomic.rmw.and offset=8 - drop - i32.const 0 i32.const 1 i32.atomic.rmw8.or_u drop @@ -177,10 +163,6 @@ i64.atomic.rmw.or drop i32.const 0 - i64.const 1 - i64.atomic.rmw.or offset=8 - drop - i32.const 0 i32.const 1 i32.atomic.rmw8.xor_u drop @@ -209,10 +191,6 @@ i64.atomic.rmw.xor drop i32.const 0 - i64.const 1 - i64.atomic.rmw.xor offset=8 - drop - i32.const 0 i32.const 1 i32.atomic.rmw8.xchg_u drop @@ -241,10 +219,6 @@ i64.atomic.rmw.xchg drop i32.const 0 - i64.const 1 - i64.atomic.rmw.xchg offset=8 - drop - i32.const 0 i32.const 1 i32.const 2 i32.atomic.rmw8.cmpxchg_u @@ -279,13 +253,8 @@ i64.const 2 i64.atomic.rmw.cmpxchg drop - i32.const 0 - i64.const 1 - i64.const 2 - i64.atomic.rmw.cmpxchg offset=8 - drop ) - (func $features/threads/testAtomicAsm + (func $features/threads/testAtomic i32.const 0 i32.atomic.load8_u drop @@ -307,6 +276,9 @@ i32.const 0 i64.atomic.load drop + i32.const 8 + i64.atomic.load + drop i32.const 0 i32.const 1 i32.atomic.store8 @@ -328,6 +300,9 @@ i32.const 0 i64.const 1 i64.atomic.store + i32.const 8 + i64.const 1 + i64.atomic.store i32.const 0 i32.const 1 i32.atomic.rmw8.add_u @@ -357,6 +332,10 @@ i64.atomic.rmw.add drop i32.const 0 + i64.const 1 + i64.atomic.rmw.add offset=8 + drop + i32.const 0 i32.const 1 i32.atomic.rmw8.sub_u drop @@ -385,6 +364,10 @@ i64.atomic.rmw.sub drop i32.const 0 + i64.const 1 + i64.atomic.rmw.sub offset=8 + drop + i32.const 0 i32.const 1 i32.atomic.rmw8.and_u drop @@ -413,6 +396,10 @@ i64.atomic.rmw.and drop i32.const 0 + i64.const 1 + i64.atomic.rmw.and offset=8 + drop + i32.const 0 i32.const 1 i32.atomic.rmw8.or_u drop @@ -441,6 +428,10 @@ i64.atomic.rmw.or drop i32.const 0 + i64.const 1 + i64.atomic.rmw.or offset=8 + drop + i32.const 0 i32.const 1 i32.atomic.rmw8.xor_u drop @@ -469,6 +460,10 @@ i64.atomic.rmw.xor drop i32.const 0 + i64.const 1 + i64.atomic.rmw.xor offset=8 + drop + i32.const 0 i32.const 1 i32.atomic.rmw8.xchg_u drop @@ -497,6 +492,10 @@ i64.atomic.rmw.xchg drop i32.const 0 + i64.const 1 + i64.atomic.rmw.xchg offset=8 + drop + i32.const 0 i32.const 1 i32.const 2 i32.atomic.rmw8.cmpxchg_u @@ -531,9 +530,10 @@ i64.const 2 i64.atomic.rmw.cmpxchg drop - ) - (func $~start - call $features/threads/testAtomic - call $features/threads/testAtomicAsm + i32.const 0 + i64.const 1 + i64.const 2 + i64.atomic.rmw.cmpxchg offset=8 + drop ) ) diff --git a/tests/compiler/field-initialization.debug.wat b/tests/compiler/field-initialization.debug.wat index d94296464e..e5375a2469 100644 --- a/tests/compiler/field-initialization.debug.wat +++ b/tests/compiler/field-initialization.debug.wat @@ -1631,14 +1631,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + drop global.get $~lib/rt/itcms/total - i64.extend_i32_u i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 + i32.const 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold @@ -2705,12 +2708,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -2721,12 +2720,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $field-initialization/Nullable_Init~visit (param $0 i32) (param $1 i32) (local $2 i32) @@ -2735,12 +2730,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $field-initialization/Nullable~visit (param $0 i32) (param $1 i32) (local $2 i32) @@ -2749,12 +2740,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $field-initialization/Ref_Init_Ctor~visit (param $0 i32) (param $1 i32) (local $2 i32) @@ -2763,12 +2750,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $field-initialization/Ref_Ctor_Init~visit (param $0 i32) (param $1 i32) (local $2 i32) @@ -2777,12 +2760,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $field-initialization/Ref_Ctor_Param~visit (param $0 i32) (param $1 i32) (local $2 i32) @@ -2791,12 +2770,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $field-initialization/Nullable_Ctor~visit (param $0 i32) (param $1 i32) (local $2 i32) @@ -2805,12 +2780,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $field-initialization/Nullable_Init_Ctor~visit (param $0 i32) (param $1 i32) (local $2 i32) @@ -2819,12 +2790,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $field-initialization/Nullable_Ctor_Init~visit (param $0 i32) (param $1 i32) (local $2 i32) @@ -2833,12 +2800,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $field-initialization/Inherit~visit (param $0 i32) (param $1 i32) local.get $0 @@ -2852,12 +2815,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $field-initialization/Inherit_Ctor~visit (param $0 i32) (param $1 i32) local.get $0 @@ -2871,12 +2830,8 @@ call $~lib/object/Object~visit local.get $0 i32.load offset=4 - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $field-initialization/SomeOtherObject~visit (param $0 i32) (param $1 i32) (local $2 i32) @@ -2885,12 +2840,8 @@ call $field-initialization/SomeObject~visit local.get $0 i32.load offset=8 - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $field-initialization/Flow_Balanced~visit (param $0 i32) (param $1 i32) (local $2 i32) @@ -2899,12 +2850,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $field-initialization/Ref_Init_InlineCtor~visit (param $0 i32) (param $1 i32) (local $2 i32) @@ -2913,12 +2860,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $field-initialization/Ref_InlineCtor_Init~visit (param $0 i32) (param $1 i32) (local $2 i32) @@ -2927,12 +2870,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid @@ -4176,13 +4115,13 @@ (local $33 i32) (local $34 i32) global.get $~lib/memory/__stack_pointer - i32.const 148 + i32.const 144 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 148 + i32.const 144 memory.fill memory.size i32.const 16 @@ -4711,11 +4650,6 @@ i32.store offset=4 local.get $34 i32.const 624 - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store offset=80 - local.get $34 call $field-initialization/SomeObject#set:b local.get $21 i32.const 0 @@ -4745,7 +4679,7 @@ local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 - i32.store offset=100 + i32.store offset=80 local.get $34 call $field-initialization/SomeObject#get:b local.set $34 @@ -4754,11 +4688,6 @@ i32.store offset=4 local.get $34 i32.const 624 - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store offset=80 - local.get $34 call $~lib/string/String.__eq i32.eqz if @@ -4774,7 +4703,7 @@ i32.const 0 call $field-initialization/SomeObject#constructor local.tee $23 - i32.store offset=104 + i32.store offset=100 local.get $23 local.set $34 global.get $~lib/memory/__stack_pointer @@ -4790,15 +4719,10 @@ i32.store offset=4 local.get $34 i32.const 656 - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store offset=80 - local.get $34 call $field-initialization/SomeObject#set:b local.get $23 local.tee $24 - i32.store offset=108 + i32.store offset=104 local.get $24 local.set $34 global.get $~lib/memory/__stack_pointer @@ -4821,7 +4745,7 @@ local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 - i32.store offset=100 + i32.store offset=80 local.get $34 call $field-initialization/SomeObject#get:b local.set $34 @@ -4830,11 +4754,6 @@ i32.store offset=4 local.get $34 i32.const 656 - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store offset=80 - local.get $34 call $~lib/string/String.__eq i32.eqz if @@ -4850,7 +4769,7 @@ i32.const 0 call $field-initialization/SomeOtherObject#constructor local.tee $25 - i32.store offset=112 + i32.store offset=108 local.get $25 local.set $34 global.get $~lib/memory/__stack_pointer @@ -4858,11 +4777,6 @@ i32.store offset=4 local.get $34 i32.const 688 - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store offset=80 - local.get $34 call $field-initialization/SomeOtherObject#set:c local.get $25 i32.const 0 @@ -4872,7 +4786,7 @@ i32.store offset=4 local.get $25 local.tee $26 - i32.store offset=116 + i32.store offset=112 local.get $26 local.set $34 global.get $~lib/memory/__stack_pointer @@ -4918,7 +4832,7 @@ local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 - i32.store offset=100 + i32.store offset=80 local.get $34 call $field-initialization/SomeOtherObject#get:c local.set $34 @@ -4927,11 +4841,6 @@ i32.store offset=4 local.get $34 i32.const 688 - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store offset=80 - local.get $34 call $~lib/string/String.__eq i32.eqz if @@ -4947,7 +4856,7 @@ i32.const 0 call $field-initialization/SomeOtherObject#constructor local.tee $27 - i32.store offset=120 + i32.store offset=116 local.get $27 local.set $34 global.get $~lib/memory/__stack_pointer @@ -4963,11 +4872,6 @@ i32.store offset=4 local.get $34 i32.const 720 - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store offset=80 - local.get $34 call $field-initialization/SomeObject#set:b local.get $27 local.set $34 @@ -4976,15 +4880,10 @@ i32.store offset=4 local.get $34 i32.const 752 - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store offset=80 - local.get $34 call $field-initialization/SomeOtherObject#set:c local.get $27 local.tee $28 - i32.store offset=124 + i32.store offset=120 local.get $28 local.set $34 global.get $~lib/memory/__stack_pointer @@ -5007,7 +4906,7 @@ local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 - i32.store offset=100 + i32.store offset=80 local.get $34 call $field-initialization/SomeObject#get:b local.set $34 @@ -5016,11 +4915,6 @@ i32.store offset=4 local.get $34 i32.const 720 - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store offset=80 - local.get $34 call $~lib/string/String.__eq i32.eqz if @@ -5035,7 +4929,7 @@ local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 - i32.store offset=100 + i32.store offset=80 local.get $34 call $field-initialization/SomeOtherObject#get:c local.set $34 @@ -5044,11 +4938,6 @@ i32.store offset=4 local.get $34 i32.const 752 - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store offset=80 - local.get $34 call $~lib/string/String.__eq i32.eqz if @@ -5064,7 +4953,7 @@ i32.const 1 call $field-initialization/Flow_Balanced#constructor local.tee $29 - i32.store offset=128 + i32.store offset=124 local.get $29 local.set $34 global.get $~lib/memory/__stack_pointer @@ -5094,7 +4983,7 @@ i32.const 24 call $~lib/rt/itcms/__new local.tee $30 - i32.store offset=132 + i32.store offset=128 end local.get $30 local.set $34 @@ -5113,7 +5002,7 @@ call $field-initialization/Ref_Init_InlineCtor#set:a local.get $30 local.tee $31 - i32.store offset=136 + i32.store offset=132 local.get $31 local.set $34 global.get $~lib/memory/__stack_pointer @@ -5143,7 +5032,7 @@ i32.const 25 call $~lib/rt/itcms/__new local.tee $32 - i32.store offset=140 + i32.store offset=136 end local.get $32 local.set $34 @@ -5170,7 +5059,7 @@ call $field-initialization/Ref_InlineCtor_Init#set:a local.get $32 local.tee $33 - i32.store offset=144 + i32.store offset=140 local.get $33 local.set $34 global.get $~lib/memory/__stack_pointer @@ -5190,7 +5079,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 148 + i32.const 144 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/field-initialization.release.wat b/tests/compiler/field-initialization.release.wat index de29586aa0..187b718ade 100644 --- a/tests/compiler/field-initialization.release.wat +++ b/tests/compiler/field-initialization.release.wat @@ -1,9 +1,9 @@ (module (type $0 (func)) - (type $1 (func (param i32))) + (type $1 (func (param i32 i32) (result i32))) (type $2 (func (param i32 i32))) (type $3 (func (result i32))) - (type $4 (func (param i32 i32) (result i32))) + (type $4 (func (param i32))) (type $5 (func (param i32) (result i32))) (type $6 (func (param i32 i32 i32 i32))) (type $7 (func (param i32 i32 i64))) @@ -50,323 +50,799 @@ (data $16.1 (i32.const 1832) " \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 1248 - call $~lib/rt/itcms/__visit - i32.const 1536 - 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 + (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.const 1120 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.gt_s + br_if $do-loop|0 end - local.get $0 - i32.const 20 + 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 - call $~lib/rt/__visit_members - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 + global.set $~lib/rt/itcms/threshold end end - ) - (func $~lib/rt/itcms/Object#makeGray (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) + 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 - global.get $~lib/rt/itcms/iter - i32.eq + i32.const 16 + i32.add + local.tee $2 + i32.const 1073741820 + i32.gt_u 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 + i32.const 1056 + i32.const 1392 + i32.const 461 + i32.const 29 + call $~lib/builtins/abort + unreachable end - block $__inlined_func$~lib/rt/itcms/Object#unlink$223 - local.get $0 - i32.load offset=4 - i32.const -4 + 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 - local.tee $1 - i32.eqz - if - local.get $0 - i32.load offset=8 - i32.eqz - local.get $0 - i32.const 34668 + i32.const 4 + i32.sub + end + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + local.get $5 + i32.const 256 + i32.ge_u + if (result i32) + local.get $5 + i32.const 536870910 i32.lt_u - i32.and - i32.eqz + 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 + memory.size + local.tee $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.set $3 + local.get $2 + local.get $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 - 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$223 end - local.get $0 - i32.load 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 1120 - i32.const 132 + i32.const 1392 + i32.const 499 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) + 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 $1 - i32.const 1792 + 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.gt_u - if - i32.const 1248 - i32.const 1312 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.const 1796 + i32.const -4 + i32.and i32.add + local.tee $3 + local.get $3 i32.load - i32.const 32 + i32.const -3 i32.and + i32.store end - local.set $3 local.get $2 - i32.load offset=8 - local.set $1 + local.get $1 + i32.store offset=12 + local.get $2 local.get $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select + 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 $0 - local.get $1 + local.get $2 + local.get $3 i32.store offset=8 - local.get $1 - local.get $0 - local.get $1 + 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 - local.get $0 i32.store offset=8 - ) - (func $~lib/rt/itcms/__visit (param $0 i32) + 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 - global.get $~lib/rt/itcms/white 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 $0 + local.tee $1 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 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/arraybuffer/ArrayBuffer#constructor (result i32) + (local $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 1900 + i32.lt_s + if + i32.const 34688 + i32.const 34736 i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount + 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 0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1900 + i32.lt_s if - i32.const 0 - i32.const 1392 - i32.const 268 - i32.const 14 + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 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 + 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 - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 + 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 - else - i32.const 31 - i32.const 1073741820 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 + 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.get $4 + local.tee $0 i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor + i32.ge_u + if (result i32) + local.get $2 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + else + i32.const 1 + end + i32.eqz + if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $0 + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + block $__inlined_func$~lib/util/string/compareImpl$118 + loop $while-continue|1 + local.get $0 + local.tee $3 + i32.const 1 + i32.sub + local.set $0 + local.get $3 + if + local.get $2 + i32.load16_u + local.tee $5 + local.get $1 + i32.load16_u + local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 + i32.ne + br_if $__inlined_func$~lib/util/string/compareImpl$118 + local.get $2 + i32.const 2 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end + end + i32.const 0 + local.set $3 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.eqz + return end - local.tee $3 - i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u - i32.and + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (func $~lib/rt/itcms/__visit (param $0 i32) + local.get $0 i32.eqz if - i32.const 0 - i32.const 1392 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable + return end - local.get $1 - i32.load offset=8 - local.set $5 - local.get $1 + global.get $~lib/rt/itcms/white + local.get $0 + i32.const 20 + i32.sub + local.tee $0 i32.load offset=4 - local.tee $4 + i32.const 3 + i32.and + i32.eq if - local.get $4 - local.get $5 - i32.store offset=8 + 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 - local.get $5 + ) + (func $~lib/object/Object#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 1900 + i32.lt_s if - local.get $5 - local.get $4 - i32.store offset=4 + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.get $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store local.get $0 - local.get $2 + i32.eqz + if + 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.shl - local.get $3 - i32.add - i32.const 2 - i32.shl i32.add - local.tee $1 - i32.load offset=96 - i32.eq + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $field-initialization/SomeObject#constructor (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 1900 + i32.lt_s if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 + i32.const 34688 + i32.const 34736 + 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 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 21 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + 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/object/Object#constructor + 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 + local.get $0 + 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 + local.get $0 + ) + (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 @@ -645,119 +1121,319 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + (local $2 i32) (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 + global.get $~lib/rt/itcms/iter + i32.eq if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz if i32.const 0 - i32.const 1392 - i32.const 389 - i32.const 16 + i32.const 1120 + i32.const 148 + i32.const 30 call $~lib/builtins/abort unreachable end - local.get $3 local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$241 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz if - local.get $3 - i32.load - local.set $4 - local.get $5 - local.set $1 + local.get $0 + i32.load offset=8 + i32.eqz + local.get $0 + i32.const 34668 + 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$241 end - else local.get $0 - i32.const 1572 - i32.add - local.get $1 - i32.gt_u + i32.load offset=8 + local.tee $2 + i32.eqz if i32.const 0 - i32.const 1392 - i32.const 402 - i32.const 5 + 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 - 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 + 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 1792 + i32.load + i32.gt_u + if + i32.const 1248 + i32.const 1312 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1796 + i32.add + i32.load + i32.const 32 + i32.and end - local.get $1 - local.get $4 + 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 - i32.and local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or + select + local.get $2 i32.or - i32.store - local.get $1 - i32.const 0 i32.store offset=4 + local.get $0 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 $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/__visit_members (param $0 i32) + block $folding-inner0 + block $invalid + block $field-initialization/SomeOtherObject + block $field-initialization/SomeObject + block $field-initialization/Value_Ctor_Init + block $field-initialization/Value_Init_Ctor + block $field-initialization/Value_Ctor + block $field-initialization/Value + block $field-initialization/Value_Init + 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-inner0 $field-initialization/Value_Init $field-initialization/Value $folding-inner0 $folding-inner0 $folding-inner0 $field-initialization/Value_Ctor $field-initialization/Value_Init_Ctor $field-initialization/Value_Ctor_Init $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $field-initialization/SomeObject $field-initialization/SomeOtherObject $folding-inner0 $folding-inner0 $folding-inner0 $invalid + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + local.get $0 + i32.load offset=4 + call $~lib/rt/itcms/__visit + return + end + 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 + unreachable + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + ) + (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 - call $~lib/rt/tlsf/insertBlock + 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/tlsf/initialize (local $0 i32) @@ -839,122 +1515,396 @@ i32.const 34672 global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/rt/itcms/step (result i32) + (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/itcms/visitRoots (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.const 1248 + call $~lib/rt/itcms/__visit + i32.const 1536 + 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 -4 + i32.const 3 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 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable 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 + 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 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 34668 - 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 + local.set $0 + br $while-continue|0 + end + end + ) + (func $field-initialization/SomeOtherObject#constructor (result i32) + (local $0 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 1900 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + 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 22 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $field-initialization/SomeObject#constructor + 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 offset=8 + local.get $0 + 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 + local.get $0 + ) + (func $field-initialization/Inherit_Base#constructor (param $0 i32) (result i32) + (local $1 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 1900 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + 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 + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 19 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + 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/object/Object#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~start + call $start:field-initialization + ) + (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 34668 + 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 @@ -1044,998 +1994,67 @@ 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.set $1 - 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 $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.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 - 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 $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 - 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 $2 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.tee $2 - 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 - local.get $2 - 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/__visit_members (param $0 i32) - (local $1 i32) - block $folding-inner1 - block $folding-inner0 - block $invalid - block $field-initialization/SomeOtherObject - block $field-initialization/SomeObject - block $field-initialization/Value_Ctor_Init - block $field-initialization/Value_Init_Ctor - block $field-initialization/Value_Ctor - block $field-initialization/Value - block $field-initialization/Value_Init - 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-inner0 $field-initialization/Value_Init $field-initialization/Value $folding-inner0 $folding-inner0 $folding-inner0 $field-initialization/Value_Ctor $field-initialization/Value_Init_Ctor $field-initialization/Value_Ctor_Init $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner1 $field-initialization/SomeObject $field-initialization/SomeOtherObject $folding-inner0 $folding-inner0 $folding-inner0 $invalid - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end - local.get $0 - i32.load offset=4 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - return - end - local.get $0 - i32.load offset=4 - local.tee $1 - if - local.get $1 - call $~lib/rt/itcms/__visit - end - local.get $0 - i32.load offset=8 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - return - end - unreachable - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - return - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - ) - (func $~start - call $start:field-initialization - ) - (func $field-initialization/Inherit_Base#constructor (param $0 i32) (result i32) - (local $1 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 1900 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.eqz - if - local.get $1 - i32.const 4 - i32.const 19 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/object/Object#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $field-initialization/SomeObject#constructor (param $0 i32) (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 1900 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $0 - i32.eqz - if - local.get $1 - i32.const 8 - i32.const 21 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/object/Object#constructor - 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 - local.get $0 - 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 - local.get $0 - ) - (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 1900 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $0 - local.get $1 - i32.eq - if - local.get $2 - 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.tee $4 - local.tee $2 - 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 - local.get $2 - 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 - local.get $4 - local.get $0 - i32.store - local.get $0 - local.set $2 - local.get $4 - 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 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - else - i32.const 1 - end - i32.eqz - if - loop $do-loop|0 - local.get $2 - i64.load - local.get $1 - i64.load - i64.eq - if - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT 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$118 - loop $while-continue|1 - local.get $0 - local.tee $3 - i32.const 1 - i32.sub - local.set $0 - local.get $3 - if + 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 - i32.load16_u - local.tee $5 - local.get $1 - i32.load16_u - local.tee $4 - i32.sub - local.set $3 - local.get $4 - local.get $5 - i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$118 local.get $2 - i32.const 2 - i32.add - local.set $2 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end end - i32.const 0 - local.set $3 + i32.const 10 + return end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - i32.eqz - return - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $field-initialization/SomeOtherObject#constructor (result i32) - (local $0 i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1900 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + 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 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 12 - i32.const 22 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - local.get $0 - call $field-initialization/SomeObject#constructor - 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 offset=8 - local.get $0 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 - local.get $0 ) (func $start:field-initialization (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 148 + i32.const 144 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -2044,9 +2063,8 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 - i32.const 148 + i32.const 144 memory.fill memory.size i32.const 16 @@ -2080,7 +2098,8 @@ i32.store i32.const 1344 global.set $~lib/rt/itcms/fromSpace - local.get $0 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2089,20 +2108,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 4 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 call $~lib/object/Object#constructor local.tee $1 @@ -2117,7 +2134,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store global.get $~lib/memory/__stack_pointer @@ -2136,7 +2152,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2145,20 +2161,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 5 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 call $~lib/object/Object#constructor local.tee $1 @@ -2173,7 +2187,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -2190,7 +2203,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -2199,23 +2212,21 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 6 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 call $~lib/object/Object#constructor local.tee $1 @@ -2238,7 +2249,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -2256,7 +2266,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -2265,23 +2275,21 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 7 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 call $~lib/object/Object#constructor local.tee $1 @@ -2304,7 +2312,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -2322,7 +2329,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2331,20 +2338,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 8 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 call $~lib/object/Object#constructor local.tee $1 @@ -2362,7 +2367,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=20 global.get $~lib/memory/__stack_pointer @@ -2379,7 +2383,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2388,27 +2392,24 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 9 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=4 local.get $1 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=24 global.get $~lib/memory/__stack_pointer @@ -2425,7 +2426,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2434,27 +2435,24 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 10 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=4 local.get $1 i32.const 1 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=28 global.get $~lib/memory/__stack_pointer @@ -2473,7 +2471,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2482,33 +2480,30 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 11 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=4 local.get $1 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 i32.const 1 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=32 global.get $~lib/memory/__stack_pointer @@ -2527,7 +2522,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -2536,13 +2531,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 12 call $~lib/rt/itcms/__new @@ -2566,7 +2560,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=36 global.get $~lib/memory/__stack_pointer @@ -2584,7 +2577,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -2593,13 +2586,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 13 call $~lib/rt/itcms/__new @@ -2632,7 +2624,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=40 global.get $~lib/memory/__stack_pointer @@ -2651,12 +2642,11 @@ end global.get $~lib/memory/__stack_pointer call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.tee $0 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 12 @@ -2667,43 +2657,40 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 14 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $2 i32.store - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $3 + global.get $~lib/memory/__stack_pointer + local.get $2 i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=8 - local.get $3 - local.get $1 + local.get $2 + local.get $0 i32.store - local.get $3 - local.get $1 + local.get $2 + local.get $0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer local.get $2 - local.get $3 i32.store offset=48 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=4 - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.load i32.ne if @@ -2715,7 +2702,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2724,10 +2711,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 15 call $~lib/rt/itcms/__new @@ -2746,7 +2732,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=52 global.get $~lib/memory/__stack_pointer @@ -2763,7 +2748,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -2772,13 +2757,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 16 call $~lib/rt/itcms/__new @@ -2802,7 +2786,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=56 global.get $~lib/memory/__stack_pointer @@ -2820,7 +2803,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -2829,13 +2812,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 17 call $~lib/rt/itcms/__new @@ -2868,7 +2850,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=60 global.get $~lib/memory/__stack_pointer @@ -2886,7 +2867,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2895,20 +2876,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 18 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 call $field-initialization/Inherit_Base#constructor local.tee $1 @@ -2917,7 +2896,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=64 global.get $~lib/memory/__stack_pointer @@ -2935,7 +2913,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2944,20 +2922,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 20 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 call $field-initialization/Inherit_Base#constructor local.tee $1 @@ -2966,7 +2942,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=68 global.get $~lib/memory/__stack_pointer @@ -2984,7 +2959,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer i32.const 0 call $field-initialization/SomeObject#constructor local.tee $1 @@ -2995,7 +2970,6 @@ local.get $1 i32.const 0 i32.store offset=4 - local.get $0 local.get $1 i32.store offset=76 global.get $~lib/memory/__stack_pointer @@ -3012,10 +2986,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store offset=80 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.load offset=4 local.tee $0 @@ -3033,7 +3006,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer i32.const 0 call $field-initialization/SomeObject#constructor local.tee $1 @@ -3047,7 +3020,6 @@ local.get $1 i32.const 0 i32.store offset=4 - local.get $0 local.get $1 i32.store offset=88 global.get $~lib/memory/__stack_pointer @@ -3066,10 +3038,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store offset=80 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.load offset=4 local.tee $0 @@ -3087,7 +3058,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer i32.const 0 call $field-initialization/SomeObject#constructor local.tee $1 @@ -3095,9 +3066,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1648 - i32.store offset=80 local.get $1 i32.const 1648 i32.store offset=4 @@ -3107,7 +3075,6 @@ local.get $1 i32.const 0 i32.store - local.get $0 local.get $1 i32.store offset=96 global.get $~lib/memory/__stack_pointer @@ -3124,19 +3091,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 - i32.store offset=100 - local.get $0 + i32.store offset=80 + global.get $~lib/memory/__stack_pointer local.get $1 i32.load offset=4 - local.tee $1 + local.tee $0 i32.store offset=4 local.get $0 i32.const 1648 - i32.store offset=80 - local.get $1 - i32.const 1648 call $~lib/string/String.__eq i32.eqz if @@ -3148,11 +3111,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer i32.const 0 call $field-initialization/SomeObject#constructor local.tee $1 - i32.store offset=104 + i32.store offset=100 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -3162,18 +3125,14 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1680 - i32.store offset=80 local.get $1 i32.const 1680 i32.store offset=4 local.get $1 i32.const 1680 call $~lib/rt/itcms/__link - local.get $0 local.get $1 - i32.store offset=108 + i32.store offset=104 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -3190,19 +3149,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 - i32.store offset=100 - local.get $0 + i32.store offset=80 + global.get $~lib/memory/__stack_pointer local.get $1 i32.load offset=4 - local.tee $1 + local.tee $0 i32.store offset=4 local.get $0 i32.const 1680 - i32.store offset=80 - local.get $1 - i32.const 1680 call $~lib/string/String.__eq i32.eqz if @@ -3214,16 +3169,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer call $field-initialization/SomeOtherObject#constructor local.tee $1 - i32.store offset=112 + i32.store offset=108 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=80 local.get $1 i32.const 1712 i32.store offset=8 @@ -3236,9 +3188,8 @@ local.get $1 i32.const 0 i32.store offset=4 - local.get $0 local.get $1 - i32.store offset=116 + i32.store offset=112 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -3253,10 +3204,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store offset=80 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.load offset=4 local.tee $0 @@ -3274,19 +3224,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 - i32.store offset=100 - local.get $0 + i32.store offset=80 + global.get $~lib/memory/__stack_pointer local.get $1 i32.load offset=8 - local.tee $1 + local.tee $0 i32.store offset=4 local.get $0 i32.const 1712 - i32.store offset=80 - local.get $1 - i32.const 1712 call $~lib/string/String.__eq i32.eqz if @@ -3298,10 +3244,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer call $field-initialization/SomeOtherObject#constructor local.tee $1 - i32.store offset=120 + i32.store offset=116 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -3311,9 +3257,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1744 - i32.store offset=80 local.get $1 i32.const 1744 i32.store offset=4 @@ -3323,18 +3266,14 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1776 - i32.store offset=80 local.get $1 i32.const 1776 i32.store offset=8 local.get $1 i32.const 1776 call $~lib/rt/itcms/__link - local.get $0 local.get $1 - i32.store offset=124 + i32.store offset=120 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -3351,19 +3290,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 - i32.store offset=100 - local.get $0 + i32.store offset=80 + global.get $~lib/memory/__stack_pointer local.get $1 i32.load offset=4 - local.tee $2 + local.tee $0 i32.store offset=4 local.get $0 i32.const 1744 - i32.store offset=80 - local.get $2 - i32.const 1744 call $~lib/string/String.__eq i32.eqz if @@ -3375,19 +3310,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 - i32.store offset=100 - local.get $0 + i32.store offset=80 + global.get $~lib/memory/__stack_pointer local.get $1 i32.load offset=8 - local.tee $1 + local.tee $0 i32.store offset=4 local.get $0 i32.const 1776 - i32.store offset=80 - local.get $1 - i32.const 1776 call $~lib/string/String.__eq i32.eqz if @@ -3399,7 +3330,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -3408,13 +3339,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 23 call $~lib/rt/itcms/__new @@ -3447,9 +3377,8 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 - i32.store offset=128 + i32.store offset=124 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -3465,12 +3394,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 24 call $~lib/rt/itcms/__new local.tee $1 - i32.store offset=132 + i32.store offset=128 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -3485,9 +3414,8 @@ local.get $1 local.get $2 call $~lib/rt/itcms/__link - local.get $0 local.get $1 - i32.store offset=136 + i32.store offset=132 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -3503,12 +3431,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 25 call $~lib/rt/itcms/__new local.tee $1 - i32.store offset=140 + i32.store offset=136 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -3532,9 +3460,8 @@ local.get $1 local.get $2 call $~lib/rt/itcms/__link - local.get $0 local.get $1 - i32.store offset=144 + i32.store offset=140 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -3550,7 +3477,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 148 + i32.const 144 i32.add global.set $~lib/memory/__stack_pointer return @@ -3562,74 +3489,4 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/object/Object#constructor (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1900 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - local.get $1 - 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 - ) - (func $~lib/arraybuffer/ArrayBuffer#constructor (result i32) - (local $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 1900 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - 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 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) ) diff --git a/tests/compiler/field.debug.wat b/tests/compiler/field.debug.wat index 551564caf0..e2ca4b3acc 100644 --- a/tests/compiler/field.debug.wat +++ b/tests/compiler/field.debug.wat @@ -1623,14 +1623,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 @@ -2422,12 +2425,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -2438,12 +2437,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/array/Array<~lib/string/String>#get:dataStart (param $this i32) (result i32) local.get $this @@ -2539,7 +2534,6 @@ (func $field/NoStaticConflict#constructor (param $this i32) (result i32) (local $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -2563,38 +2557,38 @@ end global.get $~lib/memory/__stack_pointer local.get $this - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=4 - local.get $3 + local.get $2 call $~lib/object/Object#constructor local.tee $this i32.store local.get $this - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=4 - local.get $3 + local.get $2 i32.const 0 i32.const 2 i32.const 5 i32.const 432 call $~lib/rt/__newArray - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=8 - local.get $3 + local.get $2 call $field/NoStaticConflict#set:a local.get $this - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $2 ) (func $field/testNoStaticConflict (local $inst i32) diff --git a/tests/compiler/field.release.wat b/tests/compiler/field.release.wat index 0401d3159f..da05c7bb6a 100644 --- a/tests/compiler/field.release.wat +++ b/tests/compiler/field.release.wat @@ -4,8 +4,8 @@ (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 $5 (func (result i32))) + (type $6 (func (param i32 i32 i64))) (import "env" "abort" (func $~lib/builtins/abort (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)) @@ -35,183 +35,6 @@ (data $9.1 (i32.const 1496) "\02A\00\00\02\t") (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 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$125 - 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 34272 - 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$125 - 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 1472 - i32.load - i32.gt_u - if - i32.const 1248 - i32.const 1312 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.const 1476 - 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 @@ -236,85 +59,659 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $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 + 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 34272 + 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 34272 + 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 34272 + 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/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 + 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 + memory.size + local.tee $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.set $3 + local.get $2 + local.get $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/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 @@ -539,551 +936,343 @@ 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 + 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 - local.get $1 - i32.const 16 + i32.const 4 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 + i32.shr_u + i32.const 16 + i32.xor end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 + local.tee $2 + i32.const 16 + i32.lt_u + local.get $5 + i32.const 23 i32.lt_u + i32.and + i32.eqz if - return + i32.const 0 + i32.const 1392 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable end - local.get $1 - local.get $4 + local.get $0 + local.get $5 + i32.const 4 + i32.shl + local.get $2 + i32.add 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 + i32.shl + i32.add + i32.load offset=96 + local.set $3 local.get $1 i32.const 0 i32.store offset=4 local.get $1 - i32.const 0 + local.get $3 i32.store offset=8 - local.get $1 - i32.const 4 - i32.add 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 - local.tee $3 i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 - local.get $0 + i32.shl + i32.add 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 34272 - i32.const 0 - i32.store - i32.const 35840 - 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 34272 - 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 34272 - 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 34272 - i32.const 35844 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34272 - 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.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/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 - 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 34272 - 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 + i32.const 1120 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$127 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz 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.load offset=8 i32.eqz - local.get $1 - i32.const 3 + local.get $0 + i32.const 34272 + i32.lt_u i32.and - i32.ne + i32.eqz if i32.const 0 i32.const 1120 - i32.const 229 - i32.const 20 + i32.const 128 + i32.const 18 call $~lib/builtins/abort unreachable end - local.get $0 - i32.const 34272 - 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 34272 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize + br $__inlined_func$~lib/rt/itcms/Object#unlink$127 + 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 1472 + i32.load + i32.gt_u + if + i32.const 1248 + i32.const 1312 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1476 + 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/__visit_members (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + block $folding-inner1 + block $folding-inner0 + block $invalid + block $~lib/array/Array + block $~lib/array/Array<~lib/string/String> + block $field/NoStaticConflict + 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 $field/NoStaticConflict $~lib/array/Array<~lib/string/String> $~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 + return end - global.get $~lib/rt/tlsf/ROOT - local.set $1 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub - local.set $2 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1504 + 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.const 15 - i32.and - i32.const 1 + i32.store + local.get $0 + i32.load offset=4 + local.set $1 + global.get $~lib/memory/__stack_pointer 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 $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock + 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 + br $folding-inner1 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 1504 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + br $folding-inner1 end - i32.const 10 - return + unreachable end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 34304 + i32.const 34352 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - i32.const 0 + 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 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1164,375 +1353,295 @@ 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 - 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 $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 - 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 + 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 19 + i32.const 1 i32.add - i32.const -16 + i32.shl 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 + local.tee $1 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 + 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 - local.get $5 + i32.const 0 end - i32.const 4 - local.get $4 - i32.load offset=1568 - local.get $2 - i32.const 16 - i32.shl - i32.const 4 + end + ) + (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 - 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 + else + i32.const 0 + end + if + unreachable + end + i32.const 34272 + i32.const 0 + i32.store + i32.const 35840 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u if - local.get $3 - memory.grow + local.get $0 + i32.const 2 + i32.shl + i32.const 34272 + i32.add 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.store offset=4 i32.const 0 - i32.const 1392 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable + 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 34272 + 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 - local.get $5 + i32.const 34272 + i32.const 35844 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34272 + global.set $~lib/rt/tlsf/ROOT + ) + (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 - i32.load - i32.const -4 - i32.and - i32.gt_u + local.get $1 + i64.extend_i32_u + i64.lt_u if i32.const 0 i32.const 1392 - i32.const 501 + i32.const 382 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 + local.get $1 + i32.const 19 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.const -16 i32.and - local.get $5 + i32.const 4 i32.sub + local.set $1 + local.get $0 + i32.load offset=1568 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 + local.get $3 i32.const 4 i32.add - local.get $5 - i32.add - local.tee $5 + 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 - i32.const 4 + local.get $1 + i32.const 16 i32.sub - i32.const 1 - i32.or - i32.store - local.get $4 - local.get $5 - call $~lib/rt/tlsf/insertBlock + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + local.set $1 + end 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 + local.get $0 + i32.const 1572 i32.add - local.tee $3 - local.get $3 - i32.load - i32.const -3 - i32.and - i32.store + 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.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 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end 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 + 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 - local.get $2 + i32.const 0 i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $2 - i32.load - i32.const -4 - i32.and + local.get $1 i32.const 4 i32.add + local.get $3 i32.add - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 local.get $0 - memory.fill local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1248 + 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/__link (param $0 i32) (param $1 i32) - (local $2 i32) local.get $1 i32.eqz if @@ -1549,7 +1658,6 @@ unreachable end global.get $~lib/rt/itcms/white - local.tee $2 local.get $1 i32.const 20 i32.sub @@ -1566,7 +1674,7 @@ i32.const 3 i32.and local.tee $0 - local.get $2 + global.get $~lib/rt/itcms/white i32.eqz i32.eq if @@ -1587,6 +1695,9 @@ end end ) + (func $~start + call $start:field + ) (func $start:field (local $0 i32) (local $1 i32) @@ -1634,10 +1745,10 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -1646,23 +1757,22 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1671,13 +1781,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 call $~lib/rt/itcms/__new @@ -1688,7 +1797,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1703,9 +1811,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 1 call $~lib/rt/itcms/__new @@ -1713,7 +1821,6 @@ i32.const 1456 i32.const 0 memory.copy - local.get $2 local.get $3 i32.store i32.const 16 @@ -1751,7 +1858,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1803,123 +1909,4 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/rt/__visit_members (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - block $folding-inner2 - block $folding-inner1 - block $folding-inner0 - block $invalid - block $~lib/array/Array - block $~lib/array/Array<~lib/string/String> - 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-inner2 $folding-inner2 $~lib/array/Array<~lib/string/String> $~lib/array/Array $invalid - end - return - end - return - end - 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 1504 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $1 - local.get $2 - 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 - br $folding-inner1 - 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 1504 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - br $folding-inner1 - end - unreachable - end - i32.const 34304 - i32.const 34352 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - 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 - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - ) - (func $~start - call $start:field - ) ) diff --git a/tests/compiler/for.debug.wat b/tests/compiler/for.debug.wat index b83cf2740a..fd03f109f2 100644 --- a/tests/compiler/for.debug.wat +++ b/tests/compiler/for.debug.wat @@ -2009,14 +2009,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 @@ -3031,12 +3034,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/for.release.wat b/tests/compiler/for.release.wat index cc3a2dc0f2..d638bb953f 100644 --- a/tests/compiler/for.release.wat +++ b/tests/compiler/for.release.wat @@ -1,8 +1,8 @@ (module (type $0 (func)) - (type $1 (func (param i32))) - (type $2 (func (param i32 i32))) - (type $3 (func (result i32))) + (type $1 (func (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 i32 i32))) (type $6 (func (param i32 i32 i64))) @@ -34,244 +34,523 @@ (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 + (func $for/Ref#constructor (result i32) (local $0 i32) (local $1 i32) - i32.const 1280 - call $~lib/rt/itcms/__visit - i32.const 1088 - 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 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + 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 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.ne + 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 1496 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz if - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1152 - 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 + global.get $~lib/memory/__stack_pointer + 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 + return end + i32.const 34288 + i32.const 34336 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/rt/itcms/__visit (param $0 i32) + (func $~lib/rt/itcms/step (result i32) + (local $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 + 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 - i32.const 1152 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable + 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 - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$128 - local.get $1 + 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.tee $0 - i32.eqz - if - local.get $1 - i32.load offset=8 - i32.eqz - local.get $1 - i32.const 34264 - i32.lt_u - i32.and - i32.eqz + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne if - i32.const 0 - i32.const 1152 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable + 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 - br $__inlined_func$~lib/rt/itcms/Object#unlink$128 - end - local.get $1 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1152 - 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.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 3 + i32.const -4 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 1472 - i32.load - i32.gt_u + i32.eq if - i32.const 1280 - i32.const 1344 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 34264 + 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.const 2 - i32.shl - i32.const 1476 - i32.add - i32.load - i32.const 32 + 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 1152 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34264 + 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 34264 + 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 1424 + 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 - 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 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $2 - local.get $1 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount + i32.const 0 + global.set $~lib/rt/itcms/state end + i32.const 0 ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (func $~lib/rt/itcms/__visit (param $0 i32) + (local $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 + local.get $0 i32.eqz if - i32.const 0 - i32.const 1424 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable + return end - local.get $3 - i32.const -4 + 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 - local.tee $3 - i32.const 12 - i32.lt_u + i32.eq if - i32.const 0 - i32.const 1424 - 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 + 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 1152 + 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$128 + 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 34264 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$128 + end + local.get $1 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1152 + 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 1472 + i32.load + i32.gt_u + if + i32.const 1280 + i32.const 1344 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 2 + i32.shl + i32.const 1476 + 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 1424 + 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 1424 + 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 @@ -623,517 +902,327 @@ 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 1424 - 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 1424 - 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 + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $for/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 $for/Ref $invalid + end + return + end + return + end + return + end + local.get $0 i32.load - local.set $4 - local.get $5 - local.set $1 + call $~lib/rt/itcms/__visit + return end - else - local.get $0 - i32.const 1572 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1424 - 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 34272 - i32.const 0 - i32.store - i32.const 35840 - 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 34272 - 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 34272 - 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 34272 - i32.const 35844 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34272 - global.set $~lib/rt/tlsf/ROOT + unreachable ) - (func $~lib/rt/itcms/step (result i32) - (local $0 i32) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result 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 34264 - 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 -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 $2 + i32.const 2 + i32.shl + i32.add 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 1152 - i32.const 229 - i32.const 20 + i32.const 1424 + i32.const 347 + i32.const 18 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 34264 - 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 34264 - i32.ge_u + 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 + i32.const 0 + end + end + ) + (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 34272 + i32.const 0 + i32.store + i32.const 35840 + 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 34272 + 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 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.set $1 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 1424 - 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 + i32.shl local.get $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.add + i32.const 2 + i32.shl + i32.const 34272 + 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 - i32.const 10 - return + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 + end + i32.const 34272 + i32.const 35844 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34272 + global.set $~lib/rt/tlsf/ROOT + ) + (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 - global.set $~lib/rt/itcms/state + i32.const 1424 + 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 1424 + 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 1424 + 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/searchBlock (param $0 i32) (result i32) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) (local $1 i32) - (local $2 i32) - local.get $0 + i32.const 1280 + call $~lib/rt/itcms/__visit + i32.const 1088 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 i32.load offset=4 - i32.const -2 + i32.const -4 i32.and - local.tee $1 - if (result i32) + local.set $0 + loop $while-continue|0 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) + i32.ne + if local.get $0 - local.get $1 - i32.ctz - local.tee $2 - i32.const 2 - i32.shl - i32.add i32.load offset=4 - local.tee $1 - i32.eqz + i32.const 3 + i32.and + i32.const 3 + i32.ne if i32.const 0 - i32.const 1424 - i32.const 347 - i32.const 18 + i32.const 1152 + i32.const 160 + i32.const 16 call $~lib/builtins/abort unreachable end local.get $0 - local.get $1 - i32.ctz - local.get $2 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl + i32.const 20 i32.add - i32.load offset=96 - else - i32.const 0 + 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 ) @@ -1158,12 +1247,8 @@ i32.eqz if global.get $~lib/rt/itcms/total - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 + i32.const 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold @@ -1175,8 +1260,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $1 - local.get $1 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1198,12 +1282,11 @@ local.tee $1 i32.eqz if - memory.size - local.tee $1 i32.const 4 local.get $2 i32.load offset=1568 - local.get $1 + memory.size + local.tee $1 i32.const 16 i32.shl i32.const 4 @@ -1216,7 +1299,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.set $3 + local.get $1 + local.get $3 local.get $1 local.get $3 i32.gt_s @@ -1371,10 +1456,14 @@ memory.fill local.get $0 ) + (func $~start + call $start:for + ) (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 @@ -1473,12 +1562,12 @@ end i32.const 10 local.set $0 - loop $for-loop|03 + loop $for-loop|04 local.get $0 i32.const 1 i32.sub local.tee $0 - br_if $for-loop|03 + br_if $for-loop|04 end local.get $0 if @@ -1491,18 +1580,17 @@ end i32.const 0 local.set $0 - loop $for-loop|04 + loop $for-loop|06 local.get $0 i32.const 1 i32.add local.tee $0 i32.const 10 i32.ne - br_if $for-loop|04 + local.tee $3 + br_if $for-loop|06 end - local.get $0 - i32.const 10 - i32.ne + local.get $3 if i32.const 0 i32.const 1056 @@ -1513,7 +1601,7 @@ end i32.const 0 local.set $0 - loop $for-loop|05 + loop $for-loop|07 local.get $0 i32.const 10 i32.lt_s @@ -1522,7 +1610,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|05 + br $for-loop|07 end end local.get $0 @@ -1538,7 +1626,7 @@ end i32.const 0 local.set $0 - loop $for-loop|06 + loop $for-loop|09 local.get $0 i32.const 10 i32.lt_s @@ -1575,7 +1663,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|06 + br $for-loop|09 end end local.get $0 @@ -1653,16 +1741,15 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store i32.const 0 local.set $1 - local.get $0 + global.get $~lib/memory/__stack_pointer call $for/Ref#constructor local.tee $0 i32.store - loop $for-loop|07 + loop $for-loop|05 local.get $0 if local.get $1 @@ -1680,7 +1767,7 @@ local.tee $0 i32.store end - br $for-loop|07 + br $for-loop|05 end end local.get $1 @@ -1716,12 +1803,11 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store i32.const 0 local.set $1 - local.get $0 + global.get $~lib/memory/__stack_pointer call $for/Ref#constructor i32.store global.get $~lib/memory/__stack_pointer @@ -1731,7 +1817,7 @@ loop $for-loop|08 call $for/Ref#constructor if - block $for-break03 + block $for-break06 local.get $1 i32.const 1 i32.add @@ -1741,7 +1827,7 @@ if i32.const 0 local.set $0 - br $for-break03 + br $for-break06 end global.get $~lib/memory/__stack_pointer call $for/Ref#constructor @@ -1817,107 +1903,4 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $for/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 $for/Ref $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - return - end - return - end - unreachable - ) - (func $~start - call $start:for - ) - (func $for/Ref#constructor (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 - global.get $~lib/memory/__stack_pointer - i32.const 1496 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1496 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - local.get $2 - 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 $1 - 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 - return - end - i32.const 34288 - i32.const 34336 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) ) diff --git a/tests/compiler/function-call.debug.wat b/tests/compiler/function-call.debug.wat index 067a7f4fc0..d533f74061 100644 --- a/tests/compiler/function-call.debug.wat +++ b/tests/compiler/function-call.debug.wat @@ -1657,14 +1657,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + drop global.get $~lib/rt/itcms/total - i64.extend_i32_u i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 + i32.const 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold @@ -2313,12 +2316,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/function-call.release.wat b/tests/compiler/function-call.release.wat index 3cc492ff52..ae676fe060 100644 --- a/tests/compiler/function-call.release.wat +++ b/tests/compiler/function-call.release.wat @@ -56,67 +56,6 @@ (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)) (start $~start) - (func $start:function-call~anonymous|0 - ) - (func $start:function-call~anonymous|2 (param $0 i32) (param $1 i32) (result i32) - local.get $0 - 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) - global.get $function-call/foo - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 1472 - call $~lib/rt/itcms/__visit - i32.const 1280 - 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) @@ -661,6 +600,201 @@ i32.or i32.store offset=4 ) + (func $~lib/rt/__visit_members (param $0 i32) + block $folding-inner0 + block $invalid + block $function-call/Foo + 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 $function-call/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 + 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 1804 + 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=4 + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (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 $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $1 + 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 $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 + i32.const 0 + end + end + ) + (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/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) (local $3 i32) (local $4 i32) @@ -775,575 +909,222 @@ local.get $1 call $~lib/rt/tlsf/insertBlock ) - (func $~lib/rt/tlsf/initialize + (func $~lib/rt/itcms/visitRoots (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 + global.get $function-call/foo + local.tee $0 if - unreachable + local.get $0 + call $~lib/rt/itcms/__visit end - i32.const 34576 - i32.const 0 - i32.store - i32.const 36144 - i32.const 0 - i32.store - loop $for-loop|0 + i32.const 1472 + call $~lib/rt/itcms/__visit + i32.const 1280 + 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 - i32.const 23 - i32.lt_u + local.get $1 + i32.ne 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.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 - 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 + call $~lib/builtins/abort + unreachable end local.get $0 - i32.const 1 + 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 $for-loop|0 + br $while-continue|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) + (func $~lib/rt/itcms/__new (param $0 i32) (result 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 $3 i32) + (local $4 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 $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 + 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 - 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 + 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.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if + i32.const 4 + local.get $2 + i32.load offset=1568 + memory.size + local.tee $1 + 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.set $3 + local.get $1 + local.get $3 + local.get $1 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s + if + local.get $3 + memory.grow 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 + i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 34572 - 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 + unreachable 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 + local.get $2 + 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 $2 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz 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 34572 - 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 34572 - 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.set $1 - 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 $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return + i32.const 0 + i32.const 1616 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 + end + local.get $1 + i32.load + i32.const -4 + i32.and + i32.const 28 + i32.lt_u + if i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 1616 + i32.const 501 + i32.const 14 + call $~lib/builtins/abort + unreachable 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 + 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.tee $1 - if (result i32) - local.get $0 + i32.const 28 + i32.sub + local.tee $4 + i32.const 16 + i32.ge_u + if local.get $1 - i32.ctz + local.get $3 i32.const 2 - i32.shl + i32.and + i32.const 28 + i32.or + i32.store + local.get $1 + i32.const 32 i32.add - i32.load offset=96 + local.tee $3 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $2 + local.get $3 + call $~lib/rt/tlsf/insertBlock 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 $2 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $1 - 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 $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 - 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) - 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 - local.tee $1 - local.get $1 - 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 $2 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - memory.size - 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.const 65563 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $3 - local.get $1 - 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 $2 - 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 $2 - 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 $1 - i32.load - i32.const -4 - i32.and - i32.const 28 - i32.lt_u - if - i32.const 0 - i32.const 1616 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.tee $3 - i32.const -4 - i32.and - i32.const 28 - i32.sub - local.tee $4 - i32.const 16 - i32.ge_u - if - local.get $1 - local.get $3 - i32.const 2 - i32.and - i32.const 28 - i32.or - i32.store - local.get $1 - i32.const 32 - i32.add - local.tee $3 - local.get $4 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $2 - local.get $3 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $3 + local.get $1 + local.get $3 i32.const -2 i32.and i32.store @@ -1409,79 +1190,19 @@ memory.fill local.get $0 ) - (func $function-call/Foo#fnVoid (param $0 i32) + (func $start:function-call~fn2|4 (param $0 i32) (result i32) + i32.const 1 ) - (func $function-call/Foo#fnRet (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - i32.const 3 + (func $start:function-call~anonymous|2 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.add ) - (func $~lib/rt/__visit_members (param $0 i32) + (func $start:function-call~anonymous|0 + ) + (func $~start + (local $0 i32) (local $1 i32) - block $folding-inner0 - block $invalid - block $function-call/Foo - 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 $function-call/Foo $folding-inner0 $folding-inner0 $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - 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 1804 - 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 - local.tee $1 - i32.const 0 - i32.store - local.get $1 - 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 - ) - (func $~start - (local $0 i32) - (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1576,19 +1297,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 7 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1597,13 +1317,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 call $~lib/rt/itcms/__new local.tee $0 @@ -1613,7 +1332,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1668,4 +1386,269 @@ call $~lib/builtins/abort unreachable ) + (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 34572 + 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 34572 + 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 34572 + 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 $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 + ) ) diff --git a/tests/compiler/function-expression.debug.wat b/tests/compiler/function-expression.debug.wat index 4d60cddafc..8758a369fa 100644 --- a/tests/compiler/function-expression.debug.wat +++ b/tests/compiler/function-expression.debug.wat @@ -155,7 +155,6 @@ 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 @@ -165,6 +164,7 @@ local.tee $0 i32.store i32.const 1 + i32.const 1 global.set $~argumentsLength local.get $0 i32.load @@ -206,7 +206,6 @@ i32.const 544 local.tee $localFunc i32.store - i32.const 1 global.get $~lib/memory/__stack_pointer i32.const 0 global.set $~argumentsLength @@ -216,6 +215,7 @@ local.tee $1 i32.store offset=4 i32.const 1 + i32.const 1 global.set $~argumentsLength local.get $1 i32.load @@ -1815,14 +1815,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 @@ -2580,12 +2583,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -2656,12 +2655,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid @@ -2810,7 +2805,6 @@ call $function-expression/FieldClass#constructor local.tee $fieldInst i32.store offset=4 - i32.const 1 global.get $~lib/memory/__stack_pointer i32.const 0 global.set $~argumentsLength @@ -2826,6 +2820,7 @@ local.tee $1 i32.store offset=8 i32.const 1 + i32.const 1 global.set $~argumentsLength local.get $1 i32.load diff --git a/tests/compiler/function-expression.release.wat b/tests/compiler/function-expression.release.wat index a04dbf3bd6..560499a4a1 100644 --- a/tests/compiler/function-expression.release.wat +++ b/tests/compiler/function-expression.release.wat @@ -76,205 +76,6 @@ (export "semanticallyAnonymous" (func $function-expression/semanticallyAnonymous)) (export "memory" (memory $0)) (start $~start) - (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 1792 - call $~lib/rt/itcms/__visit - i32.const 1600 - 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 1664 - 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 1664 - 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$131 - 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 34924 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1664 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$131 - end - local.get $0 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1664 - 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 2112 - i32.load - i32.gt_u - if - i32.const 1792 - i32.const 1856 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.const 2116 - 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 @@ -299,6 +100,9 @@ global.set $~lib/rt/itcms/visitCount end ) + (func $start:function-expression~anonymous|0 (param $0 i32) (result i32) + local.get $0 + ) (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -691,119 +495,260 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + (local $2 i32) (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 1936 - 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 + global.get $~lib/rt/itcms/iter + i32.eq if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz if i32.const 0 - i32.const 1936 - i32.const 389 - i32.const 16 + i32.const 1664 + i32.const 148 + i32.const 30 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 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$133 + 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 34924 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1664 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$133 end - else local.get $0 - i32.const 1572 - i32.add + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1664 + 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 2112 + i32.load i32.gt_u if - i32.const 0 - i32.const 1936 - i32.const 402 - i32.const 5 + i32.const 1792 + i32.const 1856 + i32.const 21 + i32.const 28 call $~lib/builtins/abort unreachable end + local.get $1 + i32.const 2 + i32.shl + i32.const 2116 + i32.add + i32.load + i32.const 32 + i32.and end + local.set $3 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.load offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz i32.const 2 - i32.and local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or + select + local.get $2 i32.or - i32.store - local.get $1 - i32.const 0 i32.store offset=4 + local.get $0 local.get $1 - i32.const 0 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/__visit_members (param $0 i32) + block $folding-inner0 + block $invalid + block $function-expression/FieldClass + 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 $function-expression/FieldClass $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 + return + end + unreachable + end + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.add - local.get $3 - i32.add - local.tee $3 - i32.const 2 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2156 + i32.lt_s + if + 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.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $3 - i32.store offset=1568 + i32.store local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock + 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 + ) + (func $start:function-expression~anonymous|7~anonymous|0 (param $0 i32) (result i32) + local.get $0 + i32.const 24 + i32.add + ) + (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 $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1936 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + 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 + i32.const 0 + end + end ) (func $~lib/rt/tlsf/initialize (local $0 i32) @@ -875,15 +820,216 @@ br $for-loop|0 end end - i32.const 34928 - i32.const 36500 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34928 - global.set $~lib/rt/tlsf/ROOT + i32.const 34928 + i32.const 36500 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34928 + global.set $~lib/rt/tlsf/ROOT + ) + (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 1936 + 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 1936 + 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 1936 + 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/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1792 + call $~lib/rt/itcms/__visit + i32.const 1600 + 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 1664 + 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 $start:function-expression~anonymous|6 (param $0 i32) (param $1 i32) (result i32) + i32.const 42 + ) + (func $start:function-expression~anonymous|5 (param $0 i32) (param $1 i32) (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|3 (result i32) + i32.const 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 2156 + i32.lt_s + if + 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.store + global.get $~lib/memory/__stack_pointer + i32.const 2064 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~start + call $start:function-expression ) (func $~lib/rt/itcms/step (result i32) (local $0 i32) @@ -1095,7 +1241,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1128,7 +1273,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1137,74 +1281,16 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + 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 $2 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1936 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - 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 - i32.const 0 - end - end - ) (func $~lib/rt/itcms/__new (result i32) (local $0 i32) (local $1 i32) @@ -1226,12 +1312,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 @@ -1243,8 +1325,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1266,12 +1347,11 @@ local.tee $0 i32.eqz if - memory.size - local.tee $0 i32.const 4 local.get $1 i32.load offset=1568 - local.get $0 + memory.size + local.tee $0 i32.const 16 i32.shl i32.const 4 @@ -1284,7 +1364,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $2 + local.set $2 + local.get $0 + local.get $2 local.get $0 local.get $2 i32.gt_s @@ -1438,8 +1520,9 @@ i32.store align=1 local.get $0 ) - (func $function-expression/semanticallyAnonymous - (local $0 i32) + (func $start:function-expression~someName|2 + ) + (func $start:function-expression~anonymous|7 (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1456,80 +1539,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 - i32.const 2064 + global.get $~lib/memory/__stack_pointer + i32.const 1472 i32.store - local.get $0 + 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) - block $folding-inner1 - block $folding-inner0 - block $invalid - 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-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner1 $invalid - 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 2156 - i32.lt_s - if - i32.const 34944 - i32.const 34992 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - 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 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - ) - (func $~start - call $start:function-expression + i32.const 1472 ) (func $start:function-expression (local $0 i32) @@ -1699,10 +1718,9 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1504 i32.load call_indirect (type $0) @@ -1735,13 +1753,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1568 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1568 i32.load call_indirect (type $0) @@ -1806,16 +1823,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 2032 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -1824,21 +1841,19 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 2032 i32.store offset=8 local.get $1 @@ -1855,22 +1870,21 @@ unreachable end global.get $~lib/rt/itcms/white - local.tee $2 i32.const 2016 i32.load i32.const 3 i32.and i32.eq if - local.get $2 - i32.eqz local.get $1 i32.const 20 i32.sub i32.load offset=4 i32.const 3 i32.and - local.tee $2 + local.tee $0 + global.get $~lib/rt/itcms/white + i32.eqz i32.eq if i32.const 2012 @@ -1879,7 +1893,7 @@ global.get $~lib/rt/itcms/state i32.const 1 i32.eq - local.get $2 + local.get $0 i32.const 3 i32.eq i32.and @@ -1893,7 +1907,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer @@ -1938,38 +1951,7 @@ call $~lib/builtins/abort unreachable ) - (func $start:function-expression~anonymous|7 (result i32) - (local $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 2156 - i32.lt_s - if - i32.const 34944 - i32.const 34992 - 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 - local.get $0 - i32.const 1472 - i32.store - local.get $0 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1472 - ) (func $function-expression/testLocal~anonymous|0 (result i32) - (local $0 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1986,20 +1968,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1536 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer i32.const 1536 ) (func $function-expression/testField~anonymous|0 (result i32) - (local $0 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2016,13 +1996,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2000 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/function-inline-regressions.release.wat b/tests/compiler/function-inline-regressions.release.wat index 8fb2f2a946..0f2d81b39f 100644 --- a/tests/compiler/function-inline-regressions.release.wat +++ b/tests/compiler/function-inline-regressions.release.wat @@ -1,16 +1,10 @@ (module - (type $0 (func (param i32))) - (type $1 (func (param i32 i32 i32) (result i32))) + (type $0 (func (param i32 i32 i32) (result i32))) + (type $1 (func (param i32))) (memory $0 0) (export "baz" (func $function-inline-regressions/baz)) (export "foo" (func $function-inline-regressions/foo)) (export "memory" (memory $0)) - (func $function-inline-regressions/baz (param $0 i32) - local.get $0 - if - unreachable - end - ) (func $function-inline-regressions/foo (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $0 @@ -39,4 +33,10 @@ i32.store local.get $3 ) + (func $function-inline-regressions/baz (param $0 i32) + local.get $0 + if + unreachable + end + ) ) diff --git a/tests/compiler/function-types.release.wat b/tests/compiler/function-types.release.wat index b0207d6d3e..5b3f80a227 100644 --- a/tests/compiler/function-types.release.wat +++ b/tests/compiler/function-types.release.wat @@ -27,12 +27,6 @@ local.get $1 i32.add ) - (func $function-types/makeAdder~anonymous|0 (param $0 i64) (param $1 i64) (result i64) - i64.const 30 - ) - (func $function-types/makeAdder~anonymous|0 (param $0 f64) (param $1 f64) (result f64) - f64.const 4 - ) (func $~start (local $0 i32) global.get $~lib/memory/__stack_pointer @@ -168,12 +162,10 @@ i32.const 1056 i32.load call_indirect (type $0) - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 i32.const 3 i32.ne if @@ -215,4 +207,10 @@ call $~lib/builtins/abort unreachable ) + (func $function-types/makeAdder~anonymous|0 (param $0 i64) (param $1 i64) (result i64) + i64.const 30 + ) + (func $function-types/makeAdder~anonymous|0 (param $0 f64) (param $1 f64) (result f64) + f64.const 4 + ) ) diff --git a/tests/compiler/getter-call.debug.wat b/tests/compiler/getter-call.debug.wat index 593954b022..9b5cc21b43 100644 --- a/tests/compiler/getter-call.debug.wat +++ b/tests/compiler/getter-call.debug.wat @@ -1623,14 +1623,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 @@ -2267,12 +2270,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/getter-call.release.wat b/tests/compiler/getter-call.release.wat index 25a60f2d25..9794ae6bb1 100644 --- a/tests/compiler/getter-call.release.wat +++ b/tests/compiler/getter-call.release.wat @@ -37,51 +37,6 @@ (export "test" (func $getter-call/test)) (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 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/__visit (param $0 i32) (local $1 i32) (local $2 i32) @@ -626,6 +581,202 @@ i32.or i32.store offset=4 ) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $~lib/function/Function<%28%29=>i32> + block $getter-call/C + 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 $getter-call/C $~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 + 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 1500 + i32.lt_s + if + 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.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 + ) + (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 $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $1 + 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 $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 + i32.const 0 + end + end + ) + (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 34272 + i32.const 0 + i32.store + i32.const 35840 + 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 34272 + 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 34272 + 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 34272 + i32.const 35844 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34272 + global.set $~lib/rt/tlsf/ROOT + ) (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) (local $3 i32) (local $4 i32) @@ -740,403 +891,48 @@ local.get $1 call $~lib/rt/tlsf/insertBlock ) - (func $~lib/rt/tlsf/initialize + (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - memory.size + i32.const 1248 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace 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 34272 - i32.const 0 - i32.store - i32.const 35840 - 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 34272 - 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 34272 - 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 34272 - i32.const 35844 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34272 - 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 34268 - 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 34268 - 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 34268 - 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.set $1 - 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 $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - local.get $0 i32.load offset=4 - i32.const -2 + i32.const -4 i32.and - local.tee $1 - if (result i32) + local.set $0 + loop $while-continue|0 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) + i32.ne + if local.get $0 - local.get $1 - i32.ctz - local.tee $2 - i32.const 2 - i32.shl - i32.add i32.load offset=4 - local.tee $1 - i32.eqz + i32.const 3 + i32.and + i32.const 3 + i32.ne if i32.const 0 - i32.const 1392 - i32.const 347 - i32.const 18 + i32.const 1120 + i32.const 160 + i32.const 16 call $~lib/builtins/abort unreachable end local.get $0 - local.get $1 - i32.ctz - local.get $2 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl + i32.const 20 i32.add - i32.load offset=96 - else - i32.const 0 + 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 ) @@ -1161,12 +957,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 @@ -1178,8 +970,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $1 - local.get $1 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1201,12 +992,11 @@ local.tee $1 i32.eqz if - memory.size - local.tee $1 i32.const 4 local.get $2 i32.load offset=1568 - local.get $1 + memory.size + local.tee $1 i32.const 16 i32.shl i32.const 4 @@ -1219,7 +1009,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.set $3 + local.get $1 + local.get $3 local.get $1 local.get $3 i32.gt_s @@ -1374,113 +1166,304 @@ memory.fill local.get $0 ) - (func $getter-call/C#get:x~anonymous|0 (result i32) - i32.const 42 + (func $~start + memory.size + i32.const 16 + i32.shl + i32.const 34268 + 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 ) - (func $~lib/rt/__visit_members (param $0 i32) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) (local $1 i32) - block $invalid - block $~lib/function/Function<%28%29=>i32> - block $getter-call/C - 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 $getter-call/C $~lib/function/Function<%28%29=>i32> $invalid - end - return + (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 34268 + 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 - return + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 end - return 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 34268 + 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 34268 + 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 - call $~lib/rt/itcms/__visit + 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 - return end + i32.const 10 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 1500 - i32.lt_s - if - i32.const 34288 - i32.const 34336 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 + 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 - i32.store - local.get $1 - 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 + global.set $~lib/rt/itcms/state end - unreachable - ) - (func $~start - memory.size - i32.const 16 - i32.shl - i32.const 34268 - 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 + i32.const 0 ) (func $getter-call/test (result i32) (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1491,10 +1474,10 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -1503,19 +1486,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1524,13 +1506,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 call $~lib/rt/itcms/__new local.tee $0 @@ -1540,14 +1521,12 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1571,4 +1550,7 @@ call $~lib/builtins/abort unreachable ) + (func $getter-call/C#get:x~anonymous|0 (result i32) + i32.const 42 + ) ) diff --git a/tests/compiler/getter-setter-errors.json b/tests/compiler/getter-setter-errors.json new file mode 100644 index 0000000000..21c80b71ce --- /dev/null +++ b/tests/compiler/getter-setter-errors.json @@ -0,0 +1,9 @@ +{ + "asc_flags": [ + ], + "stderr": [ + "AS229: Property 'm' only has a setter and is missing a getter.", + "TS2808: Get accessor 'm2' must be at least as accessible as the setter.", + "EOF" + ] +} diff --git a/tests/compiler/getter-setter-errors.ts b/tests/compiler/getter-setter-errors.ts new file mode 100644 index 0000000000..c714d2f843 --- /dev/null +++ b/tests/compiler/getter-setter-errors.ts @@ -0,0 +1,20 @@ +class UseNonExistedGetter { + set m(v: string) {} +} +new UseNonExistedGetter().m.toString(); + +class GetSetWithoutDifferenceVisibility { + public get m1(): i32 { + return 1; + } + private set m1(v: i32) {} + + private get m2(): i32 { + return 1; + } + public set m2(v: i32) {} +} +new GetSetWithoutDifferenceVisibility().m1; // m1 is valid +new GetSetWithoutDifferenceVisibility().m2; // m2 is invalid + +ERROR("EOF"); diff --git a/tests/compiler/getter-setter.release.wat b/tests/compiler/getter-setter.release.wat index dc779d8714..b626215eec 100644 --- a/tests/compiler/getter-setter.release.wat +++ b/tests/compiler/getter-setter.release.wat @@ -1,6 +1,6 @@ (module - (type $0 (func (param i32 i32 i32 i32))) - (type $1 (func)) + (type $0 (func)) + (type $1 (func (param i32 i32 i32 i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $getter-setter/Foo._bar (mut i32) (i32.const 0)) (memory $0 1) diff --git a/tests/compiler/heap.release.wat b/tests/compiler/heap.release.wat index caf0699557..cf51676de3 100644 --- a/tests/compiler/heap.release.wat +++ b/tests/compiler/heap.release.wat @@ -4,8 +4,8 @@ (type $2 (func)) (type $3 (func (param i32) (result i32))) (type $4 (func (param i32 i32 i32 i32))) - (type $5 (func (param i32 i32 i64))) - (type $6 (func (param i32 i32 i32))) + (type $5 (func (param i32 i32 i32))) + (type $6 (func (param i32 i32 i64))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $heap/ptr (mut i32) (i32.const 0)) @@ -408,119 +408,77 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - local.get $2 local.get $1 - i64.extend_i32_u - i64.lt_u + i32.load + local.set $3 + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and if i32.const 0 i32.const 1056 - i32.const 382 + i32.const 361 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 19 - i32.add - i32.const -16 + local.get $3 + i32.const -4 i32.and - i32.const 4 + local.get $2 i32.sub - local.set $1 - local.get $0 - i32.load offset=1568 - local.tee $3 + local.tee $4 + i32.const 16 + i32.ge_u if + local.get $1 + local.get $2 local.get $3 + i32.const 2 + i32.and + i32.or + i32.store + local.get $1 i32.const 4 i32.add + local.get $2 + i32.add + local.tee $1 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + else local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1056 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end local.get $3 + i32.const -2 + i32.and + i32.store 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.const 4 i32.add local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1056 - 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 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $0 + local.get $0 + i32.load + i32.const -3 + i32.and + i32.store end - local.get $1 - 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) @@ -602,32 +560,35 @@ i32.const 33936 global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) local.get $0 - i32.const 1073741820 - i32.gt_u - if - i32.const 1120 - i32.const 1056 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.sub + local.set $1 local.get $0 - i32.const 12 - i32.le_u + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select if (result i32) - i32.const 12 + i32.const 1 else - local.get $0 - i32.const 19 - i32.add - i32.const -16 + local.get $1 + i32.load + i32.const 1 i32.and - i32.const 4 - i32.sub 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/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -757,77 +718,64 @@ end end ) - (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - local.get $1 - i32.load - local.set $3 - local.get $2 - i32.const 4 - i32.add - i32.const 15 - i32.and + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u if - i32.const 0 + i32.const 1120 i32.const 1056 - i32.const 361 - i32.const 14 + i32.const 461 + i32.const 29 call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/moveBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + i32.const 32 + call $~lib/rt/tlsf/allocateBlock + local.tee $2 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load i32.const -4 i32.and - local.get $2 - i32.sub - local.tee $4 - i32.const 16 + memory.copy + local.get $1 + i32.const 33932 i32.ge_u if local.get $1 - local.get $2 - local.get $3 - i32.const 2 - i32.and - i32.or - i32.store local.get $1 - i32.const 4 - i32.add - local.get $2 - i32.add - local.tee $1 - local.get $4 - i32.const 4 - i32.sub + i32.load i32.const 1 i32.or i32.store local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $3 - i32.const -2 - i32.and - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $0 - local.get $0 - i32.load - i32.const -3 - i32.and - i32.store end + local.get $2 ) (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -840,8 +788,6 @@ local.tee $1 i32.eqz if - memory.size - local.tee $3 local.get $2 i32.const 256 i32.ge_u @@ -869,7 +815,8 @@ i32.const 4 local.get $0 i32.load offset=1568 - local.get $3 + memory.size + local.tee $3 i32.const 16 i32.shl i32.const 4 @@ -883,7 +830,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $1 + local.set $1 + local.get $3 + local.get $1 local.get $1 local.get $3 i32.lt_s @@ -946,67 +895,119 @@ 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 + (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 1056 - i32.const 562 - i32.const 3 + i32.const 382 + i32.const 14 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 - i32.const 32 - call $~lib/rt/tlsf/allocateBlock - local.tee $2 - i32.const 4 - i32.add - local.get $1 - i32.const 4 + i32.const 19 i32.add - local.get $1 - i32.load - i32.const -4 + i32.const -16 i32.and - memory.copy - local.get $1 - i32.const 33932 - i32.ge_u + 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 1056 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 local.get $1 - i32.load - i32.const 1 - i32.or - i32.store + 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 - call $~lib/rt/tlsf/insertBlock + i32.gt_u + if + i32.const 0 + i32.const 1056 + 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 $~start (local $0 i32) @@ -1044,12 +1045,12 @@ call $~lib/rt/tlsf/moveBlock local.set $0 else + global.get $~lib/rt/tlsf/ROOT + local.set $3 + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + local.set $0 block $__inlined_func$~lib/rt/tlsf/reallocateBlock$53 - global.get $~lib/rt/tlsf/ROOT - local.set $3 - local.get $0 - call $~lib/rt/tlsf/checkUsedBlock - local.set $0 i32.const 32 call $~lib/rt/tlsf/prepareSize local.tee $5 @@ -1130,7 +1131,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 call $~lib/rt/tlsf/checkUsedBlock local.tee $0 @@ -1139,7 +1139,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $0 call $~lib/rt/tlsf/insertBlock end diff --git a/tests/compiler/import-memory.release.wat b/tests/compiler/import-memory.release.wat index be4cb9b4ae..2b56107252 100644 --- a/tests/compiler/import-memory.release.wat +++ b/tests/compiler/import-memory.release.wat @@ -1,6 +1,6 @@ (module - (type $0 (func (param i32 i32 i32 i32))) - (type $1 (func)) + (type $0 (func)) + (type $1 (func (param i32 i32 i32 i32))) (import "env" "memory" (memory $0 1)) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (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") diff --git a/tests/compiler/incremental-gc/call-indirect.debug.wat b/tests/compiler/incremental-gc/call-indirect.debug.wat new file mode 100644 index 0000000000..f41def2823 --- /dev/null +++ b/tests/compiler/incremental-gc/call-indirect.debug.wat @@ -0,0 +1,2641 @@ +(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))) + (type $6 (func (result 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 (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/iter (mut i32) (i32.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/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/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)) + (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) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\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)) + (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 64 + 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 64 + 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 64 + 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 160 + i32.const 224 + 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 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 + 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 304 + 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 304 + 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 304 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + 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 304 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $root + local.get $left + call $~lib/rt/tlsf/removeBlock + local.get $left + local.set $block + local.get $block + local.get $leftInfo + i32.const 4 + i32.add + local.get $blockInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $blockInfo + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $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 304 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $block + i32.const 4 + i32.add + local.get $size + i32.add + local.get $right + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + 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 304 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end + local.set $head + local.get $block + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $block + local.get $head + call $~lib/rt/tlsf/Block#set:next + local.get $head + if + local.get $head + local.get $block + call $~lib/rt/tlsf/Block#set:prev + end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + local.get $root + local.get $root + call $~lib/rt/tlsf/Root#get:flMap + i32.const 1 + 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 304 + i32.const 382 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $start + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + 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 304 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $start + i32.const 16 + i32.sub + local.get $tail + i32.eq + if + local.get $start + i32.const 16 + i32.sub + local.set $start + local.get $tail + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $tailInfo + else + end + else + i32.const 1 + drop + local.get $start + local.get $root + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $end + local.get $start + i32.sub + local.set $size + local.get $size + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $size + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $leftSize + local.get $start + local.set $left + local.get $left + local.get $leftSize + i32.const 1 + i32.or + local.get $tailInfo + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $left + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $left + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $start + i32.const 4 + i32.add + local.get $leftSize + i32.add + local.set $tail + local.get $tail + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + local.get $root + local.get $left + call $~lib/rt/tlsf/insertBlock + i32.const 1 + return + ) + (func $~lib/rt/tlsf/initialize + (local $rootOffset i32) + (local $pagesBefore i32) + (local $pagesNeeded i32) + (local $root i32) + (local $root|4 i32) + (local $tail i32) + (local $fl i32) + (local $root|7 i32) + (local $fl|8 i32) + (local $slMap i32) + (local $sl i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) + (local $head i32) + (local $memStart i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $rootOffset + memory.size + local.set $pagesBefore + local.get $rootOffset + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $pagesNeeded + local.get $pagesNeeded + local.get $pagesBefore + i32.gt_s + if (result i32) + local.get $pagesNeeded + local.get $pagesBefore + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $rootOffset + local.set $root + local.get $root + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + i32.const 0 + local.set $fl + loop $for-loop|0 + local.get $fl + i32.const 23 + i32.lt_u + if + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + i32.const 0 + local.set $sl + loop $for-loop|1 + local.get $sl + i32.const 16 + i32.lt_u + if + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + local.get $sl + i32.const 1 + i32.add + 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 304 + 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 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 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + return + ) + (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 $~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 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 + 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 304 + 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 304 + 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 304 + 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 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 304 + 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 368 + i32.const 64 + i32.const 261 + i32.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 $incremental-gc/call-indirect/B#set:v (param $this i32) (param $v i32) + local.get $this + local.get $v + i32.store + ) + (func $incremental-gc/call-indirect/A#get:v (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/function/Function<%28incremental-gc/call-indirect/A%29=>i32>#get:index (param $this i32) (result i32) + local.get $this + i32.load + return + ) + (func $incremental-gc/call-indirect/A#set:v (param $this i32) (param $v i32) + local.get $this + local.get $v + i32.store + ) + (func $start:incremental-gc/call-indirect + 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 + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + call $incremental-gc/call-indirect/issue_2923 + i32.const 10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 17 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + i32.const 160 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 368 + 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<%28incremental-gc/call-indirect/A%29=>i32>#get:_env (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/function/Function<%28incremental-gc/call-indirect/A%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<%28incremental-gc/call-indirect/A%29=>i32>#__visit + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $incremental-gc/call-indirect/B + block $~lib/function/Function<%28incremental-gc/call-indirect/A%29=>i32> + block $incremental-gc/call-indirect/A + 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 $incremental-gc/call-indirect/A $~lib/function/Function<%28incremental-gc/call-indirect/A%29=>i32> $incremental-gc/call-indirect/B $invalid + end + return + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28incremental-gc/call-indirect/A%29=>i32>~visit + return + end + return + end + unreachable + ) + (func $~start + call $start:incremental-gc/call-indirect + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 33376 + i32.const 33424 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $incremental-gc/call-indirect/B#constructor (param $this i32) (result 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 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 6 + 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 20 + call $incremental-gc/call-indirect/B#set:v + 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 $1 + ) + (func $incremental-gc/call-indirect/foo (param $a i32) (result i32) + (local $b 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 + call $~lib/rt/itcms/__collect + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $incremental-gc/call-indirect/B#constructor + local.tee $b + i32.store + local.get $a + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $incremental-gc/call-indirect/A#get:v + 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 $incremental-gc/call-indirect/A#constructor (param $this i32) (result 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 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 4 + 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 10 + call $incremental-gc/call-indirect/A#set:v + 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 $1 + ) + (func $incremental-gc/call-indirect/issue_2923 (result i32) + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + i32.const 0 + call $incremental-gc/call-indirect/A#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 432 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/function/Function<%28incremental-gc/call-indirect/A%29=>i32>#get:index + call_indirect (type $0) + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + ) + (func $~lib/function/Function<%28incremental-gc/call-indirect/A%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<%28incremental-gc/call-indirect/A%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/object/Object#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 + 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 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) +) diff --git a/tests/compiler/incremental-gc/call-indirect.json b/tests/compiler/incremental-gc/call-indirect.json new file mode 100644 index 0000000000..1bdd02b1be --- /dev/null +++ b/tests/compiler/incremental-gc/call-indirect.json @@ -0,0 +1,4 @@ +{ + "asc_flags": [ + ] +} diff --git a/tests/compiler/incremental-gc/call-indirect.release.wat b/tests/compiler/incremental-gc/call-indirect.release.wat new file mode 100644 index 0000000000..f43270e2d3 --- /dev/null +++ b/tests/compiler/incremental-gc/call-indirect.release.wat @@ -0,0 +1,1846 @@ +(module + (type $0 (func)) + (type $1 (func (param i32) (result i32))) + (type $2 (func (param i32))) + (type $3 (func (result 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))) + (import "env" "abort" (func $~lib/builtins/abort (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/iter (mut i32) (i32.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/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) "<") + (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/__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$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 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$123 + 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 21 + 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/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 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 + 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 1072 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $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/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 1312 + 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 1312 + 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 1312 + 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 1312 + 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 1312 + 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 1312 + 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 1312 + 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 1312 + 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 1312 + 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/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 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 + 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 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 + 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 + memory.size + local.tee $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.set $3 + local.get $2 + local.get $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 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 + 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 $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $incremental-gc/call-indirect/B + block $~lib/function/Function<%28incremental-gc/call-indirect/A%29=>i32> + block $incremental-gc/call-indirect/A + 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 $incremental-gc/call-indirect/A $~lib/function/Function<%28incremental-gc/call-indirect/A%29=>i32> $incremental-gc/call-indirect/B $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + 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 1584 + i32.lt_s + if + 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.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 + return + end + unreachable + ) + (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 1312 + 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 1312 + 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/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 34352 + i32.const 0 + i32.store + i32.const 35920 + 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 34352 + 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 34352 + 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 34352 + i32.const 35924 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34352 + global.set $~lib/rt/tlsf/ROOT + ) + (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 1312 + 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 1312 + 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 1312 + 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/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/object/Object#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 1584 + i32.lt_s + if + 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.store + local.get $0 + i32.eqz + if + 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 + ) + (func $incremental-gc/call-indirect/issue_2923 (result i32) + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1584 + 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.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1584 + 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/object/Object#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 10 + 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 $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1440 + i32.store offset=4 + local.get $0 + i32.const 1440 + i32.load + 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 34384 + i32.const 34432 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~start + i32.const 1028 + i32.const 1024 + i32.store + i32.const 1032 + i32.const 1024 + 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 34352 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + call $incremental-gc/call-indirect/issue_2923 + i32.const 10 + i32.ne + if + i32.const 0 + i32.const 1472 + i32.const 17 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $incremental-gc/call-indirect/foo (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 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1584 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + global.get $~lib/rt/itcms/state + 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 + 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 + 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 1584 + 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 6 + call $~lib/rt/itcms/__new + 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 $2 + call $~lib/object/Object#constructor + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 20 + i32.store + 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 $0 + i32.store offset=4 + local.get $0 + i32.load + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34384 + i32.const 34432 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) +) diff --git a/tests/compiler/incremental-gc/call-indirect.ts b/tests/compiler/incremental-gc/call-indirect.ts new file mode 100644 index 0000000000..9c4f0ed06e --- /dev/null +++ b/tests/compiler/incremental-gc/call-indirect.ts @@ -0,0 +1,17 @@ +class A { + v: i32 = 10; +} +class B { + v: i32 = 20; +} +function foo(a: A): i32 { + __collect(); // to trigger GC + let b = new B(); + return a.v; +} + +export function issue_2923(): i32 { + return call_indirect(foo.index, new A()); +} + +assert(issue_2923() == 10); diff --git a/tests/compiler/infer-array.debug.wat b/tests/compiler/infer-array.debug.wat index c54bf07db8..9a5dcdf64f 100644 --- a/tests/compiler/infer-array.debug.wat +++ b/tests/compiler/infer-array.debug.wat @@ -1642,14 +1642,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 @@ -2501,12 +2504,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -3455,12 +3454,12 @@ (local $7 i32) (local $8 i32) (local $9 i32) - (local $10 i32) + (local $10 f32) (local $11 i32) (local $12 i32) (local $13 i32) (local $14 i32) - (local $15 f32) + (local $15 i32) (local $16 i32) (local $17 i32) (local $18 i32) @@ -3482,30 +3481,14 @@ (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) - global.get $~lib/memory/__stack_pointer - i32.const 112 + global.get $~lib/memory/__stack_pointer + i32.const 96 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 112 + i32.const 96 memory.fill memory.size i32.const 16 @@ -3530,14 +3513,14 @@ i32.const 4 i32.const 32 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store - local.get $2 - local.set $52 + local.get $1 + local.set $36 global.get $~lib/memory/__stack_pointer - local.get $52 + local.get $36 i32.store offset=4 - local.get $52 + local.get $36 i32.const 0 call $~lib/array/Array#__get drop @@ -3551,12 +3534,12 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.set $52 + local.get $1 + local.set $36 global.get $~lib/memory/__stack_pointer - local.get $52 + local.get $36 i32.store offset=4 - local.get $52 + local.get $36 i32.const 0 call $~lib/array/Array#__get drop @@ -3576,14 +3559,14 @@ i32.const 5 i32.const 560 call $~lib/rt/__newArray - local.tee $5 + local.tee $3 i32.store offset=8 - local.get $5 - local.set $52 + local.get $3 + local.set $36 global.get $~lib/memory/__stack_pointer - local.get $52 + local.get $36 i32.store offset=4 - local.get $52 + local.get $36 i32.const 0 call $~lib/array/Array#__get drop @@ -3603,14 +3586,14 @@ i32.const 6 i32.const 608 call $~lib/rt/__newArray - local.tee $8 + local.tee $5 i32.store offset=12 - local.get $8 - local.set $52 + local.get $5 + local.set $36 global.get $~lib/memory/__stack_pointer - local.get $52 + local.get $36 i32.store offset=4 - local.get $52 + local.get $36 i32.const 0 call $~lib/array/Array#__get drop @@ -3624,12 +3607,12 @@ call $~lib/builtins/abort unreachable end - local.get $8 - local.set $52 + local.get $5 + local.set $36 global.get $~lib/memory/__stack_pointer - local.get $52 + local.get $36 i32.store offset=4 - local.get $52 + local.get $36 i32.const 0 call $~lib/array/Array#__get drop @@ -3644,12 +3627,12 @@ call $~lib/builtins/abort unreachable end - local.get $8 - local.set $52 + local.get $5 + local.set $36 global.get $~lib/memory/__stack_pointer - local.get $52 + local.get $36 i32.store offset=4 - local.get $52 + local.get $36 i32.const 1 call $~lib/array/Array#__get i32.const -1 @@ -3669,14 +3652,14 @@ i32.const 5 i32.const 640 call $~lib/rt/__newArray - local.tee $11 + local.tee $7 i32.store offset=16 - local.get $11 - local.set $52 + local.get $7 + local.set $36 global.get $~lib/memory/__stack_pointer - local.get $52 + local.get $36 i32.store offset=4 - local.get $52 + local.get $36 i32.const 0 call $~lib/array/Array#__get drop @@ -3696,14 +3679,14 @@ i32.const 7 i32.const 688 call $~lib/rt/__newArray - local.tee $14 + local.tee $9 i32.store offset=20 - local.get $14 - local.set $52 + local.get $9 + local.set $36 global.get $~lib/memory/__stack_pointer - local.get $52 + local.get $36 i32.store offset=4 - local.get $52 + local.get $36 i32.const 0 call $~lib/array/Array#__get drop @@ -3717,24 +3700,24 @@ call $~lib/builtins/abort unreachable end - local.get $14 - local.set $52 + local.get $9 + local.set $36 global.get $~lib/memory/__stack_pointer - local.get $52 + local.get $36 i32.store offset=4 - local.get $52 + local.get $36 i32.const 1 call $~lib/array/Array#__get - local.set $15 + local.set $10 global.get $~lib/memory/__stack_pointer i32.const 0 call $infer-array/Ref#constructor - local.tee $16 + local.tee $11 i32.store offset=24 global.get $~lib/memory/__stack_pointer i32.const 0 call $infer-array/Ref#constructor - local.tee $17 + local.tee $12 i32.store offset=28 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -3743,30 +3726,25 @@ i32.const 9 i32.const 0 call $~lib/rt/__newArray - local.tee $18 + local.tee $13 i32.store offset=32 - global.get $~lib/memory/__stack_pointer - local.get $18 - i32.load offset=4 - local.tee $19 - i32.store offset=36 - local.get $18 + local.get $13 i32.const 0 - local.get $16 + local.get $11 call $~lib/array/Array#__set - local.get $18 + local.get $13 i32.const 1 - local.get $17 + local.get $12 call $~lib/array/Array#__set - local.get $18 - local.tee $20 - i32.store offset=40 - local.get $20 - local.set $52 + local.get $13 + local.tee $14 + i32.store offset=36 + local.get $14 + local.set $36 global.get $~lib/memory/__stack_pointer - local.get $52 + local.get $36 i32.store offset=4 - local.get $52 + local.get $36 i32.const 0 call $~lib/array/Array#__get drop @@ -3783,13 +3761,13 @@ global.get $~lib/memory/__stack_pointer i32.const 0 call $infer-array/Ref#constructor - local.tee $21 - i32.store offset=44 + local.tee $15 + i32.store offset=40 global.get $~lib/memory/__stack_pointer i32.const 0 call $infer-array/Ref#constructor - local.tee $22 - i32.store offset=48 + local.tee $16 + i32.store offset=44 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2 @@ -3797,30 +3775,25 @@ i32.const 9 i32.const 0 call $~lib/rt/__newArray - local.tee $23 - i32.store offset=52 - global.get $~lib/memory/__stack_pointer - local.get $23 - i32.load offset=4 - local.tee $24 - i32.store offset=56 - local.get $23 + local.tee $17 + i32.store offset=48 + local.get $17 i32.const 0 - local.get $21 + local.get $15 call $~lib/array/Array#__set - local.get $23 + local.get $17 i32.const 1 - local.get $22 + local.get $16 call $~lib/array/Array#__set - local.get $23 - local.tee $25 - i32.store offset=60 - local.get $25 - local.set $52 + local.get $17 + local.tee $18 + i32.store offset=52 + local.get $18 + local.set $36 global.get $~lib/memory/__stack_pointer - local.get $52 + local.get $36 i32.store offset=4 - local.get $52 + local.get $36 i32.const 1 call $~lib/array/Array#__get drop @@ -3837,8 +3810,8 @@ global.get $~lib/memory/__stack_pointer i32.const 0 call $infer-array/Ref#constructor - local.tee $26 - i32.store offset=64 + local.tee $19 + i32.store offset=56 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2 @@ -3846,30 +3819,25 @@ i32.const 9 i32.const 0 call $~lib/rt/__newArray - local.tee $27 - i32.store offset=68 - global.get $~lib/memory/__stack_pointer - local.get $27 - i32.load offset=4 - local.tee $28 - i32.store offset=72 - local.get $27 + local.tee $20 + i32.store offset=60 + local.get $20 i32.const 0 - local.get $26 + local.get $19 call $~lib/array/Array#__set - local.get $27 + local.get $20 i32.const 1 i32.const 0 call $~lib/array/Array#__set - local.get $27 - local.tee $29 - i32.store offset=76 - local.get $29 - local.set $52 + local.get $20 + local.tee $21 + i32.store offset=64 + local.get $21 + local.set $36 global.get $~lib/memory/__stack_pointer - local.get $52 + local.get $36 i32.store offset=4 - local.get $52 + local.get $36 i32.const 0 call $~lib/array/Array#__get drop @@ -3889,14 +3857,14 @@ i32.const 10 i32.const 800 call $~lib/rt/__newArray - local.tee $32 - i32.store offset=80 - local.get $32 - local.set $52 + local.tee $23 + i32.store offset=68 + local.get $23 + local.set $36 global.get $~lib/memory/__stack_pointer - local.get $52 + local.get $36 i32.store offset=4 - local.get $52 + local.get $36 i32.const 0 call $~lib/array/Array<~lib/string/String|null>#__get drop @@ -3916,14 +3884,14 @@ i32.const 11 i32.const 832 call $~lib/rt/__newArray - local.tee $35 - i32.store offset=84 - local.get $35 - local.set $52 + local.tee $25 + i32.store offset=72 + local.get $25 + local.set $36 global.get $~lib/memory/__stack_pointer - local.get $52 + local.get $36 i32.store offset=4 - local.get $52 + local.get $36 i32.const 0 call $~lib/array/Array#__get drop @@ -3937,12 +3905,12 @@ call $~lib/builtins/abort unreachable end - local.get $35 - local.set $52 + local.get $25 + local.set $36 global.get $~lib/memory/__stack_pointer - local.get $52 + local.get $36 i32.store offset=4 - local.get $52 + local.get $36 i32.const 0 call $~lib/array/Array#__get drop @@ -3963,14 +3931,14 @@ i32.const 11 i32.const 864 call $~lib/rt/__newArray - local.tee $38 - i32.store offset=88 - local.get $38 - local.set $52 + local.tee $27 + i32.store offset=76 + local.get $27 + local.set $36 global.get $~lib/memory/__stack_pointer - local.get $52 + local.get $36 i32.store offset=4 - local.get $52 + local.get $36 i32.const 0 call $~lib/array/Array#__get drop @@ -3984,12 +3952,12 @@ call $~lib/builtins/abort unreachable end - local.get $38 - local.set $52 + local.get $27 + local.set $36 global.get $~lib/memory/__stack_pointer - local.get $52 + local.get $36 i32.store offset=4 - local.get $52 + local.get $36 i32.const 0 call $~lib/array/Array#__get drop @@ -4010,14 +3978,14 @@ i32.const 4 i32.const 896 call $~lib/rt/__newArray - local.tee $41 - i32.store offset=92 - local.get $41 - local.set $52 + local.tee $29 + i32.store offset=80 + local.get $29 + local.set $36 global.get $~lib/memory/__stack_pointer - local.get $52 + local.get $36 i32.store offset=4 - local.get $52 + local.get $36 i32.const 0 call $~lib/array/Array#__get drop @@ -4031,12 +3999,12 @@ call $~lib/builtins/abort unreachable end - local.get $41 - local.set $52 + local.get $29 + local.set $36 global.get $~lib/memory/__stack_pointer - local.get $52 + local.get $36 i32.store offset=4 - local.get $52 + local.get $36 i32.const 0 call $~lib/array/Array#__get drop @@ -4057,14 +4025,14 @@ i32.const 4 i32.const 928 call $~lib/rt/__newArray - local.tee $44 - i32.store offset=96 - local.get $44 - local.set $52 + local.tee $31 + i32.store offset=84 + local.get $31 + local.set $36 global.get $~lib/memory/__stack_pointer - local.get $52 + local.get $36 i32.store offset=4 - local.get $52 + local.get $36 i32.const 0 call $~lib/array/Array#__get drop @@ -4078,12 +4046,12 @@ call $~lib/builtins/abort unreachable end - local.get $44 - local.set $52 + local.get $31 + local.set $36 global.get $~lib/memory/__stack_pointer - local.get $52 + local.get $36 i32.store offset=4 - local.get $52 + local.get $36 i32.const 0 call $~lib/array/Array#__get drop @@ -4105,14 +4073,9 @@ i32.const 12 i32.const 0 call $~lib/rt/__newArray - local.tee $45 - i32.store offset=100 - global.get $~lib/memory/__stack_pointer - local.get $45 - i32.load offset=4 - local.tee $46 - i32.store offset=104 - local.get $45 + local.tee $32 + i32.store offset=88 + local.get $32 i32.const 0 i32.const 1 i32.const 2 @@ -4120,7 +4083,7 @@ i32.const 960 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__set - local.get $45 + local.get $32 i32.const 1 i32.const 1 i32.const 2 @@ -4128,15 +4091,15 @@ i32.const 992 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__set - local.get $45 - local.tee $51 - i32.store offset=108 - local.get $51 - local.set $52 + local.get $32 + local.tee $35 + i32.store offset=92 + local.get $35 + local.set $36 global.get $~lib/memory/__stack_pointer - local.get $52 + local.get $36 i32.store offset=4 - local.get $52 + local.get $36 i32.const 0 call $~lib/array/Array<~lib/array/Array>#__get drop @@ -4154,7 +4117,7 @@ i32.eqz drop global.get $~lib/memory/__stack_pointer - i32.const 112 + i32.const 96 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/infer-array.release.wat b/tests/compiler/infer-array.release.wat index ecee0428ae..a256276d6d 100644 --- a/tests/compiler/infer-array.release.wat +++ b/tests/compiler/infer-array.release.wat @@ -1,13 +1,13 @@ (module (type $0 (func (param i32))) - (type $1 (func)) - (type $2 (func (param i32 i32))) + (type $1 (func (param i32 i32))) + (type $2 (func)) (type $3 (func (param i32 i32) (result i32))) - (type $4 (func (result i32))) - (type $5 (func (param i32 i32 i32))) + (type $4 (func (param i32 i32 i32))) + (type $5 (func (result i32))) (type $6 (func (param i32 i32 i32 i32))) - (type $7 (func (param i32 i32 i64))) - (type $8 (func (param i32 i32 i32 i32) (result i32))) + (type $7 (func (param i32 i32 i32 i32) (result i32))) + (type $8 (func (param i32 i32 i64))) (import "env" "abort" (func $~lib/builtins/abort (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)) @@ -70,186 +70,68 @@ (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/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1280 - call $~lib/rt/itcms/__visit - i32.const 1744 - call $~lib/rt/itcms/__visit - i32.const 2048 - call $~lib/rt/itcms/__visit - i32.const 1088 - 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 1152 - 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 + (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result 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 2216 + i32.lt_s if - local.get $0 - i32.load offset=8 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1152 - 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$154 - 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 34984 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1152 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$154 - end - local.get $0 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1152 - 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 35008 + i32.const 35056 i32.const 1 - else - local.get $1 - i32.const 2160 - i32.load - i32.gt_u - if - i32.const 1280 - i32.const 1344 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.const 2164 - i32.add - i32.load - i32.const 32 - i32.and + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 + local.get $1 + i32.shl + local.tee $5 + i32.const 1 + call $~lib/rt/itcms/__new + local.set $1 local.get $3 - select + if + local.get $1 + local.get $3 + local.get $5 + memory.copy + end + local.get $1 + i32.store + i32.const 16 local.get $2 - i32.or - i32.store offset=4 - local.get $0 + call $~lib/rt/itcms/__new + local.tee $2 local.get $1 - i32.store offset=8 + i32.store + local.get $2 local.get $1 - local.get $0 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $2 local.get $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.or i32.store offset=4 local.get $2 - local.get $0 + local.get $5 i32.store offset=8 + local.get $2 + 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 $2 ) (func $~lib/rt/itcms/__visit (param $0 i32) local.get $0 @@ -275,35 +157,757 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $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 1424 - 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 + (local $6 i32) + (local $7 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 2216 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1424 - i32.const 270 + 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 1280 + i32.const 1488 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.tee $7 + 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 2216 + 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 $5 + local.get $0 + i32.load offset=8 + local.tee $3 + i32.const 2 + i32.shr_u + i32.gt_u + if + local.get $5 + i32.const 268435455 + i32.gt_u + if + i32.const 1744 + i32.const 1488 + 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$149 + 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$149 + end + local.get $6 + local.get $5 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.tee $4 + local.get $3 + local.get $6 + local.get $5 + i32.load offset=16 + local.tee $5 + local.get $5 + local.get $6 + i32.gt_u + select + memory.copy + end + local.get $3 + local.get $4 + i32.ne + if + local.get $0 + local.get $4 + i32.store + local.get $0 + local.get $4 + i32.store offset=4 + local.get $0 + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__link + end + local.get $0 + 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 + local.get $7 + 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 + return + end + i32.const 35008 + i32.const 35056 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (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 2216 + i32.lt_s + if + 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.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 1280 + i32.const 1488 + 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/Array#__get (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 2216 + i32.lt_s + if + 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.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eqz + if + i32.const 1280 + i32.const 1488 + 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 + i32.load + drop + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (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 1088 + i32.const 1152 + i32.const 261 + i32.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 1088 + i32.const 1424 + 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 + 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 + memory.size + local.tee $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.set $3 + local.get $2 + local.get $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 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 1424 + 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 1424 + 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 $infer-array/Ref#constructor (result i32) + (local $0 i32) + (local $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 2216 + 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 + i32.store + 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 2216 + i32.lt_s + br_if $folding-inner0 + 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 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 + return + end + i32.const 35008 + i32.const 35056 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/array/Array#__get (param $0 i32) (param $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 2216 + i32.lt_s + if + i32.const 35008 + i32.const 35056 + 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 1280 + i32.const 1488 + 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 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (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 1424 + 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 1424 + i32.const 270 i32.const 14 call $~lib/builtins/abort unreachable @@ -580,1237 +1184,778 @@ 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 1424 - 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 1424 - 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 1424 - 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 1424 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + 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.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 + local.tee $2 + i32.const 16 i32.lt_u + local.get $5 + i32.const 23 + i32.lt_u + i32.and + i32.eqz if - return + i32.const 0 + i32.const 1424 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable end - local.get $1 - local.get $4 + local.get $0 + local.get $5 + i32.const 4 + i32.shl + local.get $2 + i32.add 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 + i32.shl + i32.add + i32.load offset=96 + local.set $3 local.get $1 i32.const 0 i32.store offset=4 local.get $1 - i32.const 0 + local.get $3 i32.store offset=8 - local.get $1 - i32.const 4 - i32.add 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 - local.tee $3 i32.const 2 - i32.store + i32.shl + i32.add + local.get $1 + i32.store offset=96 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 34992 - i32.const 0 - i32.store - i32.const 36560 - i32.const 0 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or 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 34992 - 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 34992 - 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 34992 - i32.const 36564 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34992 - 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 + 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/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 1152 + 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 + local.tee $0 + i32.load offset=4 + i32.const 3 + i32.and + local.tee $3 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $0 + local.get $1 + local.get $2 + select + call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + local.get $3 + i32.const 3 i32.eq + i32.and if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 34984 - 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 + call $~lib/rt/itcms/Object#makeGray 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 + 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 1152 + 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$154 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz 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.load offset=8 i32.eqz - local.get $1 - i32.const 3 + local.get $0 + i32.const 34984 + i32.lt_u i32.and - i32.ne + i32.eqz if i32.const 0 i32.const 1152 - i32.const 229 - i32.const 20 + i32.const 128 + i32.const 18 call $~lib/builtins/abort unreachable end - local.get $0 - i32.const 34984 - 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 34984 - 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.set $1 - 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 1424 - 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 $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return + br $__inlined_func$~lib/rt/itcms/Object#unlink$154 end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 local.get $0 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 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 $2 local.get $1 - i32.const 4 - i32.shr_u - local.set $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 536870910 - i32.lt_u + i32.const 2160 + i32.load + i32.gt_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 + i32.const 1280 + i32.const 1344 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable 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 + i32.const 2 + i32.shl + i32.const 2164 + i32.add + i32.load + i32.const 32 + i32.and end - local.get $1 - i32.const 16 - i32.lt_u + local.set $3 local.get $2 - i32.const 23 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1424 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end + i32.load offset=8 + local.set $1 local.get $0 - local.get $2 + global.get $~lib/rt/itcms/white + i32.eqz i32.const 2 - i32.shl - i32.add - i32.load offset=4 - i32.const -1 + local.get $3 + select + local.get $2 + i32.or + i32.store offset=4 + local.get $0 local.get $1 - i32.shl + i32.store offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load offset=4 + i32.const 3 i32.and - local.tee $1 - if (result i32) + i32.or + i32.store offset=4 + local.get $2 + local.get $0 + i32.store offset=8 + ) + (func $~lib/rt/__visit_members (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + block $folding-inner2 + block $folding-inner1 + block $folding-inner0 + block $invalid + block $infer-array/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 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $infer-array/Ref $folding-inner1 $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 + 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 2216 + 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 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2216 + 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 offset=4 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store local.get $1 - i32.ctz - local.get $2 - i32.const 4 - i32.shl - i32.add + local.get $0 + i32.load offset=12 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.set $2 + loop $while-continue|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 + local.get $2 + i32.lt_u if - i32.const 0 - i32.const 1424 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable + 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 - 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 + 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 35008 + i32.const 35056 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 1088 - i32.const 1152 - i32.const 261 - i32.const 31 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.ge_u + local.get $1 + i32.const 256 + i32.lt_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 - 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 $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 - global.get $~lib/rt/itcms/threshold + 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.const 1024 - i32.lt_u - i32.const 10 i32.shl i32.add - global.set $~lib/rt/itcms/threshold + i32.const 1 + i32.sub + local.set $1 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 1088 - i32.const 1424 - 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 + local.get $1 + i32.const 31 + local.get $1 + i32.clz 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 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 1424 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable + i32.xor + local.set $1 + local.get $2 + i32.const 7 + i32.sub + local.set $2 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.const 16 + i32.lt_u + local.get $2 + i32.const 23 + i32.lt_u i32.and + i32.eqz if i32.const 0 i32.const 1424 - i32.const 361 + i32.const 334 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $6 - i32.const -4 + 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.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.tee $1 + if (result i32) + local.get $0 + local.get $1 + i32.ctz local.get $2 i32.const 4 + i32.shl i32.add - local.get $5 + i32.const 2 + i32.shl 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 + i32.load offset=96 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 + local.get $0 i32.load - i32.const -4 - i32.and + i32.const -1 + local.get $2 + i32.const 1 i32.add - local.tee $3 - local.get $3 - i32.load - i32.const -3 + i32.shl i32.and - i32.store + 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 1424 + 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 - 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 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size local.tee $1 i32.const 0 - local.get $0 - memory.fill - local.get $1 + 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 34992 + i32.const 0 + i32.store + i32.const 36560 + 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 34992 + 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 34992 + 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 34992 + i32.const 36564 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34992 + global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) + (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 - i32.eqz - if - return - end - local.get $0 - i32.eqz + i64.extend_i32_u + i64.lt_u if i32.const 0 - i32.const 1152 - i32.const 295 + i32.const 1424 + i32.const 382 i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/rt/itcms/white - local.tee $3 local.get $1 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 + i32.const 19 + i32.add + i32.const -16 i32.and - i32.eq + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.load offset=1568 + local.tee $3 if local.get $3 - i32.eqz - local.get $0 - i32.const 20 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1424 + 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 $0 - i32.load offset=4 - i32.const 3 - i32.and - local.tee $3 + local.tee $5 i32.eq if - local.get $0 - local.get $1 - local.get $2 - select - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq local.get $3 - i32.const 3 - i32.eq - i32.and - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - end - end - end - ) - (func $~lib/rt/__visit_members (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - block $folding-inner2 - block $folding-inner1 - block $folding-inner0 - block $invalid - block $infer-array/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 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $infer-array/Ref $folding-inner1 $folding-inner1 $folding-inner0 $folding-inner1 $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - 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 2216 - i32.lt_s - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - 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 + local.set $4 + local.get $5 + local.set $1 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 2216 - i32.lt_s - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $1 - local.get $2 - local.get $0 - i32.store - local.get $1 + else local.get $0 - i32.load offset=12 - i32.const 2 - i32.shl + i32.const 1572 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 + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1424 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable 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 - i32.const 35008 - i32.const 35056 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~start - call $start:infer-array - ) - (func $~lib/array/Array#__get (param $0 i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2216 - i32.lt_s + local.tee $3 + i32.const 20 + i32.lt_u if - i32.const 35008 - i32.const 35056 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + return end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 + 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 - local.get $0 + 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 - i32.load offset=12 - i32.eqz - if - i32.const 1280 - i32.const 1488 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1280 + call $~lib/rt/itcms/__visit + i32.const 1744 + call $~lib/rt/itcms/__visit + i32.const 2048 + call $~lib/rt/itcms/__visit + i32.const 1088 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace local.tee $1 - local.get $0 - i32.store - local.get $0 i32.load offset=4 - i32.load - drop - local.get $1 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + 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 1152 + 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/array/Array#__get (param $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1827,10 +1972,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -1845,74 +1989,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store local.get $0 i32.load offset=4 f64.load drop - local.get $1 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2216 - i32.lt_s - if - i32.const 35008 - i32.const 35056 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1280 - i32.const 1488 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - local.get $2 i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1929,10 +2017,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -1948,7 +2035,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $0 @@ -1959,333 +2045,273 @@ i32.add f32.load drop - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $infer-array/Ref#constructor (result i32) + (func $~start + call $start:infer-array + ) + (func $~lib/rt/itcms/step (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 - global.get $~lib/memory/__stack_pointer - i32.const 2216 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.const 8 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2216 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - local.get $2 - i32.const 0 + 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 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store + 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 34984 + 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/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - 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 - return - end - i32.const 35008 - i32.const 35056 - 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) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 2216 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u + 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 0 - i32.lt_s + i32.const 3 + i32.and + i32.ne if - i32.const 1280 - i32.const 1488 - i32.const 130 - i32.const 22 + i32.const 0 + i32.const 1152 + i32.const 229 + i32.const 20 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 1 - i32.add - local.tee $6 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2216 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $4 - i32.const 0 - i32.store - local.get $4 - local.get $0 - i32.store - local.get $3 local.get $0 - i32.load offset=8 - local.tee $4 - i32.const 2 - i32.shr_u - i32.gt_u + i32.const 34984 + i32.lt_u if - local.get $3 - i32.const 268435455 - i32.gt_u - if - i32.const 1744 - i32.const 1488 - 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$149 - i32.const 1073741820 - local.get $4 - i32.const 1 - i32.shl - local.tee $4 - local.get $4 - i32.const 1073741820 - i32.ge_u - select - local.tee $4 - i32.const 8 - local.get $3 - local.get $3 - 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 $5 - local.get $0 - i32.load - local.tee $4 - i32.const 20 - i32.sub - local.tee $7 - i32.load - i32.const -4 - i32.and - i32.const 16 - i32.sub - i32.le_u + 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 34984 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz if - local.get $7 - local.get $5 - i32.store offset=16 - local.get $4 - local.set $3 - br $__inlined_func$~lib/rt/itcms/__renew$149 + call $~lib/rt/tlsf/initialize end - local.get $5 - local.get $7 - i32.load offset=12 - call $~lib/rt/itcms/__new - local.tee $3 - local.get $4 - local.get $5 - local.get $7 - i32.load offset=16 - local.tee $7 - local.get $5 - local.get $7 - i32.lt_u - select - memory.copy - end - local.get $3 - local.get $4 - i32.ne - if + global.get $~lib/rt/tlsf/ROOT local.get $0 - local.get $3 - i32.store + i32.const 4 + i32.sub + local.set $2 local.get $0 - local.get $3 - i32.store offset=4 + i32.const 15 + i32.and + i32.const 1 local.get $0 - local.get $3 - i32.const 0 - call $~lib/rt/itcms/__link + 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 1424 + 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 - local.get $0 - local.get $5 - 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 - local.get $6 - i32.store offset=12 + i32.const 10 + return 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 - return - end - i32.const 35008 - i32.const 35056 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/array/Array#__get (param $0 i32) (param $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 2216 - i32.lt_s - if - i32.const 35008 - i32.const 35056 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1280 - i32.const 1488 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable + 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 - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - i32.store offset=4 - local.get $2 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 0 ) (func $start:infer-array (local $0 i32) @@ -2293,7 +2319,7 @@ (local $2 i32) (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 112 + i32.const 96 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -2302,9 +2328,8 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 - i32.const 112 + i32.const 96 memory.fill memory.size i32.const 16 @@ -2338,7 +2363,7 @@ i32.store i32.const 1376 global.set $~lib/rt/itcms/fromSpace - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 i32.const 2 i32.const 4 @@ -2449,7 +2474,6 @@ local.tee $1 i32.store offset=28 global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 @@ -2458,10 +2482,6 @@ call $~lib/rt/__newArray local.tee $3 i32.store offset=32 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.load offset=4 - i32.store offset=36 local.get $3 i32.const 0 local.get $0 @@ -2470,9 +2490,8 @@ i32.const 1 local.get $1 call $~lib/array/Array#__set - local.get $2 local.get $3 - i32.store offset=40 + i32.store offset=36 global.get $~lib/memory/__stack_pointer local.get $3 i32.store offset=4 @@ -2482,13 +2501,12 @@ global.get $~lib/memory/__stack_pointer call $infer-array/Ref#constructor local.tee $0 - i32.store offset=44 + i32.store offset=40 global.get $~lib/memory/__stack_pointer call $infer-array/Ref#constructor local.tee $1 - i32.store offset=48 + i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 @@ -2496,11 +2514,7 @@ i32.const 0 call $~lib/rt/__newArray local.tee $3 - i32.store offset=52 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.load offset=4 - i32.store offset=56 + i32.store offset=48 local.get $3 i32.const 0 local.get $0 @@ -2509,9 +2523,8 @@ i32.const 1 local.get $1 call $~lib/array/Array#__set - local.get $2 local.get $3 - i32.store offset=60 + i32.store offset=52 global.get $~lib/memory/__stack_pointer local.get $3 i32.store offset=4 @@ -2521,9 +2534,8 @@ global.get $~lib/memory/__stack_pointer call $infer-array/Ref#constructor local.tee $0 - i32.store offset=64 + i32.store offset=56 global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 @@ -2531,11 +2543,7 @@ i32.const 0 call $~lib/rt/__newArray local.tee $2 - i32.store offset=68 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.load offset=4 - i32.store offset=72 + i32.store offset=60 local.get $2 i32.const 0 local.get $0 @@ -2544,9 +2552,8 @@ i32.const 1 i32.const 0 call $~lib/array/Array#__set - local.get $1 local.get $2 - i32.store offset=76 + i32.store offset=64 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 @@ -2560,7 +2567,7 @@ i32.const 1824 call $~lib/rt/__newArray local.tee $0 - i32.store offset=80 + i32.store offset=68 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -2574,7 +2581,7 @@ i32.const 1856 call $~lib/rt/__newArray local.tee $0 - i32.store offset=84 + i32.store offset=72 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -2596,7 +2603,7 @@ i32.const 1888 call $~lib/rt/__newArray local.tee $0 - i32.store offset=88 + i32.store offset=76 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -2618,7 +2625,7 @@ i32.const 1920 call $~lib/rt/__newArray local.tee $0 - i32.store offset=92 + i32.store offset=80 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -2636,7 +2643,7 @@ i32.const 1952 call $~lib/rt/__newArray local.tee $0 - i32.store offset=96 + i32.store offset=84 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -2648,7 +2655,6 @@ local.get $0 call $~lib/array/Array#__get global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 @@ -2656,11 +2662,7 @@ i32.const 0 call $~lib/rt/__newArray local.tee $1 - i32.store offset=100 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=4 - i32.store offset=104 + i32.store offset=88 local.get $1 i32.const 0 i32.const 1 @@ -2677,9 +2679,8 @@ i32.const 2016 call $~lib/rt/__newArray call $~lib/array/Array#__set - local.get $0 local.get $1 - i32.store offset=108 + i32.store offset=92 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -2692,10 +2693,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 @@ -2710,10 +2710,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.load offset=4 i32.load @@ -2734,7 +2733,7 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 112 + i32.const 96 i32.add global.set $~lib/memory/__stack_pointer return @@ -2746,68 +2745,4 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result 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 2216 - i32.lt_s - if - i32.const 35008 - i32.const 35056 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $4 - i32.const 0 - i32.store - local.get $0 - local.get $1 - i32.shl - local.tee $5 - i32.const 1 - call $~lib/rt/itcms/__new - local.set $1 - local.get $3 - if - local.get $1 - local.get $3 - local.get $5 - memory.copy - end - local.get $4 - local.get $1 - i32.store - i32.const 16 - local.get $2 - call $~lib/rt/itcms/__new - local.tee $2 - local.get $1 - i32.store - local.get $2 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $2 - local.get $1 - i32.store offset=4 - local.get $2 - local.get $5 - i32.store offset=8 - local.get $2 - 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 $2 - ) ) diff --git a/tests/compiler/infer-generic.debug.wat b/tests/compiler/infer-generic.debug.wat index cdc37e9784..387d796ac2 100644 --- a/tests/compiler/infer-generic.debug.wat +++ b/tests/compiler/infer-generic.debug.wat @@ -1669,14 +1669,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 @@ -2311,11 +2314,11 @@ local.get $fn return ) - (func $infer-generic/inferEncapsulatedFunction (param $fn i32) (result i32) + (func $"infer-generic/inferEncapsulatedFunction" (param $fn i32) (result i32) local.get $fn return ) - (func $infer-generic/inferEncapsulatedFunctionMixed (param $fn i32) (result i32) + (func $"infer-generic/inferEncapsulatedFunctionMixed" (param $fn i32) (result i32) local.get $fn return ) @@ -2346,12 +2349,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -2496,24 +2495,28 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 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 i64.const 0 i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 local.get $initialValue local.set $acc i32.const 0 local.set $i local.get $this - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store - local.get $8 + local.get $9 call $~lib/array/Array#get:length_ local.set $len loop $for-loop|0 @@ -2521,11 +2524,11 @@ local.get $len local.tee $6 local.get $this - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store - local.get $8 + local.get $9 call $~lib/array/Array#get:length_ local.tee $7 local.get $6 @@ -2534,13 +2537,17 @@ select i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn + local.tee $8 + i32.store offset=4 local.get $acc local.get $this - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 + local.get $9 + i32.store offset=8 + local.get $9 call $~lib/array/Array#get:dataStart local.get $i i32.const 2 @@ -2549,14 +2556,14 @@ f32.load local.get $i local.get $this - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store - local.get $8 + local.get $9 i32.const 4 global.set $~argumentsLength - local.get $fn + local.get $8 i32.load call_indirect (type $5) local.set $acc @@ -2568,12 +2575,12 @@ end end local.get $acc - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $9 return ) (func $infer-generic/Ref#constructor (param $this i32) (result i32) @@ -2626,7 +2633,6 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -2651,17 +2657,17 @@ unreachable end global.get $infer-generic/arr - 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 i32.const 176 - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=4 - local.get $3 + local.get $2 i32.const 0 call $~lib/array/Array#reduce drop @@ -2698,22 +2704,22 @@ global.get $~lib/memory/__stack_pointer i32.const 0 call $infer-generic/Ref#constructor - local.tee $2 + local.tee $1 i32.store offset=8 - local.get $2 - local.set $3 + local.get $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=4 - local.get $3 + local.get $2 i32.const 2 call $infer-generic/Ref#set:x - local.get $2 - local.set $3 + local.get $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store - local.get $3 + local.get $2 call $infer-generic/inferDefault drop i32.const 1 @@ -2797,7 +2803,7 @@ local.get $1 i32.store local.get $1 - call $infer-generic/inferEncapsulatedFunction + call $"infer-generic/inferEncapsulatedFunction" local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -2822,7 +2828,7 @@ local.get $1 i32.store local.get $1 - call $infer-generic/inferEncapsulatedFunctionMixed + call $"infer-generic/inferEncapsulatedFunctionMixed" local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 diff --git a/tests/compiler/infer-generic.release.wat b/tests/compiler/infer-generic.release.wat index 81329a11e9..a2b525afea 100644 --- a/tests/compiler/infer-generic.release.wat +++ b/tests/compiler/infer-generic.release.wat @@ -1,14 +1,14 @@ (module - (type $0 (func)) - (type $1 (func (param i32))) - (type $2 (func (param i32 f32 i32 i32) (result i32))) - (type $3 (func (param i32 i32))) - (type $4 (func (param i32 i32) (result i32))) + (type $0 (func (param i32))) + (type $1 (func)) + (type $2 (func (param i32 i32))) + (type $3 (func (param i32 i32) (result i32))) + (type $4 (func (param i32 f32 i32 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 f32) (result f32))) - (type $9 (func (param i32) (result i32))) + (type $6 (func (param i32) (result i32))) + (type $7 (func (param i32 i32 i64))) + (type $8 (func (result i32))) + (type $9 (func (param f32) (result f32))) (import "env" "abort" (func $~lib/builtins/abort (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)) @@ -51,61 +51,6 @@ (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 1152 - call $~lib/rt/itcms/__visit - i32.const 1424 - call $~lib/rt/itcms/__visit - i32.const 1232 - 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 1296 - 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) @@ -258,6 +203,51 @@ global.set $~lib/rt/itcms/visitCount end ) + (func $export:infer-generic/test2 (param $0 i32) (result 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 1660 + 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 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 + 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 34448 + i32.const 34496 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -650,119 +640,217 @@ 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 + (func $~lib/rt/__visit_members (param $0 i32) + block $folding-inner1 + block $folding-inner0 + block $invalid + block $infer-generic/Ref + 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 $infer-generic/Ref $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 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1660 + 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 + 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 1660 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1568 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable + 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 34448 + i32.const 34496 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) 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 + i32.const 256 + i32.lt_u if - local.get $3 + local.get $1 i32.const 4 - i32.add + i32.shr_u + local.set $1 + else local.get $1 - i32.gt_u + i32.const 536870910 + i32.lt_u if - i32.const 0 - i32.const 1568 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable + 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 $3 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.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 1568 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + local.set $2 end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and local.get $1 - i32.sub - local.tee $3 - i32.const 20 + 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 1568 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable end - local.get $1 - local.get $4 + local.get $0 + local.get $2 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.shl i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 - local.get $0 + i32.load offset=4 + i32.const -1 local.get $1 - call $~lib/rt/tlsf/insertBlock + 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 1568 + 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/tlsf/initialize (local $0 i32) @@ -844,394 +932,164 @@ i32.const 34432 global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/rt/itcms/step (result i32) + (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 1568 + 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 1568 + 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 1568 + 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/itcms/visitRoots (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 34428 - 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.const 1152 + call $~lib/rt/itcms/__visit + i32.const 1424 + call $~lib/rt/itcms/__visit + i32.const 1232 + 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 - 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.const 3 i32.ne if i32.const 0 i32.const 1296 - i32.const 229 - i32.const 20 + i32.const 160 + i32.const 16 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 34428 - 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 34428 - 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.set $1 - 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 1568 - 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 $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.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.const 20 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 1568 - 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) + call $~lib/rt/__visit_members 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 1568 - 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 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 end end ) @@ -1268,12 +1126,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 @@ -1285,8 +1139,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1338,8 +1191,6 @@ local.tee $2 i32.eqz if - memory.size - local.tee $2 local.get $5 i32.const 256 i32.ge_u @@ -1367,7 +1218,8 @@ i32.const 4 local.get $4 i32.load offset=1568 - local.get $2 + memory.size + local.tee $2 i32.const 16 i32.shl i32.const 4 @@ -1381,7 +1233,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.set $3 + local.get $2 + local.get $3 local.get $2 local.get $3 i32.gt_s @@ -1553,89 +1407,208 @@ memory.fill local.get $1 ) - (func $infer-generic/test1 (param $0 f32) (result f32) - local.get $0 - ) - (func $~lib/rt/__visit_members (param $0 i32) + (func $~start + (local $0 i32) (local $1 i32) - block $folding-inner1 - block $folding-inner0 - block $invalid - block $infer-generic/Ref - 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 $infer-generic/Ref $folding-inner0 $folding-inner0 $folding-inner0 $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - 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 1660 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - 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 - return + (local $2 f32) + (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 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.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 1152 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1200 + 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 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.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 1152 + i32.store + i32.const 1164 + i32.load + local.set $3 + loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + i32.const 1152 + i32.store + local.get $1 + local.get $3 + i32.const 1164 + i32.load + local.tee $4 + local.get $3 + local.get $4 + i32.lt_s + select + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 1200 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 1152 + i32.store offset=8 + i32.const 1156 + i32.load + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 1152 + i32.store + local.get $0 + local.get $2 + local.get $1 + i32.const 1152 + i32.const 1200 + i32.load + call_indirect (type $4) + local.set $0 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 end - unreachable end global.get $~lib/memory/__stack_pointer + i32.const 12 + 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 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 4 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + 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 1660 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + local.get $0 + i32.eqz + if + 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 local.get $0 - i32.load offset=4 - call $~lib/rt/itcms/__visit + i32.store offset=4 + local.get $0 + i32.const 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 offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer return @@ -1647,272 +1620,278 @@ call $~lib/builtins/abort unreachable ) - (func $~start + (func $~lib/rt/itcms/step (result i32) (local $0 i32) (local $1 i32) - (local $2 f32) - (local $3 i32) - (local $4 i32) - (local $5 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 1660 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - i32.const 0 - i32.store offset=8 - local.get $3 - i32.const 1152 - i32.store - local.get $3 - i32.const 1200 - i32.store offset=4 - local.get $3 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1660 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - i32.const 1152 - i32.store - i32.const 1164 - i32.load - local.set $4 - loop $for-loop|0 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 1152 - i32.store - local.get $1 - local.get $4 - i32.const 1164 - i32.load - local.tee $5 - local.get $4 - local.get $5 - i32.lt_s - select - i32.lt_s + (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 - local.get $3 - i32.const 1152 - i32.store offset=4 - i32.const 1156 - i32.load + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 34428 + 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 - i32.shl - i32.add - f32.load - local.set $2 - local.get $3 - i32.const 1152 - i32.store + 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 1296 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34428 + 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 - local.get $2 - local.get $1 - i32.const 1152 - i32.const 1200 i32.load - call_indirect (type $2) - local.set $0 - local.get $1 - i32.const 1 + i32.const -4 + i32.and + i32.const 4 i32.add - local.set $1 - br $for-loop|0 + i32.sub + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 4 + i32.add + local.tee $0 + i32.const 34428 + 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 1568 + 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/memory/__stack_pointer - 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 - local.set $1 - global.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 - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 4 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store offset=4 - local.get $3 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1660 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $4 - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - local.get $4 - 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 $3 - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 34448 - i32.const 34496 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (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 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1660 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store - local.get $1 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1660 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 - i32.store - local.get $1 - local.get $0 - i32.store - local.get $1 - 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 + global.set $~lib/rt/itcms/state end - i32.const 34448 - i32.const 34496 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + i32.const 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 ) (func $export:infer-generic/inferAssert (param $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1923,10 +1902,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -1935,10 +1913,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -1952,13 +1929,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store local.get $0 i32.load drop - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/inlining-recursive.release.wat b/tests/compiler/inlining-recursive.release.wat index 79a6b7c99a..dc115bc899 100644 --- a/tests/compiler/inlining-recursive.release.wat +++ b/tests/compiler/inlining-recursive.release.wat @@ -5,10 +5,10 @@ (export "bar" (func $inlining-recursive/baz)) (export "baz" (func $inlining-recursive/baz)) (export "memory" (memory $0)) - (func $inlining-recursive/foo - call $inlining-recursive/foo - ) (func $inlining-recursive/baz call $inlining-recursive/baz ) + (func $inlining-recursive/foo + call $inlining-recursive/foo + ) ) diff --git a/tests/compiler/inlining.debug.wat b/tests/compiler/inlining.debug.wat index 68a7fd21cd..c4f5314669 100644 --- a/tests/compiler/inlining.debug.wat +++ b/tests/compiler/inlining.debug.wat @@ -6,8 +6,10 @@ (type $4 (func (param i32 i32) (result i32))) (type $5 (func (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 $7 (func (param i32 i32 i32) (result f64))) + (type $8 (func (param i32 i32 i32 i32))) + (type $9 (func (param i32 i32 i64) (result i32))) + (type $10 (func (param f64) (result f64))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $inlining/constantGlobal i32 (i32.const 1)) (global $~argumentsLength (mut i32) (i32.const 0)) @@ -44,6 +46,8 @@ (table $0 2 2 funcref) (elem $0 (i32.const 1) $inlining/func_fe~anonymous|0) (export "test" (func $inlining/test)) + (export "foo" (func $inlining/foo)) + (export "bar" (func $inlining/bar)) (export "memory" (memory $0)) (start $~start) (func $inlining/test (result i32) @@ -1888,14 +1892,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 @@ -2573,6 +2580,192 @@ global.set $~lib/rt/itcms/fromSpace call $inlining/test_ctor ) + (func $~lib/math/NativeMath.cbrt (param $x f64) (result f64) + (local $u i64) + (local $hx i32) + (local $t f64) + (local $r f64) + (local $s f64) + local.get $x + i64.reinterpret_f64 + local.set $u + local.get $u + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const 2147483647 + i32.and + local.set $hx + local.get $hx + i32.const 2146435072 + i32.ge_u + if + local.get $x + local.get $x + f64.add + return + end + local.get $hx + i32.const 1048576 + i32.lt_u + if + local.get $x + f64.const 18014398509481984 + f64.mul + i64.reinterpret_f64 + local.set $u + local.get $u + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const 2147483647 + i32.and + local.set $hx + local.get $hx + i32.const 0 + i32.eq + if + local.get $x + return + end + local.get $hx + i32.const 3 + i32.div_u + i32.const 696219795 + i32.add + local.set $hx + else + local.get $hx + i32.const 3 + i32.div_u + i32.const 715094163 + i32.add + local.set $hx + end + local.get $u + i64.const 1 + i64.const 63 + i64.shl + i64.and + local.set $u + local.get $u + local.get $hx + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $u + local.get $u + f64.reinterpret_i64 + local.set $t + local.get $t + local.get $t + f64.mul + local.get $t + local.get $x + f64.div + f64.mul + local.set $r + local.get $t + f64.const 1.87595182427177 + local.get $r + f64.const -1.8849797954337717 + local.get $r + f64.const 1.6214297201053545 + f64.mul + f64.add + f64.mul + f64.add + local.get $r + local.get $r + f64.mul + local.get $r + f64.mul + f64.const -0.758397934778766 + local.get $r + f64.const 0.14599619288661245 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + local.set $t + local.get $t + i64.reinterpret_f64 + i64.const 2147483648 + i64.add + i64.const -1073741824 + i64.and + f64.reinterpret_i64 + local.set $t + local.get $t + local.get $t + f64.mul + local.set $s + local.get $x + local.get $s + f64.div + local.set $r + local.get $r + local.get $t + f64.sub + f64.const 2 + local.get $t + f64.mul + local.get $r + f64.add + f64.div + local.set $r + local.get $t + local.get $t + local.get $r + f64.mul + f64.add + local.set $t + local.get $t + return + ) + (func $inlining/foo (param $a i32) (param $b i32) (param $c i32) (result f64) + local.get $a + f64.convert_i32_s + local.get $b + f64.convert_i32_s + call $~lib/math/NativeMath.cbrt + f64.mul + local.get $c + f64.convert_i32_s + f64.add + return + ) + (func $inlining/bar (param $a i32) (param $b i32) (param $c i32) (result f64) + (local $a|3 i32) + (local $b|4 i32) + (local $c|5 i32) + block $inlining/foo|inlined.0 (result f64) + local.get $a + local.set $a|3 + local.get $b + local.set $b|4 + local.get $c + local.set $c|5 + local.get $a|3 + f64.convert_i32_s + local.get $b|4 + f64.convert_i32_s + call $~lib/math/NativeMath.cbrt + f64.mul + local.get $c|5 + f64.convert_i32_s + f64.add + br $inlining/foo|inlined.0 + end + local.get $b + local.get $a + local.get $c + call $inlining/foo + f64.div + return + ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) i32.const 304 @@ -2589,12 +2782,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/inlining.release.wat b/tests/compiler/inlining.release.wat index f695ea475d..0da8126d77 100644 --- a/tests/compiler/inlining.release.wat +++ b/tests/compiler/inlining.release.wat @@ -1,12 +1,14 @@ (module (type $0 (func)) - (type $1 (func (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 i32) (result i32))) - (type $6 (func (param i32 i32 i32 i32))) - (type $7 (func (param i32 i32 i64))) + (type $1 (func (param i32))) + (type $2 (func (param i32 i32))) + (type $3 (func (param i32 i32) (result i32))) + (type $4 (func (result i32))) + (type $5 (func (param i32) (result i32))) + (type $6 (func (param i32 i32 i32) (result f64))) + (type $7 (func (param i32 i32 i32 i32))) + (type $8 (func (param f64) (result f64))) + (type $9 (func (param i32 i32 i64))) (import "env" "abort" (func $~lib/builtins/abort (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)) @@ -39,59 +41,10 @@ (table $0 2 2 funcref) (elem $0 (i32.const 1) $inlining/func_fe~anonymous|0) (export "test" (func $inlining/test)) + (export "foo" (func $inlining/foo)) + (export "bar" (func $inlining/bar)) (export "memory" (memory $0)) (start $~start) - (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 1328 - call $~lib/rt/itcms/__visit - i32.const 1136 - 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 1200 - 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) @@ -130,7 +83,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$125 local.get $1 i32.load offset=4 i32.const -4 @@ -154,7 +107,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$124 + br $__inlined_func$~lib/rt/itcms/Object#unlink$125 end local.get $1 i32.load offset=8 @@ -636,121 +589,321 @@ 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 1472 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $inlining/Baz + block $inlining/Bar + block $inlining/Foo + block $~lib/function/Function<%28i32%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%29=>i32> $inlining/Foo $inlining/Bar $inlining/Baz $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 1556 + i32.lt_s + if + 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.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 + return + end + return + end + return end - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - local.set $1 + unreachable + ) + (func $~lib/math/NativeMath.cbrt (param $0 f64) (result f64) + (local $1 i32) + (local $2 i64) + (local $3 f64) + (local $4 f64) local.get $0 - i32.load offset=1568 - local.tee $3 + i64.reinterpret_f64 + local.tee $2 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const 2147483647 + i32.and + local.tee $1 + i32.const 2146435072 + i32.ge_u if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u + local.get $0 + local.get $0 + f64.add + return + end + local.get $1 + i32.const 1048576 + i32.lt_u + if (result i32) + local.get $0 + f64.const 18014398509481984 + f64.mul + i64.reinterpret_f64 + local.tee $2 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const 2147483647 + i32.and + local.tee $1 + i32.eqz if - i32.const 0 - i32.const 1472 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable + local.get $0 + return 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.const 3 + i32.div_u + i32.const 696219795 i32.add + else local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1472 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + i32.const 3 + i32.div_u + i32.const 715094163 + i32.add end + local.set $1 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 + i64.const -9223372036854775808 + i64.and local.get $1 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + f64.reinterpret_i64 + local.tee $4 + local.get $4 + f64.mul + local.get $4 + local.get $0 + f64.div + f64.mul + local.set $3 + local.get $0 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 + f64.const 1.6214297201053545 + f64.mul + f64.const -1.8849797954337717 + f64.add + f64.mul + f64.const 1.87595182427177 + f64.add + local.get $3 + local.get $3 + f64.mul + local.get $3 + f64.mul + local.get $3 + f64.const 0.14599619288661245 + f64.mul + f64.const -0.758397934778766 + f64.add + f64.mul + f64.add + f64.mul + i64.reinterpret_f64 + i64.const 2147483648 + i64.add + i64.const -1073741824 + i64.and + f64.reinterpret_i64 + local.tee $0 + local.get $0 + f64.mul + f64.div + local.set $3 + local.get $0 local.get $0 local.get $3 - i32.store offset=1568 local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock + f64.sub + local.get $0 + local.get $0 + f64.add + local.get $3 + f64.add + f64.div + f64.mul + f64.add ) - (func $~lib/rt/tlsf/initialize + (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 1472 + 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 1472 + 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/tlsf/initialize (local $0 i32) (local $1 i32) memory.size @@ -830,394 +983,162 @@ i32.const 34336 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 + (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 1472 + 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 1472 + 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 - 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 + end + else + local.get $0 + i32.const 1572 + i32.add + local.get $1 + i32.gt_u + if 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 34324 - 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 + i32.const 1472 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + 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/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1328 + call $~lib/rt/itcms/__visit + i32.const 1136 + 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 - 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.const 3 i32.ne if i32.const 0 i32.const 1200 - i32.const 229 - i32.const 20 + i32.const 160 + i32.const 16 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 34324 - 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 34324 - 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.set $1 - 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 1472 - 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 $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.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 1472 - 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 1472 - 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 + 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 ) @@ -1254,12 +1175,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 @@ -1271,8 +1188,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1324,8 +1240,6 @@ local.tee $2 i32.eqz if - memory.size - local.tee $2 local.get $5 i32.const 256 i32.ge_u @@ -1353,7 +1267,8 @@ i32.const 4 local.get $4 i32.load offset=1568 - local.get $2 + memory.size + local.tee $2 i32.const 16 i32.shl i32.const 4 @@ -1367,7 +1282,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.set $3 + local.get $2 + local.get $3 local.get $2 local.get $3 i32.gt_s @@ -1406,144 +1323,406 @@ 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 1472 - 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 + end + local.get $5 + local.get $2 + i32.load + i32.const -4 + i32.and + i32.gt_u + if + i32.const 0 + i32.const 1472 + 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 1472 + 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 + call $start:inlining + ) + (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 34324 + 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 1200 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34324 + 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 34324 + 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 1472 + 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 - i32.const 1472 - 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 + global.set $~lib/rt/itcms/state 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:inlining (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1559,13 +1738,12 @@ i32.const 2 i32.const 1104 i32.load - call_indirect (type $2) + call_indirect (type $5) drop global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 123 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 123 i32.store offset=4 global.get $~lib/memory/__stack_pointer @@ -1613,38 +1791,38 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 6 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 local.get $0 i32.const 3 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.const 0 i32.store offset=12 - local.get $1 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.const 7 call $~lib/rt/itcms/__new @@ -1652,37 +1830,34 @@ i32.store offset=8 end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=4 local.get $0 i32.const 1 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.const 0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.const 2 i32.store offset=4 - local.get $1 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.const 4 i32.store offset=12 - local.get $3 local.get $0 i32.store offset=12 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -1755,78 +1930,45 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/rt/__visit_members (param $0 i32) - (local $1 i32) - block $invalid - block $inlining/Baz - block $inlining/Bar - block $inlining/Foo - block $~lib/function/Function<%28i32%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%29=>i32> $inlining/Foo $inlining/Bar $inlining/Baz $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - 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 1556 - i32.lt_s - if - i32.const 34352 - i32.const 34400 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - 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 - return - end - return - end - return - end - unreachable + (func $inlining/test (result i32) + i32.const 3 ) - (func $~start - call $start:inlining + (func $inlining/func_fe~anonymous|0 (param $0 i32) (result i32) + i32.const 2 + ) + (func $inlining/foo (param $0 i32) (param $1 i32) (param $2 i32) (result f64) + local.get $0 + f64.convert_i32_s + local.get $1 + f64.convert_i32_s + call $~lib/math/NativeMath.cbrt + f64.mul + local.get $2 + f64.convert_i32_s + f64.add + ) + (func $inlining/bar (param $0 i32) (param $1 i32) (param $2 i32) (result f64) + (local $3 f64) + (local $4 f64) + (local $5 f64) + local.get $0 + f64.convert_i32_s + local.tee $3 + local.get $1 + f64.convert_i32_s + local.tee $4 + call $~lib/math/NativeMath.cbrt + f64.mul + local.get $2 + f64.convert_i32_s + local.tee $5 + f64.add + local.get $4 + local.get $3 + call $~lib/math/NativeMath.cbrt + f64.mul + local.get $5 + f64.add + f64.div ) ) diff --git a/tests/compiler/inlining.ts b/tests/compiler/inlining.ts index 16515596d2..0758d7176d 100644 --- a/tests/compiler/inlining.ts +++ b/tests/compiler/inlining.ts @@ -100,3 +100,11 @@ function test_ctor(): void { } test_ctor(); + +export function foo(a: i32, b: i32, c: i32): f64 { + return a * Math.cbrt(b) + c; +} + +export function bar(a: i32, b: i32, c: i32): f64 { + return inline.always(foo(a, b, c)) / foo(b, a, c); +} diff --git a/tests/compiler/instanceof.debug.wat b/tests/compiler/instanceof.debug.wat index 8178be7265..6cf9d166a7 100644 --- a/tests/compiler/instanceof.debug.wat +++ b/tests/compiler/instanceof.debug.wat @@ -1644,14 +1644,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 @@ -2291,47 +2294,47 @@ i32.const 0 return ) - (func $instanceof/assertStaticTrue (param $value i32) + (func $"instanceof/assertStaticTrue" (param $value i32) i32.const 1 drop return ) - (func $instanceof/assertStaticTrue (param $value i32) + (func $"instanceof/assertStaticTrue" (param $value i32) i32.const 1 drop return ) - (func $instanceof/assertStaticTrue (param $value i32) + (func $"instanceof/assertStaticTrue" (param $value i32) i32.const 1 drop return ) - (func $instanceof/assertStaticTrue (param $value i32) + (func $"instanceof/assertStaticTrue" (param $value i32) i32.const 1 drop return ) - (func $instanceof/assertStaticTrue (param $value i32) + (func $"instanceof/assertStaticTrue" (param $value i32) i32.const 1 drop return ) - (func $instanceof/assertStaticTrue (param $value i32) + (func $"instanceof/assertStaticTrue" (param $value i32) i32.const 1 drop return ) - (func $instanceof/assertStaticTrue (param $value i32) + (func $"instanceof/assertStaticTrue" (param $value i32) i32.const 1 drop return ) - (func $instanceof/assertStaticTrue (param $value i32) + (func $"instanceof/assertStaticTrue" (param $value i32) i32.const 1 drop return ) - (func $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/W> (param $value i32) + (func $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/W>" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -2376,7 +2379,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X> (param $value i32) + (func $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X>" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -2421,7 +2424,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> (param $value i32) + (func $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -2466,7 +2469,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Z> (param $value i32) + (func $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Z>" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -2511,7 +2514,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/IA> (param $value i32) + (func $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/IA>" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -2556,7 +2559,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/IB> (param $value i32) + (func $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/IB>" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -2601,7 +2604,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/IC> (param $value i32) + (func $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/IC>" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -2646,7 +2649,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/ID> (param $value i32) + (func $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/ID>" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -2691,53 +2694,53 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertStaticTrue (param $value i32) + (func $"instanceof/assertStaticTrue" (param $value i32) i32.const 1 drop return ) - (func $instanceof/assertStaticFalse (param $value i32) + (func $"instanceof/assertStaticFalse" (param $value i32) i32.const 0 i32.eqz drop return ) - (func $instanceof/assertStaticFalse (param $value i32) + (func $"instanceof/assertStaticFalse" (param $value i32) i32.const 0 i32.eqz drop return ) - (func $instanceof/assertStaticFalse (param $value i32) + (func $"instanceof/assertStaticFalse" (param $value i32) i32.const 0 i32.eqz drop return ) - (func $instanceof/assertStaticFalse (param $value i32) + (func $"instanceof/assertStaticFalse" (param $value i32) i32.const 0 i32.eqz drop return ) - (func $instanceof/assertStaticFalse (param $value i32) + (func $"instanceof/assertStaticFalse" (param $value i32) i32.const 0 i32.eqz drop return ) - (func $instanceof/assertStaticFalse (param $value i32) + (func $"instanceof/assertStaticFalse" (param $value i32) i32.const 0 i32.eqz drop return ) - (func $instanceof/assertStaticTrue (param $value i32) + (func $"instanceof/assertStaticTrue" (param $value i32) i32.const 1 drop return ) - (func $instanceof/assertDynamicFalse (param $value i32) + (func $"instanceof/assertDynamicFalse" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -2781,7 +2784,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicFalse (param $value i32) + (func $"instanceof/assertDynamicFalse" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -2825,7 +2828,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicTrue (param $value i32) + (func $"instanceof/assertDynamicTrue" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -2870,7 +2873,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicTrue (param $value i32) + (func $"instanceof/assertDynamicTrue" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -2915,17 +2918,17 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertStaticTrue (param $value i32) + (func $"instanceof/assertStaticTrue" (param $value i32) i32.const 1 drop return ) - (func $instanceof/assertStaticTrue (param $value i32) + (func $"instanceof/assertStaticTrue" (param $value i32) i32.const 1 drop return ) - (func $instanceof/assertDynamicFalse (param $value i32) + (func $"instanceof/assertDynamicFalse" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -2969,7 +2972,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicTrue (param $value i32) + (func $"instanceof/assertDynamicTrue" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -3014,22 +3017,22 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertStaticTrue (param $value i32) + (func $"instanceof/assertStaticTrue" (param $value i32) i32.const 1 drop return ) - (func $instanceof/assertStaticTrue (param $value i32) + (func $"instanceof/assertStaticTrue" (param $value i32) i32.const 1 drop return ) - (func $instanceof/assertStaticTrue (param $value i32) + (func $"instanceof/assertStaticTrue" (param $value i32) i32.const 1 drop return ) - (func $instanceof/assertDynamicFalse (param $value i32) + (func $"instanceof/assertDynamicFalse" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -3073,7 +3076,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicFalse (param $value i32) + (func $"instanceof/assertDynamicFalse" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -3117,7 +3120,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicFalse (param $value i32) + (func $"instanceof/assertDynamicFalse" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -3161,7 +3164,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicFalse (param $value i32) + (func $"instanceof/assertDynamicFalse" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -3205,19 +3208,19 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertStaticFalse (param $value i32) + (func $"instanceof/assertStaticFalse" (param $value i32) i32.const 0 i32.eqz drop return ) - (func $instanceof/assertStaticFalse (param $value i32) + (func $"instanceof/assertStaticFalse" (param $value i32) i32.const 0 i32.eqz drop return ) - (func $instanceof/assertDynamicTrue (param $value i32) + (func $"instanceof/assertDynamicTrue" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -3262,7 +3265,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicTrue (param $value i32) + (func $"instanceof/assertDynamicTrue" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -3307,7 +3310,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicTrue (param $value i32) + (func $"instanceof/assertDynamicTrue" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -3352,7 +3355,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicTrue (param $value i32) + (func $"instanceof/assertDynamicTrue" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -3397,17 +3400,17 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertStaticTrue (param $value i32) + (func $"instanceof/assertStaticTrue" (param $value i32) i32.const 1 drop return ) - (func $instanceof/assertStaticTrue (param $value i32) + (func $"instanceof/assertStaticTrue" (param $value i32) i32.const 1 drop return ) - (func $instanceof/assertDynamicFalse (param $value i32) + (func $"instanceof/assertDynamicFalse" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -3451,7 +3454,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicFalse (param $value i32) + (func $"instanceof/assertDynamicFalse" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -3495,13 +3498,13 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertStaticFalse (param $value i32) + (func $"instanceof/assertStaticFalse" (param $value i32) i32.const 0 i32.eqz drop return ) - (func $instanceof/assertDynamicTrue (param $value i32) + (func $"instanceof/assertDynamicTrue" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -3546,7 +3549,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicTrue (param $value i32) + (func $"instanceof/assertDynamicTrue" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -3591,83 +3594,83 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertStaticTrue (param $value i32) + (func $"instanceof/assertStaticTrue" (param $value i32) i32.const 1 drop return ) - (func $instanceof/assertStaticTrue (param $value i32) + (func $"instanceof/assertStaticTrue" (param $value i32) i32.const 1 drop return ) - (func $instanceof/assertStaticTrue (param $value i32) + (func $"instanceof/assertStaticTrue" (param $value i32) i32.const 1 drop return ) - (func $instanceof/assertStaticTrue (param $value i32) + (func $"instanceof/assertStaticTrue" (param $value i32) i32.const 1 drop return ) - (func $instanceof/assertStaticFalse (param $value i32) + (func $"instanceof/assertStaticFalse" (param $value i32) i32.const 0 i32.eqz drop return ) - (func $instanceof/assertStaticTrue (param $value i32) + (func $"instanceof/assertStaticTrue" (param $value i32) i32.const 1 drop return ) - (func $instanceof/assertStaticTrue (param $value i32) + (func $"instanceof/assertStaticTrue" (param $value i32) i32.const 1 drop return ) - (func $instanceof/assertStaticTrue (param $value i32) + (func $"instanceof/assertStaticTrue" (param $value i32) i32.const 1 drop return ) - (func $instanceof/assertStaticTrue (param $value i32) + (func $"instanceof/assertStaticTrue" (param $value i32) i32.const 1 drop return ) - (func $instanceof/assertStaticFalse (param $value i32) + (func $"instanceof/assertStaticFalse" (param $value i32) i32.const 0 i32.eqz drop return ) - (func $instanceof/assertStaticFalse (param $value i32) + (func $"instanceof/assertStaticFalse" (param $value i32) i32.const 0 i32.eqz drop return ) - (func $instanceof/assertStaticFalse (param $value i32) + (func $"instanceof/assertStaticFalse" (param $value i32) i32.const 0 i32.eqz drop return ) - (func $instanceof/assertStaticFalse (param $value i32) + (func $"instanceof/assertStaticFalse" (param $value i32) i32.const 0 i32.eqz drop return ) - (func $instanceof/assertStaticFalse (param $value i32) + (func $"instanceof/assertStaticFalse" (param $value i32) i32.const 0 i32.eqz drop return ) - (func $instanceof/assertDynamicTrue (param $value i32) + (func $"instanceof/assertDynamicTrue" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -3712,7 +3715,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicTrue (param $value i32) + (func $"instanceof/assertDynamicTrue" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -3757,7 +3760,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicTrue (param $value i32) + (func $"instanceof/assertDynamicTrue" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -3802,7 +3805,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicTrue (param $value i32) + (func $"instanceof/assertDynamicTrue" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -3847,7 +3850,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicTrue (param $value i32) + (func $"instanceof/assertDynamicTrue" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -3892,7 +3895,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicTrue (param $value i32) + (func $"instanceof/assertDynamicTrue" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -3937,7 +3940,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicTrue (param $value i32) + (func $"instanceof/assertDynamicTrue" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -3982,7 +3985,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicTrue (param $value i32) + (func $"instanceof/assertDynamicTrue" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -4027,7 +4030,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicTrue (param $value i32) + (func $"instanceof/assertDynamicTrue" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -4072,7 +4075,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicTrue (param $value i32) + (func $"instanceof/assertDynamicTrue" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -4592,12 +4595,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -6086,924 +6085,924 @@ local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/x local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/x local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/x local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/w local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/W> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/W>" global.get $instanceof/x local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X>" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X>" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X>" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Z> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Z>" global.get $instanceof/x local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/IA> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/IA>" global.get $instanceof/x local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/IB> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/IB>" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/IA> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/IA>" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/IB> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/IB>" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/IC> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/IC>" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/ID> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/ID>" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/IA> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/IA>" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/IB> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/IB>" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/IC> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/IC>" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/ID> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/ID>" global.get $instanceof/w local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/w local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/w local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/w local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/x local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/x local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/x local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicFalse + call $"instanceof/assertDynamicFalse" global.get $instanceof/x local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicFalse + call $"instanceof/assertDynamicFalse" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicFalse + call $"instanceof/assertDynamicFalse" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicFalse + call $"instanceof/assertDynamicFalse" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/x local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicFalse + call $"instanceof/assertDynamicFalse" global.get $instanceof/x local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicFalse + call $"instanceof/assertDynamicFalse" global.get $instanceof/x local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicFalse + call $"instanceof/assertDynamicFalse" global.get $instanceof/x local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicFalse + call $"instanceof/assertDynamicFalse" global.get $instanceof/x local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/x local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/x local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/x local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/x local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicFalse + call $"instanceof/assertDynamicFalse" global.get $instanceof/x local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicFalse + call $"instanceof/assertDynamicFalse" global.get $instanceof/x local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/x local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/x local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/x local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/x local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $~lib/memory/__stack_pointer i32.const 88 i32.add diff --git a/tests/compiler/instanceof.release.wat b/tests/compiler/instanceof.release.wat index 353f1e0dce..3605a2ca97 100644 --- a/tests/compiler/instanceof.release.wat +++ b/tests/compiler/instanceof.release.wat @@ -49,140 +49,65 @@ (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/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - global.get $instanceof/a - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $instanceof/b - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $instanceof/an - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $instanceof/child - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $instanceof/childAsParent - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $instanceof/animal - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $instanceof/cat - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $instanceof/blackcat - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $instanceof/nullableAnimal - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $instanceof/nullableCat - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $instanceof/nullableBlackcat - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $instanceof/w - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $instanceof/x - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $instanceof/y - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $instanceof/z - local.tee $0 + (func $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" (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 1588 + i32.lt_s if - local.get $0 - call $~lib/rt/itcms/__visit + i32.const 34384 + i32.const 34432 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - i32.const 1248 - 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 + 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 + if (result i32) + block $__inlined_func$~instanceof|instanceof/Y$78 (result i32) + block $is_instance + local.get $0 + i32.const 8 + i32.sub + i32.load + local.tee $0 + i32.const 19 + i32.eq + br_if $is_instance + local.get $0 + i32.const 22 + i32.eq + br_if $is_instance i32.const 0 - i32.const 1120 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + br $__inlined_func$~instanceof|instanceof/Y$78 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 1 end + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 12 + i32.const 5 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/rt/itcms/__visit (param $0 i32) (local $1 i32) @@ -336,1148 +261,911 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 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.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - i32.const 0 - i32.const 1392 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable + 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 - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u + global.get $~lib/rt/tlsf/ROOT + i32.eqz if - i32.const 0 - i32.const 1392 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable + call $~lib/rt/tlsf/initialize 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 + global.get $~lib/rt/tlsf/ROOT + local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if + i32.const 4 + local.get $2 + i32.load offset=1568 + memory.size + local.tee $1 + i32.const 16 + i32.shl i32.const 4 i32.sub - i32.shr_u + i32.ne + i32.shl + i32.const 65563 + i32.add + i32.const -65536 + i32.and 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 + i32.shr_u + local.set $3 local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz + local.get $3 + local.get $1 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s 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 + memory.grow + i32.const 0 + i32.lt_s if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - i32.rotl - i32.and - i32.store + unreachable 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 + local.get $2 + 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 $2 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end end local.get $1 i32.load - local.tee $3 - i32.const 1 + i32.const -4 i32.and - i32.eqz + i32.const 28 + i32.lt_u if i32.const 0 i32.const 1392 - i32.const 203 + i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end + local.get $2 local.get $1 - i32.const 4 - i32.add + call $~lib/rt/tlsf/removeBlock local.get $1 i32.load + local.tee $3 i32.const -4 i32.and - i32.add + i32.const 28 + i32.sub local.tee $4 - i32.load - local.tee $2 - i32.const 1 - i32.and + i32.const 16 + i32.ge_u 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.const 2 i32.and - i32.add - local.tee $3 + i32.const 28 + i32.or i32.store local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and + i32.const 32 i32.add - local.tee $4 - i32.load - local.set $2 - end - local.get $3 - i32.const 2 - i32.and - if - local.get $1 + local.tee $3 + local.get $4 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 + i32.or + i32.store + local.get $2 + local.get $3 + call $~lib/rt/tlsf/insertBlock + else local.get $1 - call $~lib/rt/tlsf/removeBlock + local.get $3 + i32.const -2 + i32.and + i32.store local.get $1 - local.get $6 i32.const 4 i32.add - local.get $3 + local.get $1 + i32.load i32.const -4 i32.and i32.add - local.tee $3 + local.tee $2 + local.get $2 + i32.load + i32.const -3 + i32.and i32.store end - local.get $4 - local.get $2 - i32.const 2 + local.get $1 + 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 $0 + i32.load offset=8 + local.set $2 + local.get $1 + local.get $0 + global.get $~lib/rt/itcms/white i32.or - i32.store - local.get $3 - i32.const -4 + 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 - 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 + i32.or + i32.store offset=4 + local.get $0 + 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 - local.get $2 i32.add - i32.ne + global.set $~lib/rt/itcms/total + local.get $1 + i32.const 20 + i32.add + local.tee $0 + i32.const 0 + i32.const 0 + memory.fill + local.get $0 + ) + (func $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X>" (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 1588 + i32.lt_s if - i32.const 0 - i32.const 1392 - i32.const 234 - i32.const 14 + i32.const 34384 + i32.const 34432 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $4 - i32.const 4 - i32.sub - local.get $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store - local.get $2 - i32.const 256 - i32.lt_u + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 if (result i32) - local.get $2 - i32.const 4 - i32.shr_u + block $__inlined_func$~instanceof|instanceof/X$76 (result i32) + block $is_instance + block $tablify|0 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 16 + i32.sub + 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$76 + end + i32.const 1 + end 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 + i32.const 0 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 + i32.const 1456 + i32.const 12 + i32.const 5 call $~lib/builtins/abort unreachable end - local.get $0 - local.get $5 + global.get $~lib/memory/__stack_pointer 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 + global.set $~lib/memory/__stack_pointer + ) + (func $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Z>" (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 1588 + i32.lt_s if - local.get $3 - local.get $1 - i32.store offset=4 + i32.const 34384 + i32.const 34432 + i32.const 1 + i32.const 1 + 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 - 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 + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - local.tee $0 + i32.store 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 (result i32) + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 22 + i32.eq + else + i32.const 0 + end + i32.eqz if i32.const 0 - i32.const 1392 - i32.const 382 - i32.const 14 + i32.const 1456 + i32.const 12 + i32.const 5 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 19 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - i32.const -16 - i32.and + global.set $~lib/memory/__stack_pointer + ) + (func $"instanceof/assertDynamicFalse" (param $0 i32) + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub - local.set $1 - local.get $0 - i32.load offset=1568 - local.tee $3 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1588 + i32.lt_s 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 + 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.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + if (result i32) + block $__inlined_func$~instanceof|instanceof/Y$82 (result i32) + block $is_instance + local.get $0 + i32.const 8 + i32.sub + i32.load + local.tee $0 + i32.const 19 + i32.eq + br_if $is_instance + local.get $0 + i32.const 22 + i32.eq + br_if $is_instance + i32.const 0 + br $__inlined_func$~instanceof|instanceof/Y$82 + end + i32.const 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 + i32.const 0 end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 + if + i32.const 0 + i32.const 1456 + i32.const 19 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/object/Object#constructor (param $0 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - local.tee $3 - i32.const 20 - i32.lt_u + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1588 + i32.lt_s if - return + 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.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + 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 + ) + (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 - local.get $4 - i32.const 2 + 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 8 - i32.sub + i32.const -4 + i32.and local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store + 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.const 0 - i32.store offset=4 + i32.load offset=8 + local.set $5 local.get $1 - i32.const 0 - i32.store offset=8 + 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.add + i32.shl 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 + i32.shl + i32.add 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 + i32.load offset=96 + i32.eq if - unreachable - end - i32.const 34368 - i32.const 0 - i32.store - i32.const 35936 - 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 34368 - 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 34368 - 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 34368 - i32.const 35940 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34368 - 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 34356 - 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 34356 - 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 34356 - 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.set $1 - 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 $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (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 $5 + i32.store offset=96 + local.get $5 + i32.eqz + if local.get $0 - local.get $1 - i32.ctz - local.tee $2 + local.get $2 i32.const 2 i32.shl i32.add - i32.load offset=4 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 - i32.const 0 - i32.const 1392 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $2 + i32.rotl + i32.and + i32.store end - 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 - i32.const 0 end end ) - (func $~lib/rt/itcms/__new (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.ge_u + (local $5 i32) + (local $6 i32) + local.get $1 + i32.eqz 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 - local.tee $1 - local.get $1 - 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 + i32.const 0 + i32.const 1392 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/tlsf/ROOT + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and i32.eqz if - call $~lib/rt/tlsf/initialize + i32.const 0 + i32.const 1392 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/tlsf/ROOT + 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 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz + i32.const 1 + i32.and if - memory.size - local.tee $1 - i32.const 4 - local.get $2 - i32.load offset=1568 + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock local.get $1 - i32.const 16 - i32.shl + local.get $3 i32.const 4 - i32.sub - i32.ne - i32.shl - i32.const 65563 i32.add - i32.const -65536 + local.get $2 + i32.const -4 i32.and - i32.const 16 - i32.shr_u + i32.add local.tee $3 + i32.store local.get $1 - 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 $2 + i32.const 4 + i32.add 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 $2 - call $~lib/rt/tlsf/searchBlock + 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 499 + 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 $1 - i32.load + local.get $4 + local.get $2 + i32.const 2 + i32.or + i32.store + local.get $3 i32.const -4 i32.and - i32.const 28 + local.tee $2 + i32.const 12 i32.lt_u if i32.const 0 i32.const 1392 - i32.const 501 + i32.const 233 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $2 - local.get $1 - call $~lib/rt/tlsf/removeBlock + local.get $4 local.get $1 - i32.load - local.tee $3 - i32.const -4 - i32.and - i32.const 28 - i32.sub - local.tee $4 - i32.const 16 - i32.ge_u + i32.const 4 + i32.add + local.get $2 + i32.add + i32.ne if - local.get $1 - local.get $3 - i32.const 2 - i32.and - i32.const 28 - i32.or - i32.store - local.get $1 - i32.const 32 - i32.add - local.tee $3 - local.get $4 + 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 - i32.const 1 - i32.or - i32.store + local.tee $3 + i32.const 7 + i32.sub + local.set $5 local.get $2 local.get $3 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $3 - 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 + 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 $1 local.get $0 - i32.store offset=12 + 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=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $0 - i32.load offset=8 - 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 $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 + local.get $3 + if + local.get $3 + local.get $1 + i32.store offset=4 + end local.get $0 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - i32.const -4 - i32.and + local.get $5 i32.const 4 + i32.shl + local.get $2 i32.add + i32.const 2 + i32.shl i32.add - global.set $~lib/rt/itcms/total local.get $1 - i32.const 20 + 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 - i32.const 0 - i32.const 0 - memory.fill local.get $0 + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $instanceof/IE + block $instanceof/Z + block $instanceof/IC + block $instanceof/ID + block $instanceof/Y + block $instanceof/IA + block $instanceof/IB + block $instanceof/X + block $instanceof/W + block $instanceof/BlackCat + block $instanceof/Cat + block $instanceof/Animal + block $instanceof/SomethingElse + block $instanceof/Parent + block $instanceof/Child + block $instanceof/Parent + block $instanceof/Child + block $instanceof/C + block $instanceof/B + block $instanceof/A + 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 $instanceof/A $instanceof/B $instanceof/C $instanceof/Child $instanceof/Parent $instanceof/Child $instanceof/Parent $instanceof/SomethingElse $instanceof/Animal $instanceof/Cat $instanceof/BlackCat $instanceof/W $instanceof/X $instanceof/IB $instanceof/IA $instanceof/Y $instanceof/ID $instanceof/IC $instanceof/Z $instanceof/IE $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 + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + unreachable ) - (func $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X> (param $0 i32) - (local $1 i32) + (func $"instanceof/assertDynamicFalse" (param $0 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1494,38 +1182,26 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 if (result i32) - block $__inlined_func$~instanceof|instanceof/X$76 (result i32) - block $is_instance - block $tablify|0 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 16 - i32.sub - 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$76 - end - i32.const 1 - end + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 22 + i32.eq else i32.const 0 end - i32.eqz if i32.const 0 i32.const 1456 - i32.const 12 + i32.const 19 i32.const 5 call $~lib/builtins/abort unreachable @@ -1535,10 +1211,9 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> (param $0 i32) - (local $1 i32) + (func $instanceof/Cat#constructor (param $0 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 @@ -1553,54 +1228,34 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - local.get $0 - i32.store + i64.const 0 + i64.store local.get $0 - if (result i32) - block $__inlined_func$~instanceof|instanceof/Y$78 (result i32) - block $is_instance - local.get $0 - i32.const 8 - i32.sub - i32.load - local.tee $0 - i32.const 19 - i32.eq - br_if $is_instance - local.get $0 - i32.const 22 - i32.eq - br_if $is_instance - i32.const 0 - br $__inlined_func$~instanceof|instanceof/Y$78 - end - i32.const 1 - end - else - i32.const 0 - end i32.eqz if - i32.const 0 - i32.const 1456 - i32.const 12 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store end global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $instanceof/Animal#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 ) - (func $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Z> (param $0 i32) - (local $1 i32) + (func $instanceof/Animal#constructor (param $0 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 @@ -1615,41 +1270,34 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - local.get $0 - i32.store + i64.const 0 + i64.store local.get $0 - if (result i32) - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 22 - i32.eq - else - i32.const 0 - end i32.eqz if - i32.const 0 - i32.const 1456 + global.get $~lib/memory/__stack_pointer i32.const 12 - i32.const 5 - call $~lib/builtins/abort - unreachable + call $~lib/rt/itcms/__new + local.tee $0 + i32.store end global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/object/Object#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 ) - (func $instanceof/assertDynamicFalse (param $0 i32) - (local $1 i32) + (func $instanceof/A#constructor (param $0 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 @@ -1660,285 +1308,422 @@ i32.const 34432 i32.const 1 i32.const 1 - call $~lib/builtins/abort + call $~lib/builtins/abort + unreachable + end + 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 + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/object/Object#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $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 $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $1 + 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 $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 + i32.const 0 + end + end + ) + (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 - global.get $~lib/memory/__stack_pointer - local.tee $1 + i32.const 34368 i32.const 0 i32.store - local.get $1 - local.get $0 + i32.const 35936 + i32.const 0 i32.store - local.get $0 - if (result i32) - block $__inlined_func$~instanceof|instanceof/Y$82 (result i32) - block $is_instance - local.get $0 - i32.const 8 - i32.sub - i32.load - local.tee $0 - i32.const 19 - i32.eq - br_if $is_instance - local.get $0 - i32.const 22 - i32.eq - br_if $is_instance - i32.const 0 - br $__inlined_func$~instanceof|instanceof/Y$82 + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 34368 + 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 34368 + 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 - else - i32.const 0 end + i32.const 34368 + i32.const 35940 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34368 + global.set $~lib/rt/tlsf/ROOT + ) + (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 1456 - i32.const 19 - i32.const 5 + i32.const 1392 + i32.const 382 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $1 + i32.const 19 i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $instanceof/assertDynamicFalse (param $0 i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer + i32.const -16 + i32.and i32.const 4 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1588 - i32.lt_s - if - i32.const 34384 - i32.const 34432 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - local.get $0 - i32.store + local.set $1 local.get $0 - if (result i32) - local.get $0 - i32.const 8 + 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 - i32.load - i32.const 22 + local.tee $5 i32.eq - else - i32.const 0 - end - if - i32.const 0 - i32.const 1456 - i32.const 19 - i32.const 5 - call $~lib/builtins/abort - unreachable - 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 $invalid - block $instanceof/IE - block $instanceof/Z - block $instanceof/IC - block $instanceof/ID - block $instanceof/Y - block $instanceof/IA - block $instanceof/IB - block $instanceof/X - block $instanceof/W - block $instanceof/BlackCat - block $instanceof/Cat - block $instanceof/Animal - block $instanceof/SomethingElse - block $instanceof/Parent - block $instanceof/Child - block $instanceof/Parent - block $instanceof/Child - block $instanceof/C - block $instanceof/B - block $instanceof/A - 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 $instanceof/A $instanceof/B $instanceof/C $instanceof/Child $instanceof/Parent $instanceof/Child $instanceof/Parent $instanceof/SomethingElse $instanceof/Animal $instanceof/Cat $instanceof/BlackCat $instanceof/W $instanceof/X $instanceof/IB $instanceof/IA $instanceof/Y $instanceof/ID $instanceof/IC $instanceof/Z $instanceof/IE $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end - return + 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 - return end - unreachable - ) - (func $~start - call $start:instanceof - ) - (func $instanceof/A#constructor (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1588 - i32.lt_s - if - i32.const 34384 - i32.const 34432 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $0 - i32.eqz + local.tee $3 + i32.const 20 + i32.lt_u if - local.get $1 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store + return end - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 local.get $1 - local.get $0 - call $~lib/object/Object#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer + 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 - global.set $~lib/memory/__stack_pointer + 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 $instanceof/Animal#constructor (param $0 i32) (result i32) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1588 - i32.lt_s + global.get $instanceof/a + local.tee $0 if - i32.const 34384 - i32.const 34432 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $0 + call $~lib/rt/itcms/__visit end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $0 - i32.eqz + global.get $instanceof/b + local.tee $0 if - local.get $1 - i32.const 12 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store + local.get $0 + call $~lib/rt/itcms/__visit end - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/object/Object#constructor + global.get $instanceof/an local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $instanceof/child + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $instanceof/childAsParent + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $instanceof/animal + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $instanceof/cat + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $instanceof/blackcat + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $instanceof/nullableAnimal + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $instanceof/nullableCat + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $instanceof/nullableBlackcat + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $instanceof/w + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $instanceof/x + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $instanceof/y + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $instanceof/z + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 1248 + 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 $instanceof/Cat#constructor (param $0 i32) (result i32) - (local $1 i32) + (func $instanceof/Y#constructor (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1955,25 +1740,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store local.get $0 i32.eqz if - local.get $1 - i32.const 13 + global.get $~lib/memory/__stack_pointer + i32.const 19 call $~lib/rt/itcms/__new local.tee $0 i32.store end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 - call $instanceof/Animal#constructor + call $instanceof/X#constructor local.tee $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1982,9 +1765,7 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $instanceof/BlackCat#constructor (result i32) - (local $0 i32) - (local $1 i32) + (func $instanceof/X#constructor (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2001,21 +1782,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store local.get $0 - i32.const 14 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 - call $instanceof/Cat#constructor + call $~lib/object/Object#constructor local.tee $0 i32.store global.get $~lib/memory/__stack_pointer @@ -2024,8 +1807,8 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $instanceof/X#constructor (param $0 i32) (result i32) - (local $1 i32) + (func $instanceof/BlackCat#constructor (result i32) + (local $0 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2042,25 +1825,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $0 - i32.eqz - if - local.get $1 - i32.const 16 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end global.get $~lib/memory/__stack_pointer - local.tee $1 + 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 $1 + global.get $~lib/memory/__stack_pointer local.get $0 - call $~lib/object/Object#constructor + call $instanceof/Cat#constructor local.tee $0 i32.store global.get $~lib/memory/__stack_pointer @@ -2069,56 +1846,272 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $instanceof/Y#constructor (param $0 i32) (result i32) + (func $~start + call $start:instanceof + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1588 - i32.lt_s - if - i32.const 34384 - i32.const 34432 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $0 - i32.eqz - if - local.get $1 - i32.const 19 - call $~lib/rt/itcms/__new + (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 34356 + 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 - i32.store + 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 34356 + 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 34356 + 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 - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - local.get $0 - call $instanceof/X#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 ) (func $start:instanceof (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 88 i32.sub @@ -2176,19 +2169,17 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $instanceof/A#constructor local.tee $0 @@ -2208,19 +2199,17 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 6 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $instanceof/A#constructor local.tee $0 @@ -2248,10 +2237,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer global.get $instanceof/a local.tee $0 i32.store @@ -2311,19 +2299,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 7 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2332,23 +2319,21 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store local.get $0 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 call $~lib/rt/itcms/__new local.tee $0 i32.store end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -2357,7 +2342,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -2375,19 +2359,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 9 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2396,23 +2379,21 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store local.get $0 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/rt/itcms/__new local.tee $0 i32.store end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -2421,7 +2402,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -2898,25 +2878,24 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store offset=64 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=68 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=72 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=76 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=80 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=84 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2925,19 +2904,17 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 15 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -2963,19 +2940,17 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 22 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $instanceof/Y#constructor local.tee $0 @@ -2988,52 +2963,49 @@ global.set $instanceof/z global.get $~lib/memory/__stack_pointer global.get $instanceof/w - local.tee $1 i32.store global.get $~lib/memory/__stack_pointer global.get $instanceof/x - local.tee $2 i32.store global.get $~lib/memory/__stack_pointer global.get $instanceof/y - local.tee $3 i32.store global.get $~lib/memory/__stack_pointer global.get $instanceof/z - local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + global.get $instanceof/x i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + global.get $instanceof/x i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + global.get $instanceof/y i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + global.get $instanceof/y i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + global.get $instanceof/y i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + global.get $instanceof/y i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $instanceof/z i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $instanceof/z i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $instanceof/z i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $instanceof/z i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + global.get $instanceof/w + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 @@ -3044,15 +3016,14 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 + local.get $0 if (result i32) - local.get $1 + local.get $0 i32.const 8 i32.sub i32.load @@ -3079,109 +3050,108 @@ local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X>" global.get $~lib/memory/__stack_pointer global.get $instanceof/y local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X>" global.get $~lib/memory/__stack_pointer global.get $instanceof/z local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X>" global.get $~lib/memory/__stack_pointer global.get $instanceof/y local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/z local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/z local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Z> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Z>" global.get $~lib/memory/__stack_pointer global.get $instanceof/x local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X>" global.get $~lib/memory/__stack_pointer global.get $instanceof/x local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X>" global.get $~lib/memory/__stack_pointer global.get $instanceof/y local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X>" global.get $~lib/memory/__stack_pointer global.get $instanceof/y local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X>" global.get $~lib/memory/__stack_pointer global.get $instanceof/y local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/y local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/z local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X>" global.get $~lib/memory/__stack_pointer global.get $instanceof/z local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X>" global.get $~lib/memory/__stack_pointer global.get $instanceof/z local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/z local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/w - local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $instanceof/w i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $instanceof/w i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $instanceof/w i32.store global.get $~lib/memory/__stack_pointer global.get $instanceof/x @@ -3200,13 +3170,13 @@ local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicFalse + call $"instanceof/assertDynamicFalse" global.get $~lib/memory/__stack_pointer global.get $instanceof/x local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicFalse + call $"instanceof/assertDynamicFalse" global.get $~lib/memory/__stack_pointer global.get $instanceof/y i32.store @@ -3215,13 +3185,13 @@ local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/y local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicFalse + call $"instanceof/assertDynamicFalse" global.get $~lib/memory/__stack_pointer global.get $instanceof/z i32.store @@ -3230,13 +3200,13 @@ local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/z local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Z> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Z>" global.get $~lib/memory/__stack_pointer global.get $instanceof/y i32.store @@ -3248,7 +3218,7 @@ local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicFalse + call $"instanceof/assertDynamicFalse" global.get $~lib/memory/__stack_pointer global.get $instanceof/z i32.store @@ -3260,7 +3230,7 @@ local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Z> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Z>" global.get $~lib/memory/__stack_pointer global.get $instanceof/z i32.store @@ -3275,25 +3245,25 @@ local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicFalse + call $"instanceof/assertDynamicFalse" global.get $~lib/memory/__stack_pointer global.get $instanceof/x local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicFalse + call $"instanceof/assertDynamicFalse" global.get $~lib/memory/__stack_pointer global.get $instanceof/x local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicFalse + call $"instanceof/assertDynamicFalse" global.get $~lib/memory/__stack_pointer global.get $instanceof/x local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicFalse + call $"instanceof/assertDynamicFalse" global.get $~lib/memory/__stack_pointer global.get $instanceof/x i32.store @@ -3305,25 +3275,25 @@ local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/y local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/y local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/y local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/y i32.store @@ -3335,25 +3305,25 @@ local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/z local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/z local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/z local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/z i32.store @@ -3371,13 +3341,13 @@ local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicFalse + call $"instanceof/assertDynamicFalse" global.get $~lib/memory/__stack_pointer global.get $instanceof/x local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicFalse + call $"instanceof/assertDynamicFalse" global.get $~lib/memory/__stack_pointer global.get $instanceof/x i32.store @@ -3392,13 +3362,13 @@ local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/y local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/y i32.store @@ -3413,13 +3383,13 @@ local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/z local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/z i32.store @@ -3503,109 +3473,109 @@ local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X>" global.get $~lib/memory/__stack_pointer global.get $instanceof/x local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X>" global.get $~lib/memory/__stack_pointer global.get $instanceof/y local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X>" global.get $~lib/memory/__stack_pointer global.get $instanceof/y local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X>" global.get $~lib/memory/__stack_pointer global.get $instanceof/z local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X>" global.get $~lib/memory/__stack_pointer global.get $instanceof/z local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X>" global.get $~lib/memory/__stack_pointer global.get $instanceof/y local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/y local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/y local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/y local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/z local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/z local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/z local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/z local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/z local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Z> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Z>" global.get $~lib/memory/__stack_pointer global.get $instanceof/z local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Z> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Z>" global.get $~lib/memory/__stack_pointer global.get $instanceof/z local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Z> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Z>" global.get $~lib/memory/__stack_pointer global.get $instanceof/z local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Z> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Z>" global.get $~lib/memory/__stack_pointer i32.const 88 i32.add @@ -3619,40 +3589,4 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/object/Object#constructor (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1588 - i32.lt_s - if - i32.const 34384 - i32.const 34432 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - local.get $1 - 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 - ) ) diff --git a/tests/compiler/interface-with-initializer.json b/tests/compiler/interface-with-initializer.json new file mode 100644 index 0000000000..be54c01a3f --- /dev/null +++ b/tests/compiler/interface-with-initializer.json @@ -0,0 +1,7 @@ +{ + "asc_flags": [ + ], + "stderr": [ + "TS1246: An interface property cannot have an initializer." + ] +} diff --git a/tests/compiler/interface-with-initializer.ts b/tests/compiler/interface-with-initializer.ts new file mode 100644 index 0000000000..c1d5689042 --- /dev/null +++ b/tests/compiler/interface-with-initializer.ts @@ -0,0 +1,9 @@ +interface I { + v: string = ""; +} + +class C implements I { + v: string = ""; +} + +new C(); diff --git a/tests/compiler/issues/1095.debug.wat b/tests/compiler/issues/1095.debug.wat index 8d55faf3bc..4a22d3612d 100644 --- a/tests/compiler/issues/1095.debug.wat +++ b/tests/compiler/issues/1095.debug.wat @@ -1623,14 +1623,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 @@ -2341,12 +2344,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -2357,12 +2356,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid @@ -2414,16 +2409,13 @@ (func $issues/1095/Foo#constructor (param $this 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 $this i32.eqz if @@ -2451,16 +2443,11 @@ i32.store offset=4 local.get $1 i32.const 432 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 call $issues/1095/Foo#set:bar local.get $this 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 diff --git a/tests/compiler/issues/1095.release.wat b/tests/compiler/issues/1095.release.wat index 27b353fae1..542118d3ea 100644 --- a/tests/compiler/issues/1095.release.wat +++ b/tests/compiler/issues/1095.release.wat @@ -1,7 +1,7 @@ (module - (type $0 (func)) - (type $1 (func (param i32))) - (type $2 (func (param i32 i32))) + (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 i32 i32 i32))) (type $5 (func (param i32 i32 i64))) @@ -38,183 +38,6 @@ (data $11 (i32.const 1648) "\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) - i32.const 1248 - 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$115 - 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 34440 - 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$115 - 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 1648 - i32.load - i32.gt_u - if - i32.const 1248 - i32.const 1312 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.const 1652 - 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 @@ -631,119 +454,296 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + (local $2 i32) (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 + global.get $~lib/rt/itcms/iter + i32.eq if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz if i32.const 0 - i32.const 1392 - i32.const 389 - i32.const 16 + i32.const 1120 + i32.const 148 + i32.const 30 call $~lib/builtins/abort unreachable end - local.get $3 local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$117 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz if - local.get $3 - i32.load - local.set $4 - local.get $5 - local.set $1 + local.get $0 + i32.load offset=8 + i32.eqz + local.get $0 + i32.const 34440 + 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$117 end - else local.get $0 - i32.const 1572 - i32.add + 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 1648 + i32.load i32.gt_u if - i32.const 0 - i32.const 1392 - i32.const 402 - i32.const 5 + i32.const 1248 + i32.const 1312 + i32.const 21 + i32.const 28 call $~lib/builtins/abort unreachable end + local.get $1 + i32.const 2 + i32.shl + i32.const 1652 + i32.add + i32.load + i32.const 32 + i32.and end + local.set $3 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.load offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz i32.const 2 - i32.and local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or + select + local.get $2 i32.or - i32.store - local.get $1 - i32.const 0 i32.store offset=4 + local.get $0 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 $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/__visit_members (param $0 i32) + block $invalid + block $issues/1095/Foo + 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 $issues/1095/Foo $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 + return + end + unreachable + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) local.get $1 - call $~lib/rt/tlsf/insertBlock + 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/tlsf/initialize (local $0 i32) @@ -825,394 +825,162 @@ 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 34440 - 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 34440 - 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 34440 - 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.set $1 - 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 $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 + (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 - global.set $~lib/rt/itcms/state + i32.const 1392 + i32.const 382 + i32.const 14 + call $~lib/builtins/abort + unreachable 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 + 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 $1 + local.get $3 i32.const 4 - i32.shr_u - local.set $1 - else + i32.add local.get $1 - i32.const 536870910 - i32.lt_u + i32.gt_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 + 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 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 + 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 $1 - i32.const 16 - i32.lt_u local.get $2 - i32.const 23 - i32.lt_u + i32.wrap_i64 + i32.const -16 i32.and - i32.eqz + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u if - i32.const 0 - i32.const 1392 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable + return end - local.get $0 - local.get $2 + local.get $1 + local.get $4 i32.const 2 - i32.shl + 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 - i32.load offset=4 - i32.const -1 + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 local.get $1 - i32.shl - i32.and + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1248 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace local.tee $1 - if (result i32) + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|0 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) + i32.ne + if 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 + i32.const 3 + i32.and + i32.const 3 + i32.ne if i32.const 0 - i32.const 1392 - i32.const 347 - i32.const 18 + i32.const 1120 + i32.const 160 + i32.const 16 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.const 20 i32.add - i32.load offset=96 - else - i32.const 0 + 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 ) @@ -1249,12 +1017,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 @@ -1266,8 +1030,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1319,8 +1082,6 @@ local.tee $2 i32.eqz if - memory.size - local.tee $2 local.get $5 i32.const 256 i32.ge_u @@ -1348,7 +1109,8 @@ i32.const 4 local.get $4 i32.load offset=1568 - local.get $2 + memory.size + local.tee $2 i32.const 16 i32.shl i32.const 4 @@ -1362,7 +1124,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.set $3 + local.get $2 + local.get $3 local.get $2 local.get $3 i32.gt_s @@ -1535,7 +1299,6 @@ local.get $1 ) (func $issues/1095/Foo#set:bar (param $0 i32) (param $1 i32) - (local $2 i32) local.get $0 local.get $1 i32.store @@ -1544,257 +1307,476 @@ local.get $0 i32.eqz if - i32.const 0 - i32.const 1120 - i32.const 295 - i32.const 14 + 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 + end + ) + (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 1672 + 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 34440 + 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 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1672 + 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 + 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 1672 + i32.lt_s + br_if $folding-inner0 + 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 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 + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1456 + call $issues/1095/Foo#set:bar + 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 $0 + i32.store + 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 1672 + 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 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $1 + i32.store offset=12 + local.get $1 + i32.eqz + if + i32.const 1488 + i32.const 1616 + i32.const 8 + i32.const 13 call $~lib/builtins/abort unreachable end - global.get $~lib/rt/itcms/white - local.tee $2 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq + i32.store offset=4 + local.get $0 + local.get $1 + call $issues/1095/Foo#set:bar + global.get $~lib/memory/__stack_pointer + i32.const 16 + 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 34464 + i32.const 34512 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (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 34440 + 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.const 20 - i32.sub i32.load offset=4 - i32.const 3 + local.tee $1 + i32.const -4 i32.and - local.tee $0 - local.get $2 + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white i32.eqz - i32.eq + local.get $1 + i32.const 3 + i32.and + i32.ne if - local.get $1 - call $~lib/rt/itcms/Object#makeGray + i32.const 0 + i32.const 1120 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34440 + 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/state - i32.const 1 - i32.eq + global.get $~lib/rt/itcms/total local.get $0 - i32.const 3 - i32.eq + 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 34440 + i32.ge_u if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - end - end - end - end - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $folding-inner0 - block $invalid - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub + 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 - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $folding-inner0 $invalid + i32.const 1 + i32.and end - return + 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 - return end + i32.const 10 return end - unreachable - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - ) - (func $~start - (local $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 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1672 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - memory.size - i32.const 16 - i32.shl - i32.const 34440 - 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 - local.get $0 - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1672 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 4 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store offset=4 - local.get $2 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1672 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - local.get $1 - 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 $2 - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1456 - i32.store offset=8 - local.get $0 - i32.const 1456 - call $issues/1095/Foo#set:bar - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - 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 1672 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - i64.const 0 - i64.store offset=8 - local.get $1 - local.get $0 - i32.store - local.get $1 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 - local.get $1 - local.get $0 - i32.load - local.tee $1 - i32.store offset=12 - local.get $1 - i32.eqz - if - i32.const 1488 - i32.const 1616 - i32.const 8 - i32.const 13 - 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 $issues/1095/Foo#set:bar - global.get $~lib/memory/__stack_pointer - i32.const 16 - 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 + i32.const 0 + global.set $~lib/rt/itcms/state end - i32.const 34464 - i32.const 34512 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + i32.const 0 ) ) diff --git a/tests/compiler/issues/1225.debug.wat b/tests/compiler/issues/1225.debug.wat index 73eec5c752..2abb8194d5 100644 --- a/tests/compiler/issues/1225.debug.wat +++ b/tests/compiler/issues/1225.debug.wat @@ -1638,14 +1638,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 @@ -2391,12 +2394,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/issues/1225.release.wat b/tests/compiler/issues/1225.release.wat index dcd7eef4ba..3a9ede7e7b 100644 --- a/tests/compiler/issues/1225.release.wat +++ b/tests/compiler/issues/1225.release.wat @@ -4,8 +4,8 @@ (type $2 (func (param i32))) (type $3 (func (param i32 i32))) (type $4 (func (param i32 i32 i32 i32))) - (type $5 (func (param i32 i32 i64))) - (type $6 (func (param i32) (result i32))) + (type $5 (func (param i32) (result i32))) + (type $6 (func (param i32 i32 i64))) (import "env" "abort" (func $~lib/builtins/abort (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)) @@ -37,57 +37,6 @@ (export "viaThis" (func $issues/1225/viaThis)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - global.get $issues/1225/x - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 1248 - 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/__visit (param $0 i32) (local $1 i32) (local $2 i32) @@ -240,216 +189,476 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $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 + 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 -2 - local.get $3 - i32.rotl + i32.const -4 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.set $0 + loop $while-continue|1 local.get $0 - i32.load - i32.const -2 - local.get $2 - i32.rotl - i32.and - i32.store + 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 - end - end - ) - (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + 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 34280 + 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 34280 + 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 34280 + 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/removeBlock (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.load + local.tee $3 + i32.const 1 + i32.and i32.eqz if i32.const 0 i32.const 1392 - i32.const 201 + i32.const 268 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 - i32.load - local.tee $3 - i32.const 1 + local.get $3 + i32.const -4 i32.and - i32.eqz + local.tee $3 + i32.const 12 + i32.lt_u if i32.const 0 i32.const 1392 - i32.const 203 + i32.const 270 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 256 + i32.lt_u + if (result i32) local.get $3 i32.const 4 - i32.add - local.get $2 - i32.const -4 - i32.and - i32.add + 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.store - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and + 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 @@ -601,493 +810,64 @@ 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 34288 - i32.const 0 - i32.store - i32.const 35856 - 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 34288 - 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 34288 - 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 34288 - i32.const 35860 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34288 - 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 34280 - 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 + 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/__visit_members (param $0 i32) + block $invalid + block $issues/1225/X + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $issues/1225/X $invalid end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 + return end + return 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 + return end local.get $0 - i32.const 34280 - 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 34280 - 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.set $1 - 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 $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 + i32.load + call $~lib/rt/itcms/__visit return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + unreachable ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -1146,275 +926,315 @@ end end ) - (func $~lib/rt/itcms/__new (result i32) + (func $~lib/rt/tlsf/initialize (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 + 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 - 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 + unreachable + end + i32.const 34288 + i32.const 0 + i32.store + i32.const 35856 + 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 34288 + 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 - 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 + local.get $0 + i32.const 4 + i32.shl + local.get $1 i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$69 + i32.const 2 + i32.shl + i32.const 34288 + 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 - local.get $0 - i32.const 0 - i32.gt_s - br_if $do-loop|0 end - global.get $~lib/rt/itcms/total - local.tee $0 local.get $0 - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl + i32.const 1 i32.add - global.set $~lib/rt/itcms/threshold + local.set $0 + br $for-loop|0 end end - global.get $~lib/rt/tlsf/ROOT - i32.eqz + i32.const 34288 + i32.const 35860 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34288 + global.set $~lib/rt/tlsf/ROOT + ) + (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 - call $~lib/rt/tlsf/initialize + i32.const 0 + i32.const 1392 + i32.const 382 + i32.const 14 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/tlsf/ROOT - local.tee $1 - call $~lib/rt/tlsf/searchBlock - local.tee $0 - i32.eqz + 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 - memory.size - local.tee $0 - i32.const 4 - local.get $1 - i32.load offset=1568 - local.get $0 - i32.const 16 - i32.shl + local.get $3 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 + local.get $1 + i32.gt_u if - local.get $2 - memory.grow i32.const 0 - i32.lt_s - if - unreachable - end + i32.const 1392 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $3 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 + 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 - call $~lib/rt/tlsf/searchBlock - local.tee $0 - i32.eqz + i32.gt_u if i32.const 0 i32.const 1392 - i32.const 499 - i32.const 16 + i32.const 402 + i32.const 5 call $~lib/builtins/abort unreachable end end - local.get $0 - i32.load - i32.const -4 + local.get $2 + i32.wrap_i64 + i32.const -16 i32.and - i32.const 28 + local.get $1 + i32.sub + local.tee $3 + i32.const 20 i32.lt_u if - i32.const 0 - i32.const 1392 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable + return end local.get $1 - local.get $0 - call $~lib/rt/tlsf/removeBlock - local.get $0 - i32.load - local.tee $2 - i32.const -4 + local.get $4 + i32.const 2 i32.and - i32.const 28 + local.get $3 + i32.const 8 i32.sub local.tee $3 - i32.const 16 - i32.ge_u + 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/itcms/visitRoots + (local $0 i32) + (local $1 i32) + global.get $issues/1225/x + local.tee $0 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 + call $~lib/rt/itcms/__visit + end + i32.const 1248 + 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 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $1 local.get $1 - i32.load - i32.const -3 - i32.and - i32.store + 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 - local.get $0 + ) + (func $issues/1225/viaThis (result i32) + (local $0 i32) + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.store offset=12 - 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 $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 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1512 + i32.lt_s + if + 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.store + global.get $~lib/memory/__stack_pointer + global.get $issues/1225/x + local.tee $0 + i32.store 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 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $0 - i32.const 20 - i32.add - local.tee $0 - i32.const 0 - i32.const 12 - memory.fill - local.get $0 + global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $issues/1225/X - 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 $issues/1225/X $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - return - end - return + (func $issues/1225/normal (result i32) + (local $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 1512 + i32.lt_s + if + i32.const 34304 + i32.const 34352 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + global.get $issues/1225/x + local.tee $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 ) (func $~start (local $0 i32) - (local $1 i32) memory.size i32.const 16 i32.shl @@ -1463,56 +1283,54 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 4 i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=8 i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=4 - local.get $1 + local.get $0 i32.const 4 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 global.set $issues/1225/x call $issues/1225/normal i32.const 4 @@ -1525,121 +1343,281 @@ call $~lib/builtins/abort unreachable end - call $issues/1225/viaThis - i32.const 4 - i32.ne + call $issues/1225/viaThis + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 19 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $issues/1225/x + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + global.get $~lib/rt/itcms/state + 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 + 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 + ) + (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 - i32.const 0 - i32.const 1456 - i32.const 19 - i32.const 1 - call $~lib/builtins/abort - unreachable + call $~lib/rt/tlsf/initialize end - i32.const 0 - global.set $issues/1225/x - global.get $~lib/rt/itcms/state - i32.const 0 - i32.gt_s + global.get $~lib/rt/tlsf/ROOT + local.tee $1 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz if - loop $while-continue|0 - global.get $~lib/rt/itcms/state + i32.const 4 + local.get $1 + i32.load offset=1568 + memory.size + local.tee $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.set $2 + local.get $0 + local.get $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 - call $~lib/rt/itcms/step - drop - br $while-continue|0 + unreachable end end - end - call $~lib/rt/itcms/step - drop - loop $while-continue|1 - global.get $~lib/rt/itcms/state + 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 - call $~lib/rt/itcms/step - drop - br $while-continue|1 + i32.const 0 + i32.const 1392 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable 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 - ) - (func $issues/1225/normal (result i32) - (local $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 1512 - i32.lt_s + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 28 + i32.lt_u if - i32.const 34304 - i32.const 34352 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1392 + i32.const 501 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - global.get $issues/1225/x - local.tee $1 - i32.store local.get $1 - i32.load - local.set $1 local.get $0 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $issues/1225/viaThis (result i32) - (local $0 i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 + call $~lib/rt/tlsf/removeBlock + local.get $0 + i32.load + local.tee $2 + i32.const -4 + i32.and + i32.const 28 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1512 - i32.lt_s + local.tee $3 + i32.const 16 + i32.ge_u if - i32.const 34304 - i32.const 34352 - i32.const 1 + 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 - call $~lib/builtins/abort - unreachable + 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 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store local.get $0 - global.get $issues/1225/x + i32.const 4 + i32.store offset=12 + local.get $0 + i32.const 12 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace local.tee $1 - i32.store + 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 - local.set $1 + 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 - global.set $~lib/memory/__stack_pointer - local.get $1 + i32.add + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 20 + i32.add + local.tee $0 + i32.const 0 + i32.const 12 + memory.fill + local.get $0 ) ) diff --git a/tests/compiler/issues/1699.debug.wat b/tests/compiler/issues/1699.debug.wat index bec13bbd0b..b7c5009d63 100644 --- a/tests/compiler/issues/1699.debug.wat +++ b/tests/compiler/issues/1699.debug.wat @@ -1625,14 +1625,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 @@ -2451,12 +2454,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/issues/1699.release.wat b/tests/compiler/issues/1699.release.wat index 7678c94ffd..5da543848f 100644 --- a/tests/compiler/issues/1699.release.wat +++ b/tests/compiler/issues/1699.release.wat @@ -2,9 +2,9 @@ (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 (result i32))) - (type $5 (func (param i32 i32 i32))) + (type $3 (func (param i32 i32 i32))) + (type $4 (func (param i32 i32))) + (type $5 (func (result i32))) (type $6 (func (param i32 i32 i32 i32))) (type $7 (func (param i32 i32 i64))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) @@ -41,187 +41,6 @@ (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 - (local $0 i32) - (local $1 i32) - i32.const 1344 - call $~lib/rt/itcms/__visit - i32.const 1056 - call $~lib/rt/itcms/__visit - i32.const 1552 - call $~lib/rt/itcms/__visit - i32.const 1152 - 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/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 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$146 - 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 34508 - 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$146 - 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 - i32.const 1712 - 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 $1 - i32.const 2 - i32.shl - i32.const 1716 - 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 @@ -246,854 +65,1259 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (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.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + (local $6 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u if - i32.const 0 - i32.const 1488 - i32.const 268 - i32.const 14 + i32.const 1152 + i32.const 1216 + i32.const 261 + i32.const 31 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - i32.const 0 - i32.const 1488 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable + 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 - 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 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize end - local.tee $3 + global.get $~lib/rt/tlsf/ROOT + local.set $4 + local.get $0 i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u - i32.and - i32.eqz + i32.add + local.tee $2 + i32.const 1073741820 + i32.gt_u if - i32.const 0 + i32.const 1152 i32.const 1488 - i32.const 284 - i32.const 14 + i32.const 461 + i32.const 29 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 + 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.get $5 + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz if 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.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 + i32.load offset=1568 + memory.size + local.tee $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.set $3 + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s 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 + memory.grow + i32.const 0 + i32.lt_s if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - i32.rotl - i32.and - i32.store + 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 1488 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + 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 + local.get $5 + local.get $2 + i32.load + i32.const -4 + i32.and + i32.gt_u if i32.const 0 i32.const 1488 - i32.const 201 + i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 + local.get $2 + call $~lib/rt/tlsf/removeBlock + local.get $2 i32.load - local.tee $3 - i32.const 1 + local.set $6 + local.get $5 + i32.const 4 + i32.add + i32.const 15 i32.and - i32.eqz if i32.const 0 i32.const 1488 - i32.const 203 + i32.const 361 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load + local.get $6 i32.const -4 i32.and - i32.add - local.tee $4 - i32.load - local.tee $2 - i32.const 1 - i32.and + local.get $5 + i32.sub + local.tee $3 + i32.const 16 + i32.ge_u 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 + local.get $5 + local.get $6 + i32.const 2 + i32.and + i32.or i32.store - local.get $1 + local.get $2 i32.const 4 i32.add - local.get $1 - i32.load - i32.const -4 - i32.and + local.get $5 i32.add - local.tee $4 - i32.load - local.set $2 - end - local.get $3 - i32.const 2 - i32.and - if - local.get $1 + local.tee $5 + local.get $3 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 + 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 $3 + 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 $4 local.get $2 - i32.const 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 + i32.store offset=4 + local.get $2 local.get $3 - i32.const -4 + i32.store offset=8 + local.get $3 + local.get $2 + local.get $3 + i32.load offset=4 + i32.const 3 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 + 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 - i32.ne + local.tee $1 + i32.const 0 + local.get $0 + memory.fill + local.get $1 + ) + (func $~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 1740 + i32.lt_s if - i32.const 0 - i32.const 1488 - i32.const 234 - i32.const 14 + i32.const 34528 + i32.const 34576 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $4 - i32.const 4 - i32.sub - local.get $1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 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 + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u if - i32.const 0 - i32.const 1488 - i32.const 251 - i32.const 14 + i32.const 1344 + i32.const 1104 + i32.const 114 + i32.const 42 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer 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 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $5 - i32.const 4 - i32.shl - local.get $2 - i32.add + i32.load offset=4 + local.get $1 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.tee $0 + i32.store offset=4 local.get $0 - local.get $5 - i32.const 2 - i32.shl + i32.eqz + if + i32.const 1552 + i32.const 1104 + i32.const 118 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.tee $0 + global.set $~lib/memory/__stack_pointer 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) + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 local.get $1 - i64.extend_i32_u - i64.lt_u + i32.eqz + if + return + end + local.get $0 + i32.eqz if i32.const 0 - i32.const 1488 - i32.const 382 + 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 19 - i32.add - i32.const -16 - i32.and - i32.const 4 + i32.const 20 i32.sub - local.set $1 - local.get $0 - i32.load offset=1568 - local.tee $3 + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq 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 + local.get $0 + i32.const 20 i32.sub - local.tee $5 + local.tee $0 + i32.load offset=4 + i32.const 3 + i32.and + local.tee $3 + global.get $~lib/rt/itcms/white + i32.eqz i32.eq if + local.get $0 + local.get $1 + local.get $2 + select + call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq local.get $3 - i32.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 + i32.const 3 + i32.eq + i32.and + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + end end end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and + ) + (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.sub + i32.load local.tee $3 - i32.const 20 - i32.lt_u + i32.const 1 + i32.and + i32.eqz if - return + i32.const 0 + i32.const 1488 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable end - local.get $1 - local.get $4 - i32.const 2 + 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 8 - i32.sub + 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 1 - i32.or - i32.or - i32.store + 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.const 0 - i32.store offset=4 + i32.load offset=8 + local.set $5 local.get $1 - i32.const 0 - i32.store offset=8 + 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.add + i32.shl 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 + i32.shl + i32.add 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 + i32.load offset=96 + i32.eq if - unreachable - end - i32.const 34512 - i32.const 0 - i32.store - i32.const 36080 - i32.const 0 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 23 - i32.lt_u + 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.const 34512 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 34512 - 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 + 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/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 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$146 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 + i32.load offset=8 + i32.eqz + local.get $0 + i32.const 34508 + 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$146 + 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 - i32.const 34512 - i32.const 36084 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34512 - global.set $~lib/rt/tlsf/ROOT + 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 1712 + 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 $1 + i32.const 2 + i32.shl + i32.const 1716 + i32.add + i32.load + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $2 + local.get $0 + i32.store offset=8 ) - (func $~lib/rt/itcms/step (result i32) - (local $0 i32) + (func $~lib/rt/__visit_members (param $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 34508 - 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 + (local $3 i32) + block $invalid + block $~lib/array/Array + block $issues/1699/MultiAssignmentTest + 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 $issues/1699/MultiAssignmentTest $~lib/array/Array $invalid + end + return end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 + return end + return 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 + i32.load + call $~lib/rt/itcms/__visit + return 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 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1740 + 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 + 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.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 - i32.const 3 - i32.and - i32.ne + local.get $2 + i32.lt_u if - i32.const 0 - i32.const 1216 - i32.const 229 - i32.const 20 + 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 + ) + (func $~lib/array/Array#__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) + 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 1740 + 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 + local.get $0 + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 1344 + i32.const 1104 + i32.const 130 + i32.const 22 call $~lib/builtins/abort unreachable end + local.get $1 + i32.const 1 + i32.add + local.tee $7 + 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 1740 + 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.const 34508 - i32.lt_u + i32.store + local.get $5 + local.get $0 + i32.load offset=8 + local.tee $3 + i32.const 2 + i32.shr_u + i32.gt_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 34508 - i32.ge_u + local.get $5 + i32.const 268435455 + i32.gt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.set $1 + i32.const 1056 + i32.const 1104 + 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$145 + 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.const 4 + i32.load + local.tee $3 + i32.const 20 i32.sub - local.set $2 - local.get $0 - i32.const 15 + local.tee $5 + i32.load + i32.const -4 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 + i32.const 16 + i32.sub + i32.le_u if - i32.const 0 - i32.const 1488 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $5 + local.get $6 + i32.store offset=16 + local.get $3 + local.set $4 + br $__inlined_func$~lib/rt/itcms/__renew$145 end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or + 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 - local.get $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock + local.get $0 + local.get $4 + i32.store offset=4 + local.get $0 + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__link end + local.get $0 + local.get $6 + i32.store offset=8 end - i32.const 10 - return + 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 $7 + i32.store offset=12 end - global.get $~lib/rt/itcms/toSpace - local.tee $0 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + 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 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + 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 + return end - i32.const 0 + i32.const 34528 + i32.const 34576 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1174,950 +1398,810 @@ 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) (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 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 $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$69 - end - local.get $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 - 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 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 - 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.const 2 + i32.shl i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $3 + i32.load offset=96 + else + local.get $0 + i32.load + i32.const -1 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 + 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 - 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 + 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 - i32.const 1488 - 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 + ) + (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.const 1488 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort + i32.lt_s + else + i32.const 0 + end + if unreachable end - local.get $4 - local.get $2 - call $~lib/rt/tlsf/removeBlock + i32.const 34512 + i32.const 0 + i32.store + i32.const 36080 + 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 34512 + 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 34512 + 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 34512 + i32.const 36084 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34512 + global.set $~lib/rt/tlsf/ROOT + ) + (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 - i32.load - local.set $6 - local.get $5 - i32.const 4 - i32.add - i32.const 15 - i32.and + local.get $1 + i64.extend_i32_u + i64.lt_u if i32.const 0 i32.const 1488 - i32.const 361 + i32.const 382 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $6 - i32.const -4 + local.get $1 + i32.const 19 + i32.add + i32.const -16 i32.and - local.get $5 + i32.const 4 i32.sub + local.set $1 + local.get $0 + i32.load offset=1568 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 + local.get $3 i32.const 4 i32.add - local.get $5 - i32.add - local.tee $5 + 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 - i32.const 4 + local.get $1 + i32.const 16 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 + 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.tee $3 - local.get $3 - i32.load - i32.const -3 - i32.and - i32.store + 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.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 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end 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 + 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 - local.get $2 + i32.const 0 i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $2 - i32.load - i32.const -4 - i32.and + local.get $1 i32.const 4 i32.add + local.get $3 i32.add - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 + local.tee $3 + i32.const 2 + i32.store local.get $0 - memory.fill - local.get $1 - ) - (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 $3 + i32.store offset=1568 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.tee $3 local.get $1 - i32.const 20 - i32.sub + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1344 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + i32.const 1552 + call $~lib/rt/itcms/__visit + i32.const 1152 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace local.tee $1 i32.load offset=4 - i32.const 3 + i32.const -4 i32.and - i32.eq - if - local.get $3 - i32.eqz + local.set $0 + loop $while-continue|0 local.get $0 - i32.const 20 - i32.sub - local.tee $0 - i32.load offset=4 - i32.const 3 - i32.and - local.tee $3 - i32.eq + local.get $1 + i32.ne if local.get $0 - local.get $1 - local.get $2 - select - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - local.get $3 + i32.load offset=4 i32.const 3 - i32.eq i32.and + i32.const 3 + i32.ne if - local.get $1 - call $~lib/rt/itcms/Object#makeGray + i32.const 0 + i32.const 1216 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end - end - end - ) - (func $start:issues/1699 - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - memory.size - i32.const 16 - i32.shl - i32.const 34508 - 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 28 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1740 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.const 28 - memory.fill - 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 1740 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i64.const 0 - i64.store offset=8 - local.get $2 - i32.const 16 - i32.const 5 - 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 - 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 + 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 $issues/1699/MultiAssignmentTest#constructor (result i32) + (local $0 i32) + (local $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 - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=8 + i32.const 1740 + i32.lt_s + 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 offset=12 + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - i32.const 32 - i32.const 1 + i32.const 4 + i32.const 4 call $~lib/rt/itcms/__new - 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 $3 - i32.store offset=12 - local.get $2 - local.get $3 + local.tee $0 i32.store - local.get $2 - 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 $3 - i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 32 - i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 - local.get $2 - i32.const 3 - i32.store offset=12 global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add + i32.const 4 + i32.sub global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $2 - i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=20 - local.get $1 - local.get $2 - i32.store offset=12 - call $issues/1699/MultiAssignmentTest#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 - local.get $2 - i32.const 1 - local.get $1 - call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 - local.get $2 - i32.const 1 - call $~lib/array/Array#__get - local.set $1 + i32.const 1740 + i32.lt_s + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $2 i32.const 0 - local.get $1 - call $~lib/array/Array#__set - loop $for-loop|0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $2 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1740 - i32.lt_s - br_if $folding-inner1 + i32.store + local.get $0 + i32.eqz + if global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $0 i32.store - local.get $1 - local.get $2 - i32.store - local.get $2 - i32.load offset=12 - local.set $3 - local.get $1 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $3 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - call $issues/1699/MultiAssignmentTest#constructor - local.tee $1 - i32.store offset=24 - local.get $0 + 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 + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + i32.const 34528 + i32.const 34576 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~start + call $start:issues/1699 + ) + (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 - i32.gt_s + 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 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer + local.get $0 + global.set $~lib/rt/itcms/iter local.get $1 - i32.store offset=8 - local.get $2 local.get $0 - local.get $1 - call $~lib/array/Array#__set + 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 34508 + 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 - local.get $0 - i32.const 1 - i32.add + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and 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 - i32.const 0 - call $~lib/array/Array#__get - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - call $~lib/array/Array#__get - local.get $0 - i32.ne - if - i32.const 0 - i32.const 1680 - i32.const 15 - 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 2 - call $~lib/array/Array#__get - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - call $~lib/array/Array#__get - local.get $0 - i32.eq - if - i32.const 0 - i32.const 1680 - i32.const 16 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 28 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 34528 - i32.const 34576 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/rt/__visit_members (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - block $invalid - block $~lib/array/Array - block $issues/1699/MultiAssignmentTest - 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 $issues/1699/MultiAssignmentTest $~lib/array/Array $invalid - end - return + 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 - return + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 end - return 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 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - return + 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/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1740 - i32.lt_s + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne if - i32.const 34528 - i32.const 34576 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $1 - local.get $2 - 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 $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 - local.get $2 + 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 34508 i32.lt_u if - local.get $1 + 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 - local.tee $3 + 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 34508 + i32.ge_u if - local.get $3 - call $~lib/rt/itcms/__visit + 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 - local.get $1 - i32.const 4 - i32.add - local.set $1 - br $while-continue|0 end + i32.const 10 + return 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 + 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 - unreachable - ) - (func $~start - call $start:issues/1699 + i32.const 0 ) - (func $issues/1699/MultiAssignmentTest#constructor (result i32) + (func $start:issues/1699 (local $0 i32) (local $1 i32) (local $2 i32) + memory.size + i32.const 16 + i32.shl + i32.const 34508 + 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.const 28 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 + block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 1740 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 28 + memory.fill + global.get $~lib/memory/__stack_pointer + 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 1740 + i32.lt_s + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 - i32.const 4 - i32.const 4 + 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 $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 1740 - i32.lt_s - br_if $folding-inner0 + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.get $0 + i32.store offset=4 + local.get $0 i32.const 0 - i32.store + i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.eqz - if - local.get $2 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end + i32.store offset=4 + local.get $0 + i32.const 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 + i32.const 32 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=12 local.get $0 + local.get $2 i32.store + local.get $0 + local.get $2 + i32.const 0 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - i32.const 2 - i32.store + local.get $2 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 32 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $0 - return - end - i32.const 34528 - i32.const 34576 - 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) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 + i32.store global.get $~lib/memory/__stack_pointer - i32.const 1740 - i32.lt_s - br_if $folding-inner0 + local.get $0 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $3 local.get $0 - i32.store - local.get $1 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=12 - i32.ge_u - if - local.get $1 - i32.const 0 - i32.lt_s - if - i32.const 1344 - i32.const 1104 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 1 - i32.add - local.tee $6 - local.set $3 + i32.store offset=12 + call $issues/1699/MultiAssignmentTest#constructor + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=16 + local.get $0 + i32.const 1 + local.get $2 + call $~lib/array/Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + i32.const 1 + call $~lib/array/Array#__get + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $0 + i32.const 0 + local.get $2 + call $~lib/array/Array#__set + loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2125,144 +2209,98 @@ global.get $~lib/memory/__stack_pointer i32.const 1740 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 i32.const 0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $0 - i32.load offset=8 - local.tee $4 - i32.const 2 - i32.shr_u - i32.gt_u + i32.load offset=12 + 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 + i32.lt_s if - local.get $3 - i32.const 268435455 - i32.gt_u - if - i32.const 1056 - i32.const 1104 - 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$145 - i32.const 1073741820 - local.get $4 - i32.const 1 - i32.shl - local.tee $4 - local.get $4 - i32.const 1073741820 - i32.ge_u - select - local.tee $4 - i32.const 8 - local.get $3 - local.get $3 - 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 $5 - local.get $0 - i32.load - local.tee $4 - i32.const 20 - i32.sub - local.tee $7 - i32.load - i32.const -4 - i32.and - i32.const 16 - i32.sub - i32.le_u - if - local.get $7 - local.get $5 - i32.store offset=16 - local.get $4 - local.set $3 - br $__inlined_func$~lib/rt/itcms/__renew$145 - end - local.get $5 - local.get $7 - i32.load offset=12 - call $~lib/rt/itcms/__new - local.tee $3 - local.get $4 - local.get $5 - local.get $7 - i32.load offset=16 - local.tee $7 - local.get $5 - local.get $7 - i32.lt_u - select - memory.copy - end - local.get $3 - local.get $4 - i32.ne + call $issues/1699/MultiAssignmentTest#constructor + local.tee $2 + i32.store offset=24 + local.get $1 + i32.const 1 + i32.gt_s if + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $3 - i32.store - local.get $0 - local.get $3 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 local.get $0 - local.get $3 - i32.const 0 - call $~lib/rt/itcms/__link + local.get $1 + local.get $2 + call $~lib/array/Array#__set end - local.get $0 - local.get $5 - i32.store offset=8 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 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 $6 - i32.store offset=12 end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=4 local.get $0 - i32.load offset=4 + i32.const 0 + call $~lib/array/Array#__get + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + call $~lib/array/Array#__get local.get $1 + i32.ne + if + i32.const 0 + i32.const 1680 + i32.const 15 + 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 2 - i32.shl - i32.add - local.get $2 - i32.store + call $~lib/array/Array#__get + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 local.get $0 - local.get $2 i32.const 1 - call $~lib/rt/itcms/__link + call $~lib/array/Array#__get + local.get $1 + i32.eq + if + i32.const 0 + i32.const 1680 + i32.const 16 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 28 i32.add global.set $~lib/memory/__stack_pointer return @@ -2274,70 +2312,4 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/array/Array#__get (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 1740 - i32.lt_s - if - i32.const 34528 - i32.const 34576 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1344 - i32.const 1104 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store - local.get $2 - 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 1552 - i32.const 1104 - 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 - ) ) diff --git a/tests/compiler/issues/1714.debug.wat b/tests/compiler/issues/1714.debug.wat index 7ccfdfbbfa..a99a595629 100644 --- a/tests/compiler/issues/1714.debug.wat +++ b/tests/compiler/issues/1714.debug.wat @@ -20,28 +20,28 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $issues/1714/a_i64_i32 (result i32) + (func $"issues/1714/a_i64_i32" (result i32) i32.const 8 i32.const 4 i32.eq return ) - (func $issues/1714/foo (result i32) - call $issues/1714/a_i64_i32 + (func $"issues/1714/foo" (result i32) + call $"issues/1714/a_i64_i32" i32.const 1 i32.eq return ) - (func $issues/1714/bar (result i32) + (func $"issues/1714/bar" (result i32) i32.const 0 drop i32.const 80 return ) - (func $issues/1714/bar (result i32) + (func $"issues/1714/bar" (result i32) i32.const 1 drop - call $issues/1714/bar + call $"issues/1714/bar" return ) (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) @@ -276,14 +276,14 @@ (func $start:issues/1714 (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 - call $issues/1714/foo + i32.const 0 + i32.store + call $"issues/1714/foo" i32.const 0 i32.eq i32.eqz @@ -295,18 +295,13 @@ call $~lib/builtins/abort unreachable end - call $issues/1714/bar + call $"issues/1714/bar" local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.const 80 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -318,7 +313,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/issues/1714.release.wat b/tests/compiler/issues/1714.release.wat index dffa79b61a..7645fdba1b 100644 --- a/tests/compiler/issues/1714.release.wat +++ b/tests/compiler/issues/1714.release.wat @@ -1,6 +1,6 @@ (module - (type $0 (func (param i32 i32 i32 i32))) - (type $1 (func)) + (type $0 (func)) + (type $1 (func (param i32 i32 i32 i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33884)) (memory $0 1) @@ -11,9 +11,8 @@ (export "memory" (memory $0)) (start $~start) (func $~start - (local $0 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -22,16 +21,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 1104 + i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1104 - i32.store offset=4 - local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -40,15 +35,14 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + 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.const 4 i32.add global.set $~lib/memory/__stack_pointer return diff --git a/tests/compiler/issues/2166.debug.wat b/tests/compiler/issues/2166.debug.wat index 6d3ac1a299..0d98c3c656 100644 --- a/tests/compiler/issues/2166.debug.wat +++ b/tests/compiler/issues/2166.debug.wat @@ -1627,14 +1627,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 @@ -2365,6 +2368,46 @@ i32.const 0 return ) + (func $issues/2166/Test2166Ref1<~lib/string/String>#fn (param $this i32) (param $a1 i32) (param $a2 i32) + i32.const 464 + i32.const 464 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 496 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + i32.const 544 + i32.const 544 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 496 + i32.const 10 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + ) + (func $issues/2166/Test2166Ref2#bar<~lib/string/String> (param $this i32) (param $i i32) + i32.const 464 + i32.const 464 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 496 + i32.const 22 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) i32.const 224 @@ -2381,12 +2424,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -2571,70 +2610,11 @@ local.get $3 return ) - (func $issues/2166/Test2166Ref1<~lib/string/String>#fn (param $this i32) (param $a1 i32) (param $a2 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 - i32.const 464 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - i32.const 464 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 9 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - i32.const 544 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - i32.const 544 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 10 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) (func $issues/2166/testfunc2166 (local $a 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 @@ -2643,9 +2623,6 @@ 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 $issues/2166/Test2166Ref1<~lib/string/String>#constructor local.tee $a i32.store @@ -2656,104 +2633,9 @@ i32.store offset=4 local.get $1 i32.const 432 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 i32.const 1 call $issues/2166/Test2166Ref1<~lib/string/String>#fn global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $issues/2166/Test2166Ref2#constructor (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end - i32.const 544 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 544 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 18 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $issues/2166/Test2166Ref2#bar<~lib/string/String> (param $this i32) (param $i 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 464 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - i32.const 464 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 22 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -2761,13 +2643,13 @@ (func $start:issues/2166 (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 + i32.const 0 + i32.store memory.size i32.const 16 i32.shl @@ -2794,14 +2676,9 @@ i32.store local.get $0 i32.const 576 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $issues/2166/Test2166Ref2#bar<~lib/string/String> global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) @@ -2833,4 +2710,44 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) + (func $issues/2166/Test2166Ref2#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 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + i32.const 544 + i32.const 544 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 496 + i32.const 18 + i32.const 5 + call $~lib/builtins/abort + unreachable + 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 + ) ) diff --git a/tests/compiler/issues/2166.release.wat b/tests/compiler/issues/2166.release.wat index 71c0dc2f57..fa61a80944 100644 --- a/tests/compiler/issues/2166.release.wat +++ b/tests/compiler/issues/2166.release.wat @@ -4,9 +4,9 @@ (type $2 (func (param i32 i32))) (type $3 (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) (result i32))) + (type $5 (func (param i32 i32) (result i32))) + (type $6 (func (param i32 i32 i64))) + (type $7 (func (result i32))) (import "env" "abort" (func $~lib/builtins/abort (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)) @@ -43,50 +43,167 @@ (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/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1248 - 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 + (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 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 + 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 - if - local.get $0 - i32.load offset=4 - i32.const 3 + 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 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 + local.get $1 + i32.const 7 i32.and - local.set $0 - br $while-continue|0 + i32.or + else + i32.const 1 + end + i32.eqz + if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $0 + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + block $__inlined_func$~lib/util/string/compareImpl$79 + loop $while-continue|1 + local.get $0 + local.tee $3 + i32.const 1 + i32.sub + local.set $0 + local.get $3 + if + local.get $2 + i32.load16_u + local.tee $5 + local.get $1 + i32.load16_u + local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 + i32.ne + br_if $__inlined_func$~lib/util/string/compareImpl$79 + local.get $2 + i32.const 2 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end + end + i32.const 0 + local.set $3 end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.eqz + return end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 ) (func $~lib/rt/itcms/__visit (param $0 i32) (local $1 i32) @@ -126,7 +243,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$123 + block $__inlined_func$~lib/rt/itcms/Object#unlink$122 local.get $1 i32.load offset=4 i32.const -4 @@ -150,7 +267,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$123 + br $__inlined_func$~lib/rt/itcms/Object#unlink$122 end local.get $1 i32.load offset=8 @@ -632,158 +749,362 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (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 $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 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u 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 + block $__inlined_func$~lib/rt/itcms/interrupt$69 + i32.const 2048 local.set $1 - end - else - local.get $0 - i32.const 1572 - i32.add - local.get $1 - i32.gt_u - if + 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.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if + i32.const 4 + local.get $2 + i32.load offset=1568 + memory.size + local.tee $1 + 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.set $3 + local.get $1 + local.get $3 + local.get $1 + 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 $2 + 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 $2 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if i32.const 0 i32.const 1392 - i32.const 402 - i32.const 5 + i32.const 499 + i32.const 16 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.load + i32.const -4 + i32.and + i32.const 28 i32.lt_u if - return + i32.const 0 + i32.const 1392 + i32.const 501 + i32.const 14 + call $~lib/builtins/abort + unreachable end + local.get $2 local.get $1 - local.get $4 - i32.const 2 + call $~lib/rt/tlsf/removeBlock + local.get $1 + i32.load + local.tee $3 + i32.const -4 i32.and - local.get $3 - i32.const 8 + i32.const 28 i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store + local.tee $4 + i32.const 16 + i32.ge_u + if + local.get $1 + local.get $3 + i32.const 2 + i32.and + i32.const 28 + i32.or + i32.store + local.get $1 + i32.const 32 + i32.add + local.tee $3 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $2 + local.get $3 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + 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 + 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 $0 + i32.load offset=8 + local.set $2 + local.get $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.or i32.store offset=4 local.get $1 - i32.const 0 + 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 + local.get $0 + 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 - 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 + global.set $~lib/rt/itcms/total 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 34432 + i32.const 20 + i32.add + local.tee $0 i32.const 0 - i32.store - i32.const 36000 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 34432 - i32.add - i32.const 0 - i32.store offset=4 + memory.fill + local.get $0 + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $issues/2166/Test2166Ref2 + block $issues/2166/Test2166Ref1<~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 $issues/2166/Test2166Ref1<~lib/string/String> $issues/2166/Test2166Ref2 $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 + ) + (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 $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $1 + 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 $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 + i32.const 0 + end + end + ) + (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 34432 + i32.const 0 + i32.store + i32.const 36000 + 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 34432 + i32.add + i32.const 0 + i32.store offset=4 i32.const 0 local.set $1 loop $for-loop|1 @@ -826,602 +1147,171 @@ i32.const 34432 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 + (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 - 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 + end + else + local.get $0 + i32.const 1572 + i32.add + local.get $1 + i32.gt_u + if 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 34428 - 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 + i32.const 1392 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + 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/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1248 + 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 - 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.const 3 i32.ne if i32.const 0 i32.const 1120 - i32.const 229 - i32.const 20 + i32.const 160 + i32.const 16 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 34428 - 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 34428 - 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.set $1 - 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 $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return + 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 - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (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 $2 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $1 - 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 $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 - 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) - 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 - local.tee $1 - local.get $1 - 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 $2 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - memory.size - 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.const 65563 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $3 - local.get $1 - 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 $2 - 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 $2 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 28 - i32.lt_u - if - i32.const 0 - i32.const 1392 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.tee $3 - i32.const -4 - i32.and - i32.const 28 - i32.sub - local.tee $4 - i32.const 16 - i32.ge_u - if - local.get $1 - local.get $3 - i32.const 2 - i32.and - i32.const 28 - i32.or - i32.store - local.get $1 - i32.const 32 - i32.add - local.tee $3 - local.get $4 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $2 - local.get $3 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $3 - 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 - 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 $0 - i32.load offset=8 - 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 - 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 - local.get $0 - 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 $0 - i32.const 0 - i32.const 0 - memory.fill - local.get $0 - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $issues/2166/Test2166Ref2 - block $issues/2166/Test2166Ref1<~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 $issues/2166/Test2166Ref1<~lib/string/String> $issues/2166/Test2166Ref2 $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - return - end - return - end - return - end - unreachable ) (func $~start (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -1430,9 +1320,8 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store + i32.const 0 + i32.store memory.size i32.const 16 i32.shl @@ -1465,8 +1354,8 @@ i32.store i32.const 1344 global.set $~lib/rt/itcms/fromSpace - local.get $0 - i32.const 12 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -1474,13 +1363,10 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -1489,19 +1375,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1510,13 +1395,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 call $~lib/rt/itcms/__new local.tee $0 @@ -1526,40 +1410,17 @@ i32.const 4 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 - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1456 - 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 1660 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 1488 - i32.store - local.get $0 - i32.const 1488 - i32.store offset=4 i32.const 1488 i32.const 1488 call $~lib/string/String.__eq @@ -1572,13 +1433,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1568 - i32.store - local.get $0 - i32.const 1568 - i32.store offset=4 i32.const 1568 i32.const 1568 call $~lib/string/String.__eq @@ -1596,11 +1450,7 @@ i32.add global.set $~lib/memory/__stack_pointer 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 12 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -1608,24 +1458,13 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 i32.const 0 - i32.store offset=8 - local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/rt/itcms/__new local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 1568 - i32.store offset=4 - local.get $1 - i32.const 1568 - i32.store offset=8 i32.const 1568 i32.const 1568 call $~lib/string/String.__eq @@ -1639,33 +1478,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1600 - i32.store offset=4 - global.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 - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 1488 - i32.store - local.get $0 - i32.const 1488 - i32.store offset=4 i32.const 1488 i32.const 1488 call $~lib/string/String.__eq @@ -1679,11 +1497,7 @@ 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.const 4 i32.add global.set $~lib/memory/__stack_pointer return @@ -1695,169 +1509,264 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/string/String.__eq (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 $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 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 - local.tee $2 - i64.const 0 - i64.store - local.get $0 - local.get $1 - i32.eq - if - local.get $2 - 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.tee $4 - local.tee $2 - 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 - local.get $2 - 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 - local.get $4 - local.get $0 - i32.store - local.get $0 - local.set $2 - local.get $4 - 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 - i32.and - local.get $1 - i32.const 7 + 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 - i32.or - else - i32.const 1 - end - i32.eqz - if - loop $do-loop|0 - local.get $2 - i64.load - local.get $1 - i64.load - i64.eq + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne if - local.get $2 - i32.const 8 - i32.add - local.set $2 + local.get $0 + global.set $~lib/rt/itcms/iter local.get $1 - i32.const 8 - i32.add - local.set $1 local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 + 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 34428 + 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 - block $__inlined_func$~lib/util/string/compareImpl$79 - loop $while-continue|1 + 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 34428 + i32.lt_u + if local.get $0 - local.tee $3 - i32.const 1 + 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 - local.set $0 - local.get $3 + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 4 + i32.add + local.tee $0 + i32.const 34428 + i32.ge_u if - local.get $2 - i32.load16_u - local.tee $5 - local.get $1 - i32.load16_u - local.tee $4 + 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 $3 - local.get $4 - local.get $5 - i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$79 - local.get $2 - i32.const 2 - i32.add local.set $2 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 + 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 0 - local.set $3 + i32.const 10 + return end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - i32.eqz - return + 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 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer i32.const 0 ) ) diff --git a/tests/compiler/issues/2322/index.debug.wat b/tests/compiler/issues/2322/index.debug.wat index 63522c906a..3799f01a97 100644 --- a/tests/compiler/issues/2322/index.debug.wat +++ b/tests/compiler/issues/2322/index.debug.wat @@ -1621,14 +1621,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 @@ -2265,12 +2268,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/issues/2322/index.release.wat b/tests/compiler/issues/2322/index.release.wat index 115d5e9f2e..cf2df6b497 100644 --- a/tests/compiler/issues/2322/index.release.wat +++ b/tests/compiler/issues/2322/index.release.wat @@ -33,51 +33,6 @@ (export "test" (func $issues/2322/index/test)) (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 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/__visit (param $0 i32) (local $1 i32) (local $2 i32) @@ -622,151 +577,193 @@ 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 + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $issues/2322/lib/Wrapper + 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 $issues/2322/lib/Wrapper $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + return end + unreachable + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) 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 + i32.const 256 + i32.lt_u if - local.get $3 + local.get $1 i32.const 4 - i32.add + i32.shr_u + local.set $1 + else local.get $1 - i32.gt_u + i32.const 536870910 + i32.lt_u if - i32.const 0 - i32.const 1392 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable + 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 $3 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.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 + local.set $2 end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and local.get $1 - i32.sub - local.tee $3 - i32.const 20 + 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 1392 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable end - local.get $1 - local.get $4 + local.get $0 + local.get $2 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.shl i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 - local.get $0 + i32.load offset=4 + i32.const -1 local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size + i32.shl + i32.and local.tee $1 - i32.const 0 - i32.le_s if (result i32) - i32.const 1 + local.get $0 local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s + i32.ctz + local.get $2 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 else - i32.const 0 - end - if - unreachable - end - i32.const 34240 - i32.const 0 - i32.store - i32.const 35808 - i32.const 0 - i32.store - loop $for-loop|0 local.get $0 - i32.const 23 - i32.lt_u - if + 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/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 34240 + i32.const 0 + i32.store + i32.const 35808 + 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 @@ -816,394 +813,162 @@ i32.const 34240 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 34232 - 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 34232 - 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 34232 - 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.set $1 - 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 $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 + (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 - global.set $~lib/rt/itcms/state + i32.const 1392 + i32.const 382 + i32.const 14 + call $~lib/builtins/abort + unreachable 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 + 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 $1 + local.get $3 i32.const 4 - i32.shr_u - local.set $1 - else + i32.add local.get $1 - i32.const 536870910 - i32.lt_u + i32.gt_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 + 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 - 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 + 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 $1 - i32.const 16 - i32.lt_u local.get $2 - i32.const 23 - i32.lt_u + i32.wrap_i64 + i32.const -16 i32.and - i32.eqz + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u if - i32.const 0 - i32.const 1392 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable + return end - local.get $0 - local.get $2 + local.get $1 + local.get $4 i32.const 2 - i32.shl + 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 - i32.load offset=4 - i32.const -1 + 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 - i32.shl - i32.and + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1248 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace local.tee $1 - if (result i32) + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|0 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) + i32.ne + if 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 + i32.const 3 + i32.and + i32.const 3 + i32.ne if i32.const 0 - i32.const 1392 - i32.const 347 - i32.const 18 + i32.const 1120 + i32.const 160 + i32.const 16 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.const 20 i32.add - i32.load offset=96 - else - i32.const 0 + 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 ) @@ -1240,12 +1005,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 @@ -1257,8 +1018,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1310,8 +1070,6 @@ local.tee $2 i32.eqz if - memory.size - local.tee $2 local.get $5 i32.const 256 i32.ge_u @@ -1339,7 +1097,8 @@ i32.const 4 local.get $4 i32.load offset=1568 - local.get $2 + memory.size + local.tee $2 i32.const 16 i32.shl i32.const 4 @@ -1353,7 +1112,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.set $3 + local.get $2 + local.get $3 local.get $2 local.get $3 i32.gt_s @@ -1525,76 +1286,303 @@ memory.fill local.get $1 ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $issues/2322/lib/Wrapper - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object + (func $~start + memory.size + i32.const 16 + i32.shl + i32.const 34232 + 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 + ) + (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 34232 + 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 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $issues/2322/lib/Wrapper $invalid + 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 - return + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 end - return end - return + 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 - local.tee $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 34232 + i32.lt_u if local.get $0 - call $~lib/rt/itcms/__visit + 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 34232 + 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 - return + 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 - unreachable - ) - (func $~start - memory.size - i32.const 16 - i32.shl - i32.const 34232 - 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 + i32.const 0 ) (func $issues/2322/index/test (local $0 i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1605,10 +1593,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -1617,20 +1604,19 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1639,13 +1625,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 call $~lib/rt/itcms/__new @@ -1656,7 +1641,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/issues/2622.debug.wat b/tests/compiler/issues/2622.debug.wat index 134f40c571..6514ce97bf 100644 --- a/tests/compiler/issues/2622.debug.wat +++ b/tests/compiler/issues/2622.debug.wat @@ -1624,14 +1624,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 @@ -2335,12 +2338,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/issues/2622.release.wat b/tests/compiler/issues/2622.release.wat index 87a0afac0f..2cb8d68623 100644 --- a/tests/compiler/issues/2622.release.wat +++ b/tests/compiler/issues/2622.release.wat @@ -1,6 +1,6 @@ (module - (type $0 (func)) - (type $1 (func (param i32) (result i32))) + (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 i32 i32))) @@ -36,87 +36,6 @@ (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/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - global.get $issues/2622/a - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $issues/2622/b - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 1248 - call $~lib/rt/itcms/__visit - i32.const 1056 - call $~lib/rt/itcms/__visit - global.get $issues/2622/_a/t1 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $issues/2622/_a/t1 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $issues/2622/_b/t2 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $issues/2622/_b/t2 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - 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/__visit (param $0 i32) (local $1 i32) (local $2 i32) @@ -661,119 +580,323 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (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 $2 - local.get $1 - i64.extend_i32_u - i64.lt_u + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - i32.const 0 - i32.const 1392 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable + 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 - 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 + global.get $~lib/rt/tlsf/ROOT + i32.eqz if - local.get $3 + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if + i32.const 4 + local.get $2 + i32.load offset=1568 + memory.size + local.tee $1 + 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.set $3 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 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s if local.get $3 - i32.load - local.set $4 - local.get $5 - local.set $1 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end end - else - local.get $0 - i32.const 1572 - i32.add + local.get $2 local.get $1 - i32.gt_u + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz if i32.const 0 i32.const 1392 - i32.const 402 - i32.const 5 + i32.const 499 + i32.const 16 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.load + i32.const -4 + i32.and + i32.const 28 i32.lt_u if - return + i32.const 0 + i32.const 1392 + i32.const 501 + i32.const 14 + call $~lib/builtins/abort + unreachable end + local.get $2 local.get $1 - local.get $4 - i32.const 2 + call $~lib/rt/tlsf/removeBlock + local.get $1 + i32.load + local.tee $3 + i32.const -4 i32.and - local.get $3 - i32.const 8 + i32.const 28 i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store + local.tee $4 + i32.const 16 + i32.ge_u + if + local.get $1 + local.get $3 + i32.const 2 + i32.and + i32.const 28 + i32.or + i32.store + local.get $1 + i32.const 32 + i32.add + local.tee $3 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $2 + local.get $3 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + 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 + 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 $0 + i32.load offset=8 + local.set $2 + local.get $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.or i32.store offset=4 local.get $1 - i32.const 0 + 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 + local.get $0 + 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 - local.get $3 i32.add - local.tee $3 - i32.const 2 - i32.store + global.set $~lib/rt/itcms/total + local.get $1 + i32.const 20 + i32.add + local.tee $0 + i32.const 0 + i32.const 0 + memory.fill local.get $0 - local.get $3 - i32.store offset=1568 + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $issues/2622/_b/T2 + block $issues/2622/_a/T1 + 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 $issues/2622/_a/T1 $issues/2622/_b/T2 $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 + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock + 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 $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $1 + 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 $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 + i32.const 0 + end + end ) (func $~lib/rt/tlsf/initialize (local $0 i32) @@ -855,605 +978,244 @@ i32.const 34240 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 + (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 - 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 + end + else + local.get $0 + i32.const 1572 + i32.add + local.get $1 + i32.gt_u + if 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 34236 - 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 + i32.const 1392 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + 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/itcms/visitRoots + (local $0 i32) + (local $1 i32) + global.get $issues/2622/a + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $issues/2622/b + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 1248 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + global.get $issues/2622/_a/t1 + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $issues/2622/_a/t1 + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $issues/2622/_b/t2 + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $issues/2622/_b/t2 + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + 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 - 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.const 3 i32.ne if i32.const 0 i32.const 1120 - i32.const 229 - i32.const 20 + i32.const 160 + i32.const 16 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 34236 - 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 34236 - 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.set $1 - 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 $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (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 $2 - i32.const 2 - i32.shl + i32.const 20 i32.add - i32.load offset=4 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end + call $~lib/rt/__visit_members 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 - i32.const 0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|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) - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.ge_u + (func $~lib/object/Object#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 1468 + i32.lt_s 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 - local.tee $1 - local.get $1 - 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 + i32.const 34256 + i32.const 34304 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/tlsf/ROOT + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 i32.eqz if - call $~lib/rt/tlsf/initialize + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store end - global.get $~lib/rt/tlsf/ROOT - local.tee $2 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~start + (local $0 i32) + block $__inlined_func$start:issues/2622$1 memory.size - 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.const 34236 i32.sub - i32.ne - i32.shl - i32.const 65563 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $3 - local.get $1 - 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 $2 - 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 $2 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 28 - i32.lt_u - if - i32.const 0 - i32.const 1392 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.tee $3 - i32.const -4 - i32.and - i32.const 28 - i32.sub - local.tee $4 - i32.const 16 - i32.ge_u - if - local.get $1 - local.get $3 - i32.const 2 - i32.and - i32.const 28 - i32.or - i32.store - local.get $1 - i32.const 32 - i32.add - local.tee $3 - local.get $4 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $2 - local.get $3 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $3 - 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 - 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 $0 - i32.load offset=8 - 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 - 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 - local.get $0 - 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 $0 - i32.const 0 - i32.const 0 - memory.fill - local.get $0 - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $issues/2622/_b/T2 - block $issues/2622/_a/T1 - 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 $issues/2622/_a/T1 $issues/2622/_b/T2 $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - return - end - return - end - return - end - unreachable - ) - (func $~start - (local $0 i32) - (local $1 i32) - block $__inlined_func$start:issues/2622$1 - memory.size - i32.const 16 - i32.shl - i32.const 34236 - i32.sub - i32.const 1 + i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold i32.const 1172 @@ -1490,19 +1252,17 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -1524,19 +1284,17 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -1559,40 +1317,264 @@ unreachable end ) - (func $~lib/object/Object#constructor (param $0 i32) (result i32) + (func $~lib/rt/itcms/step (result i32) + (local $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 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 - local.tee $1 - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__new + (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 34236 + 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 - i32.store + 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 34236 + 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 34236 + 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 ) ) diff --git a/tests/compiler/issues/2707.debug.wat b/tests/compiler/issues/2707.debug.wat new file mode 100644 index 0000000000..388b0f0f43 --- /dev/null +++ b/tests/compiler/issues/2707.debug.wat @@ -0,0 +1,2596 @@ +(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 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 (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/rt/itcms/total (mut 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 $~argumentsLength (mut i32) (i32.const 0)) + (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) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00(\00\00\00A\00l\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)) + (start $~start) + (func $start:issues/2707~anonymous|0 (param $args i32) (result i32) + i32.const 1 + 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 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 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 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 + 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 448 + 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 448 + 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 448 + 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 448 + 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 448 + 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 448 + 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 448 + 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 448 + 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 448 + 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 448 + 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 448 + 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 448 + 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 448 + 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 176 + 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 112 + i32.const 448 + 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 448 + 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 448 + 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 448 + 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 448 + 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 448 + 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 112 + i32.const 176 + i32.const 261 + i32.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/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 + end + local.get $buffer + 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 176 + 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/rt/__visit_globals (param $0 i32) + (local $1 i32) + i32.const 304 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 112 + 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/function/Function<%28~lib/array/Array%29=>i32>#get:_env (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/function/Function<%28~lib/array/Array%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~lib/array/Array%29=>i32>#__visit + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $~lib/function/Function<%28~lib/array/Array%29=>i32> + 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/function/Function<%28~lib/array/Array%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/function/Function<%28~lib/array/Array%29=>i32>~visit + return + end + unreachable + ) + (func $~start + call $start:issues/2707 + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 33312 + i32.const 33360 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $start:issues/2707 + (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 + call $~stack_check + 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 224 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 256 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 400 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + global.get $issues/2707/func + local.tee $1 + i32.store + i32.const 4 + i32.const 2 + i32.const 4 + i32.const 64 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect (type $0) + drop + global.get $~lib/memory/__stack_pointer + i32.const 8 + 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/function/Function<%28~lib/array/Array%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~lib/array/Array%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/rt/__newArray (param $length i32) (param $alignLog2 i32) (param $id i32) (param $data i32) (result i32) + (local $bufferSize i32) + (local $buffer i32) + (local $array 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 $length + local.get $alignLog2 + i32.shl + local.set $bufferSize + global.get $~lib/memory/__stack_pointer + local.get $bufferSize + i32.const 1 + local.get $data + call $~lib/rt/__newBuffer + local.tee $buffer + i32.store + i32.const 16 + local.get $id + call $~lib/rt/itcms/__new + local.set $array + local.get $array + local.get $buffer + i32.store + local.get $array + local.get $buffer + i32.const 0 + call $~lib/rt/itcms/__link + local.get $array + local.get $buffer + i32.store offset=4 + local.get $array + local.get $bufferSize + i32.store offset=8 + local.get $array + local.get $length + i32.store offset=12 + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + return + ) +) diff --git a/tests/compiler/issues/2707.json b/tests/compiler/issues/2707.json index 5d2bf93db3..1bdd02b1be 100644 --- a/tests/compiler/issues/2707.json +++ b/tests/compiler/issues/2707.json @@ -1,7 +1,4 @@ { - "asc_flags": [], - "stderr": [ - "AS100: Not implemented: Rest parameters", - "func(1, 2, 3, 4);" + "asc_flags": [ ] } diff --git a/tests/compiler/issues/2707.release.wat b/tests/compiler/issues/2707.release.wat new file mode 100644 index 0000000000..ad235b50e2 --- /dev/null +++ b/tests/compiler/issues/2707.release.wat @@ -0,0 +1,1622 @@ +(module + (type $0 (func (param i32) (result i32))) + (type $1 (func (param i32))) + (type $2 (func)) + (type $3 (func (param i32 i32))) + (type $4 (func (param i32 i32 i32 i32))) + (type $5 (func (param i32 i32 i64))) + (type $6 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (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 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) "<") + (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)) + (start $~start) + (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 1472 + 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 1472 + 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 1472 + 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 1472 + 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 1472 + 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 1472 + 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 1472 + 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 1472 + 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 1472 + 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/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 1200 + 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$119 + 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 34316 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1200 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$119 + end + local.get $0 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1200 + 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 1520 + i32.load + i32.gt_u + if + i32.const 1328 + i32.const 1392 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1524 + 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/__visit_members (param $0 i32) + block $folding-inner0 + block $invalid + block $~lib/function/Function<%28~lib/array/Array%29=>i32> + 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/function/Function<%28~lib/array/Array%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 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 + 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 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 + 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 + end + i32.const 34336 + i32.const 34384 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (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 -4 + 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 1472 + 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/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 34320 + i32.const 0 + i32.store + i32.const 35888 + 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 34320 + 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 34320 + 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 34320 + i32.const 35892 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34320 + global.set $~lib/rt/tlsf/ROOT + ) + (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 1472 + 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 1472 + 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 1472 + 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/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1328 + call $~lib/rt/itcms/__visit + i32.const 1136 + 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 1200 + 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/__new (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 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 $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.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if + i32.const 4 + local.get $2 + i32.load offset=1568 + memory.size + local.tee $1 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.const 65579 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.set $3 + local.get $1 + local.get $3 + local.get $1 + 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 $2 + 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 $2 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1472 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + local.get $1 + i32.load + i32.const -4 + i32.and + i32.const 44 + i32.lt_u + if + i32.const 0 + i32.const 1472 + i32.const 501 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $1 + call $~lib/rt/tlsf/removeBlock + local.get $1 + i32.load + local.tee $3 + i32.const -4 + i32.and + i32.const 44 + i32.sub + local.tee $4 + i32.const 16 + i32.ge_u + if + local.get $1 + local.get $3 + i32.const 2 + i32.and + i32.const 44 + i32.or + i32.store + local.get $1 + i32.const 48 + i32.add + local.tee $3 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $2 + local.get $3 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + 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 + 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 $0 + i32.load offset=8 + 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 + 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 + local.get $0 + 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 $0 + i64.const 0 + i64.store align=1 + local.get $0 + i64.const 0 + i64.store offset=8 align=1 + local.get $0 + ) + (func $~start + (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 1548 + 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 34316 + 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 1056 + 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 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 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.const 1088 + i32.const 16 + memory.copy + local.get $0 + i32.store + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $2 + local.get $0 + i32.store + local.get $0 + if + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 1200 + i32.const 295 + 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 $3 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $2 + i32.const 20 + i32.sub + i32.load offset=4 + i32.const 3 + i32.and + local.tee $1 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $3 + call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + local.get $1 + i32.const 3 + i32.eq + i32.and + if + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + end + end + end + local.get $2 + local.get $0 + i32.store offset=4 + local.get $2 + i32.const 16 + i32.store offset=8 + local.get $2 + i32.const 4 + i32.store offset=12 + 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 $2 + i32.store offset=4 + local.get $2 + i32.const 1056 + i32.load + call_indirect (type $0) + drop + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34336 + i32.const 34384 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (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 34316 + 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 1200 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34316 + 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 34316 + 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 1472 + 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 $start:issues/2707~anonymous|0 (param $0 i32) (result i32) + i32.const 1 + ) +) diff --git a/tests/compiler/issues/2825.debug.wat b/tests/compiler/issues/2825.debug.wat new file mode 100644 index 0000000000..4ecc4ddd57 --- /dev/null +++ b/tests/compiler/issues/2825.debug.wat @@ -0,0 +1,69 @@ +(module + (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 (param i32 i32 i32 i32))) + (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\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 $issues/2825/increment (param $x i32) (result i32) + local.get $x + i32.const 1234 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $x + i32.const 1 + i32.add + return + ) + (func $start:issues/2825 + (local $i i32) + (local $i|1 i32) + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + i32.const 10 + i32.lt_s + if + i32.const 1234 + local.set $i|1 + local.get $i + call $issues/2825/increment + local.set $i + br $for-loop|0 + end + end + ) + (func $issues/2825/init + (local $not_unassigned i32) + loop $for-loop|0 + i32.const 1 + if + i32.const 0 + local.set $not_unassigned + local.get $not_unassigned + drop + br $for-loop|0 + end + end + ) + (func $~start + call $start:issues/2825 + ) +) diff --git a/tests/compiler/issues/2825.json b/tests/compiler/issues/2825.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/tests/compiler/issues/2825.json @@ -0,0 +1 @@ +{} diff --git a/tests/compiler/issues/2825.release.wat b/tests/compiler/issues/2825.release.wat new file mode 100644 index 0000000000..a03d3b82f6 --- /dev/null +++ b/tests/compiler/issues/2825.release.wat @@ -0,0 +1,43 @@ +(module + (type $0 (func)) + (type $1 (func (param i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (memory $0 1) + (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 $~start + (local $0 i32) + loop $for-loop|0 + local.get $0 + i32.const 10 + i32.lt_s + if + local.get $0 + i32.const 1234 + i32.eq + if + i32.const 0 + i32.const 1056 + i32.const 2 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + ) + (func $issues/2825/init + loop $for-loop|0 + br $for-loop|0 + end + unreachable + ) +) diff --git a/tests/compiler/issues/2825.ts b/tests/compiler/issues/2825.ts new file mode 100644 index 0000000000..f563fd5bf7 --- /dev/null +++ b/tests/compiler/issues/2825.ts @@ -0,0 +1,15 @@ +function increment(x: i32): i32 { + assert(x !== 1234); + return x + 1; +} + +for (let i = 0; i < 10; i = increment(i)) { + let i = 1234; +} + +export function init(): void { + let not_unassigned: i32; + for (; ; not_unassigned) { + not_unassigned = 0; + } +} diff --git a/tests/compiler/issues/2873.debug.wat b/tests/compiler/issues/2873.debug.wat new file mode 100644 index 0000000000..15c9c5ddef --- /dev/null +++ b/tests/compiler/issues/2873.debug.wat @@ -0,0 +1,5287 @@ +(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) (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 i32 i32 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 (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)) + (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/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/shared/runtime/Runtime.Stub i32 (i32.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/fromSpace (mut i32) (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 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)) + (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") + (data $2 (i32.const 76) ",\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 $3 (i32.const 124) ",\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 $4 (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\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 $5 (i32.const 232) "\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 + 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) + (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/number/F64#toString (param $this f64) (param $radix i32) (result i32) + local.get $this + call $~lib/util/number/dtoa + 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/util/number/dtoa_buffered (param $buffer i32) (param $value f32) (result i32) + (local $buffer|2 i32) + (local $value|3 f64) + (local $isSingle i32) + (local $sign i32) + block $~lib/util/number/dtoa_buffered_impl|inlined.0 (result i32) + local.get $buffer + local.set $buffer|2 + local.get $value + f64.promote_f32 + local.set $value|3 + i32.const 1 + local.set $isSingle + local.get $value|3 + f64.const 0 + f64.eq + if + local.get $buffer|2 + i32.const 48 + i32.store16 + local.get $buffer|2 + i32.const 46 + i32.store16 offset=2 + local.get $buffer|2 + i32.const 48 + i32.store16 offset=4 + i32.const 3 + br $~lib/util/number/dtoa_buffered_impl|inlined.0 + end + local.get $value|3 + local.get $value|3 + f64.sub + f64.const 0 + f64.eq + i32.eqz + if + local.get $value|3 + local.get $value|3 + f64.ne + if + local.get $buffer|2 + i32.const 78 + i32.store16 + local.get $buffer|2 + i32.const 97 + i32.store16 offset=2 + local.get $buffer|2 + i32.const 78 + i32.store16 offset=4 + i32.const 3 + br $~lib/util/number/dtoa_buffered_impl|inlined.0 + else + local.get $value|3 + f64.const 0 + f64.lt + local.set $sign + local.get $sign + if + local.get $buffer|2 + i32.const 45 + i32.store16 + local.get $buffer|2 + i32.const 2 + i32.add + local.set $buffer|2 + end + local.get $buffer|2 + i64.const 29555310648492105 + i64.store + local.get $buffer|2 + i64.const 34058970405077102 + i64.store offset=8 + i32.const 8 + local.get $sign + i32.add + br $~lib/util/number/dtoa_buffered_impl|inlined.0 + end + unreachable + end + local.get $buffer|2 + local.get $value|3 + local.get $isSingle + call $~lib/util/number/dtoa_core + br $~lib/util/number/dtoa_buffered_impl|inlined.0 + end + 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/util/number/dtoa_buffered (param $buffer i32) (param $value f64) (result i32) + (local $buffer|2 i32) + (local $value|3 f64) + (local $isSingle i32) + (local $sign i32) + block $~lib/util/number/dtoa_buffered_impl|inlined.1 (result i32) + local.get $buffer + local.set $buffer|2 + local.get $value + local.set $value|3 + i32.const 0 + local.set $isSingle + local.get $value|3 + f64.const 0 + f64.eq + if + local.get $buffer|2 + i32.const 48 + i32.store16 + local.get $buffer|2 + i32.const 46 + i32.store16 offset=2 + local.get $buffer|2 + i32.const 48 + i32.store16 offset=4 + i32.const 3 + br $~lib/util/number/dtoa_buffered_impl|inlined.1 + end + local.get $value|3 + local.get $value|3 + f64.sub + f64.const 0 + f64.eq + i32.eqz + if + local.get $value|3 + local.get $value|3 + f64.ne + if + local.get $buffer|2 + i32.const 78 + i32.store16 + local.get $buffer|2 + i32.const 97 + i32.store16 offset=2 + local.get $buffer|2 + i32.const 78 + i32.store16 offset=4 + i32.const 3 + br $~lib/util/number/dtoa_buffered_impl|inlined.1 + else + local.get $value|3 + f64.const 0 + f64.lt + local.set $sign + local.get $sign + if + local.get $buffer|2 + i32.const 45 + i32.store16 + local.get $buffer|2 + i32.const 2 + i32.add + local.set $buffer|2 + end + local.get $buffer|2 + i64.const 29555310648492105 + i64.store + local.get $buffer|2 + i64.const 34058970405077102 + i64.store offset=8 + i32.const 8 + local.get $sign + i32.add + br $~lib/util/number/dtoa_buffered_impl|inlined.1 + end + unreachable + end + local.get $buffer|2 + local.get $value|3 + local.get $isSingle + call $~lib/util/number/dtoa_core + br $~lib/util/number/dtoa_buffered_impl|inlined.1 + end + return + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + global.get $issues/2873/f32arr + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $issues/2873/f64arr + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 1760 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 1568 + 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#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/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 $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~visit + return + end + unreachable + ) + (func $~start + call $start:issues/2873 + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 35136 + i32.const 35184 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/string/String.__eq (param $left i32) (param $right i32) (result i32) + (local $leftLength 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 $left + local.get $right + i32.eq + if + i32.const 1 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + local.get $left + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $right + i32.const 0 + i32.eq + end + if + i32.const 0 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + local.get $left + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/string/String#get:length + local.set $leftLength + local.get $leftLength + local.get $right + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/string/String#get:length + i32.ne + if + i32.const 0 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + local.get $left + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + i32.const 0 + local.get $right + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + local.get $leftLength + call $~lib/util/string/compareImpl + i32.eqz + 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/string/String#substring (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 $finalStart i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $finalEnd i32) + (local $14 i32) + (local $15 i32) + (local $fromPos i32) + (local $17 i32) + (local $18 i32) + (local $toPos i32) + (local $size i32) + (local $out i32) + (local $22 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.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 $22 + global.get $~lib/memory/__stack_pointer + local.get $22 + i32.store + local.get $22 + 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 $finalStart + local.get $end + local.tee $9 + i32.const 0 + local.tee $10 + local.get $9 + local.get $10 + i32.gt_s + select + local.tee $11 + local.get $len + local.tee $12 + local.get $11 + local.get $12 + i32.lt_s + select + local.set $finalEnd + local.get $finalStart + local.tee $14 + local.get $finalEnd + local.tee $15 + local.get $14 + local.get $15 + i32.lt_s + select + i32.const 1 + i32.shl + local.set $fromPos + local.get $finalStart + local.tee $17 + local.get $finalEnd + local.tee $18 + local.get $17 + local.get $18 + i32.gt_s + select + i32.const 1 + i32.shl + local.set $toPos + local.get $toPos + local.get $fromPos + i32.sub + local.set $size + local.get $size + i32.eqz + if + i32.const 2128 + local.set $22 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $22 + return + end + local.get $fromPos + i32.eqz + if (result i32) + local.get $toPos + local.get $len + i32.const 1 + i32.shl + i32.eq + else + i32.const 0 + end + if + local.get $this + local.set $22 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $22 + return + end + global.get $~lib/memory/__stack_pointer + local.get $size + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $out + i32.store offset=4 + local.get $out + local.get $this + local.get $fromPos + i32.add + local.get $size + memory.copy + local.get $out + local.set $22 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $22 + return + ) + (func $~lib/util/string/joinFloatArray (param $dataStart i32) (param $length i32) (param $separator i32) (result i32) + (local $lastIndex i32) + (local $sepLen i32) + (local $estLen i32) + (local $result i32) + (local $offset i32) + (local $value f32) + (local $i i32) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $length + i32.const 1 + i32.sub + local.set $lastIndex + local.get $lastIndex + i32.const 0 + i32.lt_s + if + i32.const 2128 + 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 $lastIndex + i32.eqz + if + local.get $dataStart + f32.load + call $~lib/util/number/dtoa + 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 $separator + local.set $10 + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store + local.get $10 + call $~lib/string/String#get:length + local.set $sepLen + i32.const 28 + local.get $sepLen + i32.add + local.get $lastIndex + i32.mul + i32.const 28 + i32.add + local.set $estLen + global.get $~lib/memory/__stack_pointer + local.get $estLen + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $result + i32.store offset=4 + i32.const 0 + local.set $offset + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $lastIndex + i32.lt_s + if + local.get $dataStart + local.get $i + i32.const 2 + i32.shl + i32.add + f32.load + local.set $value + local.get $offset + local.get $result + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $value + call $~lib/util/number/dtoa_buffered + i32.add + local.set $offset + local.get $sepLen + if + local.get $result + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $separator + local.get $sepLen + i32.const 1 + i32.shl + memory.copy + local.get $offset + local.get $sepLen + i32.add + local.set $offset + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $dataStart + local.get $lastIndex + i32.const 2 + i32.shl + i32.add + f32.load + local.set $value + local.get $offset + local.get $result + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $value + call $~lib/util/number/dtoa_buffered + i32.add + local.set $offset + local.get $estLen + local.get $offset + i32.gt_s + if + local.get $result + local.set $10 + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store + local.get $10 + i32.const 0 + local.get $offset + call $~lib/string/String#substring + 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 $result + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + ) + (func $~lib/array/Array#join (param $this i32) (param $separator i32) (result i32) + (local $ptr i32) + (local $len 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/array/Array#get:dataStart + local.set $ptr + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/array/Array#get:length_ + local.set $len + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + local.get $ptr + local.get $len + local.get $separator + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/util/string/joinFloatArray + 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/util/string/joinFloatArray (param $dataStart i32) (param $length i32) (param $separator i32) (result i32) + (local $lastIndex i32) + (local $sepLen i32) + (local $estLen i32) + (local $result i32) + (local $offset i32) + (local $value f64) + (local $i i32) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $length + i32.const 1 + i32.sub + local.set $lastIndex + local.get $lastIndex + i32.const 0 + i32.lt_s + if + i32.const 2128 + 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 $lastIndex + i32.eqz + if + local.get $dataStart + f64.load + call $~lib/util/number/dtoa + 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 $separator + local.set $10 + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store + local.get $10 + call $~lib/string/String#get:length + local.set $sepLen + i32.const 28 + local.get $sepLen + i32.add + local.get $lastIndex + i32.mul + i32.const 28 + i32.add + local.set $estLen + global.get $~lib/memory/__stack_pointer + local.get $estLen + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $result + i32.store offset=4 + i32.const 0 + local.set $offset + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $lastIndex + i32.lt_s + if + local.get $dataStart + local.get $i + i32.const 3 + i32.shl + i32.add + f64.load + local.set $value + local.get $offset + local.get $result + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $value + call $~lib/util/number/dtoa_buffered + i32.add + local.set $offset + local.get $sepLen + if + local.get $result + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $separator + local.get $sepLen + i32.const 1 + i32.shl + memory.copy + local.get $offset + local.get $sepLen + i32.add + local.set $offset + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $dataStart + local.get $lastIndex + i32.const 3 + i32.shl + i32.add + f64.load + local.set $value + local.get $offset + local.get $result + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $value + call $~lib/util/number/dtoa_buffered + i32.add + local.set $offset + local.get $estLen + local.get $offset + i32.gt_s + if + local.get $result + local.set $10 + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store + local.get $10 + i32.const 0 + local.get $offset + call $~lib/string/String#substring + 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 $result + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + ) + (func $~lib/array/Array#join (param $this i32) (param $separator i32) (result i32) + (local $ptr i32) + (local $len 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/array/Array#get:dataStart + local.set $ptr + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/array/Array#get:length_ + local.set $len + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + local.get $ptr + local.get $len + local.get $separator + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/util/string/joinFloatArray + 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 $start:issues/2873 + (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 + call $~stack_check + 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 1680 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 1712 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 1856 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + f32.const 1.100000023841858 + i32.const 0 + call $~lib/number/F32#toString + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 1968 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 2000 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.1 + i32.const 0 + call $~lib/number/F64#toString + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 1968 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 2000 + i32.const 2 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $issues/2873/f32arr + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + 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 2192 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 2000 + i32.const 5 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $issues/2873/f64arr + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + 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 2192 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 2000 + i32.const 8 + i32.const 1 + 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/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/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 32 + 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 64 + br $~lib/util/number/dtoa_impl|inlined.0 + end + i32.const 96 + i32.const 144 + local.get $value|1 + f64.const 0 + f64.lt + select + br $~lib/util/number/dtoa_impl|inlined.0 + end + i32.const 176 + 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 176 + 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/dtoa (param $value f64) (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.1 (result i32) + local.get $value + local.set $value|1 + i32.const 0 + local.set $isSingle + local.get $value|1 + f64.const 0 + f64.eq + if + i32.const 32 + br $~lib/util/number/dtoa_impl|inlined.1 + 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 64 + br $~lib/util/number/dtoa_impl|inlined.1 + end + i32.const 96 + i32.const 144 + local.get $value|1 + f64.const 0 + f64.lt + select + br $~lib/util/number/dtoa_impl|inlined.1 + end + i32.const 176 + 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 176 + local.get $size + memory.copy + local.get $result + br $~lib/util/number/dtoa_impl|inlined.1 + 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 + ) +) diff --git a/tests/compiler/issues/2873.json b/tests/compiler/issues/2873.json new file mode 100644 index 0000000000..ea57a955e1 --- /dev/null +++ b/tests/compiler/issues/2873.json @@ -0,0 +1,3 @@ +{ + "asc_flags": [] +} diff --git a/tests/compiler/issues/2873.release.wat b/tests/compiler/issues/2873.release.wat new file mode 100644 index 0000000000..82a92f5c23 --- /dev/null +++ b/tests/compiler/issues/2873.release.wat @@ -0,0 +1,3850 @@ +(module + (type $0 (func (param i32))) + (type $1 (func (param i32 i32) (result i32))) + (type $2 (func)) + (type $3 (func (param i32 i32))) + (type $4 (func (param i32 i32 i32 i32))) + (type $5 (func (param i32) (result i32))) + (type $6 (func (param i32 f64 i32) (result i32))) + (type $7 (func (param i32 i32 i32))) + (type $8 (func (param i32 f64) (result i32))) + (type $9 (func (param i32 f32) (result i32))) + (type $10 (func (param f64) (result i32))) + (type $11 (func (param f32) (result i32))) + (type $12 (func (param i32 i32 i64))) + (type $13 (func (param i32 i32 i32) (result i32))) + (type $14 (func (param i32 i64 i64 i32 i64 i32) (result i32))) + (type $15 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (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)) + (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/itcms/total (mut 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 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") + (data $1 (i32.const 1068) "\1c") + (data $1.1 (i32.const 1080) "\02\00\00\00\06\00\00\00N\00a\00N") + (data $2 (i32.const 1100) ",") + (data $2.1 (i32.const 1112) "\02\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y") + (data $3 (i32.const 1148) ",") + (data $3.1 (i32.const 1160) "\02\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y") + (data $5 (i32.const 1256) "\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 + 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 $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + 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 + ) + (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 2168 + i32.add + i64.load32_u + local.get $3 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 2168 + 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 2168 + 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 2168 + 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/dtoa_buffered (param $0 i32) (param $1 f64) (result i32) + (local $2 i32) + block $~lib/util/number/dtoa_buffered_impl|inlined.1 (result i32) + local.get $1 + f64.const 0 + f64.eq + if + local.get $0 + i32.const 48 + i32.store16 + local.get $0 + i32.const 46 + i32.store16 offset=2 + local.get $0 + i32.const 48 + i32.store16 offset=4 + i32.const 3 + br $~lib/util/number/dtoa_buffered_impl|inlined.1 + end + local.get $1 + local.get $1 + f64.sub + f64.const 0 + f64.ne + if + local.get $1 + local.get $1 + f64.ne + if + local.get $0 + i32.const 78 + i32.store16 + local.get $0 + i32.const 97 + i32.store16 offset=2 + local.get $0 + i32.const 78 + i32.store16 offset=4 + i32.const 3 + br $~lib/util/number/dtoa_buffered_impl|inlined.1 + else + local.get $1 + f64.const 0 + f64.lt + local.tee $2 + if + local.get $0 + i32.const 45 + i32.store16 + local.get $0 + i32.const 2 + i32.add + local.set $0 + end + local.get $0 + i64.const 29555310648492105 + i64.store + local.get $0 + i64.const 34058970405077102 + i64.store offset=8 + local.get $2 + i32.const 8 + i32.add + br $~lib/util/number/dtoa_buffered_impl|inlined.1 + end + unreachable + end + local.get $0 + local.get $1 + i32.const 0 + call $~lib/util/number/dtoa_core + end + ) + (func $~lib/util/number/dtoa_buffered (param $0 i32) (param $1 f32) (result i32) + (local $2 f64) + (local $3 i32) + block $~lib/util/number/dtoa_buffered_impl|inlined.0 (result i32) + local.get $1 + f64.promote_f32 + local.tee $2 + f64.const 0 + f64.eq + if + local.get $0 + i32.const 48 + i32.store16 + local.get $0 + i32.const 46 + i32.store16 offset=2 + local.get $0 + i32.const 48 + i32.store16 offset=4 + i32.const 3 + br $~lib/util/number/dtoa_buffered_impl|inlined.0 + end + local.get $2 + local.get $2 + f64.sub + f64.const 0 + f64.ne + if + local.get $2 + local.get $2 + f64.ne + if + local.get $0 + i32.const 78 + i32.store16 + local.get $0 + i32.const 97 + i32.store16 offset=2 + local.get $0 + i32.const 78 + i32.store16 offset=4 + i32.const 3 + br $~lib/util/number/dtoa_buffered_impl|inlined.0 + else + local.get $2 + f64.const 0 + f64.lt + local.tee $3 + if + local.get $0 + i32.const 45 + i32.store16 + local.get $0 + i32.const 2 + i32.add + local.set $0 + end + local.get $0 + i64.const 29555310648492105 + i64.store + local.get $0 + i64.const 34058970405077102 + i64.store offset=8 + local.get $3 + i32.const 8 + i32.add + br $~lib/util/number/dtoa_buffered_impl|inlined.0 + end + unreachable + end + local.get $0 + local.get $2 + i32.const 1 + call $~lib/util/number/dtoa_core + end + ) + (func $~lib/util/number/dtoa (param $0 f64) (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 3372 + i32.lt_s + if + 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.store + i32.const 1056 + local.set $1 + block $~lib/util/number/dtoa_impl|inlined.1 + local.get $0 + f64.const 0 + f64.eq + br_if $~lib/util/number/dtoa_impl|inlined.1 + local.get $0 + local.get $0 + f64.sub + f64.const 0 + f64.ne + if + i32.const 1088 + local.set $1 + local.get $0 + local.get $0 + f64.ne + br_if $~lib/util/number/dtoa_impl|inlined.1 + i32.const 1120 + i32.const 1168 + local.get $0 + f64.const 0 + f64.lt + select + local.set $1 + br $~lib/util/number/dtoa_impl|inlined.1 + end + global.get $~lib/memory/__stack_pointer + i32.const 1200 + local.get $0 + i32.const 0 + call $~lib/util/number/dtoa_core + i32.const 1 + i32.shl + local.tee $2 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $1 + i32.const 1200 + local.get $2 + memory.copy + 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/dtoa (param $0 f32) (result i32) + (local $1 f64) + (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 3372 + i32.lt_s + if + 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.store + i32.const 1056 + local.set $2 + block $~lib/util/number/dtoa_impl|inlined.0 + local.get $0 + f64.promote_f32 + local.tee $1 + f64.const 0 + f64.eq + br_if $~lib/util/number/dtoa_impl|inlined.0 + local.get $1 + local.get $1 + f64.sub + f64.const 0 + f64.ne + if + i32.const 1088 + local.set $2 + local.get $1 + local.get $1 + f64.ne + br_if $~lib/util/number/dtoa_impl|inlined.0 + i32.const 1120 + i32.const 1168 + local.get $1 + f64.const 0 + f64.lt + select + local.set $2 + br $~lib/util/number/dtoa_impl|inlined.0 + end + global.get $~lib/memory/__stack_pointer + i32.const 1200 + local.get $1 + i32.const 1 + call $~lib/util/number/dtoa_core + i32.const 1 + i32.shl + local.tee $3 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + i32.const 1200 + local.get $3 + memory.copy + 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#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 3372 + i32.lt_s + if + i32.const 36160 + i32.const 36208 + 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 3152 + return + end + local.get $3 + i32.eqz + local.get $4 + local.get $1 + i32.const 1 + i32.shl + i32.eq + i32.and + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + global.get $~lib/memory/__stack_pointer + local.get $2 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=4 + local.get $1 + local.get $0 + local.get $3 + i32.add + local.get $2 + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (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 2928 + 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 2928 + 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/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 36144 + i32.const 0 + i32.store + i32.const 37712 + 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 36144 + 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 36144 + 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 36144 + i32.const 37716 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 36144 + global.set $~lib/rt/tlsf/ROOT + ) + (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 2928 + 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 2928 + 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 2928 + 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/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 3104 + call $~lib/rt/itcms/__visit + i32.const 3312 + call $~lib/rt/itcms/__visit + i32.const 2784 + call $~lib/rt/itcms/__visit + i32.const 2592 + 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 2656 + 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/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 3372 + i32.lt_s + if + 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.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 + ) + (func $~start + (local $0 i32) + (local $1 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 + global.get $~lib/memory/__stack_pointer + i32.const 3372 + 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 36140 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 2708 + i32.const 2704 + i32.store + i32.const 2712 + i32.const 2704 + i32.store + i32.const 2704 + global.set $~lib/rt/itcms/pinSpace + i32.const 2740 + i32.const 2736 + i32.store + i32.const 2744 + i32.const 2736 + i32.store + i32.const 2736 + global.set $~lib/rt/itcms/toSpace + i32.const 2884 + i32.const 2880 + i32.store + i32.const 2888 + i32.const 2880 + i32.store + i32.const 2880 + global.set $~lib/rt/itcms/fromSpace + f32.const 1.100000023841858 + call $~lib/util/number/dtoa + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 2992 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 3024 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.1 + call $~lib/util/number/dtoa + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 2992 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 3024 + i32.const 2 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + 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 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 3104 + i32.store + i32.const 3108 + i32.load + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.store + i32.const 3116 + i32.load + local.set $1 + global.get $~lib/memory/__stack_pointer + 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 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$143 + local.get $1 + i32.const 1 + i32.sub + local.tee $4 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 3152 + local.set $1 + br $__inlined_func$~lib/util/string/joinFloatArray$143 + end + local.get $4 + i32.eqz + if + local.get $3 + f32.load + call $~lib/util/number/dtoa + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinFloatArray$143 + end + global.get $~lib/memory/__stack_pointer + i32.const 3184 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3180 + i32.load + i32.const 1 + i32.shr_u + local.tee $5 + i32.const 28 + i32.add + local.get $4 + i32.mul + i32.const 28 + i32.add + local.tee $6 + i32.const 1 + i32.shl + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=4 + loop $for-loop|0 + local.get $2 + local.get $4 + i32.lt_s + if + local.get $1 + local.get $0 + i32.const 1 + i32.shl + i32.add + local.get $3 + local.get $2 + i32.const 2 + i32.shl + i32.add + f32.load + call $~lib/util/number/dtoa_buffered + local.get $0 + i32.add + local.set $0 + local.get $5 + if + local.get $1 + local.get $0 + i32.const 1 + i32.shl + i32.add + i32.const 3184 + local.get $5 + i32.const 1 + i32.shl + memory.copy + local.get $0 + local.get $5 + i32.add + local.set $0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + local.get $1 + local.get $0 + i32.const 1 + i32.shl + i32.add + local.get $3 + local.get $4 + i32.const 2 + i32.shl + i32.add + f32.load + call $~lib/util/number/dtoa_buffered + local.get $0 + i32.add + local.tee $0 + local.get $6 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + local.get $0 + call $~lib/string/String#substring + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinFloatArray$143 + end + 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 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 3216 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 3024 + i32.const 5 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + 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 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 3312 + i32.store + i32.const 3316 + i32.load + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 3312 + i32.store + i32.const 3324 + i32.load + local.set $0 + global.get $~lib/memory/__stack_pointer + 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 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$144 + local.get $0 + i32.const 1 + i32.sub + local.tee $4 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 3152 + local.set $1 + br $__inlined_func$~lib/util/string/joinFloatArray$144 + end + local.get $4 + i32.eqz + if + local.get $3 + f64.load + call $~lib/util/number/dtoa + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinFloatArray$144 + end + global.get $~lib/memory/__stack_pointer + i32.const 3184 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3180 + i32.load + i32.const 1 + i32.shr_u + local.tee $5 + i32.const 28 + i32.add + local.get $4 + i32.mul + i32.const 28 + i32.add + local.tee $6 + i32.const 1 + i32.shl + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=4 + i32.const 0 + local.set $0 + i32.const 0 + local.set $2 + loop $for-loop|01 + local.get $2 + local.get $4 + i32.lt_s + if + local.get $1 + local.get $0 + i32.const 1 + i32.shl + i32.add + local.get $3 + local.get $2 + i32.const 3 + i32.shl + i32.add + f64.load + call $~lib/util/number/dtoa_buffered + local.get $0 + i32.add + local.set $0 + local.get $5 + if + local.get $1 + local.get $0 + i32.const 1 + i32.shl + i32.add + i32.const 3184 + local.get $5 + i32.const 1 + i32.shl + memory.copy + local.get $0 + local.get $5 + i32.add + local.set $0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|01 + end + end + local.get $1 + local.get $0 + i32.const 1 + i32.shl + i32.add + local.get $3 + local.get $4 + i32.const 3 + i32.shl + i32.add + f64.load + call $~lib/util/number/dtoa_buffered + local.get $0 + i32.add + local.tee $0 + local.get $6 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + local.get $0 + call $~lib/string/String#substring + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinFloatArray$144 + end + 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 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 3216 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 3024 + i32.const 8 + i32.const 1 + 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 36160 + i32.const 36208 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + local.get $2 + i32.eqz + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 3145774 + i32.store + local.get $1 + i32.const 2 + i32.add + return + end + local.get $1 + local.get $2 + i32.add + local.tee $3 + i32.const 21 + i32.le_s + local.get $1 + local.get $3 + i32.le_s + i32.and + if (result i32) + loop $for-loop|0 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 48 + i32.store16 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.const 3145774 + i32.store + local.get $3 + i32.const 2 + i32.add + else + local.get $3 + i32.const 21 + i32.le_s + local.get $3 + i32.const 0 + i32.gt_s + i32.and + if (result i32) + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.tee $0 + i32.const 2 + i32.add + local.get $0 + i32.const 0 + local.get $2 + i32.sub + i32.const 1 + i32.shl + memory.copy + local.get $0 + i32.const 46 + i32.store16 + local.get $1 + i32.const 1 + i32.add + else + local.get $3 + i32.const 0 + i32.le_s + local.get $3 + i32.const -6 + i32.gt_s + i32.and + if (result i32) + local.get $0 + i32.const 2 + local.get $3 + i32.sub + local.tee $3 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $1 + i32.const 1 + i32.shl + memory.copy + local.get $0 + i32.const 3014704 + i32.store + i32.const 2 + local.set $2 + loop $for-loop|1 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 48 + i32.store16 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 + end + end + local.get $1 + local.get $3 + i32.add + else + local.get $1 + i32.const 1 + i32.eq + if + local.get $0 + i32.const 101 + i32.store16 offset=2 + local.get $0 + i32.const 4 + i32.add + local.tee $2 + local.get $3 + i32.const 1 + i32.sub + local.tee $0 + i32.const 0 + i32.lt_s + local.tee $3 + if + i32.const 0 + local.get $0 + i32.sub + local.set $0 + end + local.get $0 + local.get $0 + 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 + i32.const 1 + i32.add + local.tee $1 + call $~lib/util/number/utoa32_dec_lut + local.get $2 + i32.const 45 + i32.const 43 + local.get $3 + select + i32.store16 + else + local.get $0 + i32.const 4 + i32.add + local.get $0 + i32.const 2 + i32.add + local.get $1 + i32.const 1 + i32.shl + local.tee $2 + i32.const 2 + i32.sub + memory.copy + local.get $0 + i32.const 46 + i32.store16 offset=2 + local.get $0 + local.get $2 + i32.add + local.tee $0 + i32.const 101 + i32.store16 offset=2 + local.get $0 + i32.const 4 + i32.add + local.tee $4 + local.get $3 + i32.const 1 + i32.sub + local.tee $0 + i32.const 0 + i32.lt_s + local.tee $2 + if + i32.const 0 + local.get $0 + i32.sub + local.set $0 + end + local.get $0 + local.get $0 + 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 + i32.const 1 + i32.add + local.tee $0 + call $~lib/util/number/utoa32_dec_lut + local.get $4 + i32.const 45 + i32.const 43 + local.get $2 + select + i32.store16 + local.get $0 + local.get $1 + i32.add + local.set $1 + end + local.get $1 + i32.const 2 + i32.add + end + end + end + ) + (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) + (local $6 i32) + (local $7 i32) + (local $8 i64) + (local $9 i64) + (local $10 i32) + (local $11 i64) + (local $12 i64) + local.get $2 + local.get $1 + i64.sub + local.set $9 + i64.const 1 + i32.const 0 + local.get $3 + i32.sub + local.tee $10 + i64.extend_i32_s + local.tee $1 + i64.shl + local.tee $12 + i64.const 1 + i64.sub + local.tee $11 + local.get $2 + i64.and + local.set $8 + local.get $2 + local.get $1 + i64.shr_u + i32.wrap_i64 + local.tee $3 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $3 + i32.const 100 + i32.lt_u + if (result i32) + local.get $3 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $3 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $3 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $3 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $3 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $3 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $3 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.set $7 + loop $while-continue|0 + local.get $7 + i32.const 0 + i32.gt_s + if + block $break|1 + block $case10|1 + block $case9|1 + block $case8|1 + block $case7|1 + block $case6|1 + block $case5|1 + block $case4|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + local.get $7 + i32.const 1 + i32.sub + br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $case0|1 $case10|1 + end + local.get $3 + i32.const 1000000000 + i32.div_u + local.set $6 + local.get $3 + i32.const 1000000000 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 100000000 + i32.div_u + local.set $6 + local.get $3 + i32.const 100000000 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 10000000 + i32.div_u + local.set $6 + local.get $3 + i32.const 10000000 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 1000000 + i32.div_u + local.set $6 + local.get $3 + i32.const 1000000 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 100000 + i32.div_u + local.set $6 + local.get $3 + i32.const 100000 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 10000 + i32.div_u + local.set $6 + local.get $3 + i32.const 10000 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 1000 + i32.div_u + local.set $6 + local.get $3 + i32.const 1000 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 100 + i32.div_u + local.set $6 + local.get $3 + i32.const 100 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 10 + i32.div_u + local.set $6 + local.get $3 + i32.const 10 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + local.set $6 + i32.const 0 + local.set $3 + br $break|1 + end + i32.const 0 + local.set $6 + end + local.get $5 + local.get $6 + i32.or + if + local.get $0 + local.get $5 + i32.const 1 + i32.shl + i32.add + local.get $6 + i32.const 65535 + i32.and + i32.const 48 + i32.add + i32.store16 + local.get $5 + i32.const 1 + i32.add + local.set $5 + end + local.get $7 + i32.const 1 + i32.sub + local.set $7 + local.get $4 + local.get $3 + i64.extend_i32_u + local.get $10 + i64.extend_i32_s + local.tee $2 + i64.shl + local.get $8 + i64.add + local.tee $1 + i64.ge_u + if + global.get $~lib/util/number/_K + local.get $7 + i32.add + global.set $~lib/util/number/_K + local.get $7 + i32.const 2 + i32.shl + i32.const 2128 + i32.add + i64.load32_u + local.get $2 + i64.shl + local.set $2 + local.get $0 + local.get $5 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.tee $0 + i32.load16_u + local.set $7 + loop $while-continue|3 + local.get $1 + local.get $9 + i64.lt_u + local.get $4 + local.get $1 + i64.sub + local.get $2 + i64.ge_u + i32.and + if (result i32) + local.get $9 + local.get $1 + local.get $2 + i64.add + local.tee $8 + i64.gt_u + local.get $9 + local.get $1 + i64.sub + local.get $8 + local.get $9 + i64.sub + i64.gt_u + i32.or + else + i32.const 0 + end + if + local.get $7 + i32.const 1 + i32.sub + local.set $7 + local.get $1 + local.get $2 + i64.add + local.set $1 + br $while-continue|3 + end + end + local.get $0 + local.get $7 + i32.store16 + local.get $5 + return + end + br $while-continue|0 + end + end + loop $while-continue|4 + local.get $4 + i64.const 10 + i64.mul + local.set $4 + local.get $8 + i64.const 10 + i64.mul + local.tee $1 + local.get $10 + i64.extend_i32_s + i64.shr_u + local.tee $2 + local.get $5 + i64.extend_i32_s + i64.or + i64.const 0 + i64.ne + if + local.get $0 + local.get $5 + i32.const 1 + i32.shl + i32.add + local.get $2 + i32.wrap_i64 + i32.const 65535 + i32.and + i32.const 48 + i32.add + i32.store16 + local.get $5 + i32.const 1 + i32.add + local.set $5 + end + local.get $7 + i32.const 1 + i32.sub + local.set $7 + local.get $1 + local.get $11 + i64.and + local.tee $8 + local.get $4 + i64.ge_u + br_if $while-continue|4 + end + global.get $~lib/util/number/_K + local.get $7 + i32.add + global.set $~lib/util/number/_K + local.get $9 + i32.const 0 + local.get $7 + i32.sub + i32.const 2 + i32.shl + i32.const 2128 + i32.add + i64.load32_u + i64.mul + local.set $1 + local.get $0 + local.get $5 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.tee $0 + i32.load16_u + local.set $7 + loop $while-continue|6 + local.get $1 + local.get $8 + i64.gt_u + local.get $4 + local.get $8 + i64.sub + local.get $12 + i64.ge_u + i32.and + if (result i32) + local.get $1 + local.get $8 + local.get $12 + i64.add + local.tee $2 + i64.gt_u + local.get $1 + local.get $8 + i64.sub + local.get $2 + local.get $1 + i64.sub + i64.gt_u + i32.or + else + i32.const 0 + end + if + local.get $7 + i32.const 1 + i32.sub + local.set $7 + local.get $8 + local.get $12 + i64.add + local.set $8 + br $while-continue|6 + end + end + local.get $0 + local.get $7 + i32.store16 + local.get $5 + ) + (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 36140 + 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 2656 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 36140 + 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 36140 + 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 2928 + 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 + ) +) diff --git a/tests/compiler/issues/2873.ts b/tests/compiler/issues/2873.ts new file mode 100644 index 0000000000..2c93f8b66b --- /dev/null +++ b/tests/compiler/issues/2873.ts @@ -0,0 +1,8 @@ +assert((1.1).toString() == "1.1"); +assert((1.1).toString() == "1.1"); + +const f32arr: f32[] = [1.1, 2.2, 3.3]; +assert(f32arr.join() == "1.1,2.2,3.3"); + +const f64arr: f64[] = [1.1, 2.2, 3.3]; +assert(f64arr.join() == "1.1,2.2,3.3"); diff --git a/tests/compiler/issues/2989.debug.wat b/tests/compiler/issues/2989.debug.wat new file mode 100644 index 0000000000..274c42c3f8 --- /dev/null +++ b/tests/compiler/issues/2989.debug.wat @@ -0,0 +1,89 @@ +(module + (type $0 (func (param i32))) + (type $1 (func)) + (type $2 (func (param i32) (result i32))) + (type $3 (func (param i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $issues/2989/value (mut i32) (i32.const 0)) + (global $issues/2989/fn (mut i32) (i32.const 32)) + (global $~argumentsLength (mut 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\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) ",\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\009\008\009\00.\00t\00s\00") + (table $0 3 3 funcref) + (elem $0 (i32.const 1) $issues/2989/logA $issues/2989/logB) + (export "memory" (memory $0)) + (start $~start) + (func $issues/2989/logA (param $x i32) + i32.const 100 + global.set $issues/2989/value + ) + (func $issues/2989/logB (param $x i32) + i32.const 200 + global.set $issues/2989/value + ) + (func $issues/2989/foo (param $x i32) (result i32) + i32.const 64 + global.set $issues/2989/fn + local.get $x + return + ) + (func $start:issues/2989 + (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 + global.get $~lib/memory/__stack_pointer + global.get $issues/2989/fn + local.tee $0 + i32.store + i32.const 42 + call $issues/2989/foo + i32.const 1 + global.set $~argumentsLength + local.get $0 + i32.load + call_indirect (type $0) + global.get $issues/2989/value + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 20 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~start + call $start:issues/2989 + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 32912 + i32.const 32960 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) +) diff --git a/tests/compiler/issues/2989.release.wat b/tests/compiler/issues/2989.release.wat new file mode 100644 index 0000000000..5b88950dd6 --- /dev/null +++ b/tests/compiler/issues/2989.release.wat @@ -0,0 +1,74 @@ +(module + (type $0 (func (param i32))) + (type $1 (func (param i32 i32 i32 i32))) + (type $2 (func)) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $issues/2989/value (mut i32) (i32.const 0)) + (global $issues/2989/fn (mut i32) (i32.const 1056)) + (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) "\04\00\00\00\08\00\00\00\02") + (data $2 (i32.const 1100) ",") + (data $2.1 (i32.const 1112) "\02\00\00\00\1c\00\00\00i\00s\00s\00u\00e\00s\00/\002\009\008\009\00.\00t\00s") + (table $0 3 3 funcref) + (elem $0 (i32.const 1) $issues/2989/logA $issues/2989/logB) + (export "memory" (memory $0)) + (start $~start) + (func $~start + (local $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 1148 + i32.lt_s + if + i32.const 33936 + i32.const 33984 + 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 + global.get $issues/2989/fn + local.tee $0 + i32.store + i32.const 1088 + global.set $issues/2989/fn + i32.const 42 + local.get $0 + i32.load + call_indirect (type $0) + global.get $issues/2989/value + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 20 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $issues/2989/logB (param $0 i32) + i32.const 200 + global.set $issues/2989/value + ) + (func $issues/2989/logA (param $0 i32) + i32.const 100 + global.set $issues/2989/value + ) +) diff --git a/tests/compiler/issues/2989.ts b/tests/compiler/issues/2989.ts new file mode 100644 index 0000000000..bab7dbdfd5 --- /dev/null +++ b/tests/compiler/issues/2989.ts @@ -0,0 +1,20 @@ + +let value: i32 = 0; + +function logA(x: i32):void { + value = 100; +} + +function logB(x: i32):void { + value = 200; +} + +let fn = logA; + +function foo(x: i32):i32 { + fn = logB; + return x; +} + +fn(foo(42)); +assert(value == 100); \ No newline at end of file diff --git a/tests/compiler/logical.debug.wat b/tests/compiler/logical.debug.wat index c5d2e58444..bf7e9e66c3 100644 --- a/tests/compiler/logical.debug.wat +++ b/tests/compiler/logical.debug.wat @@ -28,6 +28,10 @@ (global $~lib/rt/itcms/fromSpace (mut i32) (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 $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 464)) @@ -47,6 +51,10 @@ (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)) + (export "bar" (global $logical/bar)) + (export "baz" (global $logical/baz)) + (export "qux" (global $logical/qux)) (export "memory" (memory $0)) (start $~start) (func $logical/testShortcutAnd (param $a i64) (param $b i32) (result i32) @@ -1650,14 +1658,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + drop global.get $~lib/rt/itcms/total - i64.extend_i32_u i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 + i32.const 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold @@ -2337,12 +2348,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -2587,26 +2594,9 @@ i64.const -9007199254740994 i64.le_u drop - i32.const 1 - if (result i32) - i32.const 2 - else - i32.const 1 - end + i32.const 2 drop - f64.const 1 - i64.reinterpret_f64 - i64.const 1 - i64.shl - i64.const 2 - i64.sub - i64.const -9007199254740994 - i64.le_u - if (result f64) - f64.const 2 - else - f64.const 1 - end + f64.const 2 i64.reinterpret_f64 i64.const 1 i64.shl @@ -2615,12 +2605,7 @@ i64.const -9007199254740994 i64.le_u drop - i32.const 1 - if (result i32) - i32.const 2 - else - i32.const 1 - end + i32.const 2 global.set $logical/i global.get $logical/i i32.const 2 @@ -2634,12 +2619,7 @@ call $~lib/builtins/abort unreachable end - i32.const 0 - if (result i32) - i32.const 0 - else - i32.const 1 - end + i32.const 1 global.set $logical/i global.get $logical/i i32.const 1 @@ -2653,14 +2633,7 @@ call $~lib/builtins/abort unreachable end - i64.const 1 - i64.const 0 - i64.ne - if (result i64) - i64.const 2 - else - i64.const 1 - end + i64.const 2 global.set $logical/I global.get $logical/I i64.const 2 @@ -2674,14 +2647,7 @@ call $~lib/builtins/abort unreachable end - i64.const 0 - i64.const 0 - i64.ne - if (result i64) - i64.const 0 - else - i64.const 1 - end + i64.const 1 global.set $logical/I global.get $logical/I i64.const 1 @@ -2695,19 +2661,7 @@ call $~lib/builtins/abort unreachable end - f32.const 1 - i32.reinterpret_f32 - i32.const 1 - i32.shl - i32.const 2 - i32.sub - i32.const -16777218 - i32.le_u - if (result f32) - f32.const 2 - else - f32.const 1 - end + f32.const 2 global.set $logical/f global.get $logical/f f32.const 2 @@ -2721,19 +2675,7 @@ call $~lib/builtins/abort unreachable end - f32.const 0 - i32.reinterpret_f32 - i32.const 1 - i32.shl - i32.const 2 - i32.sub - i32.const -16777218 - i32.le_u - if (result f32) - f32.const 0 - else - f32.const 1 - end + f32.const 1 global.set $logical/f global.get $logical/f f32.const 1 @@ -2747,19 +2689,7 @@ call $~lib/builtins/abort unreachable end - f64.const 1 - i64.reinterpret_f64 - i64.const 1 - i64.shl - i64.const 2 - i64.sub - i64.const -9007199254740994 - i64.le_u - if (result f64) - f64.const 2 - else - f64.const 1 - end + f64.const 2 global.set $logical/F global.get $logical/F f64.const 2 @@ -2773,19 +2703,7 @@ call $~lib/builtins/abort unreachable end - f64.const 0 - i64.reinterpret_f64 - i64.const 1 - i64.shl - i64.const 2 - i64.sub - i64.const -9007199254740994 - i64.le_u - if (result f64) - f64.const 0 - else - f64.const 1 - end + f64.const 1 global.set $logical/F global.get $logical/F f64.const 1 @@ -2799,19 +2717,7 @@ call $~lib/builtins/abort unreachable end - f32.const nan:0x400000 - i32.reinterpret_f32 - i32.const 1 - i32.shl - i32.const 2 - i32.sub - i32.const -16777218 - i32.le_u - if (result f32) - f32.const nan:0x400000 - else - f32.const 1 - end + f32.const 1 global.set $logical/f global.get $logical/f f32.const 1 @@ -2826,18 +2732,6 @@ unreachable end f32.const 1 - i32.reinterpret_f32 - i32.const 1 - i32.shl - i32.const 2 - i32.sub - i32.const -16777218 - i32.le_u - if (result f32) - f32.const 1 - else - f32.const nan:0x400000 - end global.set $logical/f global.get $logical/f f32.const 1 @@ -2851,19 +2745,7 @@ call $~lib/builtins/abort unreachable end - f64.const nan:0x8000000000000 - i64.reinterpret_f64 - i64.const 1 - i64.shl - i64.const 2 - i64.sub - i64.const -9007199254740994 - i64.le_u - if (result f64) - f64.const nan:0x8000000000000 - else - f64.const 1 - end + f64.const 1 global.set $logical/F global.get $logical/F f64.const 1 @@ -2878,18 +2760,6 @@ unreachable end f64.const 1 - i64.reinterpret_f64 - i64.const 1 - i64.shl - i64.const 2 - i64.sub - i64.const -9007199254740994 - i64.le_u - if (result f64) - f64.const 1 - else - f64.const nan:0x8000000000000 - end global.set $logical/F global.get $logical/F f64.const 1 @@ -2903,19 +2773,7 @@ call $~lib/builtins/abort unreachable end - f32.const 1 - i32.reinterpret_f32 - i32.const 1 - i32.shl - i32.const 2 - i32.sub - i32.const -16777218 - i32.le_u - if (result f32) - f32.const nan:0x400000 - else - f32.const 1 - end + f32.const nan:0x400000 global.set $logical/f global.get $logical/f local.tee $0 @@ -2931,18 +2789,6 @@ unreachable end f32.const nan:0x400000 - i32.reinterpret_f32 - i32.const 1 - i32.shl - i32.const 2 - i32.sub - i32.const -16777218 - i32.le_u - if (result f32) - f32.const 1 - else - f32.const nan:0x400000 - end global.set $logical/f global.get $logical/f local.tee $1 @@ -2957,19 +2803,7 @@ call $~lib/builtins/abort unreachable end - f64.const 1 - i64.reinterpret_f64 - i64.const 1 - i64.shl - i64.const 2 - i64.sub - i64.const -9007199254740994 - i64.le_u - if (result f64) - f64.const nan:0x8000000000000 - else - f64.const 1 - end + f64.const nan:0x8000000000000 global.set $logical/F global.get $logical/F local.tee $2 @@ -2985,18 +2819,6 @@ unreachable end f64.const nan:0x8000000000000 - i64.reinterpret_f64 - i64.const 1 - i64.shl - i64.const 2 - i64.sub - i64.const -9007199254740994 - i64.le_u - if (result f64) - f64.const 1 - else - f64.const nan:0x8000000000000 - end global.set $logical/F global.get $logical/F local.tee $3 @@ -3115,7 +2937,7 @@ if i32.const 0 i32.const 32 - i32.const 106 + i32.const 114 i32.const 1 call $~lib/builtins/abort unreachable @@ -3128,7 +2950,7 @@ if i32.const 0 i32.const 32 - i32.const 107 + i32.const 115 i32.const 1 call $~lib/builtins/abort unreachable @@ -3146,7 +2968,7 @@ if i32.const 0 i32.const 32 - i32.const 112 + i32.const 120 i32.const 1 call $~lib/builtins/abort unreachable @@ -3159,7 +2981,7 @@ if i32.const 0 i32.const 32 - i32.const 113 + i32.const 121 i32.const 1 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/logical.release.wat b/tests/compiler/logical.release.wat index 6e888c9cb0..7d72c4c009 100644 --- a/tests/compiler/logical.release.wat +++ b/tests/compiler/logical.release.wat @@ -17,6 +17,10 @@ (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 $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/memory/__stack_pointer (mut i32) (i32.const 34292)) @@ -34,65 +38,12 @@ (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)) + (export "qux" (global $logical/qux)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - global.get $logical/b - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $logical/c - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 1296 - call $~lib/rt/itcms/__visit - i32.const 1104 - 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 1168 - 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) @@ -245,105 +196,335 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 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.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - i32.const 0 - i32.const 1440 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable + 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 - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u + global.get $~lib/rt/tlsf/ROOT + i32.eqz if - i32.const 0 - i32.const 1440 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable + call $~lib/rt/tlsf/initialize end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 + global.get $~lib/rt/tlsf/ROOT + local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if + i32.const 4 + local.get $2 + i32.load offset=1568 + memory.size + local.tee $1 + 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 - else - i32.const 31 - i32.const 1073741820 + local.set $3 + local.get $1 local.get $3 + local.get $1 local.get $3 - i32.const 1073741820 - i32.ge_u + i32.gt_s 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 + 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 $2 + local.get $1 i32.const 16 - i32.xor + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1440 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end end - local.tee $3 - i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u + local.get $1 + i32.load + i32.const -4 i32.and - i32.eqz + i32.const 28 + i32.lt_u if i32.const 0 i32.const 1440 - i32.const 284 + i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end + local.get $2 local.get $1 - i32.load offset=8 - local.set $5 + call $~lib/rt/tlsf/removeBlock local.get $1 - i32.load offset=4 + i32.load + local.tee $3 + i32.const -4 + i32.and + i32.const 28 + i32.sub local.tee $4 + i32.const 16 + i32.ge_u if + local.get $1 + local.get $3 + i32.const 2 + i32.and + i32.const 28 + i32.or + i32.store + local.get $1 + i32.const 32 + i32.add + local.tee $3 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.sub + i32.const 1 + i32.or + i32.store + local.get $2 + local.get $3 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + 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 + 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 $0 + i32.load offset=8 + 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 + 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 + local.get $0 + 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 $0 + i32.const 0 + i32.const 0 + memory.fill + local.get $0 + ) + (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 1440 + 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 1440 + 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 1440 + 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 @@ -637,119 +818,99 @@ 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 1440 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $logical/C + block $logical/A + block $logical/B + block $logical/Obj + 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 $logical/Obj $logical/B $logical/A $logical/C $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 + return end - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - local.set $1 + unreachable + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) local.get $0 - i32.load offset=1568 - local.tee $3 - if - local.get $3 - i32.const 4 - i32.add + i32.load offset=4 + i32.const -2 + i32.and + local.tee $1 + if (result i32) + local.get $0 local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1440 - 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 + i32.ctz + i32.const 2 + i32.shl + i32.add + i32.load offset=96 else local.get $0 - i32.const 1572 - i32.add - local.get $1 - i32.gt_u - if + i32.load + i32.const -2 + i32.and + local.tee $1 + if (result i32) + local.get $0 + local.get $1 + i32.ctz + local.tee $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1440 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + 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 i32.const 0 - i32.const 1440 - 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) @@ -831,605 +992,295 @@ i32.const 34304 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 + (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 1440 + 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 1440 + 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 - 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 + end + else + local.get $0 + i32.const 1572 + i32.add + local.get $1 + i32.gt_u + if 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 34292 - 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 + i32.const 1440 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + 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/itcms/visitRoots + (local $0 i32) + (local $1 i32) + global.get $logical/b + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $logical/c + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 1296 + call $~lib/rt/itcms/__visit + i32.const 1104 + 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 - 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.const 3 i32.ne if i32.const 0 i32.const 1168 - i32.const 229 - i32.const 20 + i32.const 160 + i32.const 16 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 34292 - 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 34292 - 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.set $1 - 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 1440 - 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 $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return + 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 - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state end - i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (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 $2 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1440 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - 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 - 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) - 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 - local.tee $1 - local.get $1 - 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 + (func $~lib/object/Object#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 1524 + i32.lt_s if - call $~lib/rt/tlsf/initialize + i32.const 34320 + i32.const 34368 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/tlsf/ROOT - local.tee $2 - call $~lib/rt/tlsf/searchBlock - local.tee $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 i32.eqz if - memory.size - 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.const 65563 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $3 - local.get $1 - 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 $2 - 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 $2 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1440 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 28 - i32.lt_u - if + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1440 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable + call $~lib/rt/itcms/__new + local.tee $0 + i32.store end - local.get $2 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.tee $3 - i32.const -4 - i32.and - i32.const 28 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $logical/Obj#constructor (result i32) + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.sub - local.tee $4 - i32.const 16 - i32.ge_u + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1524 + i32.lt_s if - local.get $1 - local.get $3 - i32.const 2 - i32.and - i32.const 28 - i32.or - i32.store - local.get $1 - i32.const 32 - i32.add - local.tee $3 - local.get $4 - i32.const 4 - i32.sub + i32.const 34320 + i32.const 34368 i32.const 1 - i32.or - i32.store - local.get $2 - local.get $3 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $3 - 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 + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.get $1 - local.get $0 - i32.store offset=12 - local.get $1 - i32.const 0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/rt/itcms/__new local.tee $0 - i32.load offset=8 - local.set $2 - local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - global.get $~lib/rt/itcms/white - i32.or - 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 local.get $0 - 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 + call $~lib/object/Object#constructor local.tee $0 - i32.const 0 - i32.const 0 - memory.fill + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $logical/C - block $logical/A - block $logical/B - block $logical/Obj - 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 $logical/Obj $logical/B $logical/A $logical/C $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - return - end - return - end - return - end - return - end - return + (func $logical/A#constructor (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 1524 + i32.lt_s + if + i32.const 34320 + i32.const 34368 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - unreachable + 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 + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/object/Object#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 ) (func $~start (local $0 i32) - (local $1 i32) - block $__inlined_func$start:logical + block $__inlined_func$start:logical$1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1513,19 +1364,17 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $logical/A#constructor local.tee $0 @@ -1545,201 +1394,335 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 7 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 - i32.store offset=4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $logical/A#constructor + local.tee $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 $logical/c + global.get $~lib/memory/__stack_pointer + global.get $logical/b + local.tee $0 + i32.store + global.get $logical/b + local.get $0 + global.get $logical/c + local.get $0 + select + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 114 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $logical/b + local.tee $0 + i32.store + global.get $logical/c + global.get $logical/c + local.get $0 + local.get $0 + select + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 120 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$start:logical$1 + end + i32.const 34320 + i32.const 34368 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + 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 34292 + 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 - local.get $0 - call $logical/A#constructor - local.tee $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 $logical/c - global.get $~lib/memory/__stack_pointer - global.get $logical/b - local.tee $0 - i32.store - local.get $0 - local.get $0 - global.get $logical/c - local.get $0 - select + i32.const 3 + i32.and i32.ne if i32.const 0 - i32.const 1056 - i32.const 106 - i32.const 1 + i32.const 1168 + i32.const 229 + i32.const 20 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - global.get $logical/b - local.tee $0 - i32.store - global.get $logical/c - local.tee $1 - local.get $0 local.get $0 - select - local.get $1 - i32.ne + i32.const 34292 + i32.lt_u if + local.get $0 i32.const 0 - i32.const 1056 - i32.const 112 - i32.const 1 - call $~lib/builtins/abort - unreachable + 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 34292 + 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 1440 + 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$start:logical + i32.const 10 + return end - i32.const 34320 - i32.const 34368 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - ) - (func $logical/Obj#constructor (result i32) - (local $0 i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1524 - i32.lt_s - if - i32.const 34320 - i32.const 34368 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/object/Object#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $logical/A#constructor (param $0 i32) (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 1524 - i32.lt_s - if - i32.const 34320 - i32.const 34368 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $0 - i32.eqz - if - local.get $1 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/object/Object#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/object/Object#constructor (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1524 - i32.lt_s - if - i32.const 34320 - i32.const 34368 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - local.get $1 + 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 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store + global.set $~lib/rt/itcms/state end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 ) ) diff --git a/tests/compiler/logical.ts b/tests/compiler/logical.ts index 62a26f9d66..a5943a4f3f 100644 --- a/tests/compiler/logical.ts +++ b/tests/compiler/logical.ts @@ -91,6 +91,14 @@ function testContextualBoolOr(someObj: Obj, someInt: i32): bool { } assert(testContextualBoolOr(new Obj(), 0)); +// Test simplification with precomputable LHS operands +// see: https://github.com/AssemblyScript/assemblyscript/issues/2946 + +export let foo = 123 && 456; +export let bar = -0.0 && 1.23; +export let baz = 321 || 654; +export let qux = NaN || 2.718; + // Common type class A {} diff --git a/tests/compiler/loop-flow.release.wat b/tests/compiler/loop-flow.release.wat index f6a91f814e..808ecef87a 100644 --- a/tests/compiler/loop-flow.release.wat +++ b/tests/compiler/loop-flow.release.wat @@ -22,17 +22,12 @@ (export "doAny" (func $loop-flow/doAny)) (export "memory" (memory $0)) (start $~start) - (func $loop-flow/whileReturn (result i32) - i32.const 1 - ) (func $loop-flow/whileAny (param $0 i32) (result i32) loop $while-continue|0 (result i32) local.get $0 i32.const 1 - i32.eq - if (result i32) - i32.const 1 - else + i32.ne + if local.get $0 i32.const 2 i32.eq @@ -48,16 +43,17 @@ end unreachable end + i32.const 1 end + drop + i32.const 1 ) (func $loop-flow/forAny (param $0 i32) (result i32) loop $for-loop|0 (result i32) local.get $0 i32.const 1 - i32.eq - if (result i32) - i32.const 1 - else + i32.ne + if local.get $0 i32.const 2 i32.eq @@ -71,16 +67,17 @@ end br $for-loop|0 end + i32.const 1 end + drop + i32.const 1 ) (func $loop-flow/doAny (param $0 i32) (result i32) loop $do-loop|0 (result i32) local.get $0 i32.const 1 - i32.eq - if (result i32) - i32.const 1 - else + i32.ne + if local.get $0 i32.const 2 i32.eq @@ -94,7 +91,21 @@ end br $do-loop|0 end + i32.const 1 end + drop + i32.const 1 + ) + (func $~start + i32.const 1 + call $loop-flow/whileAny + drop + i32.const 1 + call $loop-flow/forAny + drop + i32.const 1 + call $loop-flow/doAny + drop ) (func $loop-flow/whileThrow (result i32) i32.const 1104 @@ -104,6 +115,9 @@ call $~lib/builtins/abort unreachable ) + (func $loop-flow/whileReturn (result i32) + i32.const 1 + ) (func $loop-flow/whileContinue (result i32) loop $while-continue|0 br $while-continue|0 @@ -126,15 +140,4 @@ call $~lib/builtins/abort unreachable ) - (func $~start - i32.const 1 - call $loop-flow/whileAny - drop - i32.const 1 - call $loop-flow/forAny - drop - i32.const 1 - call $loop-flow/doAny - drop - ) ) diff --git a/tests/compiler/loop-wrap.release.wat b/tests/compiler/loop-wrap.release.wat index aeb624f5ba..ccb4934d40 100644 --- a/tests/compiler/loop-wrap.release.wat +++ b/tests/compiler/loop-wrap.release.wat @@ -6,10 +6,11 @@ (export "testFirstWrapped" (func $loop-wrap/testFirstWrapped)) (export "testSubsequentWrapped" (func $loop-wrap/testSubsequentWrapped)) (export "memory" (memory $0)) - (func $loop-wrap/testAlwaysWrapped - (local $0 i32) + (func $loop-wrap/testSubsequentWrapped (param $0 i32) loop $do-loop|0 local.get $0 + i32.const 255 + i32.and i32.const 10 i32.ne if @@ -42,11 +43,10 @@ end end ) - (func $loop-wrap/testSubsequentWrapped (param $0 i32) + (func $loop-wrap/testAlwaysWrapped + (local $0 i32) loop $do-loop|0 local.get $0 - i32.const 255 - i32.and i32.const 10 i32.ne if diff --git a/tests/compiler/managed-cast.debug.wat b/tests/compiler/managed-cast.debug.wat index 38367f2b11..1582c65137 100644 --- a/tests/compiler/managed-cast.debug.wat +++ b/tests/compiler/managed-cast.debug.wat @@ -1623,14 +1623,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 @@ -2327,12 +2330,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/managed-cast.release.wat b/tests/compiler/managed-cast.release.wat index 4db7c019f8..99e4fafa6f 100644 --- a/tests/compiler/managed-cast.release.wat +++ b/tests/compiler/managed-cast.release.wat @@ -1,8 +1,8 @@ (module - (type $0 (func)) - (type $1 (func (param i32))) - (type $2 (func (param i32 i32))) - (type $3 (func (result i32))) + (type $0 (func (param i32))) + (type $1 (func)) + (type $2 (func (result 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))) @@ -38,125 +38,435 @@ (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/rt/itcms/visitRoots + (func $managed-cast/Cat#constructor (result i32) (local $0 i32) (local $1 i32) - i32.const 1248 - 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 $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 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 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.ne + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1724 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz 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 + 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 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1724 + i32.lt_s + br_if $folding-inner0 + 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 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 + return end + i32.const 34512 + i32.const 34560 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/rt/itcms/__visit (param $0 i32) + (func $~lib/rt/itcms/step (result i32) + (local $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 + 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 - i32.const 1120 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable + 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 - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$137 - local.get $1 + 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.tee $0 - i32.eqz - if - local.get $1 - i32.load offset=8 - i32.eqz - local.get $1 - i32.const 34492 - i32.lt_u - i32.and - i32.eqz + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne if - i32.const 0 - i32.const 1120 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable + 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 - br $__inlined_func$~lib/rt/itcms/Object#unlink$137 end - local.get $1 - i32.load offset=8 - local.tee $2 - i32.eqz + 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 - i32.const 0 - i32.const 1120 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 34492 + 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 34492 + 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 34492 + 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/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 1120 + 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 34492 + 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$137 + end + local.get $1 + 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 $0 @@ -627,462 +937,266 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (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 $2 - local.get $1 - i64.extend_i32_u - i64.lt_u + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - i32.const 0 - i32.const 1392 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable + 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 - 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 + global.get $~lib/rt/tlsf/ROOT + i32.eqz if - local.get $3 + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if + i32.const 4 + local.get $2 + i32.load offset=1568 + memory.size + local.tee $1 + 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.set $3 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 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s if local.get $3 - i32.load - local.set $4 - local.get $5 - local.set $1 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end end - else - local.get $0 - i32.const 1572 - i32.add + local.get $2 local.get $1 - i32.gt_u + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz if i32.const 0 i32.const 1392 - i32.const 402 - i32.const 5 + i32.const 499 + i32.const 16 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.load + i32.const -4 + i32.and + i32.const 28 i32.lt_u if - return + i32.const 0 + i32.const 1392 + i32.const 501 + i32.const 14 + call $~lib/builtins/abort + unreachable end + local.get $2 local.get $1 - local.get $4 - i32.const 2 + call $~lib/rt/tlsf/removeBlock + local.get $1 + i32.load + local.tee $3 + i32.const -4 i32.and - local.get $3 - i32.const 8 + i32.const 28 i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store + local.tee $4 + i32.const 16 + i32.ge_u + if + local.get $1 + local.get $3 + i32.const 2 + i32.and + i32.const 28 + i32.or + i32.store + local.get $1 + i32.const 32 + i32.add + local.tee $3 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $2 + local.get $3 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + 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 0 - i32.store offset=4 + local.get $0 + i32.store offset=12 local.get $1 i32.const 0 - i32.store offset=8 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $0 + i32.load offset=8 + local.set $2 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 34496 - i32.const 0 - i32.store - i32.const 36064 - 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 34496 - 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 34496 - 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 34496 - i32.const 36068 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34496 - 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 34492 - 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 34492 - 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 34492 - 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.set $1 - 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 + global.get $~lib/rt/itcms/white + i32.or + 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 + local.get $0 + 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 $0 + i32.const 0 + i32.const 0 + memory.fill + local.get $0 + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $managed-cast/Animal + block $managed-cast/Cat + 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 $managed-cast/Cat $managed-cast/Animal $invalid + end + return + end + return end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock + return end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return end - i32.const 10 return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + unreachable ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -1141,274 +1255,277 @@ end end ) - (func $~lib/rt/itcms/__new (param $0 i32) (result i32) + (func $~lib/rt/tlsf/initialize + (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 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 $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 - local.tee $1 - local.get $1 - 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 $2 - call $~lib/rt/tlsf/searchBlock + memory.size local.tee $1 - i32.eqz - if - memory.size - local.tee $1 - i32.const 4 - local.get $2 - i32.load offset=1568 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 local.get $1 - 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 $3 - local.get $1 - local.get $3 - i32.gt_s - select memory.grow i32.const 0 i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 34496 + i32.const 0 + i32.store + i32.const 36064 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u if - local.get $3 - memory.grow + local.get $0 + i32.const 2 + i32.shl + i32.const 34496 + i32.add i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $2 - 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 $2 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if + i32.store offset=4 i32.const 0 - i32.const 1392 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable + 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 34496 + 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 34496 + i32.const 36068 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34496 + global.set $~lib/rt/tlsf/ROOT + ) + (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 - i32.load - i32.const -4 - i32.and - i32.const 28 - i32.lt_u + i64.extend_i32_u + i64.lt_u if i32.const 0 i32.const 1392 - i32.const 501 + i32.const 382 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $2 local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.tee $3 - i32.const -4 + i32.const 19 + i32.add + i32.const -16 i32.and - i32.const 28 + i32.const 4 i32.sub - local.tee $4 - i32.const 16 - i32.ge_u + local.set $1 + local.get $0 + i32.load offset=1568 + local.tee $3 if - local.get $1 local.get $3 - i32.const 2 - i32.and - i32.const 28 - i32.or - i32.store - local.get $1 - i32.const 32 - i32.add - local.tee $3 - local.get $4 i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $2 - local.get $3 - call $~lib/rt/tlsf/insertBlock - else + 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 - i32.const -2 - i32.and - i32.store local.get $1 - i32.const 4 + 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.load - i32.const -4 - i32.and - i32.add - local.tee $2 - local.get $2 - i32.load - i32.const -3 - i32.and - i32.store + 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 $1 - 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 $0 - i32.load offset=8 - 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 - i32.store offset=8 local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 + 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 $0 local.get $1 + i32.const 0 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 + local.get $3 i32.add - global.set $~lib/rt/itcms/total - local.get $1 - i32.const 20 - i32.add - local.tee $0 - i32.const 0 - i32.const 0 - memory.fill + 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/__visit_members (param $0 i32) - block $invalid - block $managed-cast/Animal - block $managed-cast/Cat - 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 $managed-cast/Cat $managed-cast/Animal $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - return + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1248 + 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 - return + 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 - return end - unreachable + ) + (func $managed-cast/testUpcastToNullable (param $0 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 1724 + i32.lt_s + if + i32.const 34512 + i32.const 34560 + 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 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~start (local $0 i32) @@ -1471,13 +1588,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -1495,10 +1611,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -1512,10 +1627,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -1547,25 +1661,17 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - block $__inlined_func$~instanceof|managed-cast/Cat$85 (result i32) - local.get $1 - local.get $0 - i32.store offset=4 - i32.const 0 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 4 - i32.ne - br_if $__inlined_func$~instanceof|managed-cast/Cat$85 - drop - i32.const 1 - end - i32.eqz + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 4 + i32.ne if i32.const 1648 i32.const 1584 @@ -1575,10 +1681,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -1596,41 +1701,33 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $__inlined_func$~instanceof|managed-cast/Cat$88 (result i32) - local.get $1 - local.get $0 - i32.store offset=4 - local.get $1 - local.get $0 - if (result i32) - local.get $0 - else - i32.const 1456 - i32.const 1584 - i32.const 36 - i32.const 9 - call $~lib/builtins/abort - unreachable - end - i32.store offset=8 - i32.const 0 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 4 - i32.ne - br_if $__inlined_func$~instanceof|managed-cast/Cat$88 - drop - i32.const 1 - end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.eqz + if + i32.const 1456 + i32.const 1584 + i32.const 36 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.store offset=8 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 4 + i32.ne if i32.const 1648 i32.const 1584 @@ -1640,10 +1737,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer @@ -1661,28 +1757,21 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $__inlined_func$~instanceof|managed-cast/Cat$91 (result i32) - local.get $1 - local.get $0 - i32.store - i32.const 0 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 4 - i32.ne - br_if $__inlined_func$~instanceof|managed-cast/Cat$91 - drop - i32.const 1 - end - i32.eqz + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 4 + i32.ne if i32.const 1648 i32.const 1584 @@ -1691,7 +1780,6 @@ call $~lib/builtins/abort unreachable end - local.get $1 local.get $0 i32.store offset=4 local.get $0 @@ -1718,15 +1806,15 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 if local.get $0 @@ -1747,7 +1835,6 @@ i32.const 0 local.set $0 end - local.get $1 local.get $0 i32.store offset=4 local.get $0 @@ -1808,140 +1895,4 @@ call $~lib/builtins/abort unreachable ) - (func $managed-cast/Cat#constructor (result i32) - (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 1724 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1724 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $0 - i32.eqz - if - local.get $2 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store offset=4 - local.get $2 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1724 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - local.get $3 - 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 $2 - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - 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 - return - end - i32.const 34512 - i32.const 34560 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $managed-cast/testUpcastToNullable (param $0 i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1724 - i32.lt_s - if - i32.const 34512 - i32.const 34560 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - local.get $0 - i32.store - local.get $0 - if - local.get $1 - local.get $0 - i32.store offset=4 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) ) diff --git a/tests/compiler/many-locals.release.wat b/tests/compiler/many-locals.release.wat index d6e24e0568..fc05e1dc8d 100644 --- a/tests/compiler/many-locals.release.wat +++ b/tests/compiler/many-locals.release.wat @@ -6,11 +6,11 @@ (export "testI32" (func $many-locals/testI32)) (export "testI8" (func $many-locals/testI8)) (export "memory" (memory $0)) - (func $many-locals/testI32 (param $0 i32) (result i32) - local.get $0 - ) (func $many-locals/testI8 (param $0 i32) (result i32) local.get $0 i32.extend8_s ) + (func $many-locals/testI32 (param $0 i32) (result i32) + local.get $0 + ) ) diff --git a/tests/compiler/memcpy.release.wat b/tests/compiler/memcpy.release.wat index b82c318426..1a27a0f799 100644 --- a/tests/compiler/memcpy.release.wat +++ b/tests/compiler/memcpy.release.wat @@ -1,6 +1,6 @@ (module - (type $0 (func (param i32 i32 i32) (result i32))) - (type $1 (func (param i32 i32 i32 i32))) + (type $0 (func (param i32 i32 i32 i32))) + (type $1 (func (param i32 i32 i32) (result i32))) (type $2 (func)) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $memcpy/dest (mut i32) (i32.const 0)) diff --git a/tests/compiler/memmove.release.wat b/tests/compiler/memmove.release.wat index 9c569cc378..ae5857e2d3 100644 --- a/tests/compiler/memmove.release.wat +++ b/tests/compiler/memmove.release.wat @@ -1,6 +1,6 @@ (module - (type $0 (func (param i32 i32 i32) (result i32))) - (type $1 (func (param i32 i32 i32 i32))) + (type $0 (func (param i32 i32 i32 i32))) + (type $1 (func (param i32 i32 i32) (result i32))) (type $2 (func)) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $memmove/dest (mut i32) (i32.const 0)) diff --git a/tests/compiler/memory.release.wat b/tests/compiler/memory.release.wat index 34b1695e66..aafefd95ad 100644 --- a/tests/compiler/memory.release.wat +++ b/tests/compiler/memory.release.wat @@ -16,6 +16,9 @@ (data $24 (i32.const 1216) "\01") (export "memory" (memory $0)) (start $~start) + (func $~start + call $start:memory + ) (func $start:memory (local $0 i32) i32.const 1024 @@ -73,10 +76,8 @@ global.get $memory/ptr i32.const 16 i32.add - local.set $0 i32.const 1104 global.set $memory/ptr - local.get $0 i32.const 1104 i32.ne if @@ -90,10 +91,8 @@ global.get $memory/ptr i32.const 8 i32.add - local.set $0 i32.const 1112 global.set $memory/ptr - local.get $0 i32.const 1112 i32.ne if @@ -107,10 +106,8 @@ global.get $memory/ptr i32.const 4 i32.add - local.set $0 i32.const 1116 global.set $memory/ptr - local.get $0 i32.const 1116 i32.ne if @@ -124,10 +121,8 @@ global.get $memory/ptr i32.const 2 i32.add - local.set $0 i32.const 1118 global.set $memory/ptr - local.get $0 i32.const 1118 i32.ne if @@ -141,10 +136,8 @@ global.get $memory/ptr i32.const 1 i32.add - local.set $0 i32.const 1119 global.set $memory/ptr - local.get $0 i32.const 1119 i32.ne if @@ -267,7 +260,4 @@ i32.const 1215 global.set $memory/ptr ) - (func $~start - call $start:memory - ) ) diff --git a/tests/compiler/memset.release.wat b/tests/compiler/memset.release.wat index 422cb7f274..4a0b59732f 100644 --- a/tests/compiler/memset.release.wat +++ b/tests/compiler/memset.release.wat @@ -1,6 +1,6 @@ (module - (type $0 (func (param i32 i32 i32))) - (type $1 (func (param i32 i32 i32 i32))) + (type $0 (func (param i32 i32 i32 i32))) + (type $1 (func (param i32 i32 i32))) (type $2 (func)) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $memset/dest (mut i32) (i32.const 0)) @@ -206,7 +206,7 @@ i32.const 1 i32.const 16 call $memset/memset - global.get $memset/dest + i32.const 33852 i32.load8_u i32.const 1 i32.ne diff --git a/tests/compiler/new.debug.wat b/tests/compiler/new.debug.wat index 8714ae4b69..f26b604fbe 100644 --- a/tests/compiler/new.debug.wat +++ b/tests/compiler/new.debug.wat @@ -1626,14 +1626,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 @@ -2317,12 +2320,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/new.release.wat b/tests/compiler/new.release.wat index 04863f286f..b952e13bf6 100644 --- a/tests/compiler/new.release.wat +++ b/tests/compiler/new.release.wat @@ -1,6 +1,6 @@ (module - (type $0 (func (result i32))) - (type $1 (func (param i32) (result i32))) + (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))) @@ -38,87 +38,6 @@ (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/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - global.get $new/ref - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $new/gen - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $new/ref2 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $new/genext - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $new/genext2 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $new/genext3 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 1248 - 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/__visit (param $0 i32) (local $1 i32) (local $2 i32) @@ -271,92 +190,364 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 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.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - i32.const 0 - i32.const 1392 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable + 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 - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u + global.get $~lib/rt/tlsf/ROOT + i32.eqz if - i32.const 0 - i32.const 1392 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable + call $~lib/rt/tlsf/initialize end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 + global.get $~lib/rt/tlsf/ROOT + local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if + i32.const 4 + local.get $2 + i32.load offset=1568 + memory.size + local.tee $1 + 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 - else - i32.const 31 - i32.const 1073741820 + local.set $3 + local.get $1 local.get $3 + local.get $1 local.get $3 - i32.const 1073741820 - i32.ge_u + i32.gt_s 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 + 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 $2 + local.get $1 i32.const 16 - i32.xor + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end end - local.tee $3 - i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u + local.get $1 + i32.load + i32.const -4 i32.and - i32.eqz + i32.const 28 + i32.lt_u if i32.const 0 i32.const 1392 - i32.const 284 + i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end + local.get $2 local.get $1 - i32.load offset=8 - local.set $5 + call $~lib/rt/tlsf/removeBlock local.get $1 - i32.load offset=4 + i32.load + local.tee $3 + i32.const -4 + i32.and + i32.const 28 + i32.sub local.tee $4 - if + i32.const 16 + i32.ge_u + if + local.get $1 + local.get $3 + i32.const 2 + i32.and + i32.const 28 + i32.or + i32.store + local.get $1 + i32.const 32 + i32.add + local.tee $3 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $2 + local.get $3 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + 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 + 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 $0 + i32.load offset=8 + 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 + 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 + local.get $0 + 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 $0 + i32.const 0 + i32.const 0 + memory.fill + local.get $0 + ) + (func $new/Gen#constructor (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 1476 + i32.lt_s + if + i32.const 34272 + i32.const 34320 + 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 + i32.eqz + if + 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 + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/object/Object#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (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 @@ -663,159 +854,290 @@ 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 + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $new/GenExt + block $new/ns.Ref + block $new/Gen + block $new/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 $new/Ref $new/Gen $new/ns.Ref $new/GenExt $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 + return end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 + unreachable + ) + (func $~lib/object/Object#constructor (param $0 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - local.tee $3 - i32.const 20 - i32.lt_u + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1476 + i32.lt_s if - return + i32.const 34272 + i32.const 34320 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable 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 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 - local.get $1 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + 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 - local.get $3 - i32.add - local.tee $3 - i32.const 2 + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $new/ns.Ref#constructor (result i32) + (local $0 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 1476 + i32.lt_s + if + i32.const 34272 + i32.const 34320 + 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 6 + call $~lib/rt/itcms/__new + local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $3 - i32.store offset=1568 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/object/Object#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock ) - (func $~lib/rt/tlsf/initialize + (func $new/Ref#constructor (result i32) (local $0 i32) - (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (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 1476 + i32.lt_s + if + i32.const 34272 + i32.const 34320 i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 + 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 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/object/Object#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $new/GenExt#constructor (result i32) + (local $0 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 1476 + i32.lt_s if + i32.const 34272 + i32.const 34320 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort unreachable end - i32.const 34256 - i32.const 0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $0 i32.store - i32.const 35824 - i32.const 0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $new/Gen#constructor + local.tee $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 34256 - i32.add - i32.const 0 - i32.store offset=4 - i32.const 0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $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 $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $1 + 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 $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 + i32.const 0 + end + end + ) + (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 34256 + i32.const 0 + i32.store + i32.const 35824 + 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 34256 + i32.add + i32.const 0 + i32.store offset=4 + i32.const 0 local.set $1 loop $for-loop|1 local.get $1 @@ -857,905 +1179,558 @@ i32.const 34256 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 + (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 - 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 + end + else + local.get $0 + i32.const 1572 + i32.add + local.get $1 + i32.gt_u + if 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 34244 - 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 + i32.const 1392 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + 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/itcms/visitRoots + (local $0 i32) + (local $1 i32) + global.get $new/ref + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $new/gen + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $new/ref2 + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $new/genext + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $new/genext2 + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $new/genext3 + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 1248 + 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 - 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.const 3 i32.ne if i32.const 0 i32.const 1120 - i32.const 229 - i32.const 20 + i32.const 160 + i32.const 16 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 34244 - 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 34244 - 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.set $1 - 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 $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return + 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 - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state end + ) + (func $~start + (local $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 1476 + i32.lt_s + if + 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.store + memory.size + i32.const 16 + i32.shl + i32.const 34244 + 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 $new/Ref#constructor + global.set $new/ref + call $new/Ref#constructor + global.set $new/ref + call $new/Ref#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + global.set $new/ref + i32.const 0 + call $new/Gen#constructor + global.set $new/gen + i32.const 0 + call $new/Gen#constructor + global.set $new/gen i32.const 0 + call $new/Gen#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + global.set $new/gen + call $new/ns.Ref#constructor + global.set $new/ref2 + call $new/ns.Ref#constructor + global.set $new/ref2 + call $new/ns.Ref#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + global.set $new/ref2 + call $new/GenExt#constructor + global.set $new/genext + call $new/GenExt#constructor + global.set $new/genext2 + call $new/GenExt#constructor + global.set $new/genext3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (func $~lib/rt/itcms/step (result i32) + (local $0 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 $2 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $1 - i32.eqz - if + 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 - i32.const 1392 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable + 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 - 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 - 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) - 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 + global.get $~lib/rt/itcms/white + i32.eqz 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 + 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 - 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 + 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 $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 end - global.get $~lib/rt/itcms/total - local.tee $1 - local.get $1 - 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 + 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 34244 + 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 - end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.tee $2 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - memory.size - 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 + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne - i32.shl - i32.const 65563 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $3 - local.get $1 - 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 + 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 34244 + 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 34244 + 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 - local.get $2 - 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 $2 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 28 - i32.lt_u - if + 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 - i32.const 1392 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable + global.set $~lib/rt/itcms/state end - local.get $2 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.tee $3 - i32.const -4 - i32.and - i32.const 28 - i32.sub - local.tee $4 - i32.const 16 - i32.ge_u - if - local.get $1 - local.get $3 - i32.const 2 - i32.and - i32.const 28 - i32.or - i32.store - local.get $1 - i32.const 32 - i32.add - local.tee $3 - local.get $4 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $2 - local.get $3 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $3 - 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 - 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 $0 - i32.load offset=8 - 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 - 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 - local.get $0 - 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 $0 - i32.const 0 i32.const 0 - memory.fill - local.get $0 - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $new/GenExt - block $new/ns.Ref - block $new/Gen - block $new/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 $new/Ref $new/Gen $new/ns.Ref $new/GenExt $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - return - end - return - end - return - end - return - end - return - end - unreachable - ) - (func $~start - (local $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 1476 - i32.lt_s - if - 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.store - memory.size - i32.const 16 - i32.shl - i32.const 34244 - 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 $new/Ref#constructor - global.set $new/ref - call $new/Ref#constructor - global.set $new/ref - call $new/Ref#constructor - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - global.set $new/ref - i32.const 0 - call $new/Gen#constructor - global.set $new/gen - i32.const 0 - call $new/Gen#constructor - global.set $new/gen - i32.const 0 - call $new/Gen#constructor - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - global.set $new/gen - call $new/ns.Ref#constructor - global.set $new/ref2 - call $new/ns.Ref#constructor - global.set $new/ref2 - call $new/ns.Ref#constructor - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - global.set $new/ref2 - call $new/GenExt#constructor - global.set $new/genext - call $new/GenExt#constructor - global.set $new/genext2 - call $new/GenExt#constructor - global.set $new/genext3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $new/Ref#constructor (result i32) - (local $0 i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1476 - i32.lt_s - if - i32.const 34272 - i32.const 34320 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/object/Object#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $new/Gen#constructor (param $0 i32) (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 1476 - i32.lt_s - if - i32.const 34272 - i32.const 34320 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $0 - i32.eqz - if - local.get $1 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/object/Object#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $new/ns.Ref#constructor (result i32) - (local $0 i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1476 - i32.lt_s - if - i32.const 34272 - i32.const 34320 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/object/Object#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $new/GenExt#constructor (result i32) - (local $0 i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1476 - i32.lt_s - if - i32.const 34272 - i32.const 34320 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - local.get $0 - call $new/Gen#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/object/Object#constructor (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1476 - i32.lt_s - if - i32.const 34272 - i32.const 34320 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - local.get $1 - 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 ) ) diff --git a/tests/compiler/number-convert.debug.wat b/tests/compiler/number-convert.debug.wat new file mode 100644 index 0000000000..b555a169ff --- /dev/null +++ b/tests/compiler/number-convert.debug.wat @@ -0,0 +1,157 @@ +(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:number-convert + i32.const 1 + f32.convert_i32_u + f32.const 1 + f32.eq + drop + i32.const 255 + f32.convert_i32_u + f32.const 255 + f32.eq + drop + i32.const 256 + i32.const 255 + i32.and + f32.convert_i32_u + f32.const 0 + f32.eq + drop + i32.const 257 + i32.const 255 + i32.and + f32.convert_i32_u + f32.const 1 + f32.eq + drop + i32.const 1 + f32.convert_i32_s + f32.const 1 + f32.eq + drop + i32.const 255 + i32.extend8_s + f32.convert_i32_s + f32.const -1 + f32.eq + drop + i32.const 256 + i32.extend8_s + f32.convert_i32_s + f32.const 0 + f32.eq + drop + i32.const 257 + i32.extend8_s + f32.convert_i32_s + f32.const 1 + f32.eq + drop + i32.const 1 + f32.convert_i32_u + f32.const 1 + f32.eq + drop + i32.const 65535 + f32.convert_i32_u + f32.const 65535 + f32.eq + drop + i32.const 65536 + i32.const 65535 + i32.and + f32.convert_i32_u + f32.const 0 + f32.eq + drop + i32.const 65537 + i32.const 65535 + i32.and + f32.convert_i32_u + f32.const 1 + f32.eq + drop + i32.const 1 + f32.convert_i32_s + f32.const 1 + f32.eq + drop + i32.const 65535 + i32.extend16_s + f32.convert_i32_s + f32.const -1 + f32.eq + drop + i32.const 65536 + i32.extend16_s + f32.convert_i32_s + f32.const 0 + f32.eq + drop + i32.const 65537 + i32.extend16_s + f32.convert_i32_s + f32.const 1 + f32.eq + drop + i32.const 1 + f64.convert_i32_u + f64.const 1 + f64.eq + drop + i32.const 255 + f64.convert_i32_u + f64.const 255 + f64.eq + drop + i32.const 256 + i32.const 255 + i32.and + f64.convert_i32_u + f64.const 0 + f64.eq + drop + i32.const 257 + i32.const 255 + i32.and + f64.convert_i32_u + f64.const 1 + f64.eq + drop + i32.const 1 + f64.convert_i32_s + f64.const 1 + f64.eq + drop + i32.const 255 + i32.extend8_s + f64.convert_i32_s + f64.const -1 + f64.eq + drop + i32.const 256 + i32.extend8_s + f64.convert_i32_s + f64.const 0 + f64.eq + drop + i32.const 257 + i32.extend8_s + f64.convert_i32_s + f64.const 1 + f64.eq + drop + ) + (func $~start + call $start:number-convert + ) +) diff --git a/tests/compiler/number-convert.json b/tests/compiler/number-convert.json new file mode 100644 index 0000000000..1bdd02b1be --- /dev/null +++ b/tests/compiler/number-convert.json @@ -0,0 +1,4 @@ +{ + "asc_flags": [ + ] +} diff --git a/tests/compiler/number-convert.release.wat b/tests/compiler/number-convert.release.wat new file mode 100644 index 0000000000..23da3862e2 --- /dev/null +++ b/tests/compiler/number-convert.release.wat @@ -0,0 +1,4 @@ +(module + (memory $0 0) + (export "memory" (memory $0)) +) diff --git a/tests/compiler/number-convert.ts b/tests/compiler/number-convert.ts new file mode 100644 index 0000000000..5eb4bc47f1 --- /dev/null +++ b/tests/compiler/number-convert.ts @@ -0,0 +1,29 @@ +assert((1) == 1); +assert((255) == 255); +assert((256) == 0); +assert((257) == 1); + +assert((1) == 1); +assert((255) == -1); +assert((256) == 0); +assert((257) == 1); + +assert((1) == 1); +assert((65535) == 65535); +assert((65536) == 0); +assert((65537) == 1); + +assert((1) == 1); +assert((65535) == -1); +assert((65536) == 0); +assert((65537) == 1); + +assert((1) == 1); +assert((255) == 255); +assert((256) == 0); +assert((257) == 1); + +assert((1) == 1); +assert((255) == -1); +assert((256) == 0); +assert((257) == 1); diff --git a/tests/compiler/number-warn.json b/tests/compiler/number-warn.json new file mode 100644 index 0000000000..d823d836bf --- /dev/null +++ b/tests/compiler/number-warn.json @@ -0,0 +1,18 @@ +{ + "asc_flags": [ + ], + "stderr": [ + "AS907: 'NaN' does not compare equal to any other value including itself. Use isNaN(x) instead.", + "AS907: 'NaN' does not compare equal to any other value including itself. Use isNaN(x) instead.", + "AS907: 'NaN' does not compare equal to any other value including itself. Use isNaN(x) instead.", + "AS907: 'NaN' does not compare equal to any other value including itself. Use isNaN(x) instead.", + "AS907: 'NaN' does not compare equal to any other value including itself. Use isNaN(x) instead.", + "AS907: 'NaN' does not compare equal to any other value including itself. Use isNaN(x) instead.", + "AS908: Comparison with -0.0 is sign insensitive. Use Object.is(x, -0.0) if the sign matters.", + "AS908: Comparison with -0.0 is sign insensitive. Use Object.is(x, -0.0) if the sign matters.", + "AS908: Comparison with -0.0 is sign insensitive. Use Object.is(x, -0.0) if the sign matters.", + "AS908: Comparison with -0.0 is sign insensitive. Use Object.is(x, -0.0) if the sign matters.", + "AS908: Comparison with -0.0 is sign insensitive. Use Object.is(x, -0.0) if the sign matters.", + "AS908: Comparison with -0.0 is sign insensitive. Use Object.is(x, -0.0) if the sign matters." + ] +} diff --git a/tests/compiler/number-warn.ts b/tests/compiler/number-warn.ts new file mode 100644 index 0000000000..4de4bc8205 --- /dev/null +++ b/tests/compiler/number-warn.ts @@ -0,0 +1,20 @@ + +// Should produce warnings + +// always false +(!(1.0 == NaN)); +(!(NaN == F32.NaN)); +(!(F64.NaN == 1.0)); + +// always true +(1.0 != NaN); +(NaN != F32.NaN); +(f64.NaN != 1.0); + +// always true +(+.0 == -.0); +(-.0 != -.0); +(-.0 == +.0); +(f32(+.0) == f32(-.0)); +(f32(-.0) != f32(-.0)); +(f32(-.0) == f32(+.0)); diff --git a/tests/compiler/number.debug.wat b/tests/compiler/number.debug.wat index c2bf156863..a6dc854df5 100644 --- a/tests/compiler/number.debug.wat +++ b/tests/compiler/number.debug.wat @@ -1,22 +1,23 @@ (module - (type $i32_i32_=>_none (func (param i32 i32))) - (type $i32_=>_i32 (func (param i32) (result i32))) - (type $i32_=>_none (func (param i32))) - (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) - (type $none_=>_none (func)) - (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) - (type $f64_=>_i32 (func (param f64) (result i32))) - (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) - (type $f32_=>_i32 (func (param f32) (result i32))) - (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) - (type $none_=>_i32 (func (result i32))) - (type $i32_i64_i32_=>_none (func (param i32 i64 i32))) - (type $i64_i32_=>_i32 (func (param i64 i32) (result i32))) - (type $i32_i64_i32_i32_=>_none (func (param i32 i64 i32 i32))) - (type $i32_i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32 i32) (result i32))) - (type $i32_i64_i32_i64_i32_i64_i32_=>_i32 (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) - (type $i32_f64_=>_i32 (func (param i32 f64) (result i32))) - (type $f64_i32_=>_i32 (func (param f64 i32) (result i32))) + (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) (result i32))) + (type $7 (func (param f32) (result i32))) + (type $8 (func (param i32 i32 i32 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 (param i32 i32 i32 i32))) (global $number/a (mut i32) (i32.const 1)) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) @@ -51,42 +52,42 @@ (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 3632)) - (global $~lib/memory/__data_end i32 (i32.const 3660)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 20044)) - (global $~lib/memory/__heap_base i32 (i32.const 20044)) + (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 (i32.const 12) "|\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00d\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00(\00)\00 \00r\00a\00d\00i\00x\00 \00a\00r\00g\00u\00m\00e\00n\00t\00 \00m\00u\00s\00t\00 \00b\00e\00 \00b\00e\00t\00w\00e\00e\00n\00 \002\00 \00a\00n\00d\00 \003\006\00\00\00\00\00\00\00\00\00") - (data (i32.const 140) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00n\00u\00m\00b\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") - (data (i32.const 204) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 236) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00A\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00\00\00\00\00") - (data (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 368) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 400) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 428) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00\00\00\00\00\00\00\00\00") - (data (i32.const 492) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") - (data (i32.const 544) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 572) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 636) "0\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\00") - (data (i32.const 1036) "\1c\04\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\04\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\000\00a\000\00b\000\00c\000\00d\000\00e\000\00f\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\001\00a\001\00b\001\00c\001\00d\001\00e\001\00f\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\002\00a\002\00b\002\00c\002\00d\002\00e\002\00f\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\003\00a\003\00b\003\00c\003\00d\003\00e\003\00f\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\004\00a\004\00b\004\00c\004\00d\004\00e\004\00f\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\005\00a\005\00b\005\00c\005\00d\005\00e\005\00f\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\006\00a\006\00b\006\00c\006\00d\006\00e\006\00f\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\007\00a\007\00b\007\00c\007\00d\007\00e\007\00f\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\008\00a\008\00b\008\00c\008\00d\008\00e\008\00f\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\009\00a\009\00b\009\00c\009\00d\009\00e\009\00f\00a\000\00a\001\00a\002\00a\003\00a\004\00a\005\00a\006\00a\007\00a\008\00a\009\00a\00a\00a\00b\00a\00c\00a\00d\00a\00e\00a\00f\00b\000\00b\001\00b\002\00b\003\00b\004\00b\005\00b\006\00b\007\00b\008\00b\009\00b\00a\00b\00b\00b\00c\00b\00d\00b\00e\00b\00f\00c\000\00c\001\00c\002\00c\003\00c\004\00c\005\00c\006\00c\007\00c\008\00c\009\00c\00a\00c\00b\00c\00c\00c\00d\00c\00e\00c\00f\00d\000\00d\001\00d\002\00d\003\00d\004\00d\005\00d\006\00d\007\00d\008\00d\009\00d\00a\00d\00b\00d\00c\00d\00d\00d\00e\00d\00f\00e\000\00e\001\00e\002\00e\003\00e\004\00e\005\00e\006\00e\007\00e\008\00e\009\00e\00a\00e\00b\00e\00c\00e\00d\00e\00e\00e\00f\00f\000\00f\001\00f\002\00f\003\00f\004\00f\005\00f\006\00f\007\00f\008\00f\009\00f\00a\00f\00b\00f\00c\00f\00d\00f\00e\00f\00f\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 2092) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00H\00\00\000\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\00\00\00\00\00") - (data (i32.const 2188) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\001\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 2220) ",\00\00\00\00\00\00\00\00\00\00\00\01\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 (i32.const 2268) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\000\00.\000\00\00\00\00\00\00\00") - (data (i32.const 2300) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00N\00a\00N\00\00\00\00\00\00\00") - (data (i32.const 2332) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 2380) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\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 (i32.const 2432) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 2488) "\88\02\1c\08\a0\d5\8f\fav\bf>\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\0dXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8\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 @@ -2445,8 +2577,6 @@ local.get $num local.get $b i64.ge_u - local.set $var$2 - local.get $var$2 if local.get $num local.get $b @@ -2467,8 +2597,6 @@ local.get $num i64.const 1 i64.ge_u - local.set $var$2 - local.get $var$2 if local.get $num local.get $b64 @@ -2484,10 +2612,12 @@ local.get $e i32.const 1 i32.sub + return ) (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) (local $base i64) - (local $var$5 i64) + (local $shift i64) + (local $mask i64) (local $q i64) local.get $radix i64.extend_i32_s @@ -2505,11 +2635,11 @@ i32.const 7 i32.and i64.extend_i32_s - local.set $var$5 + local.set $shift local.get $base i64.const 1 i64.sub - local.set $q + local.set $mask loop $do-loop|0 local.get $offset i32.const 1 @@ -2522,16 +2652,16 @@ i32.add i32.const 2112 local.get $num - local.get $q + local.get $mask i64.and i32.wrap_i64 i32.const 1 i32.shl i32.add - i32.load16_u $0 - i32.store16 $0 + i32.load16_u + i32.store16 local.get $num - local.get $var$5 + local.get $shift i64.shr_u local.set $num local.get $num @@ -2564,8 +2694,8 @@ i32.const 1 i32.shl i32.add - i32.load16_u $0 - i32.store16 $0 + i32.load16_u + i32.store16 local.get $q local.set $num local.get $num @@ -2579,19 +2709,25 @@ local.get $this local.get $radix 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 - i32.load $0 offset=16 + 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) - (local $var$7 i32) + (local $7 i32) (local $a i32) (local $b i32) local.get $str1 @@ -2629,9 +2765,9 @@ block $do-break|0 loop $do-loop|0 local.get $ptr1 - i64.load $0 + i64.load local.get $ptr2 - i64.load $0 + i64.load i64.ne if br $do-break|0 @@ -2657,19 +2793,17 @@ end loop $while-continue|1 local.get $len - local.tee $var$7 + local.tee $7 i32.const 1 i32.sub local.set $len - local.get $var$7 - local.set $var$7 - local.get $var$7 + local.get $7 if local.get $ptr1 - i32.load16_u $0 + i32.load16_u local.set $a local.get $ptr2 - i32.load16_u $0 + i32.load16_u local.set $b local.get $a local.get $b @@ -2692,48 +2826,7 @@ end end i32.const 0 - ) - (func $~lib/string/String.__eq (param $left i32) (param $right i32) (result i32) - (local $leftLength i32) - local.get $left - local.get $right - i32.eq - if - i32.const 1 - return - end - local.get $left - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $right - i32.const 0 - i32.eq - end - if - i32.const 0 - return - end - local.get $left - call $~lib/string/String#get:length - local.set $leftLength - local.get $leftLength - local.get $right - call $~lib/string/String#get:length - i32.ne - if - i32.const 0 - return - end - local.get $left - i32.const 0 - local.get $right - i32.const 0 - local.get $leftLength - call $~lib/util/string/compareImpl - i32.eqz + return ) (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) @@ -2744,19 +2837,28 @@ (local $p2 i64) (local $kappa i32) (local $len i32) - (local $var$15 i32) (local $d i32) - (local $var$17 i32) + (local $16 i32) + (local $17 i32) (local $tmp i64) - (local $var$19 i64) - (local $var$20 i64) - (local $var$21 i64) - (local $d_0 i64) - (local $var$23 i32) - (local $var$24 i32) - (local $var$25 i32) - (local $var$26 i32) - (local $var$27 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 @@ -2793,8 +2895,6 @@ local.get $kappa i32.const 0 i32.gt_s - local.set $var$15 - local.get $var$15 if block $break|1 block $case10|1 @@ -2809,44 +2909,44 @@ block $case1|1 block $case0|1 local.get $kappa - local.set $var$17 - local.get $var$17 + local.set $16 + local.get $16 i32.const 10 i32.eq br_if $case0|1 - local.get $var$17 + local.get $16 i32.const 9 i32.eq br_if $case1|1 - local.get $var$17 + local.get $16 i32.const 8 i32.eq br_if $case2|1 - local.get $var$17 + local.get $16 i32.const 7 i32.eq br_if $case3|1 - local.get $var$17 + local.get $16 i32.const 6 i32.eq br_if $case4|1 - local.get $var$17 + local.get $16 i32.const 5 i32.eq br_if $case5|1 - local.get $var$17 + local.get $16 i32.const 4 i32.eq br_if $case6|1 - local.get $var$17 + local.get $16 i32.const 3 i32.eq br_if $case7|1 - local.get $var$17 + local.get $16 i32.const 2 i32.eq br_if $case8|1 - local.get $var$17 + local.get $16 i32.const 1 i32.eq br_if $case9|1 @@ -2958,11 +3058,11 @@ if local.get $buffer local.get $len - local.tee $var$17 + local.tee $17 i32.const 1 i32.add local.set $len - local.get $var$17 + local.get $17 i32.const 1 i32.shl i32.add @@ -2971,7 +3071,7 @@ i32.const 65535 i32.and i32.add - i32.store16 $0 + i32.store16 end local.get $kappa i32.const 1 @@ -2994,88 +3094,86 @@ i32.add global.set $~lib/util/number/_K local.get $buffer - local.set $var$23 + local.set $buffer|19 local.get $len - local.set $var$17 + local.set $len|20 local.get $delta - local.set $d_0 + local.set $delta|21 local.get $tmp - local.set $var$21 + local.set $rest i32.const 3360 local.get $kappa i32.const 2 i32.shl i32.add - i64.load32_u $0 + i64.load32_u local.get $one_exp i64.extend_i32_s i64.shl - local.set $var$20 + local.set $ten_kappa local.get $wp_w_frc - local.set $var$19 - local.get $var$23 - local.get $var$17 + local.set $wp_w + local.get $buffer|19 + local.get $len|20 i32.const 1 i32.sub i32.const 1 i32.shl i32.add - local.set $var$24 - local.get $var$24 - i32.load16_u $0 - local.set $var$25 + local.set $lastp + local.get $lastp + i32.load16_u + local.set $digit loop $while-continue|3 - local.get $var$21 - local.get $var$19 + local.get $rest + local.get $wp_w i64.lt_u if (result i32) - local.get $d_0 - local.get $var$21 + local.get $delta|21 + local.get $rest i64.sub - local.get $var$20 + local.get $ten_kappa i64.ge_u else i32.const 0 end if (result i32) - local.get $var$21 - local.get $var$20 + local.get $rest + local.get $ten_kappa i64.add - local.get $var$19 + local.get $wp_w i64.lt_u if (result i32) i32.const 1 else - local.get $var$19 - local.get $var$21 + local.get $wp_w + local.get $rest i64.sub - local.get $var$21 - local.get $var$20 + local.get $rest + local.get $ten_kappa i64.add - local.get $var$19 + local.get $wp_w i64.sub i64.gt_u end else i32.const 0 end - local.set $var$26 - local.get $var$26 if - local.get $var$25 + local.get $digit i32.const 1 i32.sub - local.set $var$25 - local.get $var$21 - local.get $var$20 + local.set $digit + local.get $rest + local.get $ten_kappa i64.add - local.set $var$21 + local.set $rest br $while-continue|3 end end - local.get $var$24 - local.get $var$25 - i32.store16 $0 + local.get $lastp + local.get $digit + i32.store16 local.get $len return end @@ -3084,8 +3182,6 @@ end loop $while-continue|4 i32.const 1 - local.set $var$15 - local.get $var$15 if local.get $p2 i64.const 10 @@ -3099,8 +3195,8 @@ local.get $one_exp i64.extend_i32_s i64.shr_u - local.set $d_0 - local.get $d_0 + local.set $d|27 + local.get $d|27 local.get $len i64.extend_i32_s i64.or @@ -3109,21 +3205,21 @@ if local.get $buffer local.get $len - local.tee $var$25 + local.tee $28 i32.const 1 i32.add local.set $len - local.get $var$25 + local.get $28 i32.const 1 i32.shl i32.add i32.const 48 - local.get $d_0 + local.get $d|27 i32.wrap_i64 i32.const 65535 i32.and i32.add - i32.store16 $0 + i32.store16 end local.get $p2 local.get $mask @@ -3149,84 +3245,82 @@ i32.const 2 i32.shl i32.add - i64.load32_u $0 + i64.load32_u i64.mul local.set $wp_w_frc local.get $buffer - local.set $var$17 + local.set $buffer|29 local.get $len - local.set $var$26 + local.set $len|30 local.get $delta - local.set $var$27 + local.set $delta|31 local.get $p2 - local.set $var$21 + local.set $rest|32 local.get $one_frc - local.set $var$20 + local.set $ten_kappa|33 local.get $wp_w_frc - local.set $var$19 - local.get $var$17 - local.get $var$26 + local.set $wp_w|34 + local.get $buffer|29 + local.get $len|30 i32.const 1 i32.sub i32.const 1 i32.shl i32.add - local.set $var$25 - local.get $var$25 - i32.load16_u $0 - local.set $var$24 + local.set $lastp|35 + local.get $lastp|35 + i32.load16_u + local.set $digit|36 loop $while-continue|6 - local.get $var$21 - local.get $var$19 + local.get $rest|32 + local.get $wp_w|34 i64.lt_u if (result i32) - local.get $var$27 - local.get $var$21 + local.get $delta|31 + local.get $rest|32 i64.sub - local.get $var$20 + local.get $ten_kappa|33 i64.ge_u else i32.const 0 end if (result i32) - local.get $var$21 - local.get $var$20 + local.get $rest|32 + local.get $ten_kappa|33 i64.add - local.get $var$19 + local.get $wp_w|34 i64.lt_u if (result i32) i32.const 1 else - local.get $var$19 - local.get $var$21 + local.get $wp_w|34 + local.get $rest|32 i64.sub - local.get $var$21 - local.get $var$20 + local.get $rest|32 + local.get $ten_kappa|33 i64.add - local.get $var$19 + local.get $wp_w|34 i64.sub i64.gt_u end else i32.const 0 end - local.set $var$23 - local.get $var$23 if - local.get $var$24 + local.get $digit|36 i32.const 1 i32.sub - local.set $var$24 - local.get $var$21 - local.get $var$20 + local.set $digit|36 + local.get $rest|32 + local.get $ten_kappa|33 i64.add - local.set $var$21 + local.set $rest|32 br $while-continue|6 end end - local.get $var$25 - local.get $var$24 - i32.store16 $0 + local.get $lastp|35 + local.get $digit|36 + i32.store16 local.get $len return end @@ -3237,14 +3331,25 @@ ) (func $~lib/util/number/prettify (param $buffer i32) (param $length i32) (param $k i32) (result i32) (local $kk i32) - (local $var$4 i32) - (local $var$5 i32) - (local $var$6 i32) - (local $var$7 i32) - (local $var$8 i32) - (local $var$9 i32) - (local $var$10 i32) - (local $var$11 i32) + (local $i i32) + (local $ptr i32) + (local $offset i32) + (local $i|7 i32) + (local $buffer|8 i32) + (local $k|9 i32) + (local $sign i32) + (local $decimals i32) + (local $buffer|12 i32) + (local $num i32) + (local $offset|14 i32) + (local $len i32) + (local $buffer|16 i32) + (local $k|17 i32) + (local $sign|18 i32) + (local $decimals|19 i32) + (local $buffer|20 i32) + (local $num|21 i32) + (local $offset|22 i32) local.get $k i32.eqz if @@ -3258,7 +3363,7 @@ i32.const 16 i32.shl i32.or - i32.store $0 + i32.store local.get $length i32.const 2 i32.add @@ -3280,25 +3385,23 @@ end if local.get $length - local.set $var$4 + local.set $i loop $for-loop|0 - local.get $var$4 + local.get $i local.get $kk i32.lt_s - local.set $var$5 - local.get $var$5 if local.get $buffer - local.get $var$4 + local.get $i i32.const 1 i32.shl i32.add i32.const 48 - i32.store16 $0 - local.get $var$4 + i32.store16 + local.get $i i32.const 1 i32.add - local.set $var$4 + local.set $i br $for-loop|0 end end @@ -3312,7 +3415,7 @@ i32.const 16 i32.shl i32.or - i32.store $0 + i32.store local.get $kk i32.const 2 i32.add @@ -3334,24 +3437,24 @@ i32.const 1 i32.shl i32.add - local.set $var$4 - local.get $var$4 + local.set $ptr + local.get $ptr i32.const 2 i32.add - local.get $var$4 + local.get $ptr i32.const 0 local.get $k i32.sub i32.const 1 i32.shl - memory.copy $0 $0 + memory.copy local.get $buffer local.get $kk i32.const 1 i32.shl i32.add i32.const 46 - i32.store16 $0 + i32.store16 local.get $length i32.const 1 i32.add @@ -3371,9 +3474,9 @@ i32.const 2 local.get $kk i32.sub - local.set $var$4 + local.set $offset local.get $buffer - local.get $var$4 + local.get $offset i32.const 1 i32.shl i32.add @@ -3381,39 +3484,37 @@ local.get $length i32.const 1 i32.shl - memory.copy $0 $0 + memory.copy local.get $buffer i32.const 48 i32.const 46 i32.const 16 i32.shl i32.or - i32.store $0 + i32.store i32.const 2 - local.set $var$5 + local.set $i|7 loop $for-loop|1 - local.get $var$5 - local.get $var$4 + local.get $i|7 + local.get $offset i32.lt_s - local.set $var$6 - local.get $var$6 if local.get $buffer - local.get $var$5 + local.get $i|7 i32.const 1 i32.shl i32.add i32.const 48 - i32.store16 $0 - local.get $var$5 + i32.store16 + local.get $i|7 i32.const 1 i32.add - local.set $var$5 + local.set $i|7 br $for-loop|1 end end local.get $length - local.get $var$4 + local.get $offset i32.add return else @@ -3423,52 +3524,55 @@ if local.get $buffer i32.const 101 - i32.store16 $0 offset=2 - local.get $buffer - i32.const 4 - i32.add - local.set $var$5 - local.get $kk - i32.const 1 - i32.sub - local.set $var$6 - local.get $var$6 - i32.const 0 - i32.lt_s - local.set $var$4 - local.get $var$4 - if - i32.const 0 - local.get $var$6 + i32.store16 offset=2 + block $~lib/util/number/genExponent|inlined.0 (result i32) + local.get $buffer + i32.const 4 + i32.add + local.set $buffer|8 + local.get $kk + i32.const 1 i32.sub - local.set $var$6 + local.set $k|9 + local.get $k|9 + i32.const 0 + i32.lt_s + local.set $sign + local.get $sign + if + i32.const 0 + local.get $k|9 + i32.sub + local.set $k|9 + end + local.get $k|9 + call $~lib/util/number/decimalCount32 + i32.const 1 + i32.add + local.set $decimals + local.get $buffer|8 + local.set $buffer|12 + local.get $k|9 + local.set $num + local.get $decimals + local.set $offset|14 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|12 + local.get $num + local.get $offset|14 + call $~lib/util/number/utoa32_dec_lut + local.get $buffer|8 + i32.const 45 + i32.const 43 + local.get $sign + select + i32.store16 + local.get $decimals + br $~lib/util/number/genExponent|inlined.0 end - local.get $var$6 - call $~lib/util/number/decimalCount32 - i32.const 1 - i32.add - local.set $var$7 - local.get $var$5 - local.set $var$10 - local.get $var$6 - local.set $var$9 - local.get $var$7 - local.set $var$8 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $var$10 - local.get $var$9 - local.get $var$8 - call $~lib/util/number/utoa32_dec_lut - local.get $var$5 - i32.const 45 - i32.const 43 - local.get $var$4 - select - i32.store16 $0 - local.get $var$7 local.set $length local.get $length i32.const 2 @@ -3478,73 +3582,76 @@ local.get $length i32.const 1 i32.shl - local.set $var$7 + local.set $len local.get $buffer i32.const 4 i32.add local.get $buffer i32.const 2 i32.add - local.get $var$7 + local.get $len i32.const 2 i32.sub - memory.copy $0 $0 + memory.copy local.get $buffer i32.const 46 - i32.store16 $0 offset=2 + i32.store16 offset=2 local.get $buffer - local.get $var$7 + local.get $len i32.add i32.const 101 - i32.store16 $0 offset=2 + i32.store16 offset=2 local.get $length - local.get $buffer - local.get $var$7 - i32.add - i32.const 4 - i32.add - local.set $var$9 - local.get $kk - i32.const 1 - i32.sub - local.set $var$8 - local.get $var$8 - i32.const 0 - i32.lt_s - local.set $var$4 - local.get $var$4 - if - i32.const 0 - local.get $var$8 + block $~lib/util/number/genExponent|inlined.1 (result i32) + local.get $buffer + local.get $len + i32.add + i32.const 4 + i32.add + local.set $buffer|16 + local.get $kk + i32.const 1 i32.sub - local.set $var$8 + local.set $k|17 + local.get $k|17 + i32.const 0 + i32.lt_s + local.set $sign|18 + local.get $sign|18 + if + i32.const 0 + local.get $k|17 + i32.sub + local.set $k|17 + end + local.get $k|17 + call $~lib/util/number/decimalCount32 + i32.const 1 + i32.add + local.set $decimals|19 + local.get $buffer|16 + local.set $buffer|20 + local.get $k|17 + local.set $num|21 + local.get $decimals|19 + local.set $offset|22 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|20 + local.get $num|21 + local.get $offset|22 + call $~lib/util/number/utoa32_dec_lut + local.get $buffer|16 + i32.const 45 + i32.const 43 + local.get $sign|18 + select + i32.store16 + local.get $decimals|19 + br $~lib/util/number/genExponent|inlined.1 end - local.get $var$8 - call $~lib/util/number/decimalCount32 - i32.const 1 - i32.add - local.set $var$5 - local.get $var$9 - local.set $var$11 - local.get $var$8 - local.set $var$6 - local.get $var$5 - local.set $var$10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $var$11 - local.get $var$6 - local.get $var$10 - call $~lib/util/number/utoa32_dec_lut - local.get $var$9 - i32.const 45 - i32.const 43 - local.get $var$4 - select - i32.store16 $0 - local.get $var$5 i32.add local.set $length local.get $length @@ -3560,33 +3667,69 @@ end unreachable ) - (func $~lib/util/number/dtoa_core (param $buffer i32) (param $value f64) (result i32) + (func $~lib/util/number/dtoa_core (param $buffer i32) (param $value f64) (param $isSingle i32) (result i32) (local $sign i32) - (local $var$3 i32) - (local $var$4 i32) - (local $var$5 f64) - (local $var$6 i64) - (local $var$7 i32) - (local $var$8 i64) - (local $var$9 i64) - (local $var$10 i32) - (local $var$11 i64) - (local $var$12 i64) - (local $var$13 i32) - (local $var$14 i32) - (local $var$15 i32) - (local $var$16 f64) - (local $var$17 i64) - (local $var$18 i64) - (local $var$19 i64) - (local $var$20 i64) - (local $var$21 i64) - (local $var$22 i64) - (local $var$23 i64) - (local $var$24 i64) - (local $var$25 i64) - (local $var$26 i32) - (local $var$27 i64) + (local $value|4 f64) + (local $buffer|5 i32) + (local $sign|6 i32) + (local $isSingle|7 i32) + (local $frc i64) + (local $exp i32) + (local $uv i32) + (local $sid i32) + (local $uv|12 i64) + (local $sid|13 i64) + (local $f i64) + (local $e i32) + (local $isSingle|16 i32) + (local $frc|17 i64) + (local $exp|18 i32) + (local $off i32) + (local $m i32) + (local $minExp i32) + (local $dk f64) + (local $k i32) + (local $index i32) + (local $off|25 i32) + (local $frc_pow i64) + (local $exp_pow i32) + (local $u i64) + (local $v i64) + (local $u0 i64) + (local $v0 i64) + (local $u1 i64) + (local $v1 i64) + (local $l i64) + (local $t i64) + (local $w i64) + (local $w_frc i64) + (local $e1 i32) + (local $e2 i32) + (local $w_exp i32) + (local $u|41 i64) + (local $v|42 i64) + (local $u0|43 i64) + (local $v0|44 i64) + (local $u1|45 i64) + (local $v1|46 i64) + (local $l|47 i64) + (local $t|48 i64) + (local $w|49 i64) + (local $wp_frc i64) + (local $e1|51 i32) + (local $e2|52 i32) + (local $wp_exp i32) + (local $u|54 i64) + (local $v|55 i64) + (local $u0|56 i64) + (local $v0|57 i64) + (local $u1|58 i64) + (local $v1|59 i64) + (local $l|60 i64) + (local $t|61 i64) + (local $w|62 i64) + (local $wm_frc i64) + (local $delta i64) (local $len i32) local.get $value f64.const 0 @@ -3599,377 +3742,445 @@ local.set $value local.get $buffer i32.const 45 - i32.store16 $0 + i32.store16 + end + block $~lib/util/number/grisu2|inlined.0 (result i32) + local.get $value + local.set $value|4 + local.get $buffer + local.set $buffer|5 + local.get $sign + local.set $sign|6 + local.get $isSingle + local.set $isSingle|7 + local.get $isSingle|7 + if + local.get $value|4 + f32.demote_f64 + i32.reinterpret_f32 + local.set $uv + local.get $uv + i32.const 2139095040 + i32.and + i32.const 23 + i32.shr_u + local.set $exp + local.get $uv + i32.const 8388607 + i32.and + local.set $sid + local.get $exp + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 23 + i64.shl + local.get $sid + i64.extend_i32_u + i64.add + local.set $frc + local.get $exp + if (result i32) + local.get $exp + else + i32.const 1 + end + i32.const 127 + i32.const 23 + i32.add + i32.sub + local.set $exp + else + local.get $value|4 + i64.reinterpret_f64 + local.set $uv|12 + local.get $uv|12 + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.set $exp + local.get $uv|12 + i64.const 4503599627370495 + i64.and + local.set $sid|13 + local.get $exp + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 52 + i64.shl + local.get $sid|13 + i64.add + local.set $frc + local.get $exp + if (result i32) + local.get $exp + else + i32.const 1 + end + i32.const 1023 + i32.const 52 + i32.add + i32.sub + local.set $exp + end + local.get $frc + local.set $f + local.get $exp + local.set $e + local.get $isSingle|7 + local.set $isSingle|16 + local.get $f + i64.const 1 + i64.shl + i64.const 1 + i64.add + local.set $frc|17 + local.get $e + i32.const 1 + i32.sub + local.set $exp|18 + local.get $frc|17 + i64.clz + i32.wrap_i64 + local.set $off + local.get $frc|17 + local.get $off + i64.extend_i32_s + i64.shl + local.set $frc|17 + local.get $exp|18 + local.get $off + i32.sub + local.set $exp|18 + i32.const 1 + local.get $f + local.get $isSingle|16 + if (result i64) + i64.const 8388608 + else + i64.const 4503599627370496 + end + i64.eq + i32.add + local.set $m + local.get $frc|17 + global.set $~lib/util/number/_frc_plus + local.get $f + local.get $m + i64.extend_i32_s + i64.shl + i64.const 1 + i64.sub + local.get $e + local.get $m + i32.sub + local.get $exp|18 + i32.sub + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_minus + local.get $exp|18 + global.set $~lib/util/number/_exp + global.get $~lib/util/number/_exp + local.set $minExp + i32.const -61 + local.get $minExp + i32.sub + f64.convert_i32_s + f64.const 0.30102999566398114 + f64.mul + f64.const 347 + f64.add + local.set $dk + local.get $dk + i32.trunc_sat_f64_s + local.set $k + local.get $k + local.get $k + f64.convert_i32_s + local.get $dk + f64.ne + i32.add + local.set $k + local.get $k + i32.const 3 + i32.shr_s + i32.const 1 + i32.add + local.set $index + i32.const 348 + local.get $index + i32.const 3 + i32.shl + i32.sub + global.set $~lib/util/number/_K + i32.const 2488 + local.get $index + i32.const 3 + i32.shl + i32.add + i64.load + global.set $~lib/util/number/_frc_pow + i32.const 3184 + local.get $index + i32.const 1 + i32.shl + i32.add + i32.load16_s + global.set $~lib/util/number/_exp_pow + local.get $frc + i64.clz + i32.wrap_i64 + local.set $off|25 + local.get $frc + local.get $off|25 + i64.extend_i32_s + i64.shl + local.set $frc + local.get $exp + local.get $off|25 + i32.sub + local.set $exp + global.get $~lib/util/number/_frc_pow + local.set $frc_pow + global.get $~lib/util/number/_exp_pow + local.set $exp_pow + block $~lib/util/number/umul64f|inlined.0 (result i64) + local.get $frc + local.set $u + local.get $frc_pow + local.set $v + local.get $u + i64.const 4294967295 + i64.and + local.set $u0 + local.get $v + i64.const 4294967295 + i64.and + local.set $v0 + local.get $u + i64.const 32 + i64.shr_u + local.set $u1 + local.get $v + i64.const 32 + i64.shr_u + local.set $v1 + local.get $u0 + local.get $v0 + i64.mul + local.set $l + local.get $u1 + local.get $v0 + i64.mul + local.get $l + i64.const 32 + i64.shr_u + i64.add + local.set $t + local.get $u0 + local.get $v1 + i64.mul + local.get $t + i64.const 4294967295 + i64.and + i64.add + local.set $w + local.get $w + i64.const 2147483647 + i64.add + local.set $w + local.get $t + i64.const 32 + i64.shr_u + local.set $t + local.get $w + i64.const 32 + i64.shr_u + local.set $w + local.get $u1 + local.get $v1 + i64.mul + local.get $t + i64.add + local.get $w + i64.add + br $~lib/util/number/umul64f|inlined.0 + end + local.set $w_frc + block $~lib/util/number/umul64e|inlined.0 (result i32) + local.get $exp + local.set $e1 + local.get $exp_pow + local.set $e2 + local.get $e1 + local.get $e2 + i32.add + i32.const 64 + i32.add + br $~lib/util/number/umul64e|inlined.0 + end + local.set $w_exp + block $~lib/util/number/umul64f|inlined.1 (result i64) + global.get $~lib/util/number/_frc_plus + local.set $u|41 + local.get $frc_pow + local.set $v|42 + local.get $u|41 + i64.const 4294967295 + i64.and + local.set $u0|43 + local.get $v|42 + i64.const 4294967295 + i64.and + local.set $v0|44 + local.get $u|41 + i64.const 32 + i64.shr_u + local.set $u1|45 + local.get $v|42 + i64.const 32 + i64.shr_u + local.set $v1|46 + local.get $u0|43 + local.get $v0|44 + i64.mul + local.set $l|47 + local.get $u1|45 + local.get $v0|44 + i64.mul + local.get $l|47 + i64.const 32 + i64.shr_u + i64.add + local.set $t|48 + local.get $u0|43 + local.get $v1|46 + i64.mul + local.get $t|48 + i64.const 4294967295 + i64.and + i64.add + local.set $w|49 + local.get $w|49 + i64.const 2147483647 + i64.add + local.set $w|49 + local.get $t|48 + i64.const 32 + i64.shr_u + local.set $t|48 + local.get $w|49 + i64.const 32 + i64.shr_u + local.set $w|49 + local.get $u1|45 + local.get $v1|46 + i64.mul + local.get $t|48 + i64.add + local.get $w|49 + i64.add + br $~lib/util/number/umul64f|inlined.1 + end + i64.const 1 + i64.sub + local.set $wp_frc + block $~lib/util/number/umul64e|inlined.1 (result i32) + global.get $~lib/util/number/_exp + local.set $e1|51 + local.get $exp_pow + local.set $e2|52 + local.get $e1|51 + local.get $e2|52 + i32.add + i32.const 64 + i32.add + br $~lib/util/number/umul64e|inlined.1 + end + local.set $wp_exp + block $~lib/util/number/umul64f|inlined.2 (result i64) + global.get $~lib/util/number/_frc_minus + local.set $u|54 + local.get $frc_pow + local.set $v|55 + local.get $u|54 + i64.const 4294967295 + i64.and + local.set $u0|56 + local.get $v|55 + i64.const 4294967295 + i64.and + local.set $v0|57 + local.get $u|54 + i64.const 32 + i64.shr_u + local.set $u1|58 + local.get $v|55 + i64.const 32 + i64.shr_u + local.set $v1|59 + local.get $u0|56 + local.get $v0|57 + i64.mul + local.set $l|60 + local.get $u1|58 + local.get $v0|57 + i64.mul + local.get $l|60 + i64.const 32 + i64.shr_u + i64.add + local.set $t|61 + local.get $u0|56 + local.get $v1|59 + i64.mul + local.get $t|61 + i64.const 4294967295 + i64.and + i64.add + local.set $w|62 + local.get $w|62 + i64.const 2147483647 + i64.add + local.set $w|62 + local.get $t|61 + i64.const 32 + i64.shr_u + local.set $t|61 + local.get $w|62 + i64.const 32 + i64.shr_u + local.set $w|62 + local.get $u1|58 + local.get $v1|59 + i64.mul + local.get $t|61 + i64.add + local.get $w|62 + i64.add + br $~lib/util/number/umul64f|inlined.2 + end + i64.const 1 + i64.add + local.set $wm_frc + local.get $wp_frc + local.get $wm_frc + i64.sub + local.set $delta + local.get $buffer|5 + local.get $w_frc + local.get $w_exp + local.get $wp_frc + local.get $wp_exp + local.get $delta + local.get $sign|6 + call $~lib/util/number/genDigits + br $~lib/util/number/grisu2|inlined.0 end - local.get $value - local.set $var$5 - local.get $buffer - local.set $var$4 - local.get $sign - local.set $var$3 - local.get $var$5 - i64.reinterpret_f64 - local.set $var$6 - local.get $var$6 - i64.const 9218868437227405312 - i64.and - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.set $var$7 - local.get $var$6 - i64.const 4503599627370495 - i64.and - local.set $var$8 - local.get $var$7 - i32.const 0 - i32.ne - i64.extend_i32_u - i64.const 52 - i64.shl - local.get $var$8 - i64.add - local.set $var$9 - local.get $var$7 - i32.const 1 - local.get $var$7 - select - i32.const 1023 - i32.const 52 - i32.add - i32.sub - local.set $var$7 - local.get $var$9 - local.set $var$11 - local.get $var$7 - local.set $var$10 - local.get $var$11 - i64.const 1 - i64.shl - i64.const 1 - i64.add - local.set $var$12 - local.get $var$10 - i32.const 1 - i32.sub - local.set $var$13 - local.get $var$12 - i64.clz - i32.wrap_i64 - local.set $var$14 - local.get $var$12 - local.get $var$14 - i64.extend_i32_s - i64.shl - local.set $var$12 - local.get $var$13 - local.get $var$14 - i32.sub - local.set $var$13 - i32.const 1 - local.get $var$11 - i64.const 4503599627370496 - i64.eq - i32.add - local.set $var$15 - local.get $var$12 - global.set $~lib/util/number/_frc_plus - local.get $var$11 - local.get $var$15 - i64.extend_i32_s - i64.shl - i64.const 1 - i64.sub - local.get $var$10 - local.get $var$15 - i32.sub - local.get $var$13 - i32.sub - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_minus - local.get $var$13 - global.set $~lib/util/number/_exp - global.get $~lib/util/number/_exp - local.set $var$10 - i32.const -61 - local.get $var$10 - i32.sub - f64.convert_i32_s - f64.const 0.30102999566398114 - f64.mul - f64.const 347 - f64.add - local.set $var$16 - local.get $var$16 - i32.trunc_sat_f64_s - local.set $var$15 - local.get $var$15 - local.get $var$15 - f64.convert_i32_s - local.get $var$16 - f64.ne - i32.add - local.set $var$15 - local.get $var$15 - i32.const 3 - i32.shr_s - i32.const 1 - i32.add - local.set $var$14 - i32.const 348 - local.get $var$14 - i32.const 3 - i32.shl - i32.sub - global.set $~lib/util/number/_K - i32.const 2488 - local.get $var$14 - i32.const 3 - i32.shl - i32.add - i64.load $0 - global.set $~lib/util/number/_frc_pow - i32.const 3184 - local.get $var$14 - i32.const 1 - i32.shl - i32.add - i32.load16_s $0 - global.set $~lib/util/number/_exp_pow - local.get $var$9 - i64.clz - i32.wrap_i64 - local.set $var$14 - local.get $var$9 - local.get $var$14 - i64.extend_i32_s - i64.shl - local.set $var$9 - local.get $var$7 - local.get $var$14 - i32.sub - local.set $var$7 - global.get $~lib/util/number/_frc_pow - local.set $var$12 - global.get $~lib/util/number/_exp_pow - local.set $var$15 - local.get $var$9 - local.set $var$17 - local.get $var$12 - local.set $var$11 - local.get $var$17 - i64.const 4294967295 - i64.and - local.set $var$18 - local.get $var$11 - i64.const 4294967295 - i64.and - local.set $var$19 - local.get $var$17 - i64.const 32 - i64.shr_u - local.set $var$20 - local.get $var$11 - i64.const 32 - i64.shr_u - local.set $var$21 - local.get $var$18 - local.get $var$19 - i64.mul - local.set $var$22 - local.get $var$20 - local.get $var$19 - i64.mul - local.get $var$22 - i64.const 32 - i64.shr_u - i64.add - local.set $var$23 - local.get $var$18 - local.get $var$21 - i64.mul - local.get $var$23 - i64.const 4294967295 - i64.and - i64.add - local.set $var$24 - local.get $var$24 - i64.const 2147483647 - i64.add - local.set $var$24 - local.get $var$23 - i64.const 32 - i64.shr_u - local.set $var$23 - local.get $var$24 - i64.const 32 - i64.shr_u - local.set $var$24 - local.get $var$20 - local.get $var$21 - i64.mul - local.get $var$23 - i64.add - local.get $var$24 - i64.add - local.set $var$24 - local.get $var$7 - local.set $var$10 - local.get $var$15 - local.set $var$13 - local.get $var$10 - local.get $var$13 - i32.add - i32.const 64 - i32.add - local.set $var$10 - global.get $~lib/util/number/_frc_plus - local.set $var$17 - local.get $var$12 - local.set $var$11 - local.get $var$17 - i64.const 4294967295 - i64.and - local.set $var$23 - local.get $var$11 - i64.const 4294967295 - i64.and - local.set $var$22 - local.get $var$17 - i64.const 32 - i64.shr_u - local.set $var$21 - local.get $var$11 - i64.const 32 - i64.shr_u - local.set $var$20 - local.get $var$23 - local.get $var$22 - i64.mul - local.set $var$19 - local.get $var$21 - local.get $var$22 - i64.mul - local.get $var$19 - i64.const 32 - i64.shr_u - i64.add - local.set $var$18 - local.get $var$23 - local.get $var$20 - i64.mul - local.get $var$18 - i64.const 4294967295 - i64.and - i64.add - local.set $var$25 - local.get $var$25 - i64.const 2147483647 - i64.add - local.set $var$25 - local.get $var$18 - i64.const 32 - i64.shr_u - local.set $var$18 - local.get $var$25 - i64.const 32 - i64.shr_u - local.set $var$25 - local.get $var$21 - local.get $var$20 - i64.mul - local.get $var$18 - i64.add - local.get $var$25 - i64.add - i64.const 1 - i64.sub - local.set $var$25 - global.get $~lib/util/number/_exp - local.set $var$26 - local.get $var$15 - local.set $var$13 - local.get $var$26 - local.get $var$13 - i32.add - i32.const 64 - i32.add - local.set $var$26 - global.get $~lib/util/number/_frc_minus - local.set $var$17 - local.get $var$12 - local.set $var$11 - local.get $var$17 - i64.const 4294967295 - i64.and - local.set $var$18 - local.get $var$11 - i64.const 4294967295 - i64.and - local.set $var$19 - local.get $var$17 - i64.const 32 - i64.shr_u - local.set $var$20 - local.get $var$11 - i64.const 32 - i64.shr_u - local.set $var$21 - local.get $var$18 - local.get $var$19 - i64.mul - local.set $var$22 - local.get $var$20 - local.get $var$19 - i64.mul - local.get $var$22 - i64.const 32 - i64.shr_u - i64.add - local.set $var$23 - local.get $var$18 - local.get $var$21 - i64.mul - local.get $var$23 - i64.const 4294967295 - i64.and - i64.add - local.set $var$27 - local.get $var$27 - i64.const 2147483647 - i64.add - local.set $var$27 - local.get $var$23 - i64.const 32 - i64.shr_u - local.set $var$23 - local.get $var$27 - i64.const 32 - i64.shr_u - local.set $var$27 - local.get $var$20 - local.get $var$21 - i64.mul - local.get $var$23 - i64.add - local.get $var$27 - i64.add - i64.const 1 - i64.add - local.set $var$27 - local.get $var$25 - local.get $var$27 - i64.sub - local.set $var$23 - local.get $var$4 - local.get $var$24 - local.get $var$10 - local.get $var$25 - local.get $var$26 - local.get $var$23 - local.get $var$3 - call $~lib/util/number/genDigits local.set $len local.get $buffer local.get $sign @@ -3985,10 +4196,12 @@ local.get $len local.get $sign i32.add + return ) (func $~lib/number/F64#toString (param $this f64) (param $radix i32) (result i32) local.get $this - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa + return ) (func $~lib/number/Bool#toString (param $this i32) (param $radix i32) (result i32) local.get $this @@ -3997,6 +4210,7 @@ else i32.const 3616 end + return ) (func $~lib/number/F32.isSafeInteger (param $value f32) (result i32) local.get $value @@ -4011,6 +4225,7 @@ else i32.const 0 end + return ) (func $~lib/number/F32.isInteger (param $value f32) (result i32) local.get $value @@ -4026,6 +4241,7 @@ else i32.const 0 end + return ) (func $~lib/number/F64.isSafeInteger (param $value f64) (result i32) local.get $value @@ -4040,6 +4256,7 @@ else i32.const 0 end + return ) (func $~lib/number/F64.isInteger (param $value f64) (result i32) local.get $value @@ -4055,6 +4272,7 @@ else i32.const 0 end + return ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) @@ -4074,24 +4292,28 @@ (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 - i32.load $0 - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + 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 - local.get $0 - i32.const 8 - i32.sub - i32.load $0 - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid + 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 @@ -4112,28 +4334,125 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 20064 - i32.const 20112 + i32.const 36448 + i32.const 36496 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) + (func $~lib/string/String.__eq (param $left i32) (param $right i32) (result i32) + (local $leftLength 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 $left + local.get $right + i32.eq + if + i32.const 1 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + local.get $left + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $right + i32.const 0 + i32.eq + end + if + i32.const 0 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + local.get $left + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/string/String#get:length + local.set $leftLength + local.get $leftLength + local.get $right + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/string/String#get:length + i32.ne + if + i32.const 0 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + local.get $left + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + i32.const 0 + local.get $right + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + local.get $leftLength + call $~lib/util/string/compareImpl + i32.eqz + 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 $start:number (local $0 i32) - (local $1 f32) - (local $2 f64) - (local $3 i32) + (local $1 i32) + (local $2 f32) + (local $3 f64) + (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 - i64.const 0 - i64.store $0 - memory.size $0 + i32.const 0 + i32.store + memory.size i32.const 16 i32.shl global.get $~lib/memory/__heap_base @@ -4153,17 +4472,12 @@ global.get $number/a i32.const 10 call $~lib/number/I32#toString - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 - local.get $3 + local.get $4 + i32.store + local.get $4 i32.const 2208 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 offset=4 - local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -4177,17 +4491,12 @@ f64.const 2 i32.const 0 call $~lib/number/F64#toString - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 - local.get $3 + local.get $4 + i32.store + local.get $4 i32.const 3424 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 offset=4 - local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -4201,17 +4510,12 @@ i32.const 3 i32.const 10 call $~lib/number/I32#toString - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 - local.get $3 + local.get $4 + i32.store + local.get $4 i32.const 3456 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 offset=4 - local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -4225,17 +4529,12 @@ i32.const -5 i32.const 10 call $~lib/number/I32#toString - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 - local.get $3 + local.get $4 + i32.store + local.get $4 i32.const 3488 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 offset=4 - local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -4249,17 +4548,12 @@ i32.const 4 i32.const 10 call $~lib/number/I32#toString - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 - local.get $3 + local.get $4 + i32.store + local.get $4 i32.const 3520 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 offset=4 - local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -4277,17 +4571,12 @@ global.get $number/a i32.const 10 call $~lib/number/I32#toString - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 - local.get $3 + local.get $4 + i32.store + local.get $4 i32.const 3552 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 offset=4 - local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -4305,17 +4594,12 @@ global.get $number/a i32.const 10 call $~lib/number/I32#toString - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 - local.get $3 + local.get $4 + i32.store + local.get $4 i32.const 2208 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 offset=4 - local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -4330,17 +4614,12 @@ i32.eqz i32.const 0 call $~lib/number/Bool#toString - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 - local.get $3 + local.get $4 + i32.store + local.get $4 i32.const 3584 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 offset=4 - local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -4355,17 +4634,12 @@ i32.eqz i32.const 0 call $~lib/number/Bool#toString - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 - local.get $3 + local.get $4 + i32.store + local.get $4 i32.const 3616 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 offset=4 - local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -4384,17 +4658,12 @@ local.get $0 i32.const 10 call $~lib/number/I32#toString - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 - local.get $3 + local.get $4 + i32.store + local.get $4 i32.const 2208 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 offset=4 - local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -4406,24 +4675,19 @@ unreachable end global.get $number/a - local.tee $0 + local.tee $1 i32.const 1 i32.sub global.set $number/a - local.get $0 + local.get $1 i32.const 10 call $~lib/number/I32#toString - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 - local.get $3 + local.get $4 + i32.store + local.get $4 i32.const 3552 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 offset=4 - local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -4435,8 +4699,8 @@ unreachable end global.get $~lib/number/F32.NaN - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 f32.ne drop global.get $~lib/builtins/f32.MIN_SAFE_INTEGER @@ -4704,8 +4968,8 @@ unreachable end global.get $~lib/number/F64.NaN - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 f64.ne drop global.get $~lib/builtins/f64.MIN_SAFE_INTEGER @@ -4973,47 +5237,77 @@ unreachable end f64.const 1 - global.get $~lib/builtins/f32.NaN - f64.promote_f32 + f64.const nan:0x8000000000000 f64.eq i32.eqz drop + f64.const nan:0x8000000000000 global.get $~lib/number/F32.NaN - f32.const nan:0x400000 - f32.eq + f64.promote_f32 + f64.eq i32.eqz drop - f64.const nan:0x8000000000000 + global.get $~lib/number/F64.NaN f64.const 1 f64.eq i32.eqz drop f64.const 1 - global.get $~lib/builtins/f32.NaN - f64.promote_f32 + f64.const nan:0x8000000000000 f64.ne drop + f64.const nan:0x8000000000000 global.get $~lib/number/F32.NaN - f32.const nan:0x400000 - f32.ne + f64.promote_f32 + f64.ne drop - f64.const nan:0x8000000000000 + global.get $~lib/builtins/f64.NaN f64.const 1 f64.ne drop + f64.const 0 + f64.const -0 + f64.eq + drop + f64.const -0 + f64.const -0 + f64.eq + drop + f64.const -0 + f64.const 0 + f64.eq + drop + f32.const 0 + f32.const -0 + f32.eq + drop + f32.const -0 + f32.const -0 + f32.eq + drop + f32.const -0 + f32.const 0 + f32.eq + drop global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/itoa32 (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) + (func $~lib/util/number/itoa32 (param $value i32) (param $radix i32) (result i32) + (local $sign i32) + (local $out i32) + (local $decimals i32) + (local $buffer i32) + (local $num i32) + (local $offset i32) + (local $decimals|8 i32) + (local $buffer|9 i32) + (local $num|10 i32) + (local $offset|11 i32) + (local $val32 i32) + (local $decimals|13 i32) + (local $14 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -5021,14 +5315,14 @@ call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store $0 - local.get $1 + i32.store + local.get $radix i32.const 2 i32.lt_s if (result i32) i32.const 1 else - local.get $1 + local.get $radix i32.const 36 i32.gt_s end @@ -5040,151 +5334,154 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $value i32.eqz if i32.const 224 - local.set $8 + local.set $14 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $14 return end - local.get $0 + local.get $value i32.const 31 i32.shr_u i32.const 1 i32.shl - local.set $2 - local.get $2 + local.set $sign + local.get $sign if i32.const 0 - local.get $0 + local.get $value i32.sub - local.set $0 + local.set $value end - local.get $1 + local.get $radix i32.const 10 i32.eq if - local.get $0 + local.get $value call $~lib/util/number/decimalCount32 - local.set $4 + local.set $decimals global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $decimals i32.const 1 i32.shl - local.get $2 + local.get $sign i32.add - i32.const 1 + i32.const 2 call $~lib/rt/itcms/__new - local.tee $3 - i32.store $0 - local.get $3 - local.get $2 + local.tee $out + i32.store + local.get $out + local.get $sign i32.add - local.set $7 - local.get $0 - local.set $6 - local.get $4 - local.set $5 + local.set $buffer + local.get $value + local.set $num + local.get $decimals + local.set $offset i32.const 0 i32.const 1 i32.ge_s drop - local.get $7 - local.get $6 - local.get $5 + local.get $buffer + local.get $num + local.get $offset call $~lib/util/number/utoa32_dec_lut else - local.get $1 + local.get $radix i32.const 16 i32.eq if i32.const 31 - local.get $0 + local.get $value i32.clz i32.sub i32.const 2 i32.shr_s i32.const 1 i32.add - local.set $4 + local.set $decimals|8 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $decimals|8 i32.const 1 i32.shl - local.get $2 + local.get $sign i32.add - i32.const 1 + i32.const 2 call $~lib/rt/itcms/__new - local.tee $3 - i32.store $0 - local.get $3 - local.get $2 + local.tee $out + i32.store + local.get $out + local.get $sign i32.add - local.set $7 - local.get $0 - local.set $6 - local.get $4 - local.set $5 + local.set $buffer|9 + local.get $value + local.set $num|10 + local.get $decimals|8 + local.set $offset|11 i32.const 0 i32.const 1 i32.ge_s drop - local.get $7 - local.get $6 + local.get $buffer|9 + local.get $num|10 i64.extend_i32_u - local.get $5 + local.get $offset|11 call $~lib/util/number/utoa_hex_lut else - local.get $0 - local.set $4 - local.get $4 + local.get $value + local.set $val32 + local.get $val32 i64.extend_i32_u - local.get $1 + local.get $radix call $~lib/util/number/ulog_base - local.set $7 + local.set $decimals|13 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $decimals|13 i32.const 1 i32.shl - local.get $2 + local.get $sign i32.add - i32.const 1 + i32.const 2 call $~lib/rt/itcms/__new - local.tee $3 - i32.store $0 - local.get $3 - local.get $2 + local.tee $out + i32.store + local.get $out + local.get $sign i32.add - local.get $4 + local.get $val32 i64.extend_i32_u - local.get $7 - local.get $1 + local.get $decimals|13 + local.get $radix call $~lib/util/number/utoa64_any_core end end - local.get $2 + local.get $sign if - local.get $3 + local.get $out i32.const 45 - i32.store16 $0 + i32.store16 end - local.get $3 - local.set $8 + local.get $out + local.set $14 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $14 + return ) - (func $~lib/util/number/dtoa (param $0 f64) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) + (func $~lib/util/number/dtoa (param $value f64) (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 @@ -5192,76 +5489,67 @@ call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store $0 - local.get $0 - f64.const 0 - f64.eq - if - i32.const 2288 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return - end - local.get $0 - local.get $0 - f64.sub - f64.const 0 - f64.eq - i32.eqz - if - local.get $0 - local.get $0 - f64.ne + i32.store + block $~lib/util/number/dtoa_impl|inlined.0 (result i32) + local.get $value + local.set $value|1 + i32.const 0 + local.set $isSingle + local.get $value|1 + f64.const 0 + f64.eq if - i32.const 2320 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return + i32.const 2288 + br $~lib/util/number/dtoa_impl|inlined.0 end - i32.const 2352 - i32.const 2400 - local.get $0 + local.get $value|1 + local.get $value|1 + f64.sub f64.const 0 - f64.lt - select - local.set $3 + f64.eq + i32.eqz + if + local.get $value|1 + local.get $value|1 + f64.ne + if + i32.const 2320 + br $~lib/util/number/dtoa_impl|inlined.0 + end + i32.const 2352 + i32.const 2400 + local.get $value|1 + f64.const 0 + f64.lt + select + br $~lib/util/number/dtoa_impl|inlined.0 + end + i32.const 2432 + 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 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return + local.get $size + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $result + i32.store + local.get $result + i32.const 2432 + local.get $size + memory.copy + local.get $result + br $~lib/util/number/dtoa_impl|inlined.0 end - i32.const 2432 - local.get $0 - call $~lib/util/number/dtoa_core - i32.const 1 - i32.shl - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store $0 - local.get $2 - i32.const 2432 - local.get $1 - memory.copy $0 $0 - local.get $2 - local.set $3 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $5 + return ) ) diff --git a/tests/compiler/number.json b/tests/compiler/number.json index d823d836bf..1bdd02b1be 100644 --- a/tests/compiler/number.json +++ b/tests/compiler/number.json @@ -1,18 +1,4 @@ { "asc_flags": [ - ], - "stderr": [ - "AS907: 'NaN' does not compare equal to any other value including itself. Use isNaN(x) instead.", - "AS907: 'NaN' does not compare equal to any other value including itself. Use isNaN(x) instead.", - "AS907: 'NaN' does not compare equal to any other value including itself. Use isNaN(x) instead.", - "AS907: 'NaN' does not compare equal to any other value including itself. Use isNaN(x) instead.", - "AS907: 'NaN' does not compare equal to any other value including itself. Use isNaN(x) instead.", - "AS907: 'NaN' does not compare equal to any other value including itself. Use isNaN(x) instead.", - "AS908: Comparison with -0.0 is sign insensitive. Use Object.is(x, -0.0) if the sign matters.", - "AS908: Comparison with -0.0 is sign insensitive. Use Object.is(x, -0.0) if the sign matters.", - "AS908: Comparison with -0.0 is sign insensitive. Use Object.is(x, -0.0) if the sign matters.", - "AS908: Comparison with -0.0 is sign insensitive. Use Object.is(x, -0.0) if the sign matters.", - "AS908: Comparison with -0.0 is sign insensitive. Use Object.is(x, -0.0) if the sign matters.", - "AS908: Comparison with -0.0 is sign insensitive. Use Object.is(x, -0.0) if the sign matters." ] } diff --git a/tests/compiler/number.release.wat b/tests/compiler/number.release.wat index e609564afd..71d88ecec9 100644 --- a/tests/compiler/number.release.wat +++ b/tests/compiler/number.release.wat @@ -1,13 +1,14 @@ (module - (type $none_=>_none (func)) - (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) - (type $i32_i32_=>_none (func (param i32 i32))) - (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) - (type $i32_=>_i32 (func (param i32) (result i32))) - (type $i32_=>_none (func (param i32))) - (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) - (type $none_=>_i32 (func (result i32))) - (type $i64_i64_i32_i64_=>_i32 (func (param i64 i64 i32 i64) (result i32))) + (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 i32 i32 i32))) + (type $6 (func (param i32 i32 i32))) + (type $7 (func (param i32 i32 i64))) + (type $8 (func (param i64 i64 i32 i64) (result i32))) + (type $9 (func (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $number/a (mut i32) (i32.const 1)) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) @@ -23,441 +24,665 @@ (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 21068)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 37444)) (memory $0 1) - (data (i32.const 1036) "|") - (data (i32.const 1048) "\01\00\00\00d\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00(\00)\00 \00r\00a\00d\00i\00x\00 \00a\00r\00g\00u\00m\00e\00n\00t\00 \00m\00u\00s\00t\00 \00b\00e\00 \00b\00e\00t\00w\00e\00e\00n\00 \002\00 \00a\00n\00d\00 \003\006") - (data (i32.const 1164) "<") - (data (i32.const 1176) "\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00n\00u\00m\00b\00e\00r\00.\00t\00s") - (data (i32.const 1228) "\1c") - (data (i32.const 1240) "\01\00\00\00\02\00\00\000") - (data (i32.const 1260) "<") - (data (i32.const 1272) "\01\00\00\00(\00\00\00A\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e") - (data (i32.const 1324) "<") - (data (i32.const 1336) "\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data (i32.const 1452) "<") - (data (i32.const 1464) "\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data (i32.const 1516) ",") - (data (i32.const 1528) "\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data (i32.const 1596) "<") - (data (i32.const 1608) "\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data (i32.const 1660) "0\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009") - (data (i32.const 2060) "\1c\04") - (data (i32.const 2072) "\01\00\00\00\00\04\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\000\00a\000\00b\000\00c\000\00d\000\00e\000\00f\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\001\00a\001\00b\001\00c\001\00d\001\00e\001\00f\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\002\00a\002\00b\002\00c\002\00d\002\00e\002\00f\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\003\00a\003\00b\003\00c\003\00d\003\00e\003\00f\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\004\00a\004\00b\004\00c\004\00d\004\00e\004\00f\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\005\00a\005\00b\005\00c\005\00d\005\00e\005\00f\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\006\00a\006\00b\006\00c\006\00d\006\00e\006\00f\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\007\00a\007\00b\007\00c\007\00d\007\00e\007\00f\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\008\00a\008\00b\008\00c\008\00d\008\00e\008\00f\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\009\00a\009\00b\009\00c\009\00d\009\00e\009\00f\00a\000\00a\001\00a\002\00a\003\00a\004\00a\005\00a\006\00a\007\00a\008\00a\009\00a\00a\00a\00b\00a\00c\00a\00d\00a\00e\00a\00f\00b\000\00b\001\00b\002\00b\003\00b\004\00b\005\00b\006\00b\007\00b\008\00b\009\00b\00a\00b\00b\00b\00c\00b\00d\00b\00e\00b\00f\00c\000\00c\001\00c\002\00c\003\00c\004\00c\005\00c\006\00c\007\00c\008\00c\009\00c\00a\00c\00b\00c\00c\00c\00d\00c\00e\00c\00f\00d\000\00d\001\00d\002\00d\003\00d\004\00d\005\00d\006\00d\007\00d\008\00d\009\00d\00a\00d\00b\00d\00c\00d\00d\00d\00e\00d\00f\00e\000\00e\001\00e\002\00e\003\00e\004\00e\005\00e\006\00e\007\00e\008\00e\009\00e\00a\00e\00b\00e\00c\00e\00d\00e\00e\00e\00f\00f\000\00f\001\00f\002\00f\003\00f\004\00f\005\00f\006\00f\007\00f\008\00f\009\00f\00a\00f\00b\00f\00c\00f\00d\00f\00e\00f\00f") - (data (i32.const 3116) "\\") - (data (i32.const 3128) "\01\00\00\00H\00\00\000\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z") - (data (i32.const 3212) "\1c") - (data (i32.const 3224) "\01\00\00\00\02\00\00\001") - (data (i32.const 3244) ",") - (data (i32.const 3256) "\01\00\00\00\12\00\00\00n\00u\00m\00b\00e\00r\00.\00t\00s") - (data (i32.const 3292) "\1c") - (data (i32.const 3304) "\01\00\00\00\06\00\00\000\00.\000") - (data (i32.const 3324) "\1c") - (data (i32.const 3336) "\01\00\00\00\06\00\00\00N\00a\00N") - (data (i32.const 3356) ",") - (data (i32.const 3368) "\01\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y") - (data (i32.const 3404) ",") - (data (i32.const 3416) "\01\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y") - (data (i32.const 3512) "\88\02\1c\08\a0\d5\8f\fav\bf>\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\0dXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8\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 (param $a i32) (result i32) + (func $"optional-typeparameters/testConcrete" (param $a i32) (result i32) local.get $a return ) - (func $optional-typeparameters/testDerived (param $a i32) (result i32) + (func $"optional-typeparameters/testDerived" (param $a i32) (result i32) local.get $a return ) @@ -1634,14 +1634,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 @@ -2255,13 +2258,13 @@ local.get $ptr return ) - (func $optional-typeparameters/TestConcrete#test (param $this i32) (param $a i32) (param $b i32) (result i32) + (func $"optional-typeparameters/TestConcrete#test" (param $this i32) (param $a i32) (param $b i32) (result i32) local.get $a local.get $b i32.add return ) - (func $optional-typeparameters/TestDerived#test (param $this i32) (param $a f64) (param $b f64) (result f64) + (func $"optional-typeparameters/TestDerived#test" (param $this i32) (param $a f64) (param $b f64) (result f64) local.get $a local.get $b f64.add @@ -2317,12 +2320,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -2351,8 +2350,8 @@ block $optional-typeparameters/TestMethodDerived2 block $~lib/array/Array<~lib/string/String> block $optional-typeparameters/TestMethodDerived<~lib/string/String> - block $optional-typeparameters/TestDerived - block $optional-typeparameters/TestConcrete + block $"optional-typeparameters/TestDerived" + block $"optional-typeparameters/TestConcrete" block $~lib/arraybuffer/ArrayBufferView block $~lib/string/String block $~lib/arraybuffer/ArrayBuffer @@ -2361,7 +2360,7 @@ i32.const 8 i32.sub i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $optional-typeparameters/TestConcrete $optional-typeparameters/TestDerived $optional-typeparameters/TestMethodDerived<~lib/string/String> $~lib/array/Array<~lib/string/String> $optional-typeparameters/TestMethodDerived2 $invalid + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $"optional-typeparameters/TestConcrete" $"optional-typeparameters/TestDerived" $optional-typeparameters/TestMethodDerived<~lib/string/String> $~lib/array/Array<~lib/string/String> $optional-typeparameters/TestMethodDerived2 $invalid end return end @@ -2405,7 +2404,7 @@ unreachable end ) - (func $optional-typeparameters/TestConcrete#constructor (param $this i32) (result i32) + (func $"optional-typeparameters/TestConcrete#constructor" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -2443,7 +2442,7 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $optional-typeparameters/TestDerived#constructor (param $this i32) (result i32) + (func $"optional-typeparameters/TestDerived#constructor" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -2590,10 +2589,10 @@ i64.const 0 i64.store i32.const 1 - call $optional-typeparameters/testConcrete + call $"optional-typeparameters/testConcrete" drop i32.const 2 - call $optional-typeparameters/testDerived + call $"optional-typeparameters/testDerived" drop memory.size i32.const 16 @@ -2613,7 +2612,7 @@ call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace i32.const 0 - call $optional-typeparameters/TestConcrete#constructor + call $"optional-typeparameters/TestConcrete#constructor" global.set $optional-typeparameters/tConcrete global.get $optional-typeparameters/tConcrete local.set $0 @@ -2623,10 +2622,10 @@ local.get $0 i32.const 1 i32.const 2 - call $optional-typeparameters/TestConcrete#test + call $"optional-typeparameters/TestConcrete#test" drop i32.const 0 - call $optional-typeparameters/TestDerived#constructor + call $"optional-typeparameters/TestDerived#constructor" global.set $optional-typeparameters/tDerived global.get $optional-typeparameters/tDerived local.set $0 @@ -2636,7 +2635,7 @@ local.get $0 f64.const 1 f64.const 2 - call $optional-typeparameters/TestDerived#test + call $"optional-typeparameters/TestDerived#test" drop i32.const 0 call $optional-typeparameters/TestMethodDerived<~lib/string/String>#constructor diff --git a/tests/compiler/optional-typeparameters.release.wat b/tests/compiler/optional-typeparameters.release.wat index 3b0c029c9b..9dd537f30a 100644 --- a/tests/compiler/optional-typeparameters.release.wat +++ b/tests/compiler/optional-typeparameters.release.wat @@ -1,6 +1,6 @@ (module - (type $0 (func)) - (type $1 (func (param i32) (result i32))) + (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 i32 i32))) @@ -36,75 +36,6 @@ (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/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - global.get $optional-typeparameters/tConcrete - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $optional-typeparameters/tDerived - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $optional-typeparameters/tMethodDerived - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $optional-typeparameters/tMethodDerived2 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 1248 - 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/__visit (param $0 i32) (local $1 i32) (local $2 i32) @@ -257,90 +188,354 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 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.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - i32.const 0 - i32.const 1392 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable + 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 - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u + global.get $~lib/rt/tlsf/ROOT + i32.eqz if - i32.const 0 - i32.const 1392 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable + call $~lib/rt/tlsf/initialize end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 + global.get $~lib/rt/tlsf/ROOT + local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if + i32.const 4 + local.get $2 + i32.load offset=1568 + memory.size + local.tee $1 + 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 - else - i32.const 31 - i32.const 1073741820 + local.set $3 + local.get $1 local.get $3 + local.get $1 local.get $3 - i32.const 1073741820 - i32.ge_u + i32.gt_s 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 + 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 $2 + local.get $1 i32.const 16 - i32.xor + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end end - local.tee $3 - i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u + local.get $1 + i32.load + i32.const -4 i32.and - i32.eqz + i32.const 28 + i32.lt_u if i32.const 0 i32.const 1392 - i32.const 284 + i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end + local.get $2 local.get $1 - i32.load offset=8 - local.set $5 + call $~lib/rt/tlsf/removeBlock local.get $1 - i32.load offset=4 + i32.load + local.tee $3 + i32.const -4 + i32.and + i32.const 28 + i32.sub + local.tee $4 + i32.const 16 + i32.ge_u + if + local.get $1 + local.get $3 + i32.const 2 + i32.and + i32.const 28 + i32.or + i32.store + local.get $1 + i32.const 32 + i32.add + local.tee $3 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $2 + local.get $3 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + 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 + 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 $0 + i32.load offset=8 + 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 + 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 + local.get $0 + 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 $0 + i32.const 0 + i32.const 0 + memory.fill + local.get $0 + ) + (func $~lib/object/Object#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 1480 + i32.lt_s + if + 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.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + 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 + ) + (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 @@ -649,119 +844,168 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/rt/__visit_members (param $0 i32) + (local $1 i32) + (local $2 i32) (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 + block $invalid + block $optional-typeparameters/TestMethodDerived2 + block $~lib/array/Array<~lib/string/String> + block $optional-typeparameters/TestMethodDerived<~lib/string/String> + block $"optional-typeparameters/TestDerived" + block $"optional-typeparameters/TestConcrete" + 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 $"optional-typeparameters/TestConcrete" $"optional-typeparameters/TestDerived" $optional-typeparameters/TestMethodDerived<~lib/string/String> $~lib/array/Array<~lib/string/String> $optional-typeparameters/TestMethodDerived2 $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 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1480 + i32.lt_s + if + 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 1392 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable + 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 - 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 + unreachable + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock + 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 $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $1 + 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 $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 + i32.const 0 + end + end ) (func $~lib/rt/tlsf/initialize (local $0 i32) @@ -843,929 +1087,660 @@ i32.const 34256 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 + (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 - 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 34248 - 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 + i32.const 1392 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + 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/itcms/visitRoots + (local $0 i32) + (local $1 i32) + global.get $optional-typeparameters/tConcrete + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $optional-typeparameters/tDerived + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $optional-typeparameters/tMethodDerived + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $optional-typeparameters/tMethodDerived2 + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 1248 + 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 - 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.const 3 i32.ne if i32.const 0 i32.const 1120 - i32.const 229 - i32.const 20 + i32.const 160 + i32.const 16 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 34248 - 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 34248 - 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.set $1 - 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 $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (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 $2 - i32.const 2 - i32.shl + i32.const 20 i32.add - i32.load offset=4 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end + call $~lib/rt/__visit_members 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 - i32.const 0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|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) - 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 - local.tee $1 - local.get $1 - 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 $2 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if + (func $~start + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1480 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store memory.size - 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.const 34248 i32.sub - i32.ne - i32.shl - i32.const 65563 - i32.add - i32.const -65536 - i32.and - i32.const 16 + i32.const 1 i32.shr_u - local.tee $3 - local.get $1 - 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 $2 - 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 $2 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 28 - i32.lt_u - if - i32.const 0 - i32.const 1392 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.tee $3 - i32.const -4 - i32.and - i32.const 28 - i32.sub - local.tee $4 - i32.const 16 - i32.ge_u - if - local.get $1 - local.get $3 - i32.const 2 - i32.and - i32.const 28 - i32.or + global.set $~lib/rt/itcms/threshold + i32.const 1172 + i32.const 1168 i32.store - local.get $1 - i32.const 32 + 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 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 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/object/Object#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.tee $3 - local.get $4 + global.set $~lib/memory/__stack_pointer + local.get $0 + global.set $optional-typeparameters/tConcrete + global.get $~lib/memory/__stack_pointer + global.get $optional-typeparameters/tConcrete + 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 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 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/object/Object#constructor + local.tee $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 $optional-typeparameters/tDerived + global.get $~lib/memory/__stack_pointer + global.get $optional-typeparameters/tDerived + 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 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 6 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/object/Object#constructor + local.tee $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 $optional-typeparameters/tMethodDerived + global.get $~lib/memory/__stack_pointer + global.get $optional-typeparameters/tMethodDerived + 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 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 8 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/object/Object#constructor + local.tee $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 $optional-typeparameters/tMethodDerived2 + global.get $~lib/memory/__stack_pointer + global.get $optional-typeparameters/tMethodDerived2 + i32.store + global.get $~lib/memory/__stack_pointer + global.get $optional-typeparameters/tMethodDerived + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub - i32.const 1 - i32.or + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1480 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store - local.get $2 - local.get $3 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $3 - i32.const -2 - i32.and + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add - local.get $1 - i32.load - i32.const -4 - i32.and + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.tee $2 - local.get $2 - i32.load - i32.const -3 - i32.and - i32.store + global.set $~lib/memory/__stack_pointer + return end - local.get $1 - 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 $0 - i32.load offset=8 - 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 - 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 - local.get $0 - 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 $0 - i32.const 0 - i32.const 0 - memory.fill - local.get $0 + i32.const 34272 + i32.const 34320 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/rt/__visit_members (param $0 i32) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - block $invalid - block $optional-typeparameters/TestMethodDerived2 - block $~lib/array/Array<~lib/string/String> - block $optional-typeparameters/TestMethodDerived<~lib/string/String> - block $optional-typeparameters/TestDerived - block $optional-typeparameters/TestConcrete - 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 $optional-typeparameters/TestConcrete $optional-typeparameters/TestDerived $optional-typeparameters/TestMethodDerived<~lib/string/String> $~lib/array/Array<~lib/string/String> $optional-typeparameters/TestMethodDerived2 $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - return - end - return - end - return + 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 - 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 1480 - i32.lt_s - if - i32.const 34272 - i32.const 34320 - i32.const 1 i32.const 1 - call $~lib/builtins/abort - unreachable + 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/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 + global.get $~lib/rt/itcms/white + i32.eqz local.set $1 - local.get $2 - 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 + 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 - i32.load - local.tee $3 + local.get $0 + i32.load offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne if - local.get $3 - call $~lib/rt/itcms/__visit + 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 $1 - i32.const 4 - i32.add - local.set $1 - br $while-continue|0 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + 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 - end - return - end - unreachable - ) - (func $~start - (local $0 i32) - (local $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 1480 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - memory.size - i32.const 16 - i32.shl - i32.const 34248 - 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 - local.get $0 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1480 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/object/Object#constructor - local.tee $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 $optional-typeparameters/tConcrete - global.get $~lib/memory/__stack_pointer - global.get $optional-typeparameters/tConcrete - 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 1480 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/object/Object#constructor - local.tee $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 $optional-typeparameters/tDerived - global.get $~lib/memory/__stack_pointer - global.get $optional-typeparameters/tDerived - 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 1480 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/object/Object#constructor - local.tee $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 $optional-typeparameters/tMethodDerived - global.get $~lib/memory/__stack_pointer - global.get $optional-typeparameters/tMethodDerived - 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 1480 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 8 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/object/Object#constructor - local.tee $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 $optional-typeparameters/tMethodDerived2 - global.get $~lib/memory/__stack_pointer - global.get $optional-typeparameters/tMethodDerived2 - i32.store - global.get $~lib/memory/__stack_pointer - global.get $optional-typeparameters/tMethodDerived + 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 34248 + 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 34248 + 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 34248 + 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/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1480 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 i32.const 0 - i32.store - local.get $1 - local.get $0 - i32.store - local.get $1 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 34272 - i32.const 34320 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/object/Object#constructor (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1480 - i32.lt_s - if - i32.const 34272 - i32.const 34320 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.set $~lib/rt/itcms/state end - global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 - i32.store - local.get $0 - i32.eqz - if - local.get $1 - 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 ) ) diff --git a/tests/compiler/override-generic-mismatch.json b/tests/compiler/override-generic-mismatch.json new file mode 100644 index 0000000000..d719ccfd28 --- /dev/null +++ b/tests/compiler/override-generic-mismatch.json @@ -0,0 +1,8 @@ +{ + "asc_flags": [], + "stderr": [ + "AS242: Cannot override generic method 'foo' with a non-generic method or vice versa.", + "AS242: Cannot override generic method 'bar' with a non-generic method or vice versa.", + "EOF" + ] +} diff --git a/tests/compiler/override-generic-mismatch.ts b/tests/compiler/override-generic-mismatch.ts new file mode 100644 index 0000000000..1848d804b8 --- /dev/null +++ b/tests/compiler/override-generic-mismatch.ts @@ -0,0 +1,25 @@ +// Non-generic method overriding generic method +class A { + foo(x: T): void {} +} + +class B extends A { + foo(x: i32): void {} +} + +let a:A = new B(); +a.foo(1); + +// Generic method overriding non-generic method +class C { + bar(x: i32): void {} +} + +class D extends C { + bar(x: T): void {} +} + +let c:C = new D(); +c.bar(1); + +ERROR("EOF"); diff --git a/tests/compiler/override-typeparam-mismatch.json b/tests/compiler/override-typeparam-mismatch.json new file mode 100644 index 0000000000..2ad855dc11 --- /dev/null +++ b/tests/compiler/override-typeparam-mismatch.json @@ -0,0 +1,13 @@ +{ + "asc_flags": [], + "stderr": [ + "AS241: An interface or abstract method 'foo' cannot have type parameters.", + "AS241: An interface or abstract method 'baz' cannot have type parameters.", + "TS2515: Non-abstract class 'override-typeparam-mismatch/CC' does not implement inherited abstract member 'foo' from 'override-typeparam-mismatch/I'.", + "TS2515: Non-abstract class 'override-typeparam-mismatch/DD' does not implement inherited abstract member 'bar' from 'override-typeparam-mismatch/J'.", + "TS2515: Non-abstract class 'override-typeparam-mismatch/C2' does not implement inherited abstract member 'foo' from 'override-typeparam-mismatch/I2'.", + "TS2515: Non-abstract class 'override-typeparam-mismatch/FF' does not implement inherited abstract member 'baz' from 'override-typeparam-mismatch/A1'.", + "TS2515: Non-abstract class 'override-typeparam-mismatch/GG' does not implement inherited abstract member 'qux' from 'override-typeparam-mismatch/A2'.", + "EOF" + ] +} diff --git a/tests/compiler/override-typeparam-mismatch.ts b/tests/compiler/override-typeparam-mismatch.ts new file mode 100644 index 0000000000..4b882b6083 --- /dev/null +++ b/tests/compiler/override-typeparam-mismatch.ts @@ -0,0 +1,66 @@ +interface I { + foo(x: i32): i32; +} + +class CC implements I { + foo(x: i32): i32 { + return x; + } +} + +let c:I = new CC(); +c.foo(1); + +interface J { + bar(x: i32): i32; +} + +class DD implements J { + bar(x: i32): i32 { + return x; + } +} + +let dd:DD = new DD(); +dd.bar(1); + +interface I2 { + foo(x: i32): i32; +} + +class C2 implements I2 { + foo(x: i32): i32 { + return x; + } +} + +new C2().foo(1); + +// abstract method cannot be generic (AS241) +abstract class A1 { + abstract baz(x: i32): i32; +} + +class FF extends A1 { + baz(x: i32): i32 { + return x; + } +} + +new FF().baz(1); + +// generic method cannot implement non-generic abstract method (TS2515) +abstract class A2 { + abstract qux(x: i32): i32; +} + +class GG extends A2 { + qux(x: i32): i32 { + return x; + } +} + +let a: A2 = new GG(); +a.qux(1); + +ERROR("EOF"); diff --git a/tests/compiler/possibly-null.release.wat b/tests/compiler/possibly-null.release.wat index 95511ae52c..a187c01fee 100644 --- a/tests/compiler/possibly-null.release.wat +++ b/tests/compiler/possibly-null.release.wat @@ -8,82 +8,23 @@ (export "memory" (memory $0)) (export "testTrue" (func $export:possibly-null/testTrue)) (export "testFalseElse" (func $export:possibly-null/testTrue)) - (export "testFalseContinuation" (func $export:possibly-null/testTrue)) + (export "testFalseContinuation" (func $export:possibly-null/testNotNeNullContinuation)) (export "testNeNull" (func $export:possibly-null/testTrue)) (export "testEqNullElse" (func $export:possibly-null/testTrue)) - (export "testEqNullContinuation" (func $export:possibly-null/testTrue)) + (export "testEqNullContinuation" (func $export:possibly-null/testNotNeNullContinuation)) (export "testNotEqNull" (func $export:possibly-null/testTrue)) (export "testNotNeNullElse" (func $export:possibly-null/testTrue)) - (export "testNotNeNullContinuation" (func $export:possibly-null/testTrue)) + (export "testNotNeNullContinuation" (func $export:possibly-null/testNotNeNullContinuation)) (export "testWhile" (func $export:possibly-null/testWhile)) (export "testWhile2" (func $export:possibly-null/testWhile2)) (export "testWhile3" (func $export:possibly-null/testWhile3)) - (export "testLogicalAnd" (func $export:possibly-null/testLogicalAnd)) - (export "testLogicalOr" (func $export:possibly-null/testLogicalAnd)) - (export "testLogicalAndMulti" (func $export:possibly-null/testLogicalAndMulti)) - (export "testLogicalOrMulti" (func $export:possibly-null/testLogicalAndMulti)) + (export "testLogicalAnd" (func $export:possibly-null/testLogicalOr)) + (export "testLogicalOr" (func $export:possibly-null/testLogicalOr)) + (export "testLogicalAndMulti" (func $export:possibly-null/testLogicalOrMulti)) + (export "testLogicalOrMulti" (func $export:possibly-null/testLogicalOrMulti)) (export "testAssign" (func $export:possibly-null/testAssign)) (export "testNeverNull" (func $export:possibly-null/testTrue)) - (func $export:possibly-null/testTrue (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 1024 - i32.lt_s - if - i32.const 33824 - i32.const 33872 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store - local.get $1 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $export:possibly-null/testWhile (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 1024 - i32.lt_s - if - i32.const 33824 - i32.const 33872 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - loop $while-continue|0 - local.get $0 - if - i32.const 0 - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $export:possibly-null/testWhile2 (param $0 i32) (param $1 i32) - (local $2 i32) + (func $export:possibly-null/testWhile3 (param $0 i32) (param $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -94,13 +35,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -114,10 +54,14 @@ loop $while-continue|0 local.get $0 if - global.get $~lib/memory/__stack_pointer local.get $1 - local.tee $0 - i32.store + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + local.set $0 + end br $while-continue|0 end end @@ -138,8 +82,7 @@ call $~lib/builtins/abort unreachable ) - (func $export:possibly-null/testWhile3 (param $0 i32) (param $1 i32) - (local $2 i32) + (func $export:possibly-null/testWhile2 (param $0 i32) (param $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -150,13 +93,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -170,14 +112,10 @@ loop $while-continue|0 local.get $0 if + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - local.set $0 - end + local.tee $0 + i32.store br $while-continue|0 end end @@ -198,8 +136,119 @@ call $~lib/builtins/abort unreachable ) - (func $export:possibly-null/testLogicalAnd (param $0 i32) - (local $1 i32) + (func $export:possibly-null/testWhile (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 1024 + i32.lt_s + if + i32.const 33824 + i32.const 33872 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + loop $while-continue|0 + local.get $0 + if + i32.const 0 + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:possibly-null/testTrue (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 1024 + i32.lt_s + if + i32.const 33824 + i32.const 33872 + 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 + ) + (func $export:possibly-null/testNotNeNullContinuation (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 1024 + i32.lt_s + if + i32.const 33824 + i32.const 33872 + 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/testNotNeNullContinuation$24 + local.get $0 + i32.eqz + br_if $__inlined_func$possibly-null/testNotNeNullContinuation$24 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:possibly-null/testLogicalOrMulti (param $0 i32) (param $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 1024 + i32.lt_s + if + i32.const 33824 + i32.const 33872 + 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 + ) + (func $export:possibly-null/testLogicalOr (param $0 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -210,10 +259,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -222,12 +270,11 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store local.get $0 if - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store end @@ -248,37 +295,7 @@ call $~lib/builtins/abort unreachable ) - (func $export:possibly-null/testLogicalAndMulti (param $0 i32) (param $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 1024 - i32.lt_s - if - i32.const 33824 - i32.const 33872 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store - local.get $2 - local.get $1 - i32.store offset=4 - local.get $2 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) (func $export:possibly-null/testAssign (param $0 i32) (param $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -289,13 +306,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -304,13 +320,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/reexport.debug.wat b/tests/compiler/reexport.debug.wat index 627d155d23..9e784a9395 100644 --- a/tests/compiler/reexport.debug.wat +++ b/tests/compiler/reexport.debug.wat @@ -1667,14 +1667,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 @@ -2323,12 +2326,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/reexport.release.wat b/tests/compiler/reexport.release.wat index 18730c09fb..b6b81aebab 100644 --- a/tests/compiler/reexport.release.wat +++ b/tests/compiler/reexport.release.wat @@ -5,8 +5,8 @@ (type $3 (func (param i32 i32))) (type $4 (func (result i32))) (type $5 (func (param i32 i32 i32 i32))) - (type $6 (func (param i32 i32 i64))) - (type $7 (func (param i32) (result i32))) + (type $6 (func (param i32) (result i32))) + (type $7 (func (param i32 i32 i64))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $export/a i32 (i32.const 1)) (global $export/b i32 (i32.const 2)) @@ -51,67 +51,6 @@ (export "renamed_default" (func $export-default/theDefault)) (export "memory" (memory $0)) (start $~start) - (func $export/add (param $0 i32) (param $1 i32) (result i32) - local.get $0 - local.get $1 - i32.add - ) - (func $export/mul (param $0 i32) (param $1 i32) (result i32) - local.get $0 - local.get $1 - i32.mul - ) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - global.get $reexport/car - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 1296 - call $~lib/rt/itcms/__visit - i32.const 1104 - 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 1168 - 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) @@ -656,6 +595,176 @@ i32.or i32.store offset=4 ) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $exports/Car + 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 $exports/Car $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + return + end + unreachable + ) + (func $export/mul (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.mul + ) + (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 $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1440 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + 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 + i32.const 0 + end + end + ) + (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 34288 + i32.const 0 + i32.store + i32.const 35856 + 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 34288 + 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 34288 + 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 34288 + i32.const 35860 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34288 + global.set $~lib/rt/tlsf/ROOT + ) (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) (local $3 i32) (local $4 i32) @@ -770,85 +879,189 @@ local.get $1 call $~lib/rt/tlsf/insertBlock ) - (func $~lib/rt/tlsf/initialize + (func $~lib/rt/itcms/visitRoots (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 + global.get $reexport/car + local.tee $0 if - unreachable + local.get $0 + call $~lib/rt/itcms/__visit end - i32.const 34288 - i32.const 0 - i32.store - i32.const 35856 - i32.const 0 - i32.store - loop $for-loop|0 + i32.const 1296 + call $~lib/rt/itcms/__visit + i32.const 1104 + 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 - i32.const 23 - i32.lt_u + local.get $1 + i32.ne if local.get $0 - i32.const 2 - i32.shl - i32.const 34288 - i32.add - i32.const 0 - i32.store offset=4 - i32.const 0 - local.set $1 - loop $for-loop|1 - local.get $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1168 + i32.const 160 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 34288 - 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 + call $~lib/builtins/abort + unreachable end local.get $0 - i32.const 1 + 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 $for-loop|0 + br $while-continue|0 end end - i32.const 34288 - i32.const 35860 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34288 - global.set $~lib/rt/tlsf/ROOT + ) + (func $export/add (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) + (func $export-default/theDefault + ) + (func $~start + (local $0 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 1512 + 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 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 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + 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 + 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 2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + global.set $reexport/car + global.get $~lib/memory/__stack_pointer + global.get $reexport/car + 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 1512 + 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 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 40 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34304 + i32.const 34352 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) (func $~lib/rt/itcms/step (result i32) (local $0 i32) @@ -1060,7 +1273,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1093,7 +1305,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1102,74 +1313,16 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + 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 $2 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1440 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - 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 - i32.const 0 - end - end - ) (func $~lib/rt/itcms/__new (result i32) (local $0 i32) (local $1 i32) @@ -1191,12 +1344,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 @@ -1208,8 +1357,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1231,12 +1379,11 @@ local.tee $0 i32.eqz if - memory.size - local.tee $0 i32.const 4 local.get $1 i32.load offset=1568 - local.get $0 + memory.size + local.tee $0 i32.const 16 i32.shl i32.const 4 @@ -1249,7 +1396,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $2 + local.set $2 + local.get $0 + local.get $2 local.get $0 local.get $2 i32.gt_s @@ -1408,171 +1557,4 @@ local.get $1 i32.sub ) - (func $export-default/theDefault - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $exports/Car - 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 $exports/Car $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - return - end - return - end - unreachable - ) - (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 1512 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - 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 - local.get $0 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1512 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.store - local.get $1 - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.store - local.get $1 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - global.set $reexport/car - global.get $~lib/memory/__stack_pointer - global.get $reexport/car - 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 1512 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - local.get $0 - i32.store - local.get $0 - i32.load - local.set $0 - local.get $1 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 40 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 34304 - i32.const 34352 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) ) diff --git a/tests/compiler/rereexport.debug.wat b/tests/compiler/rereexport.debug.wat index f915695912..069f46a726 100644 --- a/tests/compiler/rereexport.debug.wat +++ b/tests/compiler/rereexport.debug.wat @@ -1660,14 +1660,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + drop global.get $~lib/rt/itcms/total - i64.extend_i32_u i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 + i32.const 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold @@ -2324,12 +2327,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/rereexport.release.wat b/tests/compiler/rereexport.release.wat index c9abba4c80..30e4698072 100644 --- a/tests/compiler/rereexport.release.wat +++ b/tests/compiler/rereexport.release.wat @@ -47,69 +47,6 @@ (export "renamed_default" (func $export-default/theDefault)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - global.get $rereexport/car - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $rereexport/exportsNamespaceCar - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 1296 - call $~lib/rt/itcms/__visit - i32.const 1104 - call $~lib/rt/itcms/__visit - global.get $reexport/car - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - 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 1168 - 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) @@ -654,127 +591,169 @@ 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 1440 - 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 1440 - 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 + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $exports/Car + 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 $exports/Car $invalid + end + return + end + return + end + return + end + local.get $0 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 1440 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable + call $~lib/rt/itcms/__visit + return end + return end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 + unreachable + ) + (func $exports/Car#get:numDoors (param $0 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - local.tee $3 - i32.const 20 - i32.lt_u + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1560 + i32.lt_s if - return + i32.const 34352 + i32.const 34400 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 + 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 + ) + (func $exports/Car#constructor (result i32) + (local $0 i32) + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1560 + i32.lt_s + if + i32.const 34352 + i32.const 34400 + 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 $0 i32.store - local.get $1 - i32.const 0 + global.get $~lib/memory/__stack_pointer + local.get $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 + local.get $0 i32.const 2 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $3 - i32.store offset=1568 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) - memory.size + (local $2 i32) + local.get $0 + i32.load offset=4 + i32.const -2 + i32.and local.tee $1 - i32.const 0 - i32.le_s + 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 $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1440 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + 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 + i32.const 0 + end + end + ) + (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 @@ -848,6 +827,313 @@ i32.const 34336 global.set $~lib/rt/tlsf/ROOT ) + (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 1440 + 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 1440 + 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 1440 + 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/itcms/visitRoots + (local $0 i32) + (local $1 i32) + global.get $rereexport/car + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $rereexport/exportsNamespaceCar + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 1296 + call $~lib/rt/itcms/__visit + i32.const 1104 + call $~lib/rt/itcms/__visit + global.get $reexport/car + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + 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 1168 + 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 $export-default/theDefault + ) + (func $~start + (local $0 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 1560 + 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 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1560 + 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 34328 + 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 + call $exports/Car#constructor + global.set $reexport/car + global.get $~lib/memory/__stack_pointer + global.get $reexport/car + local.tee $0 + i32.store + local.get $0 + call $exports/Car#get:numDoors + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 40 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + call $exports/Car#constructor + global.set $rereexport/car + global.get $~lib/memory/__stack_pointer + global.get $rereexport/car + local.tee $0 + i32.store + local.get $0 + call $exports/Car#get:numDoors + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1504 + i32.const 18 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + call $exports/Car#constructor + global.set $rereexport/exportsNamespaceCar + global.get $~lib/memory/__stack_pointer + global.get $rereexport/exportsNamespaceCar + local.tee $0 + i32.store + local.get $0 + call $exports/Car#get:numDoors + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1504 + i32.const 24 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34352 + i32.const 34400 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) (func $~lib/rt/itcms/step (result i32) (local $0 i32) (local $1 i32) @@ -1058,7 +1344,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1091,7 +1376,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1100,73 +1384,15 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + 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 $2 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1440 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - 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 - i32.const 0 - end + global.set $~lib/rt/itcms/state end + i32.const 0 ) (func $~lib/rt/itcms/__new (result i32) (local $0 i32) @@ -1189,12 +1415,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 @@ -1206,8 +1428,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1229,12 +1450,11 @@ local.tee $0 i32.eqz if - memory.size - local.tee $0 i32.const 4 local.get $1 i32.load offset=1568 - local.get $0 + memory.size + local.tee $0 i32.const 16 i32.shl i32.const 4 @@ -1247,7 +1467,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $2 + local.set $2 + local.get $0 + local.get $2 local.get $0 local.get $2 i32.gt_s @@ -1401,245 +1623,4 @@ i32.store align=1 local.get $0 ) - (func $export-default/theDefault - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $exports/Car - 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 $exports/Car $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - return - end - return - end - unreachable - ) - (func $~start - (local $0 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 1560 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1560 - 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 34328 - 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 - call $exports/Car#constructor - global.set $reexport/car - global.get $~lib/memory/__stack_pointer - global.get $reexport/car - local.tee $0 - i32.store - local.get $0 - call $exports/Car#get:numDoors - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 40 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - call $exports/Car#constructor - global.set $rereexport/car - global.get $~lib/memory/__stack_pointer - global.get $rereexport/car - local.tee $0 - i32.store - local.get $0 - call $exports/Car#get:numDoors - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1504 - i32.const 18 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - call $exports/Car#constructor - global.set $rereexport/exportsNamespaceCar - global.get $~lib/memory/__stack_pointer - global.get $rereexport/exportsNamespaceCar - local.tee $0 - i32.store - local.get $0 - call $exports/Car#get:numDoors - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1504 - i32.const 24 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 34352 - i32.const 34400 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $exports/Car#constructor (result i32) - (local $0 i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1560 - i32.lt_s - if - i32.const 34352 - i32.const 34400 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.store - local.get $1 - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.store - local.get $1 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $exports/Car#get:numDoors (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1560 - i32.lt_s - if - i32.const 34352 - i32.const 34400 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - local.get $0 - i32.store - local.get $0 - i32.load - local.set $0 - local.get $1 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) ) diff --git a/tests/compiler/resolve-access.debug.wat b/tests/compiler/resolve-access.debug.wat index 9c7b8ab2d7..a2176400d2 100644 --- a/tests/compiler/resolve-access.debug.wat +++ b/tests/compiler/resolve-access.debug.wat @@ -1642,14 +1642,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 @@ -2987,12 +2990,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -3147,9 +3146,8 @@ ) (func $resolve-access/arrayAccess (result i32) (local $0 i32) - (local $1 i32) (local $arr i32) - (local $3 i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3167,21 +3165,21 @@ local.tee $arr i32.store local.get $arr - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=4 - local.get $3 + local.get $2 i32.const 0 call $~lib/array/Array#__get i32.const 10 call $~lib/number/U64#toString - local.set $3 + 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 $resolve-access/Container#constructor (param $this i32) (result i32) diff --git a/tests/compiler/resolve-access.release.wat b/tests/compiler/resolve-access.release.wat index 405880f946..427ef20e2d 100644 --- a/tests/compiler/resolve-access.release.wat +++ b/tests/compiler/resolve-access.release.wat @@ -2,11 +2,11 @@ (type $0 (func (result i32))) (type $1 (func (param i32))) (type $2 (func)) - (type $3 (func (param i32 i32))) - (type $4 (func (param i32 i32) (result i32))) + (type $3 (func (param i32 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 $7 (func (param i32 i32 i32))) + (type $6 (func (param i32 i32 i32))) + (type $7 (func (param i32 i32 i64))) (type $8 (func (param i64) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) @@ -52,187 +52,6 @@ (export "propertyAccess" (func $resolve-access/propertyAccess)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1280 - call $~lib/rt/itcms/__visit - i32.const 1088 - call $~lib/rt/itcms/__visit - i32.const 2160 - call $~lib/rt/itcms/__visit - i32.const 3216 - 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 1152 - 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 1152 - 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$143 - 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 36096 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1152 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$143 - end - local.get $0 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1152 - 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 3296 - i32.load - i32.gt_u - if - i32.const 1280 - i32.const 1344 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.const 3300 - 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 @@ -257,330 +76,491 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (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.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + (local $6 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u if - i32.const 0 - i32.const 1424 - i32.const 268 - i32.const 14 + i32.const 1088 + i32.const 1152 + i32.const 261 + i32.const 31 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - i32.const 0 - i32.const 1424 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable + 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 - 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 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize end - local.tee $3 + global.get $~lib/rt/tlsf/ROOT + local.set $4 + local.get $0 i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u - i32.and - i32.eqz + i32.add + local.tee $2 + i32.const 1073741820 + i32.gt_u if - i32.const 0 + i32.const 1088 i32.const 1424 - i32.const 284 - i32.const 14 + i32.const 461 + i32.const 29 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 + 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.get $5 + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz if 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.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 + i32.load offset=1568 + memory.size + local.tee $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.set $3 + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s 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 + memory.grow + i32.const 0 + i32.lt_s if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - i32.rotl - i32.and - i32.store + 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 1424 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + 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 + local.get $5 + local.get $2 + i32.load + i32.const -4 + i32.and + i32.gt_u if i32.const 0 i32.const 1424 - i32.const 201 + i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 + local.get $2 + call $~lib/rt/tlsf/removeBlock + local.get $2 i32.load - local.tee $3 - i32.const 1 + local.set $6 + local.get $5 + i32.const 4 + i32.add + i32.const 15 i32.and - i32.eqz if i32.const 0 i32.const 1424 - i32.const 203 + i32.const 361 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load + local.get $6 i32.const -4 i32.and - i32.add - local.tee $4 - i32.load - local.tee $2 - i32.const 1 - i32.and + local.get $5 + i32.sub + local.tee $3 + i32.const 16 + i32.ge_u 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 + local.get $5 + local.get $6 + i32.const 2 + i32.and + i32.or i32.store - local.get $1 + local.get $2 i32.const 4 i32.add - local.get $1 + 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 $4 + local.tee $3 + local.get $3 i32.load - local.set $2 + 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.const 2 + i32.store offset=8 + local.get $3 + local.get $2 + local.get $3 + i32.load offset=4 + i32.const 3 i32.and - if + i32.or + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $2 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.tee $1 + i32.const 0 + local.get $0 + memory.fill + local.get $1 + ) + (func $~lib/util/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 4 - i32.sub - i32.load - local.tee $1 - i32.load - local.tee $6 - i32.const 1 - i32.and - i32.eqz + i32.const 10000 + i32.ge_u if - i32.const 0 - i32.const 1424 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable + local.get $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 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 + local.get $2 + i32.const 2 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + i32.add local.get $1 - call $~lib/rt/tlsf/removeBlock + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 1740 + i32.add + i32.load + i32.store local.get $1 - local.get $6 - i32.const 4 + 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 $3 - i32.const -4 - i32.and + local.get $1 + i32.const 2 + i32.shl + i32.const 1740 i32.add - local.tee $3 + 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 - local.get $4 - local.get $2 - i32.const 2 - i32.or - i32.store - local.get $3 - i32.const -4 + ) + (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 - local.tee $2 - i32.const 12 - i32.lt_u + i32.eqz if i32.const 0 i32.const 1424 - i32.const 233 + i32.const 268 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 + local.get $3 + i32.const -4 + i32.and + local.tee $3 + i32.const 12 + i32.lt_u if i32.const 0 i32.const 1424 - i32.const 234 + i32.const 270 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 + local.get $3 i32.const 256 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 4 i32.shr_u else i32.const 31 i32.const 1073741820 - local.get $2 - local.get $2 + local.get $3 + local.get $3 i32.const 1073741820 i32.ge_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.tee $3 + local.tee $4 i32.const 7 i32.sub - local.set $5 - local.get $2 + 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 $2 + local.tee $3 i32.const 16 i32.lt_u - local.get $5 + local.get $2 i32.const 23 i32.lt_u i32.and @@ -588,538 +568,508 @@ if i32.const 0 i32.const 1424 - i32.const 251 + i32.const 284 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 + i32.load offset=8 + local.set $5 local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 + i32.load offset=4 + local.tee $4 if - local.get $3 - local.get $1 + 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 $5 - i32.const 4 - i32.shl local.get $2 - i32.add - i32.const 2 + i32.const 4 i32.shl + local.get $3 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 + 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/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - local.get $2 + (local $6 i32) local.get $1 - i64.extend_i32_u - i64.lt_u + i32.eqz if i32.const 0 i32.const 1424 - i32.const 382 + i32.const 201 i32.const 14 call $~lib/builtins/abort unreachable end local.get $1 - i32.const 19 - i32.add - i32.const -16 + i32.load + local.tee $3 + i32.const 1 i32.and + i32.eqz + if + i32.const 0 + i32.const 1424 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 i32.const 4 - i32.sub - local.set $1 - local.get $0 - i32.load offset=1568 - local.tee $3 + 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.gt_u - if - i32.const 0 - i32.const 1424 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 + i32.const 4 + i32.add 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.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.gt_u + 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 1424 - i32.const 402 - i32.const 5 + 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.wrap_i64 - i32.const -16 + i32.const 2 + i32.or + i32.store + local.get $3 + i32.const -4 i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 + local.tee $2 + i32.const 12 i32.lt_u if - return + i32.const 0 + i32.const 1424 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable 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 + i32.const 4 + i32.add + local.get $2 + i32.add + i32.ne + if + i32.const 0 + i32.const 1424 + 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 1424 + 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 - local.tee $3 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 $3 - i32.store offset=1568 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.tee $0 local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) + (func $~lib/rt/itcms/Object#makeGray (param $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 + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq if - unreachable + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter end - i32.const 36096 - i32.const 0 - i32.store - i32.const 37664 - i32.const 0 - i32.store - loop $for-loop|0 + block $__inlined_func$~lib/rt/itcms/Object#unlink$143 local.get $0 - i32.const 23 - i32.lt_u + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz if local.get $0 - i32.const 2 - i32.shl + i32.load offset=8 + i32.eqz + local.get $0 i32.const 36096 - 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 36096 - 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 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 + br $__inlined_func$~lib/rt/itcms/Object#unlink$143 + end + local.get $0 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1152 + 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 - i32.const 36096 - i32.const 37668 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 36096 - 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 + 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 3296 + i32.load + i32.gt_u + if + i32.const 1280 + i32.const 1344 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 3300 + 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/__visit_members (param $0 i32) + block $invalid + block $resolve-access/Container + block $~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 $resolve-access/Container $invalid + end + return + end + return + end 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 36096 - 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 + i32.load + call $~lib/rt/itcms/__visit + return 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 + call $~lib/array/Array~visit + return end - global.get $~lib/rt/itcms/visitCount + local.get $0 + call $~lib/array/Array~visit 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 1152 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 36096 - 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 36096 - 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.set $1 - 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 1424 - 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 $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.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 + return + end + unreachable + ) + (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 @@ -1234,427 +1184,248 @@ 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 $~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 - i32.const 1088 - i32.const 1152 - i32.const 261 - i32.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 + i32.const 36096 + i32.const 0 + i32.store + i32.const 37664 + 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 36096 + 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 - 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 + local.get $0 + i32.const 4 + i32.shl + local.get $1 i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$69 + i32.const 2 + i32.shl + i32.const 36096 + 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 - local.get $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 end - global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl + local.get $0 + i32.const 1 i32.add - global.set $~lib/rt/itcms/threshold + local.set $0 + br $for-loop|0 end end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.set $4 - local.get $0 - i32.const 16 - i32.add - local.tee $2 - i32.const 1073741820 - i32.gt_u + i32.const 36096 + i32.const 37668 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 36096 + global.set $~lib/rt/tlsf/ROOT + ) + (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 1088 + i32.const 0 i32.const 1424 - i32.const 461 - i32.const 29 + i32.const 382 + i32.const 14 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 + 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 - 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 + local.get $3 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 + local.get $1 + i32.gt_u if - local.get $3 - memory.grow i32.const 0 - i32.lt_s - if - unreachable - end + i32.const 1424 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable end - local.get $4 - local.get $2 + 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 $4 - local.get $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz + 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 1424 - i32.const 499 - i32.const 16 + i32.const 402 + i32.const 5 call $~lib/builtins/abort unreachable end end - local.get $5 local.get $2 - i32.load - i32.const -4 + i32.wrap_i64 + i32.const -16 i32.and - i32.gt_u + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u if - i32.const 0 - i32.const 1424 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable + return end + local.get $1 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 1424 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const -4 + i32.const 2 i32.and - local.get $5 + local.get $3 + i32.const 8 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.const 1 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 + local.get $1 + i32.const 0 i32.store offset=4 local.get $1 - local.get $2 + i32.const 0 i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $2 - i32.load - i32.const -4 - i32.and + local.get $1 i32.const 4 i32.add + local.get $3 i32.add - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 local.get $0 - memory.fill local.get $1 + call $~lib/rt/tlsf/insertBlock ) - (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1280 + call $~lib/rt/itcms/__visit + i32.const 1088 + call $~lib/rt/itcms/__visit + i32.const 2160 + call $~lib/rt/itcms/__visit + i32.const 3216 + 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.const 10000 - i32.ge_u + i32.ne 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 1740 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1740 + i32.load offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1152 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 20 i32.add - i64.load32_u - i64.const 32 - i64.shl - i64.or - i64.store + 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 - 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 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) @@ -1677,14 +1448,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store block $__inlined_func$~lib/util/number/utoa64$73 local.get $0 i64.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -1908,7 +1678,6 @@ local.get $2 ) (func $~lib/array/Array~visit (param $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1925,10 +1694,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -1939,89 +1707,9 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $resolve-access/Container - block $~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 $resolve-access/Container $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - return - end - local.get $0 - call $~lib/array/Array~visit - return - end - local.get $0 - call $~lib/array/Array~visit - return - end - return - end - unreachable - ) - (func $~start - memory.size - i32.const 16 - i32.shl - i32.const 36096 - 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 - ) - (func $resolve-access/arrayAccess (result i32) + (func $resolve-access/Container#constructor (result i32) (local $0 i32) - (local $1 i64) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2032,10 +1720,19 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + 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 @@ -2044,193 +1741,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - i32.const 8 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $3 - i32.const 1056 - i64.load align=1 - i64.store align=1 - local.get $2 - local.get $3 - i32.store - i32.const 16 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $2 - local.get $3 - i32.store - local.get $3 - if - local.get $2 - i32.eqz - if - i32.const 0 - i32.const 1152 - i32.const 295 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/itcms/white - local.tee $4 - local.get $3 - i32.const 20 - i32.sub - local.tee $5 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $4 - i32.eqz - local.get $2 - i32.const 20 - i32.sub - i32.load offset=4 - i32.const 3 - i32.and - local.tee $4 - i32.eq - if - local.get $5 - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - local.get $4 - i32.const 3 - i32.eq - i32.and - if - local.get $5 - call $~lib/rt/itcms/Object#makeGray - end - end - end - end - local.get $2 - local.get $3 - i32.store offset=4 - local.get $2 - i32.const 8 - i32.store offset=8 - local.get $2 - i32.const 1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - 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 3328 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - local.get $2 - i32.store - local.get $2 - i32.load offset=12 - i32.eqz - if - i32.const 1280 - i32.const 1488 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $2 - i32.store - local.get $2 - i32.load offset=4 - i64.load - local.set $1 - local.get $0 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - call $~lib/number/U64#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36128 - i32.const 36176 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $resolve-access/Container#constructor (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 - global.get $~lib/memory/__stack_pointer - i32.const 3328 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 8 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - 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-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 call $~lib/rt/itcms/__new @@ -2241,7 +1757,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -2264,49 +1779,299 @@ call $~lib/builtins/abort unreachable ) - (func $resolve-access/fieldAccess (result i32) - (local $0 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 + (func $~start + memory.size + i32.const 16 + i32.shl + i32.const 36096 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 - local.tee $0 - i64.const 0 - i64.store - local.get $0 - call $resolve-access/Container#constructor - local.tee $0 + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1204 + i32.const 1200 i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i64.const 1 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i64.load - call $~lib/number/U64#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + 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 + ) + (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 36096 + 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 1152 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 36096 + 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 36096 + 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 1424 + 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 $resolve-access/propertyAccess (result i32) (local $0 i32) @@ -2322,10 +2087,9 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer call $resolve-access/Container#constructor local.tee $0 i32.store @@ -2347,17 +2111,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i64.load i32.wrap_i64 - local.set $1 - local.get $2 + local.set $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -2370,14 +2133,13 @@ i32.lt_s br_if $folding-inner1 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 + local.get $2 i32.eqz if - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -2386,53 +2148,53 @@ br $__inlined_func$~lib/util/number/utoa32$74 end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $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 end end - local.tee $2 + local.tee $1 i32.const 1 i32.shl i32.const 2 @@ -2440,8 +2202,8 @@ local.tee $0 i32.store local.get $0 - local.get $1 local.get $2 + local.get $1 call $~lib/util/number/utoa32_dec_lut global.get $~lib/memory/__stack_pointer i32.const 4 @@ -2462,4 +2224,209 @@ call $~lib/builtins/abort unreachable ) + (func $resolve-access/fieldAccess (result i32) + (local $0 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 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 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + call $resolve-access/Container#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const 1 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.load + call $~lib/number/U64#toString + 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) + (local $1 i32) + (local $2 i64) + (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 3328 + 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 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3328 + 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 8 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $4 + i32.const 1056 + i64.load align=1 + i64.store align=1 + local.get $4 + i32.store + i32.const 16 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $3 + local.get $4 + i32.store + local.get $4 + if + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 295 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/white + local.get $4 + i32.const 20 + i32.sub + local.tee $5 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $3 + i32.const 20 + i32.sub + i32.load offset=4 + i32.const 3 + i32.and + local.tee $1 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $5 + call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + local.get $1 + i32.const 3 + i32.eq + i32.and + if + local.get $5 + call $~lib/rt/itcms/Object#makeGray + end + end + end + end + local.get $3 + local.get $4 + i32.store offset=4 + local.get $3 + i32.const 8 + i32.store offset=8 + local.get $3 + i32.const 1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + 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 3328 + 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 $3 + i32.store + local.get $3 + i32.load offset=12 + i32.eqz + if + i32.const 1280 + i32.const 1488 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + i32.load offset=4 + i64.load + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + call $~lib/number/U64#toString + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 36128 + i32.const 36176 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) ) diff --git a/tests/compiler/resolve-binary.debug.wat b/tests/compiler/resolve-binary.debug.wat index 2bf97efe4c..d10576390f 100644 --- a/tests/compiler/resolve-binary.debug.wat +++ b/tests/compiler/resolve-binary.debug.wat @@ -15,7 +15,7 @@ (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) (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 (param i32 i32 i32 i32))) @@ -1862,14 +1862,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 @@ -4727,26 +4730,30 @@ end unreachable ) - (func $~lib/util/number/dtoa_core (param $buffer i32) (param $value f64) (result i32) + (func $~lib/util/number/dtoa_core (param $buffer i32) (param $value f64) (param $isSingle i32) (result i32) (local $sign i32) - (local $value|3 f64) - (local $buffer|4 i32) - (local $sign|5 i32) - (local $uv i64) - (local $exp i32) - (local $sid i64) + (local $value|4 f64) + (local $buffer|5 i32) + (local $sign|6 i32) + (local $isSingle|7 i32) (local $frc i64) + (local $exp i32) + (local $uv i32) + (local $sid i32) + (local $uv|12 i64) + (local $sid|13 i64) (local $f i64) (local $e i32) - (local $frc|12 i64) - (local $exp|13 i32) + (local $isSingle|16 i32) + (local $frc|17 i64) + (local $exp|18 i32) (local $off i32) (local $m i32) (local $minExp i32) (local $dk f64) (local $k i32) (local $index i32) - (local $off|20 i32) + (local $off|25 i32) (local $frc_pow i64) (local $exp_pow i32) (local $u i64) @@ -4762,28 +4769,28 @@ (local $e1 i32) (local $e2 i32) (local $w_exp i32) - (local $u|36 i64) - (local $v|37 i64) - (local $u0|38 i64) - (local $v0|39 i64) - (local $u1|40 i64) - (local $v1|41 i64) - (local $l|42 i64) - (local $t|43 i64) - (local $w|44 i64) + (local $u|41 i64) + (local $v|42 i64) + (local $u0|43 i64) + (local $v0|44 i64) + (local $u1|45 i64) + (local $v1|46 i64) + (local $l|47 i64) + (local $t|48 i64) + (local $w|49 i64) (local $wp_frc i64) - (local $e1|46 i32) - (local $e2|47 i32) + (local $e1|51 i32) + (local $e2|52 i32) (local $wp_exp i32) - (local $u|49 i64) - (local $v|50 i64) - (local $u0|51 i64) - (local $v0|52 i64) - (local $u1|53 i64) - (local $v1|54 i64) - (local $l|55 i64) - (local $t|56 i64) - (local $w|57 i64) + (local $u|54 i64) + (local $v|55 i64) + (local $u0|56 i64) + (local $v0|57 i64) + (local $u1|58 i64) + (local $v1|59 i64) + (local $l|60 i64) + (local $t|61 i64) + (local $w|62 i64) (local $wm_frc i64) (local $delta i64) (local $len i32) @@ -4802,77 +4809,127 @@ end block $~lib/util/number/grisu2|inlined.0 (result i32) local.get $value - local.set $value|3 + local.set $value|4 local.get $buffer - local.set $buffer|4 + local.set $buffer|5 local.get $sign - local.set $sign|5 - local.get $value|3 - i64.reinterpret_f64 - local.set $uv - local.get $uv - i64.const 9218868437227405312 - i64.and - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.set $exp - local.get $uv - i64.const 4503599627370495 - i64.and - local.set $sid - local.get $exp - i32.const 0 - i32.ne - i64.extend_i32_u - i64.const 52 - i64.shl - local.get $sid - i64.add - local.set $frc - local.get $exp - i32.const 1 - local.get $exp - select - i32.const 1023 - i32.const 52 - i32.add - i32.sub - local.set $exp + local.set $sign|6 + local.get $isSingle + local.set $isSingle|7 + local.get $isSingle|7 + if + local.get $value|4 + f32.demote_f64 + i32.reinterpret_f32 + local.set $uv + local.get $uv + i32.const 2139095040 + i32.and + i32.const 23 + i32.shr_u + local.set $exp + local.get $uv + i32.const 8388607 + i32.and + local.set $sid + local.get $exp + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 23 + i64.shl + local.get $sid + i64.extend_i32_u + i64.add + local.set $frc + local.get $exp + if (result i32) + local.get $exp + else + i32.const 1 + end + i32.const 127 + i32.const 23 + i32.add + i32.sub + local.set $exp + else + local.get $value|4 + i64.reinterpret_f64 + local.set $uv|12 + local.get $uv|12 + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.set $exp + local.get $uv|12 + i64.const 4503599627370495 + i64.and + local.set $sid|13 + local.get $exp + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 52 + i64.shl + local.get $sid|13 + i64.add + local.set $frc + local.get $exp + if (result i32) + local.get $exp + else + i32.const 1 + end + i32.const 1023 + i32.const 52 + i32.add + i32.sub + local.set $exp + end local.get $frc local.set $f local.get $exp local.set $e + local.get $isSingle|7 + local.set $isSingle|16 local.get $f i64.const 1 i64.shl i64.const 1 i64.add - local.set $frc|12 + local.set $frc|17 local.get $e i32.const 1 i32.sub - local.set $exp|13 - local.get $frc|12 + local.set $exp|18 + local.get $frc|17 i64.clz i32.wrap_i64 local.set $off - local.get $frc|12 + local.get $frc|17 local.get $off i64.extend_i32_s i64.shl - local.set $frc|12 - local.get $exp|13 + local.set $frc|17 + local.get $exp|18 local.get $off i32.sub - local.set $exp|13 + local.set $exp|18 i32.const 1 local.get $f - i64.const 4503599627370496 + local.get $isSingle|16 + if (result i64) + i64.const 8388608 + else + i64.const 4503599627370496 + end i64.eq i32.add local.set $m - local.get $frc|12 + local.get $frc|17 global.set $~lib/util/number/_frc_plus local.get $f local.get $m @@ -4883,12 +4940,12 @@ local.get $e local.get $m i32.sub - local.get $exp|13 + local.get $exp|18 i32.sub i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_minus - local.get $exp|13 + local.get $exp|18 global.set $~lib/util/number/_exp global.get $~lib/util/number/_exp local.set $minExp @@ -4940,14 +4997,14 @@ local.get $frc i64.clz i32.wrap_i64 - local.set $off|20 + local.set $off|25 local.get $frc - local.get $off|20 + local.get $off|25 i64.extend_i32_s i64.shl local.set $frc local.get $exp - local.get $off|20 + local.get $off|25 i32.sub local.set $exp global.get $~lib/util/number/_frc_pow @@ -5032,63 +5089,63 @@ local.set $w_exp block $~lib/util/number/umul64f|inlined.1 (result i64) global.get $~lib/util/number/_frc_plus - local.set $u|36 + local.set $u|41 local.get $frc_pow - local.set $v|37 - local.get $u|36 + local.set $v|42 + local.get $u|41 i64.const 4294967295 i64.and - local.set $u0|38 - local.get $v|37 + local.set $u0|43 + local.get $v|42 i64.const 4294967295 i64.and - local.set $v0|39 - local.get $u|36 + local.set $v0|44 + local.get $u|41 i64.const 32 i64.shr_u - local.set $u1|40 - local.get $v|37 + local.set $u1|45 + local.get $v|42 i64.const 32 i64.shr_u - local.set $v1|41 - local.get $u0|38 - local.get $v0|39 + local.set $v1|46 + local.get $u0|43 + local.get $v0|44 i64.mul - local.set $l|42 - local.get $u1|40 - local.get $v0|39 + local.set $l|47 + local.get $u1|45 + local.get $v0|44 i64.mul - local.get $l|42 + local.get $l|47 i64.const 32 i64.shr_u i64.add - local.set $t|43 - local.get $u0|38 - local.get $v1|41 + local.set $t|48 + local.get $u0|43 + local.get $v1|46 i64.mul - local.get $t|43 + local.get $t|48 i64.const 4294967295 i64.and i64.add - local.set $w|44 - local.get $w|44 + local.set $w|49 + local.get $w|49 i64.const 2147483647 i64.add - local.set $w|44 - local.get $t|43 + local.set $w|49 + local.get $t|48 i64.const 32 i64.shr_u - local.set $t|43 - local.get $w|44 + local.set $t|48 + local.get $w|49 i64.const 32 i64.shr_u - local.set $w|44 - local.get $u1|40 - local.get $v1|41 + local.set $w|49 + local.get $u1|45 + local.get $v1|46 i64.mul - local.get $t|43 + local.get $t|48 i64.add - local.get $w|44 + local.get $w|49 i64.add br $~lib/util/number/umul64f|inlined.1 end @@ -5097,11 +5154,11 @@ local.set $wp_frc block $~lib/util/number/umul64e|inlined.1 (result i32) global.get $~lib/util/number/_exp - local.set $e1|46 + local.set $e1|51 local.get $exp_pow - local.set $e2|47 - local.get $e1|46 - local.get $e2|47 + local.set $e2|52 + local.get $e1|51 + local.get $e2|52 i32.add i32.const 64 i32.add @@ -5110,63 +5167,63 @@ local.set $wp_exp block $~lib/util/number/umul64f|inlined.2 (result i64) global.get $~lib/util/number/_frc_minus - local.set $u|49 + local.set $u|54 local.get $frc_pow - local.set $v|50 - local.get $u|49 + local.set $v|55 + local.get $u|54 i64.const 4294967295 i64.and - local.set $u0|51 - local.get $v|50 + local.set $u0|56 + local.get $v|55 i64.const 4294967295 i64.and - local.set $v0|52 - local.get $u|49 + local.set $v0|57 + local.get $u|54 i64.const 32 i64.shr_u - local.set $u1|53 - local.get $v|50 + local.set $u1|58 + local.get $v|55 i64.const 32 i64.shr_u - local.set $v1|54 - local.get $u0|51 - local.get $v0|52 + local.set $v1|59 + local.get $u0|56 + local.get $v0|57 i64.mul - local.set $l|55 - local.get $u1|53 - local.get $v0|52 + local.set $l|60 + local.get $u1|58 + local.get $v0|57 i64.mul - local.get $l|55 + local.get $l|60 i64.const 32 i64.shr_u i64.add - local.set $t|56 - local.get $u0|51 - local.get $v1|54 + local.set $t|61 + local.get $u0|56 + local.get $v1|59 i64.mul - local.get $t|56 + local.get $t|61 i64.const 4294967295 i64.and i64.add - local.set $w|57 - local.get $w|57 + local.set $w|62 + local.get $w|62 i64.const 2147483647 i64.add - local.set $w|57 - local.get $t|56 + local.set $w|62 + local.get $t|61 i64.const 32 i64.shr_u - local.set $t|56 - local.get $w|57 + local.set $t|61 + local.get $w|62 i64.const 32 i64.shr_u - local.set $w|57 - local.get $u1|53 - local.get $v1|54 + local.set $w|62 + local.get $u1|58 + local.get $v1|59 i64.mul - local.get $t|56 + local.get $t|61 i64.add - local.get $w|57 + local.get $w|62 i64.add br $~lib/util/number/umul64f|inlined.2 end @@ -5177,13 +5234,13 @@ local.get $wm_frc i64.sub local.set $delta - local.get $buffer|4 + local.get $buffer|5 local.get $w_frc local.get $w_exp local.get $wp_frc local.get $wp_exp local.get $delta - local.get $sign|5 + local.get $sign|6 call $~lib/util/number/genDigits br $~lib/util/number/grisu2|inlined.0 end @@ -5206,7 +5263,7 @@ ) (func $~lib/number/F64#toString (param $this f64) (param $radix i32) (result i32) local.get $this - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa return ) (func $~lib/math/ipow32 (param $x i32) (param $e i32) (result i32) @@ -5553,12 +5610,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -5825,14 +5878,16 @@ (func $start:resolve-binary (local $0 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 16 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 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 i32.const 1 i32.const 2 i32.lt_s @@ -5844,11 +5899,6 @@ i32.store local.get $0 i32.const 32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -5870,11 +5920,6 @@ i32.store local.get $0 i32.const 64 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -5896,11 +5941,6 @@ i32.store local.get $0 i32.const 32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -5922,11 +5962,6 @@ i32.store local.get $0 i32.const 64 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -5948,11 +5983,6 @@ i32.store local.get $0 i32.const 64 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -5974,11 +6004,6 @@ i32.store local.get $0 i32.const 32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6017,11 +6042,6 @@ i32.store local.get $0 i32.const 2336 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6045,11 +6065,6 @@ i32.store local.get $0 i32.const 2368 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6073,11 +6088,6 @@ i32.store local.get $0 i32.const 2336 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6101,11 +6111,6 @@ i32.store local.get $0 i32.const 2368 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6131,11 +6136,6 @@ i32.store local.get $0 i32.const 9696 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6161,11 +6161,6 @@ i32.store local.get $0 i32.const 2368 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6189,11 +6184,6 @@ i32.store local.get $0 i32.const 2368 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6217,11 +6207,6 @@ i32.store local.get $0 i32.const 9728 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6245,11 +6230,6 @@ i32.store local.get $0 i32.const 2368 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6273,11 +6253,6 @@ i32.store local.get $0 i32.const 2336 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6301,11 +6276,6 @@ i32.store local.get $0 i32.const 2336 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6329,11 +6299,6 @@ i32.store local.get $0 i32.const 9760 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6357,11 +6322,6 @@ i32.store local.get $0 i32.const 2336 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6383,11 +6343,6 @@ i32.store local.get $0 i32.const 9760 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6409,11 +6364,6 @@ i32.store local.get $0 i32.const 9792 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6435,11 +6385,6 @@ i32.store local.get $0 i32.const 2368 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6461,11 +6406,6 @@ i32.store local.get $0 i32.const 2368 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6487,11 +6427,6 @@ i32.store local.get $0 i32.const 2336 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6513,11 +6448,6 @@ i32.store local.get $0 i32.const 9728 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6539,11 +6469,6 @@ i32.store local.get $0 i32.const 9696 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6565,11 +6490,6 @@ i32.store local.get $0 i32.const 9696 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6591,11 +6511,6 @@ i32.store local.get $0 i32.const 9728 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6617,11 +6532,6 @@ i32.store local.get $0 i32.const 2336 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6643,11 +6553,6 @@ i32.store local.get $0 i32.const 9760 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6669,11 +6574,6 @@ i32.store local.get $0 i32.const 2336 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6695,11 +6595,6 @@ i32.store local.get $0 i32.const 9760 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6721,11 +6616,6 @@ i32.store local.get $0 i32.const 2368 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6736,12 +6626,7 @@ call $~lib/builtins/abort unreachable end - i32.const 1 - if (result i32) - i32.const 2 - else - i32.const 1 - end + i32.const 2 i32.const 10 call $~lib/number/I32#toString local.set $0 @@ -6750,11 +6635,6 @@ i32.store local.get $0 i32.const 2368 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6766,11 +6646,6 @@ unreachable end i32.const 0 - if (result i32) - i32.const 2 - else - i32.const 0 - end i32.const 10 call $~lib/number/I32#toString local.set $0 @@ -6779,11 +6654,6 @@ i32.store local.get $0 i32.const 352 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6795,11 +6665,6 @@ unreachable end i32.const 1 - if (result i32) - i32.const 1 - else - i32.const 2 - end i32.const 10 call $~lib/number/I32#toString local.set $0 @@ -6808,11 +6673,6 @@ i32.store local.get $0 i32.const 2336 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6823,12 +6683,7 @@ call $~lib/builtins/abort unreachable end - i32.const 0 - if (result i32) - i32.const 0 - else - i32.const 2 - end + i32.const 2 i32.const 10 call $~lib/number/I32#toString local.set $0 @@ -6837,11 +6692,6 @@ i32.store local.get $0 i32.const 2368 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6859,19 +6709,19 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 local.get $0 global.get $resolve-binary/foo local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=16 + i32.store offset=12 local.get $0 call $resolve-binary/Foo#lt local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 call $~lib/string/String#toString local.set $0 @@ -6880,11 +6730,6 @@ i32.store local.get $0 i32.const 9824 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6899,19 +6744,19 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 local.get $0 global.get $resolve-binary/foo local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=16 + i32.store offset=12 local.get $0 call $resolve-binary/Foo#gt local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 call $~lib/string/String#toString local.set $0 @@ -6920,11 +6765,6 @@ i32.store local.get $0 i32.const 9856 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6939,19 +6779,19 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 local.get $0 global.get $resolve-binary/foo local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=16 + i32.store offset=12 local.get $0 call $resolve-binary/Foo#le local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 call $~lib/string/String#toString local.set $0 @@ -6960,11 +6800,6 @@ i32.store local.get $0 i32.const 9888 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6979,19 +6814,19 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 local.get $0 global.get $resolve-binary/foo local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=16 + i32.store offset=12 local.get $0 call $resolve-binary/Foo#ge local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 call $~lib/string/String#toString local.set $0 @@ -7000,11 +6835,6 @@ i32.store local.get $0 i32.const 9920 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -7019,19 +6849,19 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 local.get $0 global.get $resolve-binary/foo local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=16 + i32.store offset=12 local.get $0 call $resolve-binary/Foo#eq local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 call $~lib/string/String#toString local.set $0 @@ -7040,11 +6870,6 @@ i32.store local.get $0 i32.const 9952 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -7059,19 +6884,19 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 local.get $0 global.get $resolve-binary/foo local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=16 + i32.store offset=12 local.get $0 call $resolve-binary/Foo#ne local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 call $~lib/string/String#toString local.set $0 @@ -7080,11 +6905,6 @@ i32.store local.get $0 i32.const 9984 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -7099,19 +6919,19 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 local.get $0 global.get $resolve-binary/foo local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=16 + i32.store offset=12 local.get $0 call $resolve-binary/Foo#add local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 call $~lib/string/String#toString local.set $0 @@ -7120,11 +6940,6 @@ i32.store local.get $0 i32.const 10016 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -7139,19 +6954,19 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 local.get $0 global.get $resolve-binary/foo local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=16 + i32.store offset=12 local.get $0 call $resolve-binary/Foo.sub local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 call $~lib/string/String#toString local.set $0 @@ -7160,11 +6975,6 @@ i32.store local.get $0 i32.const 10048 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -7179,19 +6989,19 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 local.get $0 global.get $resolve-binary/foo local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=16 + i32.store offset=12 local.get $0 call $resolve-binary/Foo#mul local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 call $~lib/string/String#toString local.set $0 @@ -7200,11 +7010,6 @@ i32.store local.get $0 i32.const 10080 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -7219,19 +7024,19 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 local.get $0 global.get $resolve-binary/foo local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=16 + i32.store offset=12 local.get $0 call $resolve-binary/Foo#div local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 call $~lib/string/String#toString local.set $0 @@ -7240,11 +7045,6 @@ i32.store local.get $0 i32.const 10112 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -7259,19 +7059,19 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 local.get $0 global.get $resolve-binary/foo local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=16 + i32.store offset=12 local.get $0 call $resolve-binary/Foo#rem local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 call $~lib/string/String#toString local.set $0 @@ -7280,11 +7080,6 @@ i32.store local.get $0 i32.const 10144 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -7299,19 +7094,19 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 local.get $0 global.get $resolve-binary/foo local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=16 + i32.store offset=12 local.get $0 call $resolve-binary/Foo#pow local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 call $~lib/string/String#toString local.set $0 @@ -7320,11 +7115,6 @@ i32.store local.get $0 i32.const 10176 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -7465,7 +7255,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) @@ -7651,10 +7441,12 @@ local.get $14 return ) - (func $~lib/util/number/dtoa (param $value f64) (result i32) + (func $~lib/util/number/dtoa (param $value f64) (result i32) + (local $value|1 f64) + (local $isSingle i32) (local $size i32) (local $result i32) - (local $3 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -7663,76 +7455,66 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $value - f64.const 0 - f64.eq - if - i32.const 8560 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return - end - local.get $value - local.get $value - f64.sub - f64.const 0 - f64.eq - i32.eqz - if + block $~lib/util/number/dtoa_impl|inlined.0 (result i32) local.get $value - local.get $value - f64.ne + local.set $value|1 + i32.const 0 + local.set $isSingle + local.get $value|1 + f64.const 0 + f64.eq if - i32.const 8592 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return + i32.const 8560 + br $~lib/util/number/dtoa_impl|inlined.0 end - i32.const 8624 - i32.const 8672 - local.get $value + local.get $value|1 + local.get $value|1 + f64.sub f64.const 0 - f64.lt - select - local.set $3 + f64.eq + i32.eqz + if + local.get $value|1 + local.get $value|1 + f64.ne + if + i32.const 8592 + br $~lib/util/number/dtoa_impl|inlined.0 + end + i32.const 8624 + i32.const 8672 + local.get $value|1 + f64.const 0 + f64.lt + select + br $~lib/util/number/dtoa_impl|inlined.0 + end + i32.const 8704 + 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 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return + local.get $size + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $result + i32.store + local.get $result + i32.const 8704 + local.get $size + memory.copy + local.get $result + br $~lib/util/number/dtoa_impl|inlined.0 end - i32.const 8704 - local.get $value - 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 8704 - local.get $size - memory.copy - local.get $result - local.set $3 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $5 return ) (func $~lib/object/Object#constructor (param $this i32) (result i32) diff --git a/tests/compiler/resolve-binary.release.wat b/tests/compiler/resolve-binary.release.wat index 700bc011aa..73db3a219c 100644 --- a/tests/compiler/resolve-binary.release.wat +++ b/tests/compiler/resolve-binary.release.wat @@ -1,13 +1,13 @@ (module - (type $0 (func)) - (type $1 (func (param i32 i32) (result i32))) + (type $0 (func (param i32 i32) (result i32))) + (type $1 (func)) (type $2 (func (result i32))) - (type $3 (func (param i32))) - (type $4 (func (param i32 i32))) - (type $5 (func (param i32) (result 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 i32))) - (type $7 (func (param i32 i32 i64))) - (type $8 (func (param i32 i32 i32))) + (type $7 (func (param i32 i32 i32))) + (type $8 (func (param i32 i32 i64))) (type $9 (func (param i64 i64 i32 i64) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $resolve-binary/a (mut i32) (i32.const 0)) @@ -237,114 +237,323 @@ (data $45 (i32.const 11216) "\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) - global.get $resolve-binary/foo - local.tee $0 + (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 11248 + i32.lt_s if - local.get $0 - call $~lib/rt/itcms/__visit + i32.const 44048 + i32.const 44096 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - global.get $resolve-binary/bar - local.tee $0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + local.get $1 + i32.eq if - local.get $0 - call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return end - global.get $resolve-binary/bar2 - local.tee $0 - if + block $folding-inner0 + local.get $1 + i32.eqz local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $resolve-binary/baz - local.tee $0 - if + i32.eqz + i32.or + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 1600 - call $~lib/rt/itcms/__visit - i32.const 1408 - 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 + 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 - if - local.get $0 - i32.load offset=4 - i32.const 3 + 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 i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1472 - 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 + local.get $1 + i32.const 7 i32.and - local.set $0 - br $while-continue|0 + i32.or + else + i32.const 1 + end + i32.eqz + if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $0 + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + block $__inlined_func$~lib/util/string/compareImpl$81 + loop $while-continue|1 + local.get $0 + local.tee $3 + i32.const 1 + i32.sub + local.set $0 + local.get $3 + if + local.get $2 + i32.load16_u + local.tee $5 + local.get $1 + i32.load16_u + local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 + i32.ne + br_if $__inlined_func$~lib/util/string/compareImpl$81 + local.get $2 + i32.const 2 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end + end + i32.const 0 + local.set $3 end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.eqz + return end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 ) - (func $~lib/rt/itcms/__visit (param $0 i32) + (func $~lib/number/I32#toString (param $0 i32) (result 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 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 11248 + i32.lt_s if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq + i32.const 44048 + i32.const 44096 + 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$74 + local.get $0 + i32.eqz if - local.get $1 - i32.load offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1472 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end + 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/itoa32$74 + 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 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $3 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $3 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $3 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $3 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $3 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.tee $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 + 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 + ) + (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 1472 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end local.get $0 global.set $~lib/rt/itcms/iter end @@ -462,330 +671,491 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (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.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + (local $6 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u if - i32.const 0 - i32.const 1744 - i32.const 268 - i32.const 14 + i32.const 1408 + i32.const 1472 + i32.const 261 + i32.const 31 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - i32.const 0 + block $__inlined_func$~lib/rt/itcms/interrupt$70 + i32.const 2048 + local.set $2 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$70 + end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.const 10 + i32.shl + i32.add + global.set $~lib/rt/itcms/threshold + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.set $4 + local.get $0 + i32.const 16 + i32.add + local.tee $2 + i32.const 1073741820 + i32.gt_u + if + i32.const 1408 i32.const 1744 - i32.const 270 - i32.const 14 + i32.const 461 + i32.const 29 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const 256 - i32.lt_u + local.get $4 + local.get $2 + i32.const 12 + i32.le_u if (result i32) - local.get $3 - i32.const 4 - i32.shr_u + i32.const 12 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 + local.get $2 + i32.const 19 + i32.add + i32.const -16 + i32.and 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 1744 - 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 + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz if 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.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 + i32.load offset=1568 + memory.size + local.tee $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.set $3 + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s 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 + memory.grow + i32.const 0 + i32.lt_s if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - i32.rotl - i32.and - i32.store + 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 1744 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + 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 + local.get $5 + local.get $2 + i32.load + i32.const -4 + i32.and + i32.gt_u if i32.const 0 i32.const 1744 - i32.const 201 + i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 + local.get $2 + call $~lib/rt/tlsf/removeBlock + local.get $2 i32.load - local.tee $3 - i32.const 1 + local.set $6 + local.get $5 + i32.const 4 + i32.add + i32.const 15 i32.and - i32.eqz if i32.const 0 i32.const 1744 - i32.const 203 + i32.const 361 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load + local.get $6 i32.const -4 i32.and - i32.add - local.tee $4 - i32.load - local.tee $2 - i32.const 1 - i32.and + local.get $5 + i32.sub + local.tee $3 + i32.const 16 + i32.ge_u if - local.get $0 - local.get $4 - call $~lib/rt/tlsf/removeBlock - local.get $1 - local.get $3 + 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 - i32.const -4 + local.get $6 + i32.const -2 i32.and - i32.add - local.tee $3 i32.store - local.get $1 + local.get $2 i32.const 4 i32.add - local.get $1 + local.get $2 i32.load i32.const -4 i32.and i32.add - local.tee $4 + local.tee $3 + local.get $3 i32.load - local.set $2 + 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.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 + i32.store offset=8 + local.get $3 + local.get $2 + local.get $3 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $2 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.tee $1 + i32.const 0 + local.get $0 + memory.fill + local.get $1 + ) + (func $~lib/util/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 - i32.const 0 - i32.const 1744 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable + local.get $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 - call $~lib/rt/tlsf/removeBlock + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 1788 + i32.add + i32.load + i32.store local.get $1 - local.get $6 - i32.const 4 + 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 $3 - i32.const -4 - i32.and + local.get $1 + i32.const 2 + i32.shl + i32.const 1788 i32.add - local.tee $3 + 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 - local.get $4 - local.get $2 - i32.const 2 - i32.or - i32.store - local.get $3 - i32.const -4 + ) + (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 - local.tee $2 - i32.const 12 - i32.lt_u + i32.eqz if i32.const 0 i32.const 1744 - i32.const 233 + i32.const 268 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 + local.get $3 + i32.const -4 + i32.and + local.tee $3 + i32.const 12 + i32.lt_u if i32.const 0 i32.const 1744 - i32.const 234 + i32.const 270 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 + local.get $3 i32.const 256 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 4 i32.shr_u else i32.const 31 i32.const 1073741820 - local.get $2 - local.get $2 + local.get $3 + local.get $3 i32.const 1073741820 i32.ge_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.tee $3 + local.tee $4 i32.const 7 i32.sub - local.set $5 - local.get $2 + 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 $2 + local.tee $3 i32.const 16 i32.lt_u - local.get $5 + local.get $2 i32.const 23 i32.lt_u i32.and @@ -793,2343 +1163,1988 @@ if i32.const 0 i32.const 1744 - i32.const 251 + i32.const 284 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 + i32.load offset=8 + local.set $5 local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 + i32.load offset=4 + local.tee $4 if - local.get $3 - local.get $1 + 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 $5 + local.get $2 i32.const 4 i32.shl - local.get $2 + local.get $3 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 + 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/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - local.get $2 + (local $6 i32) local.get $1 - i64.extend_i32_u - i64.lt_u + i32.eqz if i32.const 0 i32.const 1744 - i32.const 382 + i32.const 201 i32.const 14 call $~lib/builtins/abort unreachable end local.get $1 - i32.const 19 - i32.add - i32.const -16 + i32.load + local.tee $3 + i32.const 1 i32.and + i32.eqz + if + i32.const 0 + i32.const 1744 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 i32.const 4 - i32.sub - local.set $1 - local.get $0 - i32.load offset=1568 - local.tee $3 + 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.gt_u - if - i32.const 0 - i32.const 1744 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 + i32.const 4 + i32.add 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.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.gt_u + 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 1744 - i32.const 402 - i32.const 5 + 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.wrap_i64 - i32.const -16 + i32.const 2 + i32.or + i32.store + local.get $3 + i32.const -4 i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 + local.tee $2 + i32.const 12 i32.lt_u if - return + i32.const 0 + i32.const 1744 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable 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 + local.get $2 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 + i32.ne if + i32.const 0 + i32.const 1744 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort unreachable end - i32.const 44016 - i32.const 0 - i32.store - i32.const 45584 - i32.const 0 + local.get $4 + i32.const 4 + i32.sub + local.get $1 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 44016 - 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 $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 1744 + 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/__visit_members (param $0 i32) + block $invalid + block $resolve-binary/Baz + block $resolve-binary/Bar + block $resolve-binary/Foo + 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-binary/Foo $resolve-binary/Bar $resolve-binary/Baz $invalid + end + return + end + return + end + return + end local.get $0 - i32.const 4 - i32.shl - local.get $1 - i32.add - i32.const 2 - i32.shl - i32.const 44016 - i32.add - i32.const 0 - i32.store offset=96 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|1 + i32.load + call $~lib/rt/itcms/__visit + return end + return end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 + return end + return end - i32.const 44016 - i32.const 45588 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 44016 - global.set $~lib/rt/tlsf/ROOT + unreachable ) - (func $~lib/rt/itcms/step (result i32) - (local $0 i32) + (func $~lib/object/Object#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 11248 + i32.lt_s + if + i32.const 44048 + i32.const 44096 + 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 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 + ) + (func $~lib/number/F64#toString (result i32) + (local $0 i64) (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 44016 - 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 1472 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 44016 - 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 44016 - 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.set $1 - 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 1744 - 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 $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.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 1744 - 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 1744 - 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 + (local $3 i64) + (local $4 i64) + (local $5 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 11248 + i32.lt_s if - i32.const 1408 - i32.const 1472 - i32.const 261 - i32.const 31 + i32.const 44048 + i32.const 44096 + 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 - local.tee $2 - local.get $2 - 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 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const -4 + global.set $~lib/util/number/_K + i32.const 10136 + i64.load + global.set $~lib/util/number/_frc_pow + i32.const 10568 + i32.load16_s + global.set $~lib/util/number/_exp_pow + global.get $~lib/util/number/_frc_pow + local.tee $3 + i64.const 4294967295 + i64.and + local.tee $0 + i64.const 31 + i64.shl local.set $4 + local.get $3 + i64.const 32 + i64.shr_u + local.tee $3 + i64.const 31 + i64.shl local.get $0 - i32.const 16 - i32.add - local.tee $2 - i32.const 1073741820 - i32.gt_u - if - i32.const 1408 - i32.const 1744 - 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 + i64.const 31 + i64.shl + local.get $0 + i64.const 10 + i64.shl + i64.const 32 + i64.shr_u + i64.add 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 1744 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end + i64.const 32 + i64.shr_u + i64.add local.get $5 - local.get $2 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 1744 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end + i64.const 4294967295 + i64.and + local.get $3 + i64.const 10 + i64.shl + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.sub + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $3 + i64.const 31 + i64.shl local.get $4 - local.get $2 - call $~lib/rt/tlsf/removeBlock - local.get $2 - i32.load - local.set $6 + i64.const 32 + i64.shr_u + i64.add + local.get $4 + i64.const 4294967295 + i64.and + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add local.get $5 - i32.const 4 + global.get $~lib/util/number/_exp_pow + i32.const 3 i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1744 - 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 + i64.const 2147483647 + i64.mul + local.get $0 + i64.const 2147483647 + i64.mul + local.get $0 + i64.const 4294966784 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.tee $0 + i64.const 32 + i64.shr_u + i64.add local.get $3 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 + i64.const 4294966784 + i64.mul + local.get $0 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.add + i64.sub + call $~lib/util/number/genDigits + global.get $~lib/util/number/_K + call $~lib/util/number/prettify + i32.const 1 + i32.shl + local.tee $2 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store local.get $1 + i32.const 9728 local.get $2 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $2 - i32.load - i32.const -4 - i32.and + memory.copy + global.get $~lib/memory/__stack_pointer 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 + global.set $~lib/memory/__stack_pointer 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 + (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 10000 - i32.ge_u + 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 10000 - i32.rem_u - local.set $3 + i32.const 1 + i32.const 27 local.get $1 - i32.const 10000 - i32.div_u - local.set $1 - local.get $0 - local.get $2 - i32.const 4 + i32.clz 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 + i32.const 1 + i32.sub + local.set $1 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 + i32.const 31 local.get $1 - i32.const 100 - i32.div_u + 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 1744 + 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.const 10 - i32.ge_u - if + i32.shl + i32.and + local.tee $1 + if (result i32) local.get $0 + local.get $1 + i32.ctz local.get $2 - i32.const 2 - i32.sub - i32.const 1 + i32.const 4 i32.shl i32.add - local.get $1 i32.const 2 i32.shl - i32.const 1788 i32.add - i32.load - i32.store + i32.load offset=96 else local.get $0 + i32.load + i32.const -1 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 + 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 1744 + 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/number/I32#toString (param $0 i32) (result i32) + (func $~lib/rt/tlsf/initialize + (local $0 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 11248 - i32.lt_s - if - i32.const 44048 - i32.const 44096 - i32.const 1 + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) i32.const 1 - call $~lib/builtins/abort + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $1 + i32.const 44016 i32.const 0 i32.store - block $__inlined_func$~lib/util/number/itoa32$74 + i32.const 45584 + i32.const 0 + i32.store + loop $for-loop|0 local.get $0 - i32.eqz + i32.const 23 + i32.lt_u if - local.get $1 - i32.const 4 + local.get $0 + i32.const 2 + i32.shl + i32.const 44016 + 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 44016 + 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 - global.set $~lib/memory/__stack_pointer - i32.const 1376 local.set $0 - br $__inlined_func$~lib/util/number/itoa32$74 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer + end + i32.const 44016 + i32.const 45588 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 44016 + global.set $~lib/rt/tlsf/ROOT + ) + (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 - 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 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $3 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $3 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $3 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $3 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $3 - i32.const 100000000 - i32.ge_u - i32.add - end + i32.const 1744 + 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 1744 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable end - local.tee $2 - i32.const 1 - i32.shl + local.get $3 local.get $1 - i32.add - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store + 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 - local.get $1 + i32.const 1572 i32.add - local.get $3 - local.get $2 - call $~lib/util/number/utoa32_dec_lut local.get $1 + i32.gt_u if - local.get $0 - i32.const 45 - i32.store16 + i32.const 0 + i32.const 1744 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer end - local.get $0 - ) - (func $~lib/util/number/genDigits (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i64) (result i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i64) - (local $9 i64) - (local $10 i64) - (local $11 i32) - (local $12 i64) - local.get $1 - local.get $0 - i64.sub - local.set $9 - i64.const 1 - i32.const 0 local.get $2 - i32.sub - local.tee $11 - i64.extend_i32_s - local.tee $0 - i64.shl - local.tee $10 - i64.const 1 - i64.sub - local.tee $12 - local.get $1 - i64.and - local.set $8 - local.get $1 - local.get $0 - i64.shr_u i32.wrap_i64 - local.tee $5 - i32.const 100000 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 i32.lt_u - if (result i32) - local.get $5 - i32.const 100 - i32.lt_u - if (result i32) - local.get $5 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $5 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $5 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $5 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $5 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $5 - i32.const 100000000 - i32.ge_u - i32.add - end + if + return end - local.set $7 - loop $while-continue|0 - local.get $7 - i32.const 0 - i32.gt_s - if - block $break|1 - block $case10|1 - block $case9|1 - block $case8|1 - block $case7|1 - block $case6|1 - block $case5|1 - block $case4|1 - block $case3|1 - block $case2|1 - block $case1|1 - block $case0|1 - local.get $7 - i32.const 1 - i32.sub - br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $case0|1 $case10|1 - end - local.get $5 - i32.const 1000000000 - i32.div_u - local.set $2 - local.get $5 - i32.const 1000000000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 100000000 - i32.div_u - local.set $2 - local.get $5 - i32.const 100000000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 10000000 - i32.div_u - local.set $2 - local.get $5 - i32.const 10000000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 1000000 - i32.div_u - local.set $2 - local.get $5 - i32.const 1000000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 100000 - i32.div_u - local.set $2 - local.get $5 - i32.const 100000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 10000 - i32.div_u - local.set $2 - local.get $5 - i32.const 10000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 1000 - i32.div_u - local.set $2 - local.get $5 - i32.const 1000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 100 - i32.div_u - local.set $2 - local.get $5 - i32.const 100 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 10 - i32.div_u - local.set $2 - local.get $5 - i32.const 10 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - local.set $2 - i32.const 0 - local.set $5 - br $break|1 - 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/itcms/visitRoots + (local $0 i32) + (local $1 i32) + global.get $resolve-binary/foo + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $resolve-binary/bar + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $resolve-binary/bar2 + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $resolve-binary/baz + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 1600 + call $~lib/rt/itcms/__visit + i32.const 1408 + 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 - local.set $2 + i32.const 1472 + 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 $resolve-binary/Bar#constructor (result i32) + (local $0 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 11248 + i32.lt_s + if + i32.const 44048 + i32.const 44096 + 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.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 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/object/Object#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~start + call $start:resolve-binary + ) + (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + i32.eqz + if + local.get $0 + i32.const 1 + i32.shl + i32.const 9728 + i32.add + i32.const 3145774 + i32.store + local.get $0 + i32.const 2 + i32.add + return + end + local.get $0 + local.get $1 + i32.add + local.tee $2 + i32.const 21 + i32.le_s + local.get $0 + local.get $2 + i32.le_s + i32.and + if (result i32) + loop $for-loop|0 + local.get $0 local.get $2 - local.get $4 - i32.or + i32.lt_s if - local.get $4 - local.tee $6 - i32.const 1 - i32.add - local.set $4 - local.get $6 + local.get $0 i32.const 1 i32.shl i32.const 9728 i32.add - local.get $2 - i32.const 65535 - i32.and i32.const 48 - i32.add i32.store16 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - local.get $7 + end + local.get $2 + i32.const 1 + i32.shl + i32.const 9728 + i32.add + i32.const 3145774 + i32.store + local.get $2 + i32.const 2 + i32.add + else + local.get $2 + i32.const 21 + i32.le_s + local.get $2 + i32.const 0 + i32.gt_s + i32.and + if (result i32) + local.get $2 i32.const 1 + i32.shl + i32.const 9728 + i32.add + local.tee $2 + i32.const 2 + i32.add + local.get $2 + i32.const 0 + local.get $1 i32.sub - local.set $7 - local.get $3 - local.get $5 - i64.extend_i32_u - local.get $11 - i64.extend_i32_s - local.tee $1 - i64.shl - local.get $8 - i64.add - local.tee $0 - i64.ge_u - if - global.get $~lib/util/number/_K - local.get $7 - i32.add - global.set $~lib/util/number/_K - local.get $7 + i32.const 1 + i32.shl + memory.copy + local.get $2 + i32.const 46 + i32.store16 + local.get $0 + i32.const 1 + i32.add + else + local.get $2 + i32.const 0 + i32.le_s + local.get $2 + i32.const -6 + i32.gt_s + i32.and + if (result i32) i32.const 2 + local.get $2 + i32.sub + local.tee $2 + i32.const 1 i32.shl - i32.const 10656 + i32.const 9728 i32.add - i64.load32_u - local.get $1 - i64.shl + i32.const 9728 + local.get $0 + i32.const 1 + i32.shl + memory.copy + i32.const 9728 + i32.const 3014704 + i32.store + i32.const 2 local.set $1 - local.get $4 - i32.const 1 - i32.shl - i32.const 9726 + loop $for-loop|1 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $1 + i32.const 1 + i32.shl + i32.const 9728 + i32.add + i32.const 48 + i32.store16 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 + end + end + local.get $0 + local.get $2 i32.add - local.tee $5 - i32.load16_u - local.set $2 - loop $while-continue|3 + else + local.get $0 + i32.const 1 + i32.eq + if + i32.const 9730 + i32.const 101 + i32.store16 + local.get $2 + i32.const 1 + i32.sub + local.tee $0 + i32.const 0 + i32.lt_s + local.tee $1 + if + i32.const 0 + local.get $0 + i32.sub + local.set $0 + end + i32.const 9732 local.get $0 - local.get $9 - i64.lt_u - local.get $3 local.get $0 - i64.sub - local.get $1 - i64.ge_u - i32.and + i32.const 100000 + i32.lt_u if (result i32) local.get $0 - local.get $1 - i64.add - local.tee $8 - local.get $9 - i64.lt_u - local.get $9 - local.get $0 - i64.sub - local.get $8 - local.get $9 - i64.sub - i64.gt_u - i32.or + 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 - i32.const 0 + 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 + i32.const 1 + i32.add + local.tee $0 + call $~lib/util/number/utoa32_dec_lut + i32.const 9732 + i32.const 45 + i32.const 43 + local.get $1 + select + i32.store16 + else + i32.const 9732 + i32.const 9730 + local.get $0 + i32.const 1 + i32.shl + local.tee $1 + i32.const 2 + i32.sub + memory.copy + i32.const 9730 + i32.const 46 + i32.store16 + local.get $1 + i32.const 9728 + i32.add + local.tee $1 + i32.const 101 + i32.store16 offset=2 + local.get $1 + i32.const 4 + i32.add + local.tee $3 + local.get $2 + i32.const 1 + i32.sub + local.tee $1 + i32.const 0 + i32.lt_s + local.tee $2 if - local.get $2 - i32.const 1 - i32.sub - local.set $2 - local.get $0 + i32.const 0 local.get $1 - i64.add - local.set $0 - br $while-continue|3 + i32.sub + local.set $1 end - end - local.get $5 - local.get $2 - i32.store16 - local.get $4 - return - end - br $while-continue|0 - end - end - loop $while-continue|4 - local.get $3 - i64.const 10 - i64.mul - local.set $3 - local.get $8 - i64.const 10 - i64.mul - local.tee $0 - local.get $11 - i64.extend_i32_s - i64.shr_u - local.tee $1 - local.get $4 - i64.extend_i32_s - i64.or - i64.const 0 - i64.ne - if - local.get $4 - local.tee $2 - i32.const 1 - i32.add - local.set $4 - local.get $2 - i32.const 1 - i32.shl - i32.const 9728 - i32.add - local.get $1 - i32.wrap_i64 - i32.const 65535 - i32.and - i32.const 48 - i32.add - i32.store16 + local.get $1 + 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 + i32.const 1 + i32.add + local.tee $1 + call $~lib/util/number/utoa32_dec_lut + local.get $3 + i32.const 45 + i32.const 43 + local.get $2 + select + i32.store16 + local.get $0 + local.get $1 + i32.add + local.set $0 + end + local.get $0 + i32.const 2 + i32.add + end end - local.get $7 - i32.const 1 - i32.sub - local.set $7 - local.get $0 - local.get $12 - i64.and - local.tee $8 - local.get $3 - i64.ge_u - br_if $while-continue|4 end - global.get $~lib/util/number/_K - local.get $7 - i32.add - global.set $~lib/util/number/_K - local.get $9 + ) + (func $~lib/util/number/genDigits (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i64) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i64) + (local $9 i64) + (local $10 i64) + (local $11 i32) + (local $12 i64) + local.get $1 + local.get $0 + i64.sub + local.set $9 + i64.const 1 i32.const 0 - local.get $7 + local.get $2 i32.sub - i32.const 2 - i32.shl - i32.const 10656 - i32.add - i64.load32_u - i64.mul - local.set $0 - local.get $4 - i32.const 1 - i32.shl - i32.const 9726 - i32.add + local.tee $11 + i64.extend_i32_s + local.tee $0 + i64.shl + local.tee $10 + i64.const 1 + i64.sub + local.tee $12 + local.get $1 + i64.and + local.set $8 + local.get $1 + local.get $0 + i64.shr_u + i32.wrap_i64 local.tee $5 - i32.load16_u - local.set $2 - loop $while-continue|6 - local.get $0 - local.get $8 - i64.gt_u - local.get $3 - local.get $8 - i64.sub - local.get $10 - i64.ge_u - i32.and + i32.const 100000 + i32.lt_u + if (result i32) + local.get $5 + i32.const 100 + i32.lt_u if (result i32) - local.get $8 - local.get $10 - i64.add - local.tee $1 - local.get $0 - i64.lt_u - local.get $0 - local.get $8 - i64.sub - local.get $1 - local.get $0 - i64.sub - i64.gt_u - i32.or + local.get $5 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add else - i32.const 0 + local.get $5 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $5 + i32.const 1000 + i32.ge_u + i32.add end - if - local.get $2 - i32.const 1 - i32.sub - local.set $2 - local.get $8 - local.get $10 - i64.add - local.set $8 - br $while-continue|6 + else + local.get $5 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $5 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $5 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $5 + i32.const 100000000 + i32.ge_u + i32.add end end - local.get $5 - local.get $2 - i32.store16 - local.get $4 - ) - (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - local.get $1 - i32.eqz - if - local.get $0 - i32.const 1 - i32.shl - i32.const 9728 - i32.add - i32.const 3145774 - i32.store - local.get $0 - i32.const 2 - i32.add - return - end - local.get $0 - local.get $1 - i32.add - local.tee $2 - i32.const 21 - i32.le_s - local.get $0 - local.get $2 - i32.le_s - i32.and - if (result i32) - loop $for-loop|0 - local.get $0 - local.get $2 - i32.lt_s + local.set $2 + loop $while-continue|0 + local.get $2 + i32.const 0 + i32.gt_s + if + block $break|1 + block $case10|1 + block $case9|1 + block $case8|1 + block $case7|1 + block $case6|1 + block $case5|1 + block $case4|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + local.get $2 + i32.const 1 + i32.sub + br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $case0|1 $case10|1 + end + local.get $5 + i32.const 1000000000 + i32.div_u + local.set $6 + local.get $5 + i32.const 1000000000 + i32.rem_u + local.set $5 + br $break|1 + end + local.get $5 + i32.const 100000000 + i32.div_u + local.set $6 + local.get $5 + i32.const 100000000 + i32.rem_u + local.set $5 + br $break|1 + end + local.get $5 + i32.const 10000000 + i32.div_u + local.set $6 + local.get $5 + i32.const 10000000 + i32.rem_u + local.set $5 + br $break|1 + end + local.get $5 + i32.const 1000000 + i32.div_u + local.set $6 + local.get $5 + i32.const 1000000 + i32.rem_u + local.set $5 + br $break|1 + end + local.get $5 + i32.const 100000 + i32.div_u + local.set $6 + local.get $5 + i32.const 100000 + i32.rem_u + local.set $5 + br $break|1 + end + local.get $5 + i32.const 10000 + i32.div_u + local.set $6 + local.get $5 + i32.const 10000 + i32.rem_u + local.set $5 + br $break|1 + end + local.get $5 + i32.const 1000 + i32.div_u + local.set $6 + local.get $5 + i32.const 1000 + i32.rem_u + local.set $5 + br $break|1 + end + local.get $5 + i32.const 100 + i32.div_u + local.set $6 + local.get $5 + i32.const 100 + i32.rem_u + local.set $5 + br $break|1 + end + local.get $5 + i32.const 10 + i32.div_u + local.set $6 + local.get $5 + i32.const 10 + i32.rem_u + local.set $5 + br $break|1 + end + local.get $5 + local.set $6 + i32.const 0 + local.set $5 + br $break|1 + end + i32.const 0 + local.set $6 + end + local.get $4 + local.get $6 + i32.or if - local.get $0 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 i32.const 1 i32.shl i32.const 9728 i32.add + local.get $6 + i32.const 65535 + i32.and i32.const 48 - i32.store16 - local.get $0 - i32.const 1 i32.add - local.set $0 - br $for-loop|0 + i32.store16 end - end - local.get $2 - i32.const 1 - i32.shl - i32.const 9728 - i32.add - i32.const 3145774 - i32.store - local.get $2 - i32.const 2 - i32.add - else - local.get $2 - i32.const 21 - i32.le_s - local.get $2 - i32.const 0 - i32.gt_s - i32.and - if (result i32) local.get $2 i32.const 1 - i32.shl - i32.const 9728 - i32.add - local.tee $2 - i32.const 2 - i32.add - local.get $2 - i32.const 0 - local.get $1 i32.sub - i32.const 1 - i32.shl - memory.copy - local.get $2 - i32.const 46 - i32.store16 - local.get $0 - i32.const 1 - i32.add - else - local.get $2 - i32.const 0 - i32.le_s - local.get $2 - i32.const -6 - i32.gt_s - i32.and - if (result i32) - i32.const 2 + local.set $2 + local.get $3 + local.get $5 + i64.extend_i32_u + local.get $11 + i64.extend_i32_s + local.tee $1 + i64.shl + local.get $8 + i64.add + local.tee $0 + i64.ge_u + if + global.get $~lib/util/number/_K local.get $2 - i32.sub - local.tee $2 - i32.const 1 + i32.add + global.set $~lib/util/number/_K + local.get $2 + i32.const 2 i32.shl - i32.const 9728 + i32.const 10656 i32.add - i32.const 9728 - local.get $0 + i64.load32_u + local.get $1 + i64.shl + local.set $1 + local.get $4 i32.const 1 i32.shl - memory.copy - i32.const 9728 - i32.const 3014704 - i32.store - i32.const 2 - local.set $1 - loop $for-loop|1 - local.get $1 - local.get $2 - i32.lt_s - if - local.get $1 - i32.const 1 - i32.shl - i32.const 9728 - i32.add - i32.const 48 - i32.store16 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|1 - end - end - local.get $0 - local.get $2 + i32.const 9726 i32.add - else - local.get $0 - i32.const 1 - i32.eq - if - i32.const 9730 - i32.const 101 - i32.store16 - local.get $2 - i32.const 1 - i32.sub - local.tee $0 - i32.const 0 - i32.lt_s - local.tee $1 - if - i32.const 0 - local.get $0 - i32.sub - local.set $0 - end - i32.const 9732 - local.get $0 + local.tee $5 + i32.load16_u + local.set $2 + loop $while-continue|3 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 - i32.const 1 - i32.add - local.tee $0 - call $~lib/util/number/utoa32_dec_lut - i32.const 9732 - i32.const 45 - i32.const 43 - local.get $1 - select - i32.store16 - else - i32.const 9732 - i32.const 9730 + local.get $9 + i64.lt_u + local.get $3 local.get $0 - i32.const 1 - i32.shl - local.tee $1 - i32.const 2 - i32.sub - memory.copy - i32.const 9730 - i32.const 46 - i32.store16 - local.get $1 - i32.const 9728 - i32.add - local.tee $1 - i32.const 101 - i32.store16 offset=2 - local.get $1 - i32.const 4 - i32.add - local.tee $3 - local.get $2 - i32.const 1 - i32.sub - local.tee $1 - i32.const 0 - i32.lt_s - local.tee $2 - if - i32.const 0 - local.get $1 - i32.sub - local.set $1 - end - local.get $1 + i64.sub local.get $1 - i32.const 100000 - i32.lt_u + i64.ge_u + i32.and if (result i32) + local.get $0 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 + i64.add + local.tee $8 + local.get $9 + i64.lt_u + local.get $9 + local.get $0 + i64.sub + local.get $8 + local.get $9 + i64.sub + i64.gt_u + i32.or else + i32.const 0 + end + if + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $0 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 + i64.add + local.set $0 + br $while-continue|3 end - i32.const 1 - i32.add - local.tee $1 - call $~lib/util/number/utoa32_dec_lut - local.get $3 - i32.const 45 - i32.const 43 - local.get $2 - select - i32.store16 - local.get $0 - local.get $1 - i32.add - local.set $0 end - local.get $0 - i32.const 2 - i32.add + local.get $5 + local.get $2 + i32.store16 + local.get $4 + return end + br $while-continue|0 end end - ) - (func $~lib/number/F64#toString (result i32) - (local $0 i64) - (local $1 i32) - (local $2 i32) - (local $3 i64) - (local $4 i64) - (local $5 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 11248 - i32.lt_s - if - i32.const 44048 - i32.const 44096 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const -4 - global.set $~lib/util/number/_K - i32.const 10136 - i64.load - global.set $~lib/util/number/_frc_pow - i32.const 10568 - i32.load16_s - global.set $~lib/util/number/_exp_pow - global.get $~lib/util/number/_frc_pow - local.tee $3 - i64.const 4294967295 - i64.and - local.tee $0 - i64.const 31 - i64.shl - local.set $4 - local.get $3 - i64.const 32 - i64.shr_u - local.tee $3 - i64.const 31 - i64.shl - local.get $0 - i64.const 31 - i64.shl - local.get $0 - i64.const 10 - i64.shl - i64.const 32 - i64.shr_u - i64.add - local.tee $5 - i64.const 32 - i64.shr_u - i64.add - local.get $5 - i64.const 4294967295 - i64.and - local.get $3 - i64.const 10 - i64.shl - i64.add - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - i64.const 1 - i64.sub - local.set $5 - local.get $3 - i64.const 31 - i64.shl - local.get $4 - i64.const 32 - i64.shr_u - i64.add - local.get $4 - i64.const 4294967295 - i64.and - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - local.get $5 - global.get $~lib/util/number/_exp_pow - i32.const 3 + loop $while-continue|4 + local.get $3 + i64.const 10 + i64.mul + local.set $3 + local.get $8 + i64.const 10 + i64.mul + local.tee $0 + local.get $11 + i64.extend_i32_s + i64.shr_u + local.tee $1 + local.get $4 + i64.extend_i32_s + i64.or + i64.const 0 + i64.ne + if + local.get $4 + local.tee $5 + i32.const 1 + i32.add + local.set $4 + local.get $5 + i32.const 1 + i32.shl + i32.const 9728 + i32.add + local.get $1 + i32.wrap_i64 + i32.const 65535 + i32.and + i32.const 48 + i32.add + i32.store16 + end + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $0 + local.get $12 + i64.and + local.tee $8 + local.get $3 + i64.ge_u + br_if $while-continue|4 + end + global.get $~lib/util/number/_K + local.get $2 i32.add - local.get $5 - local.get $3 - i64.const 2147483647 - i64.mul - local.get $0 - i64.const 2147483647 - i64.mul - local.get $0 - i64.const 4294966784 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.tee $0 - i64.const 32 - i64.shr_u - i64.add - local.get $3 - i64.const 4294966784 + global.set $~lib/util/number/_K + local.get $9 + i32.const 0 + local.get $2 + i32.sub + i32.const 2 + i32.shl + i32.const 10656 + i32.add + i64.load32_u i64.mul - local.get $0 - i64.const 4294967295 - i64.and - i64.add - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - i64.const 1 - i64.add - i64.sub - call $~lib/util/number/genDigits - global.get $~lib/util/number/_K - call $~lib/util/number/prettify + local.set $0 + local.get $4 i32.const 1 i32.shl - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - i32.const 9728 - local.get $1 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 9726 i32.add - global.set $~lib/memory/__stack_pointer + local.tee $5 + i32.load16_u + local.set $2 + loop $while-continue|6 + local.get $0 + local.get $8 + i64.gt_u + local.get $3 + local.get $8 + i64.sub + local.get $10 + i64.ge_u + i32.and + if (result i32) + local.get $8 + local.get $10 + i64.add + local.tee $1 + local.get $0 + i64.lt_u + local.get $0 + local.get $8 + i64.sub + local.get $1 + local.get $0 + i64.sub + i64.gt_u + i32.or + else + i32.const 0 + end + if + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $8 + local.get $10 + i64.add + local.set $8 + br $while-continue|6 + end + end + local.get $5 local.get $2 + i32.store16 + local.get $4 ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $resolve-binary/Baz - block $resolve-binary/Bar - block $resolve-binary/Foo - 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-binary/Foo $resolve-binary/Bar $resolve-binary/Baz $invalid - end - return - end - return + (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 44016 + 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 - return - end - local.get $0 - i32.load - local.tee $0 - if local.get $0 - call $~lib/rt/itcms/__visit + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 end - return end - return + 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 - return - end - unreachable - ) - (func $~start - call $start:resolve-binary - ) - (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 11248 - i32.lt_s - if - i32.const 44048 - i32.const 44096 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $0 - local.get $1 - i32.eq - if - local.get $2 - 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.tee $4 - local.tee $2 - 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 - local.get $2 - 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 - local.get $4 - local.get $0 - i32.store - local.get $0 - local.set $2 - local.get $4 - local.get $1 - i32.store offset=4 - local.get $3 + global.get $~lib/rt/itcms/iter local.tee $0 - i32.const 4 - i32.ge_u - if (result i32) - local.get $2 - i32.const 7 + 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 7 + i32.const 3 i32.and - i32.or - else - i32.const 1 - end - i32.eqz - if - loop $do-loop|0 - local.get $2 - i64.load - local.get $1 - i64.load - i64.eq - if - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end + i32.ne + if + i32.const 0 + i32.const 1472 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable end - end - block $__inlined_func$~lib/util/string/compareImpl$81 - loop $while-continue|1 + local.get $0 + i32.const 44016 + i32.lt_u + if local.get $0 - local.tee $3 - i32.const 1 + 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 - local.set $0 - local.get $3 + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 4 + i32.add + local.tee $0 + i32.const 44016 + i32.ge_u if - local.get $2 - i32.load16_u - local.tee $5 - local.get $1 - i32.load16_u - local.tee $4 + 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 $3 - local.get $4 - local.get $5 - i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$81 - local.get $2 - i32.const 2 - i32.add local.set $2 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 + 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 1744 + 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 0 - local.set $3 + i32.const 10 + return end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - i32.eqz - return - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $resolve-binary/Bar#constructor (result i32) - (local $0 i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 11248 - i32.lt_s - if - i32.const 44048 - i32.const 44096 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + 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 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 i32.const 0 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/object/Object#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $start:resolve-binary (local $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -3138,16 +3153,14 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.const 20 - memory.fill - 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 1056 i32.store - local.get $0 - i32.const 1056 - i32.store offset=4 i32.const 1056 i32.const 1056 call $~lib/string/String.__eq @@ -3161,12 +3174,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1088 i32.store - local.get $0 - i32.const 1088 - i32.store offset=4 i32.const 1088 i32.const 1088 call $~lib/string/String.__eq @@ -3180,12 +3189,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1056 i32.store - local.get $0 - i32.const 1056 - i32.store offset=4 i32.const 1056 i32.const 1056 call $~lib/string/String.__eq @@ -3199,12 +3204,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1088 i32.store - local.get $0 - i32.const 1088 - i32.store offset=4 i32.const 1088 i32.const 1088 call $~lib/string/String.__eq @@ -3218,12 +3219,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1088 i32.store - local.get $0 - i32.const 1088 - i32.store offset=4 i32.const 1088 i32.const 1088 call $~lib/string/String.__eq @@ -3237,12 +3234,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1056 i32.store - local.get $0 - i32.const 1056 - i32.store offset=4 i32.const 1056 i32.const 1056 call $~lib/string/String.__eq @@ -3293,12 +3286,8 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 3360 - i32.store offset=4 local.get $0 i32.const 3360 call $~lib/string/String.__eq @@ -3319,12 +3308,8 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 3392 - i32.store offset=4 local.get $0 i32.const 3392 call $~lib/string/String.__eq @@ -3345,12 +3330,8 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 3360 - i32.store offset=4 local.get $0 i32.const 3360 call $~lib/string/String.__eq @@ -3371,12 +3352,8 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 3392 - i32.store offset=4 local.get $0 i32.const 3392 call $~lib/string/String.__eq @@ -3392,12 +3369,8 @@ call $~lib/number/F64#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 10720 - i32.store offset=4 local.get $0 i32.const 10720 call $~lib/string/String.__eq @@ -3418,12 +3391,8 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 3392 - i32.store offset=4 local.get $0 i32.const 3392 call $~lib/string/String.__eq @@ -3444,12 +3413,8 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 3392 - i32.store offset=4 local.get $0 i32.const 3392 call $~lib/string/String.__eq @@ -3470,12 +3435,8 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 10752 - i32.store offset=4 local.get $0 i32.const 10752 call $~lib/string/String.__eq @@ -3496,12 +3457,8 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 3392 - i32.store offset=4 local.get $0 i32.const 3392 call $~lib/string/String.__eq @@ -3522,12 +3479,8 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 3360 - i32.store offset=4 local.get $0 i32.const 3360 call $~lib/string/String.__eq @@ -3548,12 +3501,8 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 3360 - i32.store offset=4 local.get $0 i32.const 3360 call $~lib/string/String.__eq @@ -3574,12 +3523,8 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 10784 - i32.store offset=4 local.get $0 i32.const 10784 call $~lib/string/String.__eq @@ -3600,12 +3545,8 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 3360 - i32.store offset=4 local.get $0 i32.const 3360 call $~lib/string/String.__eq @@ -3622,12 +3563,8 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 10784 - i32.store offset=4 local.get $0 i32.const 10784 call $~lib/string/String.__eq @@ -3644,12 +3581,8 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 10816 - i32.store offset=4 local.get $0 i32.const 10816 call $~lib/string/String.__eq @@ -3666,12 +3599,8 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 3392 - i32.store offset=4 local.get $0 i32.const 3392 call $~lib/string/String.__eq @@ -3688,12 +3617,8 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 3392 - i32.store offset=4 local.get $0 i32.const 3392 call $~lib/string/String.__eq @@ -3710,12 +3635,8 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 3360 - i32.store offset=4 local.get $0 i32.const 3360 call $~lib/string/String.__eq @@ -3732,12 +3653,8 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 10752 - i32.store offset=4 local.get $0 i32.const 10752 call $~lib/string/String.__eq @@ -3753,12 +3670,8 @@ call $~lib/number/F64#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 10720 - i32.store offset=4 local.get $0 i32.const 10720 call $~lib/string/String.__eq @@ -3774,12 +3687,8 @@ call $~lib/number/F64#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 10720 - i32.store offset=4 local.get $0 i32.const 10720 call $~lib/string/String.__eq @@ -3796,12 +3705,8 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 10752 - i32.store offset=4 local.get $0 i32.const 10752 call $~lib/string/String.__eq @@ -3818,12 +3723,8 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 3360 - i32.store offset=4 local.get $0 i32.const 3360 call $~lib/string/String.__eq @@ -3840,12 +3741,8 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 10784 - i32.store offset=4 local.get $0 i32.const 10784 call $~lib/string/String.__eq @@ -3862,12 +3759,8 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 3360 - i32.store offset=4 local.get $0 i32.const 3360 call $~lib/string/String.__eq @@ -3884,12 +3777,8 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 10784 - i32.store offset=4 local.get $0 i32.const 10784 call $~lib/string/String.__eq @@ -3906,12 +3795,8 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 3392 - i32.store offset=4 local.get $0 i32.const 3392 call $~lib/string/String.__eq @@ -3928,12 +3813,8 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 3392 - i32.store offset=4 local.get $0 i32.const 3392 call $~lib/string/String.__eq @@ -3950,12 +3831,8 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 1376 - i32.store offset=4 local.get $0 i32.const 1376 call $~lib/string/String.__eq @@ -3972,12 +3849,8 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 3360 - i32.store offset=4 local.get $0 i32.const 3360 call $~lib/string/String.__eq @@ -3994,12 +3867,8 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 3392 - i32.store offset=4 local.get $0 i32.const 3392 call $~lib/string/String.__eq @@ -4021,20 +3890,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -4047,20 +3914,16 @@ global.set $resolve-binary/foo global.get $~lib/memory/__stack_pointer global.get $resolve-binary/foo - local.tee $0 - i32.store offset=12 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=16 + global.get $resolve-binary/foo + i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 10848 - i32.store offset=8 + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 10848 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 10848 - i32.store offset=4 i32.const 10848 i32.const 10848 call $~lib/string/String.__eq @@ -4074,22 +3937,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $resolve-binary/foo - local.tee $1 - i32.store offset=12 - local.get $0 - local.get $1 - i32.store offset=16 - local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + global.get $resolve-binary/foo + i32.store offset=12 + global.get $~lib/memory/__stack_pointer i32.const 10880 - i32.store offset=8 - local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 10880 i32.store - local.get $0 - i32.const 10880 - i32.store offset=4 i32.const 10880 i32.const 10880 call $~lib/string/String.__eq @@ -4103,22 +3961,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $resolve-binary/foo - local.tee $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + global.get $resolve-binary/foo i32.store offset=12 - local.get $0 - local.get $1 - i32.store offset=16 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 10912 - i32.store offset=8 - local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 10912 i32.store - local.get $0 - i32.const 10912 - i32.store offset=4 i32.const 10912 i32.const 10912 call $~lib/string/String.__eq @@ -4132,22 +3985,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $resolve-binary/foo - local.tee $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + global.get $resolve-binary/foo i32.store offset=12 - local.get $0 - local.get $1 - i32.store offset=16 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 10944 - i32.store offset=8 - local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 10944 i32.store - local.get $0 - i32.const 10944 - i32.store offset=4 i32.const 10944 i32.const 10944 call $~lib/string/String.__eq @@ -4161,22 +4009,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $resolve-binary/foo - local.tee $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + global.get $resolve-binary/foo i32.store offset=12 - local.get $0 - local.get $1 - i32.store offset=16 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 10976 - i32.store offset=8 - local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 10976 i32.store - local.get $0 - i32.const 10976 - i32.store offset=4 i32.const 10976 i32.const 10976 call $~lib/string/String.__eq @@ -4190,22 +4033,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $resolve-binary/foo - local.tee $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + global.get $resolve-binary/foo i32.store offset=12 - local.get $0 - local.get $1 - i32.store offset=16 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11008 - i32.store offset=8 - local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store - local.get $0 - i32.const 11008 - i32.store offset=4 i32.const 11008 i32.const 11008 call $~lib/string/String.__eq @@ -4219,22 +4057,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $resolve-binary/foo - local.tee $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + global.get $resolve-binary/foo i32.store offset=12 - local.get $0 - local.get $1 - i32.store offset=16 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11040 - i32.store offset=8 - local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 11040 i32.store - local.get $0 - i32.const 11040 - i32.store offset=4 i32.const 11040 i32.const 11040 call $~lib/string/String.__eq @@ -4248,22 +4081,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $resolve-binary/foo - local.tee $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + global.get $resolve-binary/foo i32.store offset=12 - local.get $0 - local.get $1 - i32.store offset=16 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11072 - i32.store offset=8 - local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 11072 i32.store - local.get $0 - i32.const 11072 - i32.store offset=4 i32.const 11072 i32.const 11072 call $~lib/string/String.__eq @@ -4277,22 +4105,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $resolve-binary/foo - local.tee $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + global.get $resolve-binary/foo i32.store offset=12 - local.get $0 - local.get $1 - i32.store offset=16 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11104 - i32.store offset=8 - local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 11104 i32.store - local.get $0 - i32.const 11104 - i32.store offset=4 i32.const 11104 i32.const 11104 call $~lib/string/String.__eq @@ -4306,22 +4129,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $resolve-binary/foo - local.tee $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + global.get $resolve-binary/foo i32.store offset=12 - local.get $0 - local.get $1 - i32.store offset=16 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11136 - i32.store offset=8 - local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 11136 i32.store - local.get $0 - i32.const 11136 - i32.store offset=4 i32.const 11136 i32.const 11136 call $~lib/string/String.__eq @@ -4335,22 +4153,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $resolve-binary/foo - local.tee $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + global.get $resolve-binary/foo i32.store offset=12 - local.get $0 - local.get $1 - i32.store offset=16 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11168 - i32.store offset=8 - local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 11168 i32.store - local.get $0 - i32.const 11168 - i32.store offset=4 i32.const 11168 i32.const 11168 call $~lib/string/String.__eq @@ -4364,22 +4177,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $resolve-binary/foo - local.tee $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + global.get $resolve-binary/foo i32.store offset=12 - local.get $0 - local.get $1 - i32.store offset=16 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11200 - i32.store offset=8 - local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 11200 i32.store - local.get $0 - i32.const 11200 - i32.store offset=4 i32.const 11200 i32.const 11200 call $~lib/string/String.__eq @@ -4397,21 +4205,20 @@ call $resolve-binary/Bar#constructor global.set $resolve-binary/bar2 global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $resolve-binary/bar i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer global.get $resolve-binary/bar2 - local.tee $1 + local.tee $0 i32.store offset=8 - local.get $1 - global.set $resolve-binary/bar local.get $0 + global.set $resolve-binary/bar + global.get $~lib/memory/__stack_pointer global.get $resolve-binary/bar local.tee $0 i32.store + global.get $resolve-binary/bar2 local.get $0 - local.get $1 i32.ne if i32.const 0 @@ -4441,20 +4248,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 6 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -4467,20 +4272,42 @@ global.set $resolve-binary/baz global.get $~lib/memory/__stack_pointer global.get $resolve-binary/baz - local.tee $0 i32.store global.get $~lib/memory/__stack_pointer + global.get $resolve-binary/baz + local.tee $0 + i32.store + global.get $resolve-binary/baz local.get $0 + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 366 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $resolve-binary/baz i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 + global.get $resolve-binary/baz + local.tee $0 i32.store - local.get $1 + global.get $resolve-binary/baz local.get $0 - i32.store + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 372 + i32.const 1 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer return @@ -4492,41 +4319,4 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/object/Object#constructor (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 11248 - i32.lt_s - if - i32.const 44048 - i32.const 44096 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - local.get $1 - 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 - ) ) diff --git a/tests/compiler/resolve-elementaccess.debug.wat b/tests/compiler/resolve-elementaccess.debug.wat index a8ce8b0059..f6a7e9d7e2 100644 --- a/tests/compiler/resolve-elementaccess.debug.wat +++ b/tests/compiler/resolve-elementaccess.debug.wat @@ -10,7 +10,7 @@ (type $8 (func (param i32 i32 i64) (result i32))) (type $9 (func (result i32))) (type $10 (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) - (type $11 (func (param i32 f64) (result i32))) + (type $11 (func (param i32 f64 i32) (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 i32 i64 i32))) @@ -18,7 +18,7 @@ (type $16 (func (param i32 i64 i32 i32))) (type $17 (func (param i32 i32 f32))) (type $18 (func (param i32 i32) (result f32))) - (type $19 (func (param f64) (result i32))) + (type $19 (func (param f32) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (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)) @@ -1665,14 +1665,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + drop global.get $~lib/rt/itcms/total - i64.extend_i32_u i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 + i32.const 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold @@ -3415,26 +3418,30 @@ end unreachable ) - (func $~lib/util/number/dtoa_core (param $buffer i32) (param $value f64) (result i32) + (func $~lib/util/number/dtoa_core (param $buffer i32) (param $value f64) (param $isSingle i32) (result i32) (local $sign i32) - (local $value|3 f64) - (local $buffer|4 i32) - (local $sign|5 i32) - (local $uv i64) - (local $exp i32) - (local $sid i64) + (local $value|4 f64) + (local $buffer|5 i32) + (local $sign|6 i32) + (local $isSingle|7 i32) (local $frc i64) + (local $exp i32) + (local $uv i32) + (local $sid i32) + (local $uv|12 i64) + (local $sid|13 i64) (local $f i64) (local $e i32) - (local $frc|12 i64) - (local $exp|13 i32) + (local $isSingle|16 i32) + (local $frc|17 i64) + (local $exp|18 i32) (local $off i32) (local $m i32) (local $minExp i32) (local $dk f64) (local $k i32) (local $index i32) - (local $off|20 i32) + (local $off|25 i32) (local $frc_pow i64) (local $exp_pow i32) (local $u i64) @@ -3450,28 +3457,28 @@ (local $e1 i32) (local $e2 i32) (local $w_exp i32) - (local $u|36 i64) - (local $v|37 i64) - (local $u0|38 i64) - (local $v0|39 i64) - (local $u1|40 i64) - (local $v1|41 i64) - (local $l|42 i64) - (local $t|43 i64) - (local $w|44 i64) + (local $u|41 i64) + (local $v|42 i64) + (local $u0|43 i64) + (local $v0|44 i64) + (local $u1|45 i64) + (local $v1|46 i64) + (local $l|47 i64) + (local $t|48 i64) + (local $w|49 i64) (local $wp_frc i64) - (local $e1|46 i32) - (local $e2|47 i32) + (local $e1|51 i32) + (local $e2|52 i32) (local $wp_exp i32) - (local $u|49 i64) - (local $v|50 i64) - (local $u0|51 i64) - (local $v0|52 i64) - (local $u1|53 i64) - (local $v1|54 i64) - (local $l|55 i64) - (local $t|56 i64) - (local $w|57 i64) + (local $u|54 i64) + (local $v|55 i64) + (local $u0|56 i64) + (local $v0|57 i64) + (local $u1|58 i64) + (local $v1|59 i64) + (local $l|60 i64) + (local $t|61 i64) + (local $w|62 i64) (local $wm_frc i64) (local $delta i64) (local $len i32) @@ -3490,77 +3497,127 @@ end block $~lib/util/number/grisu2|inlined.0 (result i32) local.get $value - local.set $value|3 + local.set $value|4 local.get $buffer - local.set $buffer|4 + local.set $buffer|5 local.get $sign - local.set $sign|5 - local.get $value|3 - i64.reinterpret_f64 - local.set $uv - local.get $uv - i64.const 9218868437227405312 - i64.and - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.set $exp - local.get $uv - i64.const 4503599627370495 - i64.and - local.set $sid - local.get $exp - i32.const 0 - i32.ne - i64.extend_i32_u - i64.const 52 - i64.shl - local.get $sid - i64.add - local.set $frc - local.get $exp - i32.const 1 - local.get $exp - select - i32.const 1023 - i32.const 52 - i32.add - i32.sub - local.set $exp + local.set $sign|6 + local.get $isSingle + local.set $isSingle|7 + local.get $isSingle|7 + if + local.get $value|4 + f32.demote_f64 + i32.reinterpret_f32 + local.set $uv + local.get $uv + i32.const 2139095040 + i32.and + i32.const 23 + i32.shr_u + local.set $exp + local.get $uv + i32.const 8388607 + i32.and + local.set $sid + local.get $exp + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 23 + i64.shl + local.get $sid + i64.extend_i32_u + i64.add + local.set $frc + local.get $exp + if (result i32) + local.get $exp + else + i32.const 1 + end + i32.const 127 + i32.const 23 + i32.add + i32.sub + local.set $exp + else + local.get $value|4 + i64.reinterpret_f64 + local.set $uv|12 + local.get $uv|12 + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.set $exp + local.get $uv|12 + i64.const 4503599627370495 + i64.and + local.set $sid|13 + local.get $exp + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 52 + i64.shl + local.get $sid|13 + i64.add + local.set $frc + local.get $exp + if (result i32) + local.get $exp + else + i32.const 1 + end + i32.const 1023 + i32.const 52 + i32.add + i32.sub + local.set $exp + end local.get $frc local.set $f local.get $exp local.set $e + local.get $isSingle|7 + local.set $isSingle|16 local.get $f i64.const 1 i64.shl i64.const 1 i64.add - local.set $frc|12 + local.set $frc|17 local.get $e i32.const 1 i32.sub - local.set $exp|13 - local.get $frc|12 + local.set $exp|18 + local.get $frc|17 i64.clz i32.wrap_i64 local.set $off - local.get $frc|12 + local.get $frc|17 local.get $off i64.extend_i32_s i64.shl - local.set $frc|12 - local.get $exp|13 + local.set $frc|17 + local.get $exp|18 local.get $off i32.sub - local.set $exp|13 + local.set $exp|18 i32.const 1 local.get $f - i64.const 4503599627370496 + local.get $isSingle|16 + if (result i64) + i64.const 8388608 + else + i64.const 4503599627370496 + end i64.eq i32.add local.set $m - local.get $frc|12 + local.get $frc|17 global.set $~lib/util/number/_frc_plus local.get $f local.get $m @@ -3571,12 +3628,12 @@ local.get $e local.get $m i32.sub - local.get $exp|13 + local.get $exp|18 i32.sub i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_minus - local.get $exp|13 + local.get $exp|18 global.set $~lib/util/number/_exp global.get $~lib/util/number/_exp local.set $minExp @@ -3628,14 +3685,14 @@ local.get $frc i64.clz i32.wrap_i64 - local.set $off|20 + local.set $off|25 local.get $frc - local.get $off|20 + local.get $off|25 i64.extend_i32_s i64.shl local.set $frc local.get $exp - local.get $off|20 + local.get $off|25 i32.sub local.set $exp global.get $~lib/util/number/_frc_pow @@ -3720,63 +3777,63 @@ local.set $w_exp block $~lib/util/number/umul64f|inlined.1 (result i64) global.get $~lib/util/number/_frc_plus - local.set $u|36 + local.set $u|41 local.get $frc_pow - local.set $v|37 - local.get $u|36 + local.set $v|42 + local.get $u|41 i64.const 4294967295 i64.and - local.set $u0|38 - local.get $v|37 + local.set $u0|43 + local.get $v|42 i64.const 4294967295 i64.and - local.set $v0|39 - local.get $u|36 + local.set $v0|44 + local.get $u|41 i64.const 32 i64.shr_u - local.set $u1|40 - local.get $v|37 + local.set $u1|45 + local.get $v|42 i64.const 32 i64.shr_u - local.set $v1|41 - local.get $u0|38 - local.get $v0|39 + local.set $v1|46 + local.get $u0|43 + local.get $v0|44 i64.mul - local.set $l|42 - local.get $u1|40 - local.get $v0|39 + local.set $l|47 + local.get $u1|45 + local.get $v0|44 i64.mul - local.get $l|42 + local.get $l|47 i64.const 32 i64.shr_u i64.add - local.set $t|43 - local.get $u0|38 - local.get $v1|41 + local.set $t|48 + local.get $u0|43 + local.get $v1|46 i64.mul - local.get $t|43 + local.get $t|48 i64.const 4294967295 i64.and i64.add - local.set $w|44 - local.get $w|44 + local.set $w|49 + local.get $w|49 i64.const 2147483647 i64.add - local.set $w|44 - local.get $t|43 + local.set $w|49 + local.get $t|48 i64.const 32 i64.shr_u - local.set $t|43 - local.get $w|44 + local.set $t|48 + local.get $w|49 i64.const 32 i64.shr_u - local.set $w|44 - local.get $u1|40 - local.get $v1|41 + local.set $w|49 + local.get $u1|45 + local.get $v1|46 i64.mul - local.get $t|43 + local.get $t|48 i64.add - local.get $w|44 + local.get $w|49 i64.add br $~lib/util/number/umul64f|inlined.1 end @@ -3785,11 +3842,11 @@ local.set $wp_frc block $~lib/util/number/umul64e|inlined.1 (result i32) global.get $~lib/util/number/_exp - local.set $e1|46 + local.set $e1|51 local.get $exp_pow - local.set $e2|47 - local.get $e1|46 - local.get $e2|47 + local.set $e2|52 + local.get $e1|51 + local.get $e2|52 i32.add i32.const 64 i32.add @@ -3798,63 +3855,63 @@ local.set $wp_exp block $~lib/util/number/umul64f|inlined.2 (result i64) global.get $~lib/util/number/_frc_minus - local.set $u|49 + local.set $u|54 local.get $frc_pow - local.set $v|50 - local.get $u|49 + local.set $v|55 + local.get $u|54 i64.const 4294967295 i64.and - local.set $u0|51 - local.get $v|50 + local.set $u0|56 + local.get $v|55 i64.const 4294967295 i64.and - local.set $v0|52 - local.get $u|49 + local.set $v0|57 + local.get $u|54 i64.const 32 i64.shr_u - local.set $u1|53 - local.get $v|50 + local.set $u1|58 + local.get $v|55 i64.const 32 i64.shr_u - local.set $v1|54 - local.get $u0|51 - local.get $v0|52 + local.set $v1|59 + local.get $u0|56 + local.get $v0|57 i64.mul - local.set $l|55 - local.get $u1|53 - local.get $v0|52 + local.set $l|60 + local.get $u1|58 + local.get $v0|57 i64.mul - local.get $l|55 + local.get $l|60 i64.const 32 i64.shr_u i64.add - local.set $t|56 - local.get $u0|51 - local.get $v1|54 + local.set $t|61 + local.get $u0|56 + local.get $v1|59 i64.mul - local.get $t|56 + local.get $t|61 i64.const 4294967295 i64.and i64.add - local.set $w|57 - local.get $w|57 + local.set $w|62 + local.get $w|62 i64.const 2147483647 i64.add - local.set $w|57 - local.get $t|56 + local.set $w|62 + local.get $t|61 i64.const 32 i64.shr_u - local.set $t|56 - local.get $w|57 + local.set $t|61 + local.get $w|62 i64.const 32 i64.shr_u - local.set $w|57 - local.get $u1|53 - local.get $v1|54 + local.set $w|62 + local.get $u1|58 + local.get $v1|59 i64.mul - local.get $t|56 + local.get $t|61 i64.add - local.get $w|57 + local.get $w|62 i64.add br $~lib/util/number/umul64f|inlined.2 end @@ -3865,13 +3922,13 @@ local.get $wm_frc i64.sub local.set $delta - local.get $buffer|4 + local.get $buffer|5 local.get $w_frc local.get $w_exp local.get $wp_frc local.get $wp_exp local.get $delta - local.get $sign|5 + local.get $sign|6 call $~lib/util/number/genDigits br $~lib/util/number/grisu2|inlined.0 end @@ -3894,8 +3951,7 @@ ) (func $~lib/number/F32#toString (param $this f32) (param $radix i32) (result i32) local.get $this - f64.promote_f32 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa return ) (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) @@ -4277,12 +4333,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -4878,13 +4930,13 @@ (local $3 i32) (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + 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 24 + i32.const 20 memory.fill memory.size i32.const 16 @@ -4929,7 +4981,7 @@ local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=8 + i32.store offset=4 local.get $4 i32.const 0 call $~lib/typedarray/Float32Array#__get @@ -4941,11 +4993,6 @@ i32.store local.get $4 i32.const 2144 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 call $~lib/string/String.__eq i32.eqz if @@ -4960,7 +5007,7 @@ local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=8 + i32.store offset=4 local.get $4 i32.const 1 call $~lib/typedarray/Float32Array#__get @@ -4972,11 +5019,6 @@ i32.store local.get $4 i32.const 2256 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 call $~lib/string/String.__eq i32.eqz if @@ -4990,12 +5032,12 @@ global.get $~lib/memory/__stack_pointer global.get $resolve-elementaccess/arr local.tee $0 - i32.store offset=12 + i32.store offset=8 local.get $0 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=8 + i32.store offset=4 local.get $4 i32.const 0 local.tee $1 @@ -5003,7 +5045,7 @@ local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=16 + i32.store offset=12 local.get $4 i32.const 0 call $~lib/typedarray/Float32Array#__get @@ -5014,7 +5056,7 @@ local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=8 + i32.store offset=4 local.get $4 local.get $1 call $~lib/typedarray/Float32Array#__get @@ -5026,11 +5068,6 @@ i32.store local.get $4 i32.const 2288 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 call $~lib/string/String.__eq i32.eqz if @@ -5104,7 +5141,7 @@ local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=8 + i32.store offset=4 local.get $4 i32.const 0 call $~lib/typedarray/Uint8Array#__get @@ -5116,11 +5153,6 @@ i32.store local.get $4 i32.const 3696 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 call $~lib/string/String.__eq i32.eqz if @@ -5135,7 +5167,7 @@ local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=8 + i32.store offset=4 local.get $4 i32.const 1 call $~lib/typedarray/Uint8Array#__get @@ -5147,11 +5179,6 @@ i32.store local.get $4 i32.const 3728 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 call $~lib/string/String.__eq i32.eqz if @@ -5165,12 +5192,12 @@ global.get $~lib/memory/__stack_pointer global.get $resolve-elementaccess/buf local.tee $2 - i32.store offset=20 + i32.store offset=16 local.get $2 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=8 + i32.store offset=4 local.get $4 i32.const 0 local.tee $3 @@ -5178,7 +5205,7 @@ local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=16 + i32.store offset=12 local.get $4 i32.const 0 call $~lib/typedarray/Uint8Array#__get @@ -5189,7 +5216,7 @@ local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=8 + i32.store offset=4 local.get $4 local.get $3 call $~lib/typedarray/Uint8Array#__get @@ -5201,11 +5228,6 @@ i32.store local.get $4 i32.const 3760 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 call $~lib/string/String.__eq i32.eqz if @@ -5254,14 +5276,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/dtoa (param $value f64) (result i32) + (func $~lib/util/number/dtoa (param $value f32) (result i32) + (local $value|1 f64) + (local $isSingle i32) (local $size i32) (local $result i32) - (local $3 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -5270,76 +5294,67 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $value - f64.const 0 - f64.eq - if - i32.const 608 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return - end - local.get $value - local.get $value - f64.sub - f64.const 0 - f64.eq - i32.eqz - if + block $~lib/util/number/dtoa_impl|inlined.0 (result i32) local.get $value - local.get $value - f64.ne + 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 640 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return + i32.const 608 + br $~lib/util/number/dtoa_impl|inlined.0 end - i32.const 672 - i32.const 720 - local.get $value + local.get $value|1 + local.get $value|1 + f64.sub f64.const 0 - f64.lt - select - local.set $3 + 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 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return + 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 - i32.const 752 - local.get $value - 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 - local.set $3 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $5 return ) (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) diff --git a/tests/compiler/resolve-elementaccess.release.wat b/tests/compiler/resolve-elementaccess.release.wat index e9e60b898b..8a6fc68b91 100644 --- a/tests/compiler/resolve-elementaccess.release.wat +++ b/tests/compiler/resolve-elementaccess.release.wat @@ -5,15 +5,15 @@ (type $3 (func (param i32 i32))) (type $4 (func (param i32 i32 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 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))) + (type $6 (func (param i32 i32) (result f32))) + (type $7 (func (param i32 i32 f32))) + (type $8 (func (param i32) (result i32))) + (type $9 (func (param f32) (result i32))) + (type $10 (func (param i32 i32 i64))) + (type $11 (func (param i32 i32 i32) (result i32))) + (type $12 (func (param i64 i64 i32 i64 i32) (result i32))) + (type $13 (func (param f64) (result i32))) + (type $14 (func (result i32))) (import "env" "abort" (func $~lib/builtins/abort (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)) @@ -90,201 +90,6 @@ (data $32 (i32.const 4800) "\07\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\01\19\00\00A\00\00\00A") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - global.get $resolve-elementaccess/arr - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $resolve-elementaccess/buf - 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 - i32.const 3568 - call $~lib/rt/itcms/__visit - i32.const 4624 - 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$150 - 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 37600 - 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$150 - 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 4800 - i32.load - i32.gt_u - if - i32.const 1360 - i32.const 1424 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.const 4804 - 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 @@ -309,3167 +114,3309 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (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.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + (local $6 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u if - i32.const 0 - i32.const 1504 - i32.const 268 - i32.const 14 + i32.const 1168 + i32.const 1232 + i32.const 261 + i32.const 31 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_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 + 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 - local.tee $3 - i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u - i32.and + global.get $~lib/rt/tlsf/ROOT i32.eqz if - i32.const 0 + 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 284 - i32.const 14 + i32.const 461 + i32.const 29 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 + 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.get $5 + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz if 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.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 + i32.load offset=1568 + memory.size + local.tee $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.set $3 + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s 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 + memory.grow + i32.const 0 + i32.lt_s if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - i32.rotl - i32.and - i32.store + 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 - ) - (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 + 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 201 + i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 + local.get $2 + call $~lib/rt/tlsf/removeBlock + local.get $2 i32.load - local.tee $3 - i32.const 1 + local.set $6 + local.get $5 + i32.const 4 + i32.add + i32.const 15 i32.and - i32.eqz if i32.const 0 i32.const 1504 - i32.const 203 + i32.const 361 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load + local.get $6 i32.const -4 i32.and - i32.add - local.tee $4 - i32.load - local.tee $2 - i32.const 1 - i32.and + local.get $5 + i32.sub + local.tee $3 + i32.const 16 + i32.ge_u 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 + local.get $5 + local.get $6 + i32.const 2 i32.and - i32.add - local.tee $3 + i32.or i32.store - local.get $1 + local.get $2 i32.const 4 i32.add - local.get $1 - i32.load - i32.const -4 - i32.and + local.get $5 i32.add - local.tee $4 - i32.load - local.set $2 - end - local.get $3 - i32.const 2 - i32.and - if - local.get $1 + local.tee $5 + local.get $3 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 + 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 $3 + 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 $4 local.get $2 - i32.const 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 + i32.store offset=4 + local.get $2 local.get $3 - i32.const -4 + i32.store offset=8 + local.get $3 + local.get $2 + local.get $3 + i32.load offset=4 + i32.const 3 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 + 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 - i32.ne + local.tee $1 + i32.const 0 + local.get $0 + memory.fill + local.get $1 + ) + (func $~lib/typedarray/Uint8Array#__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 4832 + i32.lt_s if - i32.const 0 - i32.const 1504 - i32.const 234 - i32.const 14 + i32.const 37632 + i32.const 37680 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $4 - i32.const 4 - i32.sub - local.get $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 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 + 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 0 - i32.const 1504 - i32.const 251 - i32.const 14 + i32.const 1360 + i32.const 1568 + i32.const 167 + i32.const 45 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $5 - i32.const 4 - i32.shl - local.get $2 + i32.store + local.get $1 + local.get $0 + i32.load offset=4 i32.add - i32.const 2 - i32.shl + i32.load8_u + global.get $~lib/memory/__stack_pointer + i32.const 4 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 + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Float32Array#__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 4832 + i32.lt_s if - local.get $3 - local.get $1 - i32.store offset=4 + i32.const 37632 + i32.const 37680 + 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 - local.get $5 - i32.const 4 - i32.shl - local.get $2 - i32.add - i32.const 2 - i32.shl - i32.add + i32.store local.get $1 - i32.store offset=96 local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 1360 + i32.const 1568 + i32.const 1304 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load - i32.const 1 - local.get $5 - i32.shl - i32.or i32.store local.get $0 - local.get $5 + i32.load offset=4 + local.get $1 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 + f32.load + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4832 + i32.lt_s if - i32.const 0 - i32.const 1504 - i32.const 382 - i32.const 14 + i32.const 37632 + i32.const 37680 + i32.const 1 + i32.const 1 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 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store local.get $0 - i32.load offset=1568 - local.tee $3 + local.get $1 + i32.eq if - local.get $3 - i32.const 4 + 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.gt_u - if - i32.const 0 - i32.const 1504 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end + 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 16 + i32.const 20 i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - local.set $1 - end - else + 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.const 1572 - i32.add + i32.store + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.gt_u + 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 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + else + i32.const 1 + end + i32.eqz if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $0 + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + block $__inlined_func$~lib/util/string/compareImpl$97 + loop $while-continue|1 + local.get $0 + local.tee $3 + i32.const 1 + i32.sub + local.set $0 + local.get $3 + if + local.get $2 + i32.load16_u + local.tee $5 + local.get $1 + i32.load16_u + local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 + i32.ne + br_if $__inlined_func$~lib/util/string/compareImpl$97 + local.get $2 + i32.const 2 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end + end i32.const 0 - i32.const 1504 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.set $3 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 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.eqz return end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 + global.get $~lib/memory/__stack_pointer 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.add + global.set $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 - local.get $1 + ) + (func $~lib/typedarray/Uint8Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.add - local.get $3 - i32.add - local.tee $3 - i32.const 2 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4832 + i32.lt_s + if + i32.const 37632 + i32.const 37680 + 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 - local.get $3 - i32.store offset=1568 + i32.store + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u + if + i32.const 1360 + i32.const 1568 + i32.const 178 + i32.const 45 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store local.get $1 - call $~lib/rt/tlsf/insertBlock + local.get $0 + i32.load offset=4 + i32.add + local.get $2 + i32.store8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (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 + (func $~lib/typedarray/Float32Array#__set (param $0 i32) (param $1 i32) (param $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 4832 + i32.lt_s if + i32.const 37632 + i32.const 37680 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort unreachable end - i32.const 37600 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - i32.const 39168 - i32.const 0 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - loop $for-loop|0 - local.get $0 - i32.const 23 - i32.lt_u + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 1360 + i32.const 1568 + i32.const 1315 + 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 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 $~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 37600 + i32.const 2744 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 37600 - 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 + i64.load32_u + local.get $3 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 2744 i32.add - local.set $0 - br $for-loop|0 + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 end end - i32.const 37600 - i32.const 39172 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 37600 - global.set $~lib/rt/tlsf/ROOT + 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 2744 + 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 2744 + 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/step (result i32) - (local $0 i32) - (local $1 i32) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $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 + (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 -4 + i32.const -2 + local.get $3 + i32.rotl i32.and - i32.eq + local.set $3 + local.get $1 + local.get $3 + i32.store offset=4 + local.get $3 + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 37600 - 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 + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $2 + i32.rotl 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 37600 - 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 37600 - 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.set $1 - 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 $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - end + i32.store end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state end - i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (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.const 256 - i32.lt_u + i32.eqz 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 + i32.const 0 + i32.const 1504 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable end local.get $1 - i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u + i32.load + local.tee $3 + i32.const 1 i32.and i32.eqz if i32.const 0 i32.const 1504 - i32.const 334 + i32.const 203 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $0 - local.get $2 - i32.const 2 - i32.shl + local.get $1 + i32.const 4 i32.add - i32.load offset=4 - i32.const -1 local.get $1 - i32.shl + i32.load + i32.const -4 i32.and - local.tee $1 - if (result i32) + 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 - i32.ctz + 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.shl i32.add - i32.const 2 - i32.shl + local.get $1 + i32.load + i32.const -4 + i32.and i32.add - i32.load offset=96 - else - local.get $0 + local.tee $4 i32.load - i32.const -1 - local.get $2 + 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.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 - 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 $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 - 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 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 $5 + local.get $4 local.get $2 - i32.load + i32.const 2 + i32.or + i32.store + local.get $3 i32.const -4 i32.and - i32.gt_u + local.tee $2 + i32.const 12 + i32.lt_u if i32.const 0 i32.const 1504 - i32.const 501 + i32.const 233 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 + local.get $1 i32.const 4 i32.add - i32.const 15 - i32.and + local.get $2 + i32.add + i32.ne if i32.const 0 i32.const 1504 - i32.const 361 + i32.const 234 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $6 - i32.const -4 - i32.and - local.get $5 + local.get $4 + i32.const 4 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 $1 + i32.store + local.get $2 + i32.const 256 + i32.lt_u + if (result i32) 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 + i32.shr_u else + i32.const 31 + i32.const 1073741820 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 + 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.load - i32.const -3 - i32.and - i32.store + 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 $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 $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.get $~lib/rt/itcms/white - i32.or + i32.const 0 i32.store offset=4 - local.get $2 + local.get $1 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 + 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 - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 + 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 $1 - i32.const 0 + local.tee $0 local.get $0 - memory.fill - local.get $1 + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 ) - (func $~lib/arraybuffer/ArrayBufferView#set:buffer (param $0 i32) (param $1 i32) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) (local $2 i32) + (local $3 i32) local.get $0 - local.get $1 - i32.store - local.get $1 + 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 295 - i32.const 14 + i32.const 148 + i32.const 30 call $~lib/builtins/abort unreachable end - global.get $~lib/rt/itcms/white - local.tee $2 local.get $1 - i32.const 20 - i32.sub - local.tee $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$153 + local.get $0 i32.load offset=4 - i32.const 3 + i32.const -4 i32.and - i32.eq + local.tee $1 + i32.eqz if local.get $0 - i32.const 20 - i32.sub - i32.load offset=4 - i32.const 3 + i32.load offset=8 + i32.eqz + local.get $0 + i32.const 37600 + i32.lt_u i32.and - local.tee $0 - local.get $2 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 + 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$153 + 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 - ) - (func $~lib/util/number/genDigits (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (result i32) - (local $5 i32) - (local $6 i32) - (local $7 i64) - (local $8 i32) - (local $9 i64) - (local $10 i64) - (local $11 i32) - (local $12 i64) - local.get $1 + 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 4800 + i32.load + i32.gt_u + if + i32.const 1360 + i32.const 1424 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 4804 + 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 - i64.sub - local.set $10 - i64.const 1 - i32.const 0 - local.get $2 - i32.sub - local.tee $11 - i64.extend_i32_s - local.tee $0 - i64.shl - local.tee $7 - i64.const 1 - i64.sub - local.tee $12 local.get $1 - i64.and - local.set $9 + i32.store offset=8 local.get $1 local.get $0 - i64.shr_u - i32.wrap_i64 - local.tee $5 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $5 - i32.const 100 - i32.lt_u - if (result i32) - local.get $5 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $5 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $5 - i32.const 1000 - i32.ge_u - i32.add + 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/__visit_members (param $0 i32) + block $folding-inner0 + block $invalid + 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-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $invalid + end + return + end + return + end + return end - else - local.get $5 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $5 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $5 - i32.const 100000000 - i32.ge_u + unreachable + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + ) + (func $~lib/number/U8#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 4832 + i32.lt_s + if + i32.const 37632 + i32.const 37680 + 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$79 + local.get $0 + i32.const 255 + i32.and + 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 3536 + local.set $0 + br $__inlined_func$~lib/util/number/utoa32$79 end + global.get $~lib/memory/__stack_pointer + i32.const 3 + local.get $1 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + local.get $1 + i32.const 100 + i32.ge_u + select + local.tee $2 + i32.const 1 + i32.shl + i32.const 2 + 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.set $8 - loop $while-continue|0 - local.get $8 - i32.const 0 - i32.gt_s + local.get $0 + ) + (func $~lib/number/F32#toString (param $0 f32) (result i32) + (local $1 f64) + (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 4832 + i32.lt_s + if + i32.const 37632 + i32.const 37680 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 1632 + local.set $2 + block $~lib/util/number/dtoa_impl|inlined.0 + local.get $0 + f64.promote_f32 + local.tee $1 + f64.const 0 + f64.eq + br_if $~lib/util/number/dtoa_impl|inlined.0 + local.get $1 + local.get $1 + f64.sub + f64.const 0 + f64.ne if - block $break|1 - block $case10|1 - block $case9|1 - block $case8|1 - block $case7|1 - block $case6|1 - block $case5|1 - block $case4|1 - block $case3|1 - block $case2|1 - block $case1|1 - block $case0|1 - local.get $8 - i32.const 1 - i32.sub - br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $case0|1 $case10|1 - end - local.get $5 - i32.const 1000000000 - i32.div_u - local.set $6 - local.get $5 - i32.const 1000000000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 100000000 - i32.div_u - local.set $6 - local.get $5 - i32.const 100000000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 10000000 - i32.div_u - local.set $6 - local.get $5 - i32.const 10000000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 1000000 - i32.div_u - local.set $6 - local.get $5 - i32.const 1000000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 100000 - i32.div_u - local.set $6 - local.get $5 - i32.const 100000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 10000 - i32.div_u - local.set $6 - local.get $5 - i32.const 10000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 1000 - i32.div_u - local.set $6 - local.get $5 - i32.const 1000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 100 - i32.div_u - local.set $6 - local.get $5 - i32.const 100 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 10 - i32.div_u - local.set $6 - local.get $5 - i32.const 10 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - local.set $6 - i32.const 0 - local.set $5 - br $break|1 - end - i32.const 0 - local.set $6 - end - local.get $4 - local.get $6 - i32.or - if - local.get $4 - local.tee $2 - i32.const 1 - i32.add - local.set $4 - local.get $2 - i32.const 1 - i32.shl - i32.const 1776 - i32.add - local.get $6 - i32.const 65535 - i32.and - i32.const 48 - i32.add - i32.store16 - end - local.get $8 - i32.const 1 - i32.sub - local.set $8 - local.get $3 - local.get $5 - i64.extend_i32_u - local.get $11 - i64.extend_i32_s - local.tee $1 - i64.shl - local.get $9 - i64.add - local.tee $0 - i64.ge_u - if - global.get $~lib/util/number/_K - local.get $8 - i32.add - global.set $~lib/util/number/_K - local.get $8 - i32.const 2 - i32.shl - i32.const 2704 - i32.add - i64.load32_u - local.get $1 - i64.shl - local.set $7 - local.get $4 - i32.const 1 - i32.shl - i32.const 1774 - i32.add - local.tee $2 - i32.load16_u - local.set $6 - loop $while-continue|3 - local.get $0 - local.get $10 - i64.lt_u - local.get $3 - local.get $0 - i64.sub - local.get $7 - i64.ge_u - i32.and - if (result i32) - local.get $10 - local.get $0 - local.get $7 - i64.add - local.tee $1 - i64.gt_u - local.get $10 - local.get $0 - i64.sub - local.get $1 - local.get $10 - i64.sub - i64.gt_u - i32.or - else - i32.const 0 - end - if - local.get $6 - i32.const 1 - i32.sub - local.set $6 - local.get $0 - local.get $7 - i64.add - local.set $0 - br $while-continue|3 - end - end - local.get $2 - local.get $6 - i32.store16 - local.get $4 - return - end - br $while-continue|0 + i32.const 1664 + local.set $2 + local.get $1 + local.get $1 + f64.ne + br_if $~lib/util/number/dtoa_impl|inlined.0 + i32.const 1696 + i32.const 1744 + local.get $1 + f64.const 0 + f64.lt + select + local.set $2 + br $~lib/util/number/dtoa_impl|inlined.0 end - end - loop $while-continue|4 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $~lib/util/number/dtoa_core + i32.const 1 + i32.shl + local.tee $3 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + i32.const 1776 local.get $3 - i64.const 10 - i64.mul - local.set $3 - local.get $9 - i64.const 10 - i64.mul - local.tee $1 - local.get $11 - i64.extend_i32_s - i64.shr_u - local.tee $0 - local.get $4 - i64.extend_i32_s - i64.or - i64.const 0 - i64.ne + memory.copy + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (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 $4 - local.tee $2 - i32.const 1 - i32.add - local.set $4 - local.get $2 + local.get $1 i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub i32.shl - i32.const 1776 - i32.add - local.get $0 - i32.wrap_i64 - i32.const 65535 - i32.and - i32.const 48 i32.add - i32.store16 + i32.const 1 + i32.sub + local.set $1 end - local.get $8 - i32.const 1 - i32.sub - local.set $8 local.get $1 - local.get $12 - i64.and - local.tee $9 - local.get $3 - i64.ge_u - br_if $while-continue|4 + 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 - global.get $~lib/util/number/_K - local.get $8 - i32.add - global.set $~lib/util/number/_K - local.get $10 - i32.const 0 - local.get $8 - i32.sub + 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.const 2704 i32.add - i64.load32_u - i64.mul - local.set $1 - local.get $4 - i32.const 1 + i32.load offset=4 + i32.const -1 + local.get $1 i32.shl - i32.const 1774 - i32.add - local.tee $2 - i32.load16_u - local.set $6 - loop $while-continue|6 + i32.and + local.tee $1 + if (result i32) + local.get $0 local.get $1 - local.get $9 - i64.gt_u - local.get $3 - local.get $9 - i64.sub - local.get $7 - i64.ge_u + 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 $1 - local.get $7 - local.get $9 - i64.add - local.tee $0 - i64.gt_u - local.get $1 - local.get $9 - i64.sub local.get $0 local.get $1 - i64.sub - i64.gt_u - i32.or - else - i32.const 0 - end - if - local.get $6 - i32.const 1 - i32.sub - local.set $6 - local.get $7 - local.get $9 - i64.add - local.set $9 - br $while-continue|6 - end - end - local.get $2 - local.get $6 - i32.store16 - local.get $4 - ) - (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 + 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.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 2744 i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u i32.const 2 i32.shl - i32.const 2744 i32.add - i64.load32_u - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 + i32.load offset=96 + else + i32.const 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 + ) + (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 - i32.shl - i32.add - local.get $1 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 2744 - 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 2744 - i32.add - i32.load - i32.store + memory.grow + i32.const 0 + i32.lt_s 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 + i32.const 0 end - ) - (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - local.get $2 - i32.eqz if - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 3145774 - i32.store - local.get $1 - i32.const 2 - i32.add - return + unreachable end - local.get $1 - local.get $2 - i32.add - local.tee $3 - i32.const 21 - i32.le_s - local.get $1 - local.get $3 - i32.le_s - i32.and - if (result i32) - loop $for-loop|0 - local.get $1 - local.get $3 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 48 - i32.store16 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 - end - end + i32.const 37600 + i32.const 0 + i32.store + i32.const 39168 + i32.const 0 + i32.store + loop $for-loop|0 local.get $0 - local.get $3 - i32.const 1 - i32.shl - i32.add - i32.const 3145774 - i32.store - local.get $3 - i32.const 2 - i32.add - else - local.get $3 - i32.const 21 - i32.le_s - local.get $3 - i32.const 0 - i32.gt_s - i32.and - if (result i32) + i32.const 23 + i32.lt_u + if local.get $0 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.tee $0 i32.const 2 - i32.add - local.get $0 - i32.const 0 - local.get $2 - i32.sub - i32.const 1 i32.shl - memory.copy - local.get $0 - i32.const 46 - i32.store16 - local.get $1 - i32.const 1 + i32.const 37600 i32.add - else - local.get $3 i32.const 0 - i32.le_s - local.get $3 - i32.const -6 - i32.gt_s - i32.and - if (result i32) - local.get $0 - i32.const 2 - local.get $3 - i32.sub - local.tee $3 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $1 - i32.const 1 - i32.shl - memory.copy - local.get $0 - i32.const 3014704 - i32.store - i32.const 2 - local.set $2 - loop $for-loop|1 - local.get $2 - local.get $3 - i32.lt_s - if - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 48 - i32.store16 - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|1 - end - end - local.get $1 - local.get $3 - i32.add - else + i32.store offset=4 + i32.const 0 + local.set $1 + loop $for-loop|1 local.get $1 - i32.const 1 - i32.eq + i32.const 16 + i32.lt_u if - local.get $0 - i32.const 101 - i32.store16 offset=2 - local.get $0 - i32.const 4 - i32.add - local.tee $2 - local.get $3 - i32.const 1 - i32.sub - local.tee $0 - i32.const 0 - i32.lt_s - local.tee $3 - if - i32.const 0 - local.get $0 - i32.sub - local.set $0 - end - local.get $0 - local.get $0 - 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 - i32.const 1 - i32.add - local.tee $1 - call $~lib/util/number/utoa32_dec_lut - local.get $2 - i32.const 45 - i32.const 43 - local.get $3 - select - i32.store16 - else local.get $0 i32.const 4 + i32.shl + local.get $1 i32.add - local.get $0 i32.const 2 + i32.shl + i32.const 37600 i32.add + i32.const 0 + i32.store offset=96 local.get $1 i32.const 1 - i32.shl - local.tee $2 - i32.const 2 - i32.sub - memory.copy - local.get $0 - i32.const 46 - i32.store16 offset=2 - local.get $0 - local.get $2 - i32.add - local.tee $0 - i32.const 101 - i32.store16 offset=2 - local.get $0 - i32.const 4 - i32.add - local.tee $4 - local.get $3 - i32.const 1 - i32.sub - local.tee $0 - i32.const 0 - i32.lt_s - local.tee $2 - if - i32.const 0 - local.get $0 - i32.sub - local.set $0 - end - local.get $0 - local.get $0 - 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 - i32.const 1 - i32.add - local.tee $0 - call $~lib/util/number/utoa32_dec_lut - local.get $4 - i32.const 45 - i32.const 43 - local.get $2 - select - i32.store16 - local.get $0 - local.get $1 i32.add local.set $1 + br $for-loop|1 end - local.get $1 - i32.const 2 - i32.add end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end end + i32.const 37600 + i32.const 39172 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 37600 + global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/util/number/dtoa_core (param $0 f64) (result i32) - (local $1 i64) - (local $2 i32) - (local $3 i64) - (local $4 i64) - (local $5 i64) - (local $6 i64) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i64) - (local $11 i64) - (local $12 i64) - (local $13 i64) - (local $14 i64) + (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 - f64.const 0 - f64.lt - local.tee $2 - if (result f64) - i32.const 1776 - i32.const 45 - i32.store16 - local.get $0 - f64.neg + 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 - i64.reinterpret_f64 - local.tee $1 - i64.const 9218868437227405312 - i64.and - i64.const 52 - i64.shr_u + local.get $2 i32.wrap_i64 - local.tee $7 - i32.const 1 - local.get $7 - select - i32.const 1075 + i32.const -16 + i32.and + local.get $1 i32.sub - local.tee $8 - i32.const 1 + 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 - i64.const 4503599627370495 - i64.and - local.get $7 i32.const 0 - i32.ne - i64.extend_i32_u - i64.const 52 - i64.shl - i64.add - local.tee $1 - i64.const 1 - i64.shl - i64.const 1 - i64.add - local.tee $3 - i64.clz - i32.wrap_i64 - local.tee $7 - i32.sub - local.set $9 - local.get $3 - local.get $7 - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_plus + i32.store offset=4 local.get $1 + i32.const 0 + i32.store offset=8 local.get $1 - i64.const 4503599627370496 - i64.eq - i32.const 1 - i32.add - local.tee $7 - i64.extend_i32_s - i64.shl - i64.const 1 - i64.sub - local.get $8 - local.get $7 - i32.sub - local.get $9 - i32.sub - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_minus - local.get $9 - global.set $~lib/util/number/_exp - i32.const 348 - i32.const -61 - global.get $~lib/util/number/_exp - local.tee $7 - i32.sub - f64.convert_i32_s - f64.const 0.30102999566398114 - f64.mul - f64.const 347 - f64.add - local.tee $0 - i32.trunc_sat_f64_s - local.tee $8 - local.get $8 - f64.convert_i32_s - local.get $0 - f64.ne - i32.add - i32.const 3 - i32.shr_s - i32.const 1 - i32.add - local.tee $8 - i32.const 3 - i32.shl - local.tee $9 - i32.sub - global.set $~lib/util/number/_K - local.get $9 - i32.const 1832 + i32.const 4 i32.add - i64.load - global.set $~lib/util/number/_frc_pow - local.get $8 - i32.const 1 - i32.shl - i32.const 2528 + local.get $3 i32.add - i32.load16_s - global.set $~lib/util/number/_exp_pow - local.get $1 + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 local.get $1 - i64.clz - i64.shl - local.tee $1 - i64.const 4294967295 - i64.and - local.set $4 - global.get $~lib/util/number/_frc_pow - local.tee $10 - i64.const 4294967295 - i64.and - local.tee $11 - local.get $1 - i64.const 32 - i64.shr_u - local.tee $1 - i64.mul - local.get $4 - local.get $11 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.set $5 - global.get $~lib/util/number/_frc_plus - local.tee $3 - i64.const 4294967295 - i64.and - local.set $12 - local.get $3 - i64.const 32 - i64.shr_u - local.tee $3 - local.get $11 - i64.mul - local.get $11 - local.get $12 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.set $6 - global.get $~lib/util/number/_frc_minus - local.tee $13 - i64.const 4294967295 - i64.and - local.set $14 - local.get $13 - i64.const 32 - i64.shr_u - local.tee $13 - local.get $11 - i64.mul - local.get $11 - local.get $14 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.set $11 - local.get $2 - i32.const 1 - i32.shl - i32.const 1776 - i32.add - local.get $1 - local.get $10 - i64.const 32 - i64.shr_u + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + global.get $resolve-elementaccess/arr + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $resolve-elementaccess/buf + 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 + i32.const 3568 + call $~lib/rt/itcms/__visit + i32.const 4624 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace local.tee $1 - i64.mul - local.get $5 - i64.const 32 - i64.shr_u - i64.add - local.get $1 - local.get $4 - i64.mul - local.get $5 - i64.const 4294967295 - i64.and - i64.add - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - local.get $1 - local.get $3 - i64.mul - local.get $6 - i64.const 32 - i64.shr_u - i64.add - local.get $1 - local.get $12 - i64.mul - local.get $6 - i64.const 4294967295 - i64.and - i64.add - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - i64.const 1 - i64.sub - local.tee $3 - local.get $7 - global.get $~lib/util/number/_exp_pow - i32.add - i32.const -64 - i32.sub - local.get $3 + 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/arraybuffer/ArrayBufferView#set:buffer (param $0 i32) (param $1 i32) + local.get $0 local.get $1 - local.get $13 - i64.mul - local.get $11 - i64.const 32 - i64.shr_u - i64.add + i32.store local.get $1 - local.get $14 - i64.mul - local.get $11 - i64.const 4294967295 - i64.and - i64.add - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - i64.const 1 - i64.add - i64.sub - local.get $2 - call $~lib/util/number/genDigits - local.get $2 - i32.sub - global.get $~lib/util/number/_K - call $~lib/util/number/prettify - local.get $2 - i32.add - ) - (func $~lib/number/F32#toString (param $0 f32) (result i32) - (local $1 f64) - (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 4832 - i32.lt_s if - i32.const 37632 - i32.const 37680 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + 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 + end + ) + (func $~lib/arraybuffer/ArrayBufferView#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 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 4832 + i32.lt_s + if + i32.const 37632 + i32.const 37680 + 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 + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:buffer + 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 1073741820 + local.get $1 + i32.shr_u + i32.const 2 + i32.lt_u + if + i32.const 1056 + i32.const 1104 + i32.const 19 + i32.const 57 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 2 + local.get $1 + i32.shl + local.tee $2 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=8 + 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=12 + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#set:buffer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~start + call $start:resolve-elementaccess + ) + (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + local.get $2 + i32.eqz + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 3145774 + i32.store + local.get $1 + i32.const 2 + i32.add + return + end + local.get $1 + local.get $2 + i32.add + local.tee $3 + i32.const 21 + i32.le_s + local.get $1 + local.get $3 + i32.le_s + i32.and + if (result i32) + loop $for-loop|0 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 48 + i32.store16 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.const 3145774 + i32.store + local.get $3 + i32.const 2 + i32.add + else + local.get $3 + i32.const 21 + i32.le_s + local.get $3 + i32.const 0 + i32.gt_s + i32.and + if (result i32) + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.tee $0 + i32.const 2 + i32.add + local.get $0 + i32.const 0 + local.get $2 + i32.sub + i32.const 1 + i32.shl + memory.copy + local.get $0 + i32.const 46 + i32.store16 + local.get $1 + i32.const 1 + i32.add + else + local.get $3 + i32.const 0 + i32.le_s + local.get $3 + i32.const -6 + i32.gt_s + i32.and + if (result i32) + local.get $0 + i32.const 2 + local.get $3 + i32.sub + local.tee $3 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $1 + i32.const 1 + i32.shl + memory.copy + local.get $0 + i32.const 3014704 + i32.store + i32.const 2 + local.set $2 + loop $for-loop|1 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 48 + i32.store16 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 + end + end + local.get $1 + local.get $3 + i32.add + else + local.get $1 + i32.const 1 + i32.eq + if + local.get $0 + i32.const 101 + i32.store16 offset=2 + local.get $0 + i32.const 4 + i32.add + local.tee $2 + local.get $3 + i32.const 1 + i32.sub + local.tee $0 + i32.const 0 + i32.lt_s + local.tee $3 + if + i32.const 0 + local.get $0 + i32.sub + local.set $0 + end + local.get $0 + local.get $0 + 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 + i32.const 1 + i32.add + local.tee $1 + call $~lib/util/number/utoa32_dec_lut + local.get $2 + i32.const 45 + i32.const 43 + local.get $3 + select + i32.store16 + else + local.get $0 + i32.const 4 + i32.add + local.get $0 + i32.const 2 + i32.add + local.get $1 + i32.const 1 + i32.shl + local.tee $2 + i32.const 2 + i32.sub + memory.copy + local.get $0 + i32.const 46 + i32.store16 offset=2 + local.get $0 + local.get $2 + i32.add + local.tee $0 + i32.const 101 + i32.store16 offset=2 + local.get $0 + i32.const 4 + i32.add + local.tee $4 + local.get $3 + i32.const 1 + i32.sub + local.tee $0 + i32.const 0 + i32.lt_s + local.tee $2 + if + i32.const 0 + local.get $0 + i32.sub + local.set $0 + end + local.get $0 + local.get $0 + 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 + i32.const 1 + i32.add + local.tee $0 + call $~lib/util/number/utoa32_dec_lut + local.get $4 + i32.const 45 + i32.const 43 + local.get $2 + select + i32.store16 + local.get $0 + local.get $1 + i32.add + local.set $1 + end + local.get $1 + i32.const 2 + i32.add + end + end + end + ) + (func $~lib/util/number/genDigits (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (result i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i64) + (local $9 i64) + (local $10 i64) + (local $11 i32) + (local $12 i64) + local.get $1 + local.get $0 + i64.sub + local.set $9 + i64.const 1 + i32.const 0 + local.get $2 + i32.sub + local.tee $11 + i64.extend_i32_s + local.tee $0 + i64.shl + local.tee $10 + i64.const 1 + i64.sub + local.tee $12 + local.get $1 + i64.and + local.set $8 + local.get $1 + local.get $0 + i64.shr_u + i32.wrap_i64 + local.tee $2 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $2 + i32.const 100 + i32.lt_u + if (result i32) + local.get $2 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $2 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $2 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $2 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $2 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $2 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $2 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.set $7 + loop $while-continue|0 + local.get $7 + i32.const 0 + i32.gt_s + if + block $break|1 + block $case10|1 + block $case9|1 + block $case8|1 + block $case7|1 + block $case6|1 + block $case5|1 + block $case4|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + local.get $7 + i32.const 1 + i32.sub + br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $case0|1 $case10|1 + end + local.get $2 + i32.const 1000000000 + i32.div_u + local.set $5 + local.get $2 + i32.const 1000000000 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 100000000 + i32.div_u + local.set $5 + local.get $2 + i32.const 100000000 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 10000000 + i32.div_u + local.set $5 + local.get $2 + i32.const 10000000 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 1000000 + i32.div_u + local.set $5 + local.get $2 + i32.const 1000000 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 100000 + i32.div_u + local.set $5 + local.get $2 + i32.const 100000 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 10000 + i32.div_u + local.set $5 + local.get $2 + i32.const 10000 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 1000 + i32.div_u + local.set $5 + local.get $2 + i32.const 1000 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 100 + i32.div_u + local.set $5 + local.get $2 + i32.const 100 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 10 + i32.div_u + local.set $5 + local.get $2 + i32.const 10 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + local.set $5 + i32.const 0 + local.set $2 + br $break|1 + end + i32.const 0 + local.set $5 + end + local.get $4 + local.get $5 + i32.or + if + local.get $4 + local.tee $6 + i32.const 1 + i32.add + local.set $4 + local.get $6 + i32.const 1 + i32.shl + i32.const 1776 + i32.add + local.get $5 + i32.const 65535 + i32.and + i32.const 48 + i32.add + i32.store16 + end + local.get $7 + i32.const 1 + i32.sub + local.set $7 + local.get $3 + local.get $2 + i64.extend_i32_u + local.get $11 + i64.extend_i32_s + local.tee $1 + i64.shl + local.get $8 + i64.add + local.tee $0 + i64.ge_u + if + global.get $~lib/util/number/_K + local.get $7 + i32.add + global.set $~lib/util/number/_K + local.get $7 + i32.const 2 + i32.shl + i32.const 2704 + i32.add + i64.load32_u + local.get $1 + i64.shl + local.set $1 + local.get $4 + i32.const 1 + i32.shl + i32.const 1774 + i32.add + local.tee $2 + i32.load16_u + local.set $7 + loop $while-continue|3 + local.get $0 + local.get $9 + i64.lt_u + local.get $3 + local.get $0 + i64.sub + local.get $1 + i64.ge_u + i32.and + if (result i32) + local.get $9 + local.get $0 + local.get $1 + i64.add + local.tee $8 + i64.gt_u + local.get $9 + local.get $0 + i64.sub + local.get $8 + local.get $9 + i64.sub + i64.gt_u + i32.or + else + i32.const 0 + end + if + local.get $7 + i32.const 1 + i32.sub + local.set $7 + local.get $0 + local.get $1 + i64.add + local.set $0 + br $while-continue|3 + end + end + local.get $2 + local.get $7 + i32.store16 + local.get $4 + return + end + br $while-continue|0 + end end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/dtoa$77 - local.get $0 - f64.promote_f32 + loop $while-continue|4 + local.get $3 + i64.const 10 + i64.mul + local.set $3 + local.get $8 + i64.const 10 + i64.mul + local.tee $0 + local.get $11 + i64.extend_i32_s + i64.shr_u local.tee $1 - f64.const 0 - f64.eq + local.get $4 + i64.extend_i32_s + i64.or + i64.const 0 + i64.ne if + local.get $4 + local.tee $2 + i32.const 1 + i32.add + local.set $4 local.get $2 - i32.const 4 + i32.const 1 + i32.shl + i32.const 1776 i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1632 - local.set $2 - br $__inlined_func$~lib/util/number/dtoa$77 - end - local.get $1 - local.get $1 - f64.sub - f64.const 0 - f64.ne - if local.get $1 - local.get $1 - f64.ne - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1664 - local.set $2 - br $__inlined_func$~lib/util/number/dtoa$77 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.wrap_i64 + i32.const 65535 + i32.and + i32.const 48 i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1696 - i32.const 1744 - local.get $1 - f64.const 0 - f64.lt - select - local.set $2 - br $__inlined_func$~lib/util/number/dtoa$77 + i32.store16 end - local.get $1 - call $~lib/util/number/dtoa_core + local.get $7 i32.const 1 - i32.shl - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - i32.const 1776 + i32.sub + local.set $7 + local.get $0 + local.get $12 + i64.and + local.tee $8 local.get $3 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i64.ge_u + br_if $while-continue|4 end - local.get $2 - ) - (func $~lib/number/U8#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 + global.get $~lib/util/number/_K + local.get $7 + i32.add + global.set $~lib/util/number/_K + local.get $9 + i32.const 0 + local.get $7 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4832 - i32.lt_s - if - i32.const 37632 - i32.const 37680 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.shl + i32.const 2704 + i32.add + i64.load32_u + i64.mul + local.set $0 + local.get $4 + i32.const 1 + i32.shl + i32.const 1774 + i32.add local.tee $2 - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$79 + i32.load16_u + local.set $7 + loop $while-continue|6 local.get $0 - i32.const 255 + local.get $8 + i64.gt_u + local.get $3 + local.get $8 + i64.sub + local.get $10 + i64.ge_u i32.and - local.tee $1 - i32.eqz - if - local.get $2 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 3536 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$79 - end - global.get $~lib/memory/__stack_pointer - i32.const 3 - local.get $1 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - local.get $1 - i32.const 100 - i32.ge_u - select - local.tee $2 - i32.const 1 - i32.shl - i32.const 2 - 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/__visit_members (param $0 i32) - block $folding-inner0 - block $invalid - 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-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $invalid - end - return - end - return - end - return + if (result i32) + local.get $0 + local.get $8 + local.get $10 + i64.add + local.tee $1 + i64.gt_u + local.get $0 + local.get $8 + i64.sub + local.get $1 + local.get $0 + i64.sub + i64.gt_u + i32.or + else + i32.const 0 end - unreachable - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - ) - (func $~start - call $start:resolve-elementaccess - ) - (func $~lib/arraybuffer/ArrayBufferView#constructor (param $0 i32) (param $1 i32) (result i32) - (local $2 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 4832 - i32.lt_s - if - i32.const 37632 - i32.const 37680 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store + if + local.get $7 + i32.const 1 + i32.sub + local.set $7 + local.get $8 + local.get $10 + i64.add + local.set $8 + br $while-continue|6 + end + end local.get $2 - i64.const 0 - i64.store offset=8 + local.get $7 + i32.store16 + local.get $4 + ) + (func $~lib/util/number/dtoa_core (param $0 f64) (result i32) + (local $1 i64) + (local $2 i32) + (local $3 i64) + (local $4 i32) + (local $5 i64) + (local $6 i64) + (local $7 i64) + (local $8 i32) + (local $9 i32) + (local $10 i64) + (local $11 i64) + (local $12 i64) + (local $13 i64) + (local $14 i64) local.get $0 - i32.eqz - if - local.get $2 - i32.const 12 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store + f64.const 0 + f64.lt + local.tee $2 + if (result f64) + i32.const 1776 + i32.const 45 + i32.store16 + local.get $0 + f64.neg + else + local.get $0 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:buffer - 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 + f32.demote_f64 + i32.reinterpret_f32 + local.tee $4 + i32.const 2139095040 + i32.and + i32.const 23 + i32.shr_u + local.tee $8 + i32.const 1 + local.get $8 + select + i32.const 150 + i32.sub + local.tee $9 + i32.const 1 + i32.sub + local.get $4 + i32.const 8388607 + i32.and + i64.extend_i32_u + local.get $8 i32.const 0 - i32.store offset=8 - i32.const 1073741820 + i32.ne + i64.extend_i32_u + i64.const 23 + i64.shl + i64.add + local.tee $1 + i64.const 1 + i64.shl + i64.const 1 + i64.add + local.tee $3 + i64.clz + i32.wrap_i64 + local.tee $8 + i32.sub + local.set $4 + local.get $3 + local.get $8 + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_plus local.get $1 - i32.shr_u - i32.const 2 - i32.lt_u - if - i32.const 1056 - i32.const 1104 - i32.const 19 - i32.const 57 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 2 local.get $1 - i32.shl - local.tee $1 + i64.const 8388608 + i64.eq i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 - local.get $0 - local.get $2 - call $~lib/arraybuffer/ArrayBufferView#set:buffer - 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 $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/typedarray/Float32Array#__set (param $0 i32) (param $1 i32) (param $2 f32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.tee $8 + i64.extend_i32_s + i64.shl + i64.const 1 + i64.sub + local.get $9 + local.get $8 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4832 - i32.lt_s - if - i32.const 37632 - i32.const 37680 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $3 + local.get $4 + i32.sub + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_minus + local.get $4 + global.set $~lib/util/number/_exp + i32.const 348 + i32.const -61 + global.get $~lib/util/number/_exp + i32.sub + f64.convert_i32_s + f64.const 0.30102999566398114 + f64.mul + f64.const 347 + f64.add + local.tee $0 + i32.trunc_sat_f64_s + local.tee $4 + local.get $4 + f64.convert_i32_s local.get $0 - i32.store + f64.ne + i32.add + i32.const 3 + i32.shr_s + i32.const 1 + i32.add + local.tee $4 + i32.const 3 + i32.shl + local.tee $8 + i32.sub + global.set $~lib/util/number/_K + local.get $8 + i32.const 1832 + i32.add + i64.load + global.set $~lib/util/number/_frc_pow + local.get $4 + i32.const 1 + i32.shl + i32.const 2528 + i32.add + i32.load16_s + global.set $~lib/util/number/_exp_pow local.get $1 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.ge_u - if - i32.const 1360 - i32.const 1568 - i32.const 1315 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + local.get $1 + i64.clz + i64.shl + local.tee $1 + i64.const 4294967295 + i64.and + local.set $5 + global.get $~lib/util/number/_frc_pow + local.tee $10 + i64.const 4294967295 + i64.and + local.tee $11 + local.get $1 + i64.const 32 + i64.shr_u + local.tee $1 + i64.mul + local.get $5 + local.get $11 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.set $6 + global.get $~lib/util/number/_frc_plus + local.tee $3 + i64.const 4294967295 + i64.and + local.set $12 + local.get $3 + i64.const 32 + i64.shr_u local.tee $3 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 + local.get $11 + i64.mul + local.get $11 + local.get $12 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.set $7 + global.get $~lib/util/number/_frc_minus + local.tee $13 + i64.const 4294967295 + i64.and + local.set $14 + local.get $13 + i64.const 32 + i64.shr_u + local.tee $13 + local.get $11 + i64.mul + local.get $11 + local.get $14 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.set $11 + local.get $2 + i32.const 1 i32.shl + i32.const 1776 i32.add - local.get $2 - f32.store + local.get $1 + local.get $10 + i64.const 32 + i64.shr_u + local.tee $1 + i64.mul + local.get $6 + i64.const 32 + i64.shr_u + i64.add + local.get $1 + local.get $5 + i64.mul + local.get $6 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + local.get $1 local.get $3 - i32.const 4 + i64.mul + local.get $7 + i64.const 32 + i64.shr_u + i64.add + local.get $1 + local.get $12 + i64.mul + local.get $7 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.sub + local.tee $3 + global.get $~lib/util/number/_exp_pow + global.get $~lib/util/number/_exp i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Float32Array#__get (param $0 i32) (param $1 i32) (result f32) - (local $2 f32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const -64 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4832 - i32.lt_s - if - i32.const 37632 - i32.const 37680 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store local.get $3 - local.get $0 - i32.store local.get $1 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.ge_u - if - i32.const 1360 - i32.const 1568 - i32.const 1304 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 + local.get $13 + i64.mul + local.get $11 + i64.const 32 + i64.shr_u + i64.add local.get $1 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $2 - local.get $3 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $14 + i64.mul + local.get $11 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.add + i64.sub + local.get $2 + call $~lib/util/number/genDigits local.get $2 - ) - (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 4832 - i32.lt_s - if - i32.const 37632 - i32.const 37680 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $0 - local.get $1 - i32.eq - if - local.get $2 - 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.tee $4 - local.tee $2 - 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 - local.get $2 - 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 - local.get $4 - local.get $0 - i32.store - local.get $0 - local.set $2 - local.get $4 - 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 - i32.and - local.get $1 - i32.const 7 + global.get $~lib/util/number/_K + call $~lib/util/number/prettify + local.get $2 + i32.add + ) + (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 - i32.or - else - i32.const 1 - end - i32.eqz - if - loop $do-loop|0 - local.get $2 - i64.load - local.get $1 - i64.load - i64.eq + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne if - local.get $2 - i32.const 8 - i32.add - local.set $2 + local.get $0 + global.set $~lib/rt/itcms/iter local.get $1 - i32.const 8 - i32.add - local.set $1 local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 + 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 37600 + 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 - block $__inlined_func$~lib/util/string/compareImpl$97 - loop $while-continue|1 + 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 37600 + i32.lt_u + if local.get $0 - local.tee $3 - i32.const 1 + 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 - local.set $0 - local.get $3 + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 4 + i32.add + local.tee $0 + i32.const 37600 + 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.load16_u - local.tee $5 - local.get $1 - i32.load16_u - local.tee $4 - i32.sub - local.set $3 - local.get $4 - local.get $5 - i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$97 + i32.load + i32.const 1 + i32.or + i32.store local.get $2 - i32.const 2 - i32.add - local.set $2 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 + call $~lib/rt/tlsf/insertBlock end end - i32.const 0 - local.set $3 + i32.const 10 + return end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - i32.eqz - return - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $~lib/typedarray/Uint8Array#__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 4832 - i32.lt_s - if - i32.const 37632 - i32.const 37680 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=8 - i32.ge_u - if - i32.const 1360 - i32.const 1568 - i32.const 178 - i32.const 45 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=4 - i32.add - local.get $2 - i32.store8 - local.get $3 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Uint8Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4832 - i32.lt_s - if - i32.const 37632 - i32.const 37680 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + 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 - global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=8 - i32.ge_u - if - i32.const 1360 - i32.const 1568 - i32.const 167 - i32.const 45 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=4 - i32.add - i32.load8_u - local.set $0 - local.get $2 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $start:resolve-elementaccess (local $0 i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -3478,9 +3425,8 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 - i32.const 24 + i32.const 20 memory.fill memory.size i32.const 16 @@ -3514,7 +3460,7 @@ i32.store i32.const 1456 global.set $~lib/rt/itcms/fromSpace - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -3523,20 +3469,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.const 2 call $~lib/arraybuffer/ArrayBufferView#constructor @@ -3567,7 +3511,7 @@ global.get $~lib/memory/__stack_pointer global.get $resolve-elementaccess/arr local.tee $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 0 call $~lib/typedarray/Float32Array#__get @@ -3576,9 +3520,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3168 - i32.store offset=4 local.get $0 i32.const 3168 call $~lib/string/String.__eq @@ -3594,7 +3535,7 @@ global.get $~lib/memory/__stack_pointer global.get $resolve-elementaccess/arr local.tee $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 1 call $~lib/typedarray/Float32Array#__get @@ -3603,9 +3544,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3280 - i32.store offset=4 local.get $0 i32.const 3280 call $~lib/string/String.__eq @@ -3619,17 +3557,17 @@ unreachable end global.get $~lib/memory/__stack_pointer + global.get $resolve-elementaccess/arr local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer global.get $resolve-elementaccess/arr local.tee $1 i32.store offset=12 local.get $0 - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=16 - local.get $1 i32.const 0 local.get $1 i32.const 0 @@ -3638,9 +3576,9 @@ f32.add call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 + local.get $0 + i32.store offset=4 + local.get $0 i32.const 0 call $~lib/typedarray/Float32Array#__get call $~lib/number/F32#toString @@ -3648,9 +3586,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3312 - i32.store offset=4 local.get $0 i32.const 3312 call $~lib/string/String.__eq @@ -3664,14 +3599,14 @@ unreachable end global.get $~lib/memory/__stack_pointer + global.get $resolve-elementaccess/arr local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer global.get $resolve-elementaccess/arr local.tee $1 - i32.store - local.get $0 - local.get $1 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 local.get $1 i32.const 0 @@ -3705,20 +3640,19 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + 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.tee $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -3727,13 +3661,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store local.get $0 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 6 call $~lib/rt/itcms/__new @@ -3741,10 +3674,9 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.const 0 call $~lib/arraybuffer/ArrayBufferView#constructor @@ -3754,7 +3686,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -3782,7 +3713,7 @@ global.get $~lib/memory/__stack_pointer global.get $resolve-elementaccess/buf local.tee $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 0 call $~lib/typedarray/Uint8Array#__get @@ -3791,9 +3722,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4720 - i32.store offset=4 local.get $0 i32.const 4720 call $~lib/string/String.__eq @@ -3809,7 +3737,7 @@ global.get $~lib/memory/__stack_pointer global.get $resolve-elementaccess/buf local.tee $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 1 call $~lib/typedarray/Uint8Array#__get @@ -3818,9 +3746,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4752 - i32.store offset=4 local.get $0 i32.const 4752 call $~lib/string/String.__eq @@ -3834,17 +3759,17 @@ unreachable end global.get $~lib/memory/__stack_pointer + global.get $resolve-elementaccess/buf local.tee $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer global.get $resolve-elementaccess/buf local.tee $1 - i32.store offset=20 - local.get $0 - local.get $1 - i32.store offset=8 + i32.store offset=12 local.get $0 - local.get $1 - i32.store offset=16 - local.get $1 i32.const 0 local.get $1 i32.const 0 @@ -3853,9 +3778,9 @@ i32.add call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 + local.get $0 + i32.store offset=4 + local.get $0 i32.const 0 call $~lib/typedarray/Uint8Array#__get call $~lib/number/U8#toString @@ -3863,9 +3788,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4784 - i32.store offset=4 local.get $0 i32.const 4784 call $~lib/string/String.__eq @@ -3879,14 +3801,14 @@ unreachable end global.get $~lib/memory/__stack_pointer + global.get $resolve-elementaccess/buf local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer global.get $resolve-elementaccess/buf local.tee $1 - i32.store - local.get $0 - local.get $1 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 local.get $1 i32.const 0 @@ -3912,7 +3834,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer return diff --git a/tests/compiler/resolve-function-expression.debug.wat b/tests/compiler/resolve-function-expression.debug.wat index 96ada2500c..c1640f112a 100644 --- a/tests/compiler/resolve-function-expression.debug.wat +++ b/tests/compiler/resolve-function-expression.debug.wat @@ -1708,14 +1708,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 @@ -2829,12 +2832,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -2996,13 +2995,13 @@ (func $start:resolve-function-expression (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 + i32.const 0 + i32.store i32.const 2 i32.const 1 global.set $~argumentsLength @@ -3068,11 +3067,6 @@ i32.store local.get $0 i32.const 2384 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3084,7 +3078,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/resolve-function-expression.release.wat b/tests/compiler/resolve-function-expression.release.wat index 47359abe56..6837fffa79 100644 --- a/tests/compiler/resolve-function-expression.release.wat +++ b/tests/compiler/resolve-function-expression.release.wat @@ -4,9 +4,9 @@ (type $2 (func (param i32))) (type $3 (func (param i32 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) (result i32))) + (type $5 (func (param i32 i32) (result i32))) + (type $6 (func (param i32 i32 i64))) + (type $7 (func (result i32))) (import "env" "abort" (func $~lib/builtins/abort (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)) @@ -56,70 +56,6 @@ (elem $0 (i32.const 1) $start:resolve-function-expression~anonymous|0 $start:resolve-function-expression~anonymous|1 $start:resolve-function-expression~anonymous|2) (export "memory" (memory $0)) (start $~start) - (func $start:resolve-function-expression~anonymous|0 (param $0 i32) (result i32) - local.get $0 - i32.const 40 - i32.add - ) - (func $start:resolve-function-expression~anonymous|1 (param $0 i32) (result i32) - local.get $0 - i32.const 41 - i32.add - ) - (func $start:resolve-function-expression~anonymous|2 (param $0 i32) (result i32) - local.get $0 - i32.const 42 - i32.add - ) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1648 - call $~lib/rt/itcms/__visit - i32.const 1456 - 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 1520 - 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) @@ -664,119 +600,189 @@ 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 + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $~lib/function/Function<%28i32%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%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 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.const 1792 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable + 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 + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) 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 + i32.const 256 + i32.lt_u if - local.get $3 + local.get $1 i32.const 4 - i32.add + i32.shr_u + local.set $1 + else local.get $1 - i32.gt_u + i32.const 536870910 + i32.lt_u if - i32.const 0 - i32.const 1792 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable + 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 $3 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.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 1792 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + local.set $2 end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and local.get $1 - i32.sub - local.tee $3 - i32.const 20 + 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 1792 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable end - local.get $1 - local.get $4 + local.get $0 + local.get $2 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.shl i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 - local.get $0 + i32.load offset=4 + i32.const -1 local.get $1 - call $~lib/rt/tlsf/insertBlock + 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 1792 + 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/tlsf/initialize (local $0 i32) @@ -858,1248 +864,1220 @@ i32.const 36224 global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/rt/itcms/step (result i32) + (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 1792 + 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 1792 + 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 1792 + 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/itcms/visitRoots (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 1648 + call $~lib/rt/itcms/__visit + i32.const 1456 + 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 - 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 + i32.const 1520 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter + 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 - 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 + br $while-continue|0 + end + end + ) + (func $~start + (local $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 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 3448 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 2 + i32.const 1056 + i32.load + call_indirect (type $0) + i32.const 42 + i32.ne + if 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.const 1088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1168 + i32.load + call_indirect (type $0) + i32.const 42 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 6 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + memory.size + i32.const 16 + i32.shl + i32.const 36216 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1572 + i32.const 1568 + i32.store + i32.const 1576 + i32.const 1568 + i32.store + i32.const 1568 + global.set $~lib/rt/itcms/pinSpace + i32.const 1604 + i32.const 1600 + i32.store + i32.const 1608 + i32.const 1600 + i32.store + i32.const 1600 + global.set $~lib/rt/itcms/toSpace + i32.const 1748 + i32.const 1744 + i32.store + i32.const 1752 + i32.const 1744 + i32.store + i32.const 1744 + global.set $~lib/rt/itcms/fromSpace + i32.const 0 + i32.const 1200 + i32.load + call_indirect (type $0) + call $~lib/number/I32#toString + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + block $__inlined_func$~lib/string/String.__eq$1 (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 3448 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $5 + i32.const 3408 i32.eq if global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 36216 - 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 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + br $__inlined_func$~lib/string/String.__eq$1 + end + block $folding-inner0 + local.get $5 + i32.eqz + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 3408 + i32.store + local.get $1 + i32.const 3404 + i32.load + i32.const 1 + i32.shr_u + i32.ne + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + i32.const 3408 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 3408 + i32.store offset=4 + i32.const 1 + local.get $5 + i32.const 7 + i32.and + local.get $1 + i32.const 4 + i32.lt_u + select + i32.eqz + if + loop $do-loop|0 + local.get $5 + i64.load + local.get $3 + i64.load + i64.eq + if + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $3 + i32.const 8 + i32.add + local.set $3 + local.get $1 + i32.const 4 + i32.sub + local.tee $1 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end 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 + block $__inlined_func$~lib/util/string/compareImpl$80 + loop $while-continue|1 local.get $1 + local.tee $0 + i32.const 1 + i32.sub + local.set $1 local.get $0 - i32.load offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne if + local.get $5 + i32.load16_u + local.tee $2 + local.get $3 + i32.load16_u + local.tee $0 + i32.sub + local.set $4 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 + i32.ne + br_if $__inlined_func$~lib/util/string/compareImpl$80 + local.get $5 + i32.const 2 + i32.add + local.set $5 + local.get $3 + i32.const 2 + i32.add + local.set $3 + br $while-continue|1 + end end + i32.const 0 + local.set $4 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/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + i32.eqz + br $__inlined_func$~lib/string/String.__eq$1 end - global.get $~lib/rt/itcms/visitCount - return + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne + i32.eqz if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter + i32.const 0 + i32.const 1088 + i32.const 11 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + 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/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.get $1 - i32.const 3 + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 i32.and - i32.ne - if - i32.const 0 - i32.const 1520 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 36216 - 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.set $0 + loop $while-continue|1 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 36216 - i32.ge_u + global.get $~lib/rt/itcms/toSpace + i32.ne if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 - i32.const 4 - i32.sub - local.set $2 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 - i32.const 15 + i32.load offset=4 + local.tee $2 + i32.const 3 i32.and - i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else + i32.ne + if + local.get $0 local.get $2 - i32.load - i32.const 1 + i32.const -4 i32.and - end - if + local.get $1 + i32.or + i32.store offset=4 i32.const 0 - i32.const 1792 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable + 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 $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 end end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.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 1792 - 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.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 - local.tee $2 - i32.eqz + i32.const -4 + i32.and + i32.eq if - i32.const 0 - i32.const 1792 - 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/number/I32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 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 - local.tee $1 - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/itoa32$73 - local.get $0 - i32.eqz - if - local.get $1 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1424 - local.set $2 - br $__inlined_func$~lib/util/number/itoa32$73 - end - global.get $~lib/memory/__stack_pointer - local.set $5 - 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) - 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 + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 36216 + 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 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white local.get $0 - i32.const 1000 - i32.ge_u - i32.add + 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 - else + 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.const 10000000 + 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 1520 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 36216 i32.lt_u - if (result i32) + if local.get $0 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add + 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.const 1000000000 - i32.ge_u - i32.const 8 + 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 100000000 - i32.ge_u + i32.const 4 i32.add - end - end - local.tee $1 - i32.const 1 - i32.shl - local.get $3 - i32.add - local.tee $6 - i32.const 1073741804 - i32.ge_u - if - i32.const 1456 - i32.const 1520 - i32.const 261 - i32.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 + local.tee $0 + i32.const 36216 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT 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 + call $~lib/rt/tlsf/initialize end - local.get $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - local.tee $2 - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - local.get $2 - i32.add - global.set $~lib/rt/itcms/threshold - end - end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.set $7 - local.get $6 - i32.const 16 - i32.add - local.tee $2 - i32.const 1073741820 - i32.gt_u - if - i32.const 1456 - i32.const 1792 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $7 - 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 $8 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz - if - memory.size - local.tee $2 - 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 + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 i32.sub - i32.shl - i32.add + local.set $2 + local.get $0 + i32.const 15 + i32.and 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 $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 $4 - local.get $2 - local.get $4 - i32.gt_s - select - memory.grow - i32.const 0 - i32.lt_s - if - local.get $4 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable + 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 1792 + 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 - local.get $7 - 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 $7 - local.get $8 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1792 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $8 - local.get $2 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 1792 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $7 - local.get $2 - call $~lib/rt/tlsf/removeBlock - local.get $2 - i32.load - local.set $9 - local.get $8 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1792 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable + i32.const 10 + return end - local.get $9 - i32.const -4 - i32.and - local.get $8 - i32.sub - local.tee $4 - i32.const 16 - i32.ge_u + 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/number/I32#toString (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 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/itoa32$73 + local.get $0 + i32.eqz if - local.get $2 - local.get $8 - local.get $9 - i32.const 2 - i32.and - i32.or - i32.store - local.get $2 - i32.const 4 - i32.add - local.get $8 - i32.add - local.tee $8 - local.get $4 - 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 $2 - local.get $9 - i32.const -2 - i32.and - i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add - local.get $2 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $4 - local.get $4 - i32.load - i32.const -3 - i32.and - i32.store + global.set $~lib/memory/__stack_pointer + i32.const 1424 + local.set $2 + br $__inlined_func$~lib/util/number/itoa32$73 end - local.get $2 - i32.const 2 - i32.store offset=12 - local.get $2 - local.get $6 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $4 - i32.load offset=8 - local.set $7 - local.get $2 - local.get $4 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $2 - local.get $7 - i32.store offset=8 - local.get $7 - local.get $2 - local.get $7 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $4 - 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 $2 + global.get $~lib/memory/__stack_pointer i32.const 0 - local.get $6 - memory.fill - local.get $5 - local.get $2 - i32.store - local.get $2 - local.get $3 - i32.add - local.set $4 - loop $while-continue|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) local.get $0 - i32.const 10000 - i32.ge_u - if + 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.rem_u - local.set $5 + 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 10000 - i32.div_u - local.set $0 - local.get $4 - local.get $1 - i32.const 4 - i32.sub - local.tee $1 - i32.const 1 - i32.shl + i32.const 1000000 + i32.ge_u + i32.const 6 i32.add - local.get $5 - i32.const 100 - i32.div_u - i32.const 2 - i32.shl - i32.const 1836 + else + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.const 8 i32.add - i64.load32_u - local.get $5 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1836 + local.get $0 + i32.const 100000000 + i32.ge_u 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 + local.tee $1 + i32.const 1 + i32.shl + local.get $3 + i32.add + local.tee $6 + i32.const 1073741804 i32.ge_u if - local.get $4 - 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 1836 - i32.add - i32.load - i32.store - local.get $0 - i32.const 100 - i32.div_u - local.set $0 + i32.const 1456 + i32.const 1520 + i32.const 261 + i32.const 31 + call $~lib/builtins/abort + unreachable end - local.get $0 - i32.const 10 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold i32.ge_u if - local.get $4 - local.get $1 - i32.const 2 - i32.sub - i32.const 1 - i32.shl + 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 $7 + local.get $6 + i32.const 16 + i32.add + local.tee $2 + i32.const 1073741820 + i32.gt_u + if + i32.const 1456 + i32.const 1792 + i32.const 461 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $7 + local.get $2 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $2 + i32.const 19 i32.add - local.get $0 - i32.const 2 + i32.const -16 + i32.and + i32.const 4 + i32.sub + end + local.tee $8 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + 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 + memory.size + local.tee $2 + i32.const 16 i32.shl - i32.const 1836 - i32.add - i32.load - i32.store - else - local.get $4 - local.get $1 - i32.const 1 + i32.const 4 i32.sub - i32.const 1 + i32.ne i32.shl i32.add - local.get $0 - i32.const 48 + i32.const 65535 i32.add - i32.store16 - end - local.get $3 - if + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.set $4 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 $2 - ) - (func $~lib/rt/__visit_members (param $0 i32) - (local $1 i32) - block $invalid - block $~lib/function/Function<%28i32%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%29=>i32> $invalid - end - return - end - return + local.get $4 + local.get $2 + local.get $4 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable end - return end - local.get $0 - i32.load - local.tee $0 + local.get $7 + 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 $7 + local.get $8 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz if - local.get $0 - call $~lib/rt/itcms/__visit + i32.const 0 + i32.const 1792 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable end - 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 3448 - i32.lt_s + local.get $8 + local.get $2 + i32.load + i32.const -4 + i32.and + i32.gt_u if - i32.const 36240 - i32.const 36288 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1792 + i32.const 501 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer + local.get $7 + local.get $2 + call $~lib/rt/tlsf/removeBlock + local.get $2 + i32.load + local.set $9 + local.get $8 i32.const 4 i32.add - global.set $~lib/memory/__stack_pointer - return - end - unreachable - ) - (func $~start - (local $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 - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 3448 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - i32.const 2 - i32.const 1056 - i32.load - call_indirect (type $0) - i32.const 42 - i32.ne + i32.const 15 + i32.and if i32.const 0 - i32.const 1088 - i32.const 1 - i32.const 1 + i32.const 1792 + i32.const 361 + i32.const 14 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 1168 - i32.load - call_indirect (type $0) - i32.const 42 - i32.ne + local.get $9 + i32.const -4 + i32.and + local.get $8 + i32.sub + local.tee $4 + i32.const 16 + i32.ge_u if - i32.const 0 - i32.const 1088 - i32.const 6 + local.get $2 + local.get $8 + local.get $9 + i32.const 2 + i32.and + i32.or + i32.store + local.get $2 + i32.const 4 + i32.add + local.get $8 + i32.add + local.tee $8 + local.get $4 + i32.const 4 + i32.sub i32.const 1 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $7 + local.get $8 + call $~lib/rt/tlsf/insertBlock + else + local.get $2 + local.get $9 + 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 $4 + local.get $4 + i32.load + i32.const -3 + i32.and + i32.store end - memory.size - i32.const 16 - i32.shl - i32.const 36216 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1572 - i32.const 1568 - i32.store - i32.const 1576 - i32.const 1568 - i32.store - i32.const 1568 - global.set $~lib/rt/itcms/pinSpace - i32.const 1604 - i32.const 1600 - i32.store - i32.const 1608 - i32.const 1600 - i32.store - i32.const 1600 - global.set $~lib/rt/itcms/toSpace - i32.const 1748 - i32.const 1744 - i32.store - i32.const 1752 - i32.const 1744 - i32.store - i32.const 1744 - global.set $~lib/rt/itcms/fromSpace - i32.const 0 - i32.const 1200 - i32.load - call_indirect (type $0) - call $~lib/number/I32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $5 - i32.store - local.get $0 - i32.const 3408 + local.get $2 + i32.const 2 + i32.store offset=12 + local.get $2 + local.get $6 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $4 + i32.load offset=8 + local.set $7 + local.get $2 + local.get $4 + global.get $~lib/rt/itcms/white + i32.or i32.store offset=4 - block $__inlined_func$~lib/string/String.__eq$1 (result i32) + local.get $2 + local.get $7 + i32.store offset=8 + local.get $7 + local.get $2 + local.get $7 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $4 + 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 $2 + i32.const 0 + local.get $6 + memory.fill + local.get $2 + i32.store + local.get $2 + local.get $3 + i32.add + local.set $4 + loop $while-continue|0 local.get $0 - 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-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $5 - i32.const 3408 - i32.eq + i32.const 10000 + i32.ge_u if local.get $0 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 - br $__inlined_func$~lib/string/String.__eq$1 - end - block $folding-inner0 - local.get $5 - i32.eqz - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $5 - i32.store - local.get $5 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $1 + i32.const 10000 + i32.rem_u + local.set $5 local.get $0 - i32.const 3408 - i32.store + i32.const 10000 + i32.div_u + local.set $0 + local.get $4 local.get $1 - i32.const 3404 - i32.load + i32.const 4 + i32.sub + local.tee $1 i32.const 1 - i32.shr_u - i32.ne - br_if $folding-inner0 - local.get $0 + i32.shl + i32.add local.get $5 - i32.store - i32.const 3408 - local.set $3 - local.get $0 - i32.const 3408 - i32.store offset=4 - i32.const 1 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 1836 + i32.add + i64.load32_u local.get $5 - i32.const 7 - i32.and - local.get $1 - i32.const 4 - i32.lt_u - select - i32.eqz - if - loop $do-loop|0 - local.get $5 - i64.load - local.get $3 - i64.load - i64.eq - if - local.get $5 - i32.const 8 - i32.add - local.set $5 - local.get $3 - i32.const 8 - i32.add - local.set $3 - local.get $1 - i32.const 4 - i32.sub - local.tee $1 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end - end - end - block $__inlined_func$~lib/util/string/compareImpl$80 - loop $while-continue|1 - local.get $1 - local.tee $0 - i32.const 1 - i32.sub - local.set $1 - local.get $0 - if - local.get $5 - i32.load16_u - local.tee $2 - local.get $3 - i32.load16_u - local.tee $0 - i32.sub - local.set $4 - local.get $0 - local.get $2 - i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$80 - local.get $5 - i32.const 2 - i32.add - local.set $5 - local.get $3 - i32.const 2 - i32.add - local.set $3 - br $while-continue|1 - end - end - i32.const 0 - local.set $4 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 1836 i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - i32.eqz - br $__inlined_func$~lib/string/String.__eq$1 + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - i32.const 8 + end + local.get $0 + i32.const 100 + i32.ge_u + if + local.get $4 + local.get $1 + i32.const 2 + i32.sub + local.tee $1 + i32.const 1 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 + local.get $0 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 1836 + i32.add + i32.load + i32.store + local.get $0 + i32.const 100 + i32.div_u + local.set $0 end - i32.eqz + local.get $0 + i32.const 10 + i32.ge_u if - i32.const 0 - i32.const 1088 - i32.const 11 + local.get $4 + local.get $1 + i32.const 2 + i32.sub i32.const 1 - call $~lib/builtins/abort - unreachable + i32.shl + i32.add + local.get $0 + i32.const 2 + i32.shl + i32.const 1836 + i32.add + i32.load + i32.store + else + local.get $4 + 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 8 + i32.const 4 i32.add 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 + local.get $2 + ) + (func $start:resolve-function-expression~anonymous|2 (param $0 i32) (result i32) + local.get $0 + i32.const 42 + i32.add + ) + (func $start:resolve-function-expression~anonymous|1 (param $0 i32) (result i32) + local.get $0 + i32.const 41 + i32.add + ) + (func $start:resolve-function-expression~anonymous|0 (param $0 i32) (result i32) + local.get $0 + i32.const 40 + i32.add ) ) diff --git a/tests/compiler/resolve-localortype.release.wat b/tests/compiler/resolve-localortype.release.wat index 26ca9589ab..7fe06f9905 100644 --- a/tests/compiler/resolve-localortype.release.wat +++ b/tests/compiler/resolve-localortype.release.wat @@ -7,7 +7,6 @@ (export "memory" (memory $0)) (export "test" (func $export:resolve-localortype/test)) (func $export:resolve-localortype/test (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -18,10 +17,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -30,13 +28,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/resolve-nested.release.wat b/tests/compiler/resolve-nested.release.wat index 4ef6b545fd..76459d8f80 100644 --- a/tests/compiler/resolve-nested.release.wat +++ b/tests/compiler/resolve-nested.release.wat @@ -7,7 +7,6 @@ (export "memory" (memory $0)) (export "outer" (func $export:resolve-nested/outer)) (func $export:resolve-nested/outer (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -24,16 +23,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/resolve-new.debug.wat b/tests/compiler/resolve-new.debug.wat index 915a1b52a1..a1724b824f 100644 --- a/tests/compiler/resolve-new.debug.wat +++ b/tests/compiler/resolve-new.debug.wat @@ -1621,14 +1621,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 @@ -2267,12 +2270,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/resolve-new.release.wat b/tests/compiler/resolve-new.release.wat index 47c76ab67c..ac44b8fd07 100644 --- a/tests/compiler/resolve-new.release.wat +++ b/tests/compiler/resolve-new.release.wat @@ -2,8 +2,8 @@ (type $0 (func)) (type $1 (func (param i32))) (type $2 (func (param i32 i32))) - (type $3 (func (result i32))) - (type $4 (func (param i32) (result i32))) + (type $3 (func (param i32) (result i32))) + (type $4 (func (result i32))) (type $5 (func (param i32 i32 i32 i32))) (type $6 (func (param i32 i32 i64))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) @@ -33,57 +33,6 @@ (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/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - global.get $resolve-new/foo - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 1248 - 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/__visit (param $0 i32) (local $1 i32) (local $2 i32) @@ -628,6 +577,171 @@ i32.or i32.store offset=4 ) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $resolve-new/Foo + 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-new/Foo $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + return + end + unreachable + ) + (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 $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $1 + 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 $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 + i32.const 0 + end + end + ) + (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 34240 + i32.const 0 + i32.store + i32.const 35808 + 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 34240 + 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 34240 + 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 34240 + i32.const 35812 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34240 + global.set $~lib/rt/tlsf/ROOT + ) (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) (local $3 i32) (local $4 i32) @@ -742,446 +856,92 @@ local.get $1 call $~lib/rt/tlsf/insertBlock ) - (func $~lib/rt/tlsf/initialize + (func $~lib/rt/itcms/visitRoots (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 + global.get $resolve-new/foo + local.tee $0 if - unreachable + local.get $0 + call $~lib/rt/itcms/__visit end - i32.const 34240 - i32.const 0 - i32.store - i32.const 35808 - i32.const 0 - i32.store - loop $for-loop|0 + i32.const 1248 + 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 - i32.const 23 - i32.lt_u + local.get $1 + i32.ne if local.get $0 - i32.const 2 - i32.shl - i32.const 34240 - i32.add - i32.const 0 - i32.store offset=4 - i32.const 0 - local.set $1 - loop $for-loop|1 - local.get $1 + 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 - i32.lt_u - if - local.get $0 - i32.const 4 - i32.shl - local.get $1 - i32.add - i32.const 2 - i32.shl - i32.const 34240 - 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 + call $~lib/builtins/abort + unreachable end local.get $0 - i32.const 1 + 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 $for-loop|0 + br $while-continue|0 end end - i32.const 34240 - i32.const 35812 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34240 - global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/rt/itcms/step (result i32) - (local $0 i32) + (func $~lib/rt/itcms/__new (param $0 i32) (result 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 $3 i32) + (local $4 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 $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 + 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 - 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 34232 - 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 + 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 - 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 34232 - 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 34232 - 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.set $1 - 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 $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (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 $2 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $1 - 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 $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 - 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) - 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 + i32.gt_s + br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $1 - local.get $1 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1203,12 +963,11 @@ local.tee $1 i32.eqz if - memory.size - local.tee $1 i32.const 4 local.get $2 i32.load offset=1568 - local.get $1 + memory.size + local.tee $1 i32.const 16 i32.shl i32.const 4 @@ -1221,7 +980,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.set $3 + local.get $1 + local.get $3 local.get $1 local.get $3 i32.gt_s @@ -1376,108 +1137,11 @@ memory.fill local.get $0 ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $resolve-new/Foo - 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-new/Foo $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - return - end - return - end - unreachable - ) - (func $~start + (func $resolve-new/Foo#constructor (result i32) (local $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 1464 - 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 - i32.const 0 - i32.store - memory.size - i32.const 16 - i32.shl - i32.const 34232 - 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 $resolve-new/Foo#constructor - global.set $resolve-new/foo - call $resolve-new/Foo#constructor - local.set $0 - 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 - ) - (func $resolve-new/Foo#constructor (result i32) - (local $0 i32) - (local $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -1486,19 +1150,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1507,13 +1170,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 call $~lib/rt/itcms/__new local.tee $0 @@ -1523,7 +1185,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1540,4 +1201,328 @@ call $~lib/builtins/abort unreachable ) + (func $~start + (local $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 1464 + 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 + i32.const 0 + i32.store + memory.size + i32.const 16 + i32.shl + i32.const 34232 + 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 $resolve-new/Foo#constructor + global.set $resolve-new/foo + call $resolve-new/Foo#constructor + local.set $0 + 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 + ) + (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 34232 + 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 34232 + 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 34232 + 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 + ) ) diff --git a/tests/compiler/resolve-propertyaccess.debug.wat b/tests/compiler/resolve-propertyaccess.debug.wat index 7c13c3bb67..06b17954f1 100644 --- a/tests/compiler/resolve-propertyaccess.debug.wat +++ b/tests/compiler/resolve-propertyaccess.debug.wat @@ -1708,14 +1708,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 @@ -2846,12 +2849,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -3045,7 +3044,7 @@ (local $0 i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -3053,8 +3052,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 memory.size i32.const 16 i32.shl @@ -3081,11 +3080,6 @@ i32.store local.get $1 i32.const 2208 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -3105,11 +3099,6 @@ i32.store local.get $1 i32.const 2320 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -3129,11 +3118,6 @@ i32.store local.get $1 i32.const 2352 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -3153,11 +3137,6 @@ i32.store local.get $1 i32.const 2384 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -3177,11 +3156,6 @@ i32.store local.get $1 i32.const 2416 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -3201,11 +3175,6 @@ i32.store local.get $1 i32.const 2448 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -3225,11 +3194,6 @@ i32.store local.get $1 i32.const 2480 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -3249,11 +3213,6 @@ i32.store local.get $1 i32.const 2512 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -3273,11 +3232,6 @@ i32.store local.get $1 i32.const 2544 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -3297,11 +3251,6 @@ i32.store local.get $1 i32.const 2576 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -3316,12 +3265,12 @@ i32.const 0 call $resolve-propertyaccess/Class#constructor local.tee $0 - i32.store offset=8 + i32.store offset=4 local.get $0 local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 local.get $1 call $resolve-propertyaccess/Class#get:instanceField i32.const 10 @@ -3332,11 +3281,6 @@ i32.store local.get $1 i32.const 2608 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -3351,7 +3295,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 local.get $1 call $resolve-propertyaccess/Class#get:instanceProperty i32.const 10 @@ -3362,11 +3306,6 @@ i32.store local.get $1 i32.const 2640 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -3378,7 +3317,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/resolve-propertyaccess.release.wat b/tests/compiler/resolve-propertyaccess.release.wat index c2b15003a8..fc8a3c80bd 100644 --- a/tests/compiler/resolve-propertyaccess.release.wat +++ b/tests/compiler/resolve-propertyaccess.release.wat @@ -4,9 +4,9 @@ (type $2 (func (param i32))) (type $3 (func (param i32 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) (result 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 (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)) @@ -70,531 +70,608 @@ (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 1472 - call $~lib/rt/itcms/__visit - i32.const 1280 - call $~lib/rt/itcms/__visit - i32.const 2080 - call $~lib/rt/itcms/__visit - i32.const 3136 - 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) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - local.get $0 - i32.eqz + (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 3704 + i32.lt_s if - return + i32.const 36496 + i32.const 36544 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/white + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and + 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 - 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$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 36472 - 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$126 - 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 3680 - 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 3684 - i32.add - i32.load - i32.const 32 - i32.and - end + 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 - local.get $2 - i32.load offset=8 - local.set $0 + global.get $~lib/memory/__stack_pointer local.get $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 + i32.store local.get $3 - select - local.get $2 - i32.or - i32.store offset=4 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 offset=8 + i32.store local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer 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 + local.tee $0 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 + if (result i32) 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.const 7 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 + i32.const 7 + i32.and + i32.or + else + i32.const 1 + end + i32.eqz + if + loop $do-loop|0 local.get $2 - i32.rotl - i32.and - i32.store + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $0 + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + block $__inlined_func$~lib/util/string/compareImpl$77 + loop $while-continue|1 + local.get $0 + local.tee $3 + i32.const 1 + i32.sub + local.set $0 + local.get $3 + if + local.get $2 + i32.load16_u + local.tee $5 + local.get $1 + i32.load16_u + local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 + i32.ne + br_if $__inlined_func$~lib/util/string/compareImpl$77 + local.get $2 + i32.const 2 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end end + i32.const 0 + local.set $3 end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.eqz + return end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 ) - (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 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) - (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 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3704 + i32.lt_s if - i32.const 0 - i32.const 1616 - i32.const 203 - i32.const 14 + i32.const 36496 + i32.const 36544 + i32.const 1 + i32.const 1 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 + 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 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + 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 - 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.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) + 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 $1 - i32.load - local.tee $6 i32.const 1 - i32.and - i32.eqz + i32.shl + local.get $3 + i32.add + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + 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 1660 + i32.add + 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.get $0 + i32.const 100 + i32.ge_u if - i32.const 0 - i32.const 1616 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable + 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 1660 + i32.add + i32.load + i32.store + local.get $0 + i32.const 100 + i32.div_u + local.set $0 end local.get $0 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - local.get $6 - i32.const 4 - i32.add + 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 1660 + 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 - i32.const -4 - i32.and + if + local.get $2 + i32.const 45 + i32.store16 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.tee $3 - i32.store + global.set $~lib/memory/__stack_pointer 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 + ) + (func $~lib/rt/itcms/__visit (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.eqz if - i32.const 0 - i32.const 1616 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable + return end - local.get $4 - local.get $1 - i32.const 4 - i32.add - local.get $2 - i32.add - i32.ne + 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$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 36472 + 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$126 + 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 3680 + 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 3684 + 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 234 + i32.const 268 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 + 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 $2 + local.get $3 i32.const 4 i32.shr_u else i32.const 31 i32.const 1073741820 - local.get $2 - local.get $2 + local.get $3 + local.get $3 i32.const 1073741820 i32.ge_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.tee $3 + local.tee $4 i32.const 7 i32.sub - local.set $5 - local.get $2 + 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 $2 + local.tee $3 i32.const 16 i32.lt_u - local.get $5 + local.get $2 i32.const 23 i32.lt_u i32.and @@ -602,572 +679,256 @@ if i32.const 0 i32.const 1616 - i32.const 251 + i32.const 284 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 + i32.load offset=8 + local.set $5 local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 + i32.load offset=4 + local.tee $4 if - local.get $3 - local.get $1 + 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 $5 - i32.const 4 - i32.shl local.get $2 - i32.add - i32.const 2 + i32.const 4 i32.shl + local.get $3 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 + 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/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - local.get $2 + (local $6 i32) local.get $1 - i64.extend_i32_u - i64.lt_u + i32.eqz if i32.const 0 i32.const 1616 - i32.const 382 + i32.const 201 i32.const 14 call $~lib/builtins/abort unreachable end local.get $1 - i32.const 19 - i32.add - i32.const -16 + 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.sub - local.set $1 - local.get $0 - i32.load offset=1568 - local.tee $3 + 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.gt_u - if - i32.const 0 - i32.const 1616 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 + i32.const 4 + i32.add 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.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.gt_u + 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 402 - i32.const 5 + 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.wrap_i64 - i32.const -16 + i32.const 2 + i32.or + i32.store + local.get $3 + i32.const -4 i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 + local.tee $2 + i32.const 12 i32.lt_u if - return + i32.const 0 + i32.const 1616 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable 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 + local.get $2 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 + i32.ne if + i32.const 0 + i32.const 1616 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort unreachable end - i32.const 36480 - i32.const 0 - i32.store - i32.const 38048 - i32.const 0 + local.get $4 + i32.const 4 + i32.sub + local.get $1 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 36480 - 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 36480 - 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 36480 - i32.const 38052 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 36480 - 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 36472 - 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 36472 - 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 36472 - 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.set $1 - 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 $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 + local.get $2 i32.const 256 i32.lt_u - if - local.get $1 + if (result i32) + local.get $2 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.const 1073741820 + local.get $2 + local.get $2 + i32.const 1073741820 + i32.ge_u + select + local.tee $2 i32.clz i32.sub - local.tee $2 + 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 - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 end - local.get $1 + local.tee $2 i32.const 16 i32.lt_u - local.get $2 + local.get $5 i32.const 23 i32.lt_u i32.and @@ -1175,78 +936,66 @@ if i32.const 0 i32.const 1616 - i32.const 334 + 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=4 - i32.const -1 + i32.load offset=96 + local.set $3 local.get $1 - i32.shl - i32.and - local.tee $1 - if (result i32) - local.get $0 + 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.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 + 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/itcms/__new (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1281,12 +1030,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 @@ -1298,8 +1043,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1351,8 +1095,6 @@ local.tee $2 i32.eqz if - memory.size - local.tee $2 local.get $5 i32.const 256 i32.ge_u @@ -1380,7 +1122,8 @@ i32.const 4 local.get $4 i32.load offset=1568 - local.get $2 + memory.size + local.tee $2 i32.const 16 i32.shl i32.const 4 @@ -1394,7 +1137,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.set $3 + local.get $2 + local.get $3 local.get $2 local.get $3 i32.gt_s @@ -1506,495 +1251,734 @@ i32.store local.get $2 i32.const 4 - i32.add + 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/__visit_members (param $0 i32) + block $invalid + block $resolve-propertyaccess/Class + 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-propertyaccess/Class $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + return + end + unreachable + ) + (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.load - i32.const -4 - i32.and - i32.add - local.tee $3 - local.get $3 - i32.load - i32.const -3 - i32.and - i32.store + i32.const 7 + i32.sub + local.set $2 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 + i32.const 16 + i32.lt_u local.get $2 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $2 - i32.load - i32.const -4 + i32.const 23 + i32.lt_u 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/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 3704 - i32.lt_s + i32.eqz if - i32.const 36496 - i32.const 36544 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1616 + i32.const 334 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer + 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 - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/itoa32$73 - local.get $0 - i32.eqz - if - local.get $1 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - 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 + if (result i32) 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) - 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 $1 - i32.const 1 + local.get $1 + i32.ctz + local.get $2 + i32.const 4 i32.shl - local.get $3 i32.add i32.const 2 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store + i32.shl + i32.add + i32.load offset=96 + else + local.get $0 + i32.load + i32.const -1 local.get $2 - local.get $3 + i32.const 1 i32.add - local.set $5 - loop $while-continue|0 + i32.shl + i32.and + local.tee $1 + if (result i32) local.get $0 - i32.const 10000 - i32.ge_u + 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 - 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 1660 - i32.add - 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 + i32.const 0 + i32.const 1616 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable end - end - local.get $0 - i32.const 100 - i32.ge_u - if - local.get $5 + local.get $0 + local.get $2 + i32.ctz local.get $1 - i32.const 2 - i32.sub - local.tee $1 - i32.const 1 + i32.const 4 i32.shl i32.add - local.get $0 - 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 + i32.load offset=96 + else + i32.const 0 end + end + ) + (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 36480 + i32.const 0 + i32.store + i32.const 38048 + i32.const 0 + i32.store + loop $for-loop|0 local.get $0 - i32.const 10 - i32.ge_u + i32.const 23 + i32.lt_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 1660 - i32.add - i32.load - i32.store - else - local.get $5 - local.get $1 - i32.const 1 - i32.sub - i32.const 1 - i32.shl + i32.const 36480 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 36480 + 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 48 + i32.const 1 i32.add - i32.store16 + local.set $0 + br $for-loop|0 + end + end + i32.const 36480 + i32.const 38052 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 36480 + global.set $~lib/rt/tlsf/ROOT + ) + (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 $2 - i32.const 45 - i32.store16 + local.get $3 + i32.load + local.set $4 + local.get $5 + local.set $1 end - global.get $~lib/memory/__stack_pointer - i32.const 4 + else + local.get $0 + i32.const 1572 i32.add - global.set $~lib/memory/__stack_pointer + 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/__visit_members (param $0 i32) - block $invalid - block $resolve-propertyaccess/Class - 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-propertyaccess/Class $invalid - end - return - end - return - end - return - end + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1472 + call $~lib/rt/itcms/__visit + i32.const 1280 + call $~lib/rt/itcms/__visit + i32.const 2080 + call $~lib/rt/itcms/__visit + i32.const 3136 + 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 - local.tee $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne if - local.get $0 - call $~lib/rt/itcms/__visit + i32.const 0 + i32.const 1344 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end - return + 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 - return end - unreachable ) (func $~start call $start:resolve-propertyaccess ) - (func $~lib/string/String.__eq (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 $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 3704 - 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 - local.tee $2 - i64.const 0 - i64.store - local.get $0 - local.get $1 - i32.eq - if - local.get $2 - 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.tee $4 - local.tee $2 - 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 - local.get $2 - 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 - local.get $4 - local.get $0 - i32.store - local.get $0 - local.set $2 - local.get $4 - local.get $1 - i32.store offset=4 - local.get $3 + 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 36472 + 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 - i32.const 4 - i32.ge_u - if (result i32) - local.get $2 - i32.const 7 + 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 7 + i32.const 3 i32.and - i32.or - else - i32.const 1 - end - i32.eqz - if - loop $do-loop|0 - local.get $2 - i64.load - local.get $1 - i64.load - i64.eq - if - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end + i32.ne + if + i32.const 0 + i32.const 1344 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable end - end - block $__inlined_func$~lib/util/string/compareImpl$77 - loop $while-continue|1 + local.get $0 + i32.const 36472 + i32.lt_u + if local.get $0 - local.tee $3 - i32.const 1 + 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 - local.set $0 - local.get $3 + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 4 + i32.add + local.tee $0 + i32.const 36472 + i32.ge_u if - local.get $2 - i32.load16_u - local.tee $5 - local.get $1 - i32.load16_u - local.tee $4 + 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 $3 - local.get $4 - local.get $5 - i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$77 - local.get $2 - i32.const 2 - i32.add local.set $2 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 + 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 0 - local.set $3 + i32.const 10 + return end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - i32.eqz - return + 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 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer i32.const 0 ) (func $start:resolve-propertyaccess (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -2003,12 +1987,11 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 - i64.const 0 - i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 memory.size i32.const 16 i32.shl @@ -2047,9 +2030,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3232 - i32.store offset=4 local.get $0 i32.const 3232 call $~lib/string/String.__eq @@ -2066,12 +2046,8 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 3344 - i32.store offset=4 local.get $0 i32.const 3344 call $~lib/string/String.__eq @@ -2088,12 +2064,8 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 3376 - i32.store offset=4 local.get $0 i32.const 3376 call $~lib/string/String.__eq @@ -2110,12 +2082,8 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 3408 - i32.store offset=4 local.get $0 i32.const 3408 call $~lib/string/String.__eq @@ -2132,12 +2100,8 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 3440 - i32.store offset=4 local.get $0 i32.const 3440 call $~lib/string/String.__eq @@ -2154,12 +2118,8 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 3472 - i32.store offset=4 local.get $0 i32.const 3472 call $~lib/string/String.__eq @@ -2176,12 +2136,8 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 3504 - i32.store offset=4 local.get $0 i32.const 3504 call $~lib/string/String.__eq @@ -2198,12 +2154,8 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 3536 - i32.store offset=4 local.get $0 i32.const 3536 call $~lib/string/String.__eq @@ -2220,12 +2172,8 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 3568 - i32.store offset=4 local.get $0 i32.const 3568 call $~lib/string/String.__eq @@ -2242,12 +2190,8 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 3600 - i32.store offset=4 local.get $0 i32.const 3600 call $~lib/string/String.__eq @@ -2261,7 +2205,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2270,20 +2214,19 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2292,13 +2235,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 call $~lib/rt/itcms/__new @@ -2309,7 +2251,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -2322,12 +2263,11 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 - i32.store offset=8 + i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 local.get $0 i32.load call $~lib/number/I32#toString @@ -2335,9 +2275,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3632 - i32.store offset=4 local.get $1 i32.const 3632 call $~lib/string/String.__eq @@ -2352,16 +2289,13 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 i32.const 8 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 3664 - i32.store offset=4 local.get $0 i32.const 3664 call $~lib/string/String.__eq @@ -2375,7 +2309,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer return diff --git a/tests/compiler/resolve-ternary.debug.wat b/tests/compiler/resolve-ternary.debug.wat index 44786d5dcb..ff33c0b57a 100644 --- a/tests/compiler/resolve-ternary.debug.wat +++ b/tests/compiler/resolve-ternary.debug.wat @@ -14,7 +14,7 @@ (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) (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 (param i32 i32 i32 i32))) @@ -1716,14 +1716,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 @@ -3654,26 +3657,30 @@ end unreachable ) - (func $~lib/util/number/dtoa_core (param $buffer i32) (param $value f64) (result i32) + (func $~lib/util/number/dtoa_core (param $buffer i32) (param $value f64) (param $isSingle i32) (result i32) (local $sign i32) - (local $value|3 f64) - (local $buffer|4 i32) - (local $sign|5 i32) - (local $uv i64) - (local $exp i32) - (local $sid i64) + (local $value|4 f64) + (local $buffer|5 i32) + (local $sign|6 i32) + (local $isSingle|7 i32) (local $frc i64) + (local $exp i32) + (local $uv i32) + (local $sid i32) + (local $uv|12 i64) + (local $sid|13 i64) (local $f i64) (local $e i32) - (local $frc|12 i64) - (local $exp|13 i32) + (local $isSingle|16 i32) + (local $frc|17 i64) + (local $exp|18 i32) (local $off i32) (local $m i32) (local $minExp i32) (local $dk f64) (local $k i32) (local $index i32) - (local $off|20 i32) + (local $off|25 i32) (local $frc_pow i64) (local $exp_pow i32) (local $u i64) @@ -3689,28 +3696,28 @@ (local $e1 i32) (local $e2 i32) (local $w_exp i32) - (local $u|36 i64) - (local $v|37 i64) - (local $u0|38 i64) - (local $v0|39 i64) - (local $u1|40 i64) - (local $v1|41 i64) - (local $l|42 i64) - (local $t|43 i64) - (local $w|44 i64) + (local $u|41 i64) + (local $v|42 i64) + (local $u0|43 i64) + (local $v0|44 i64) + (local $u1|45 i64) + (local $v1|46 i64) + (local $l|47 i64) + (local $t|48 i64) + (local $w|49 i64) (local $wp_frc i64) - (local $e1|46 i32) - (local $e2|47 i32) + (local $e1|51 i32) + (local $e2|52 i32) (local $wp_exp i32) - (local $u|49 i64) - (local $v|50 i64) - (local $u0|51 i64) - (local $v0|52 i64) - (local $u1|53 i64) - (local $v1|54 i64) - (local $l|55 i64) - (local $t|56 i64) - (local $w|57 i64) + (local $u|54 i64) + (local $v|55 i64) + (local $u0|56 i64) + (local $v0|57 i64) + (local $u1|58 i64) + (local $v1|59 i64) + (local $l|60 i64) + (local $t|61 i64) + (local $w|62 i64) (local $wm_frc i64) (local $delta i64) (local $len i32) @@ -3729,77 +3736,127 @@ end block $~lib/util/number/grisu2|inlined.0 (result i32) local.get $value - local.set $value|3 + local.set $value|4 local.get $buffer - local.set $buffer|4 + local.set $buffer|5 local.get $sign - local.set $sign|5 - local.get $value|3 - i64.reinterpret_f64 - local.set $uv - local.get $uv - i64.const 9218868437227405312 - i64.and - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.set $exp - local.get $uv - i64.const 4503599627370495 - i64.and - local.set $sid - local.get $exp - i32.const 0 - i32.ne - i64.extend_i32_u - i64.const 52 - i64.shl - local.get $sid - i64.add - local.set $frc - local.get $exp - i32.const 1 - local.get $exp - select - i32.const 1023 - i32.const 52 - i32.add - i32.sub - local.set $exp + local.set $sign|6 + local.get $isSingle + local.set $isSingle|7 + local.get $isSingle|7 + if + local.get $value|4 + f32.demote_f64 + i32.reinterpret_f32 + local.set $uv + local.get $uv + i32.const 2139095040 + i32.and + i32.const 23 + i32.shr_u + local.set $exp + local.get $uv + i32.const 8388607 + i32.and + local.set $sid + local.get $exp + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 23 + i64.shl + local.get $sid + i64.extend_i32_u + i64.add + local.set $frc + local.get $exp + if (result i32) + local.get $exp + else + i32.const 1 + end + i32.const 127 + i32.const 23 + i32.add + i32.sub + local.set $exp + else + local.get $value|4 + i64.reinterpret_f64 + local.set $uv|12 + local.get $uv|12 + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.set $exp + local.get $uv|12 + i64.const 4503599627370495 + i64.and + local.set $sid|13 + local.get $exp + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 52 + i64.shl + local.get $sid|13 + i64.add + local.set $frc + local.get $exp + if (result i32) + local.get $exp + else + i32.const 1 + end + i32.const 1023 + i32.const 52 + i32.add + i32.sub + local.set $exp + end local.get $frc local.set $f local.get $exp local.set $e + local.get $isSingle|7 + local.set $isSingle|16 local.get $f i64.const 1 i64.shl i64.const 1 i64.add - local.set $frc|12 + local.set $frc|17 local.get $e i32.const 1 i32.sub - local.set $exp|13 - local.get $frc|12 + local.set $exp|18 + local.get $frc|17 i64.clz i32.wrap_i64 local.set $off - local.get $frc|12 + local.get $frc|17 local.get $off i64.extend_i32_s i64.shl - local.set $frc|12 - local.get $exp|13 + local.set $frc|17 + local.get $exp|18 local.get $off i32.sub - local.set $exp|13 + local.set $exp|18 i32.const 1 local.get $f - i64.const 4503599627370496 + local.get $isSingle|16 + if (result i64) + i64.const 8388608 + else + i64.const 4503599627370496 + end i64.eq i32.add local.set $m - local.get $frc|12 + local.get $frc|17 global.set $~lib/util/number/_frc_plus local.get $f local.get $m @@ -3810,12 +3867,12 @@ local.get $e local.get $m i32.sub - local.get $exp|13 + local.get $exp|18 i32.sub i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_minus - local.get $exp|13 + local.get $exp|18 global.set $~lib/util/number/_exp global.get $~lib/util/number/_exp local.set $minExp @@ -3867,14 +3924,14 @@ local.get $frc i64.clz i32.wrap_i64 - local.set $off|20 + local.set $off|25 local.get $frc - local.get $off|20 + local.get $off|25 i64.extend_i32_s i64.shl local.set $frc local.get $exp - local.get $off|20 + local.get $off|25 i32.sub local.set $exp global.get $~lib/util/number/_frc_pow @@ -3959,63 +4016,63 @@ local.set $w_exp block $~lib/util/number/umul64f|inlined.1 (result i64) global.get $~lib/util/number/_frc_plus - local.set $u|36 + local.set $u|41 local.get $frc_pow - local.set $v|37 - local.get $u|36 + local.set $v|42 + local.get $u|41 i64.const 4294967295 i64.and - local.set $u0|38 - local.get $v|37 + local.set $u0|43 + local.get $v|42 i64.const 4294967295 i64.and - local.set $v0|39 - local.get $u|36 + local.set $v0|44 + local.get $u|41 i64.const 32 i64.shr_u - local.set $u1|40 - local.get $v|37 + local.set $u1|45 + local.get $v|42 i64.const 32 i64.shr_u - local.set $v1|41 - local.get $u0|38 - local.get $v0|39 + local.set $v1|46 + local.get $u0|43 + local.get $v0|44 i64.mul - local.set $l|42 - local.get $u1|40 - local.get $v0|39 + local.set $l|47 + local.get $u1|45 + local.get $v0|44 i64.mul - local.get $l|42 + local.get $l|47 i64.const 32 i64.shr_u i64.add - local.set $t|43 - local.get $u0|38 - local.get $v1|41 + local.set $t|48 + local.get $u0|43 + local.get $v1|46 i64.mul - local.get $t|43 + local.get $t|48 i64.const 4294967295 i64.and i64.add - local.set $w|44 - local.get $w|44 + local.set $w|49 + local.get $w|49 i64.const 2147483647 i64.add - local.set $w|44 - local.get $t|43 + local.set $w|49 + local.get $t|48 i64.const 32 i64.shr_u - local.set $t|43 - local.get $w|44 + local.set $t|48 + local.get $w|49 i64.const 32 i64.shr_u - local.set $w|44 - local.get $u1|40 - local.get $v1|41 + local.set $w|49 + local.get $u1|45 + local.get $v1|46 i64.mul - local.get $t|43 + local.get $t|48 i64.add - local.get $w|44 + local.get $w|49 i64.add br $~lib/util/number/umul64f|inlined.1 end @@ -4024,11 +4081,11 @@ local.set $wp_frc block $~lib/util/number/umul64e|inlined.1 (result i32) global.get $~lib/util/number/_exp - local.set $e1|46 + local.set $e1|51 local.get $exp_pow - local.set $e2|47 - local.get $e1|46 - local.get $e2|47 + local.set $e2|52 + local.get $e1|51 + local.get $e2|52 i32.add i32.const 64 i32.add @@ -4037,63 +4094,63 @@ local.set $wp_exp block $~lib/util/number/umul64f|inlined.2 (result i64) global.get $~lib/util/number/_frc_minus - local.set $u|49 + local.set $u|54 local.get $frc_pow - local.set $v|50 - local.get $u|49 + local.set $v|55 + local.get $u|54 i64.const 4294967295 i64.and - local.set $u0|51 - local.get $v|50 + local.set $u0|56 + local.get $v|55 i64.const 4294967295 i64.and - local.set $v0|52 - local.get $u|49 + local.set $v0|57 + local.get $u|54 i64.const 32 i64.shr_u - local.set $u1|53 - local.get $v|50 + local.set $u1|58 + local.get $v|55 i64.const 32 i64.shr_u - local.set $v1|54 - local.get $u0|51 - local.get $v0|52 + local.set $v1|59 + local.get $u0|56 + local.get $v0|57 i64.mul - local.set $l|55 - local.get $u1|53 - local.get $v0|52 + local.set $l|60 + local.get $u1|58 + local.get $v0|57 i64.mul - local.get $l|55 + local.get $l|60 i64.const 32 i64.shr_u i64.add - local.set $t|56 - local.get $u0|51 - local.get $v1|54 + local.set $t|61 + local.get $u0|56 + local.get $v1|59 i64.mul - local.get $t|56 + local.get $t|61 i64.const 4294967295 i64.and i64.add - local.set $w|57 - local.get $w|57 + local.set $w|62 + local.get $w|62 i64.const 2147483647 i64.add - local.set $w|57 - local.get $t|56 + local.set $w|62 + local.get $t|61 i64.const 32 i64.shr_u - local.set $t|56 - local.get $w|57 + local.set $t|61 + local.get $w|62 i64.const 32 i64.shr_u - local.set $w|57 - local.get $u1|53 - local.get $v1|54 + local.set $w|62 + local.get $u1|58 + local.get $v1|59 i64.mul - local.get $t|56 + local.get $t|61 i64.add - local.get $w|57 + local.get $w|62 i64.add br $~lib/util/number/umul64f|inlined.2 end @@ -4104,13 +4161,13 @@ local.get $wm_frc i64.sub local.set $delta - local.get $buffer|4 + local.get $buffer|5 local.get $w_frc local.get $w_exp local.get $wp_frc local.get $wp_exp local.get $delta - local.get $sign|5 + local.get $sign|6 call $~lib/util/number/genDigits br $~lib/util/number/grisu2|inlined.0 end @@ -4133,7 +4190,7 @@ ) (func $~lib/number/F64#toString (param $this f64) (param $radix i32) (result i32) local.get $this - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa return ) (func $start:resolve-ternary~anonymous|0 (param $x i32) (result i32) @@ -4180,12 +4237,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -4347,13 +4400,13 @@ (func $start:resolve-ternary (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 + i32.const 0 + i32.store memory.size i32.const 16 i32.shl @@ -4385,11 +4438,6 @@ i32.store local.get $0 i32.const 2208 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4414,11 +4462,6 @@ i32.store local.get $0 i32.const 3440 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4496,7 +4539,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) @@ -4706,10 +4749,12 @@ local.get $14 return ) - (func $~lib/util/number/dtoa (param $value f64) (result i32) + (func $~lib/util/number/dtoa (param $value f64) (result i32) + (local $value|1 f64) + (local $isSingle i32) (local $size i32) (local $result i32) - (local $3 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -4718,76 +4763,66 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $value - f64.const 0 - f64.eq - if - i32.const 2304 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return - end - local.get $value - local.get $value - f64.sub - f64.const 0 - f64.eq - i32.eqz - if + block $~lib/util/number/dtoa_impl|inlined.0 (result i32) local.get $value - local.get $value - f64.ne + local.set $value|1 + i32.const 0 + local.set $isSingle + local.get $value|1 + f64.const 0 + f64.eq if - i32.const 2336 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return + i32.const 2304 + br $~lib/util/number/dtoa_impl|inlined.0 end - i32.const 2368 - i32.const 2416 - local.get $value + local.get $value|1 + local.get $value|1 + f64.sub f64.const 0 - f64.lt - select - local.set $3 + f64.eq + i32.eqz + if + local.get $value|1 + local.get $value|1 + f64.ne + if + i32.const 2336 + br $~lib/util/number/dtoa_impl|inlined.0 + end + i32.const 2368 + i32.const 2416 + local.get $value|1 + f64.const 0 + f64.lt + select + br $~lib/util/number/dtoa_impl|inlined.0 + end + i32.const 2448 + 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 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return + local.get $size + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $result + i32.store + local.get $result + i32.const 2448 + local.get $size + memory.copy + local.get $result + br $~lib/util/number/dtoa_impl|inlined.0 end - i32.const 2448 - local.get $value - 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 2448 - local.get $size - memory.copy - local.get $result - local.set $3 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $5 return ) ) diff --git a/tests/compiler/resolve-ternary.release.wat b/tests/compiler/resolve-ternary.release.wat index 68686f15c7..d6ff759cbd 100644 --- a/tests/compiler/resolve-ternary.release.wat +++ b/tests/compiler/resolve-ternary.release.wat @@ -1,14 +1,14 @@ (module (type $0 (func (param i32) (result i32))) - (type $1 (func)) - (type $2 (func (param 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 i32 i32 i32))) - (type $6 (func (param i32 i32 i64))) - (type $7 (func (result i32))) - (type $8 (func (param i32 i32 i32))) - (type $9 (func (param i64 i64 i32 i64) (result i32))) + (type $6 (func (param i32 i32 i32))) + (type $7 (func (param i32 i32 i64))) + (type $8 (func (param i64 i64 i32 i64) (result i32))) + (type $9 (func (result i32))) (import "env" "abort" (func $~lib/builtins/abort (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)) @@ -76,55 +76,6 @@ (elem $0 (i32.const 1) $start:resolve-ternary~anonymous|0 $start:resolve-ternary~anonymous|1 $resolve-ternary/g1 $resolve-ternary/g2) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1472 - call $~lib/rt/itcms/__visit - i32.const 1280 - call $~lib/rt/itcms/__visit - i32.const 2080 - call $~lib/rt/itcms/__visit - i32.const 3136 - 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) @@ -277,6 +228,110 @@ global.set $~lib/rt/itcms/visitCount end ) + (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + loop $while-continue|0 + local.get $1 + i32.const 10000 + i32.ge_u + if + local.get $1 + i32.const 10000 + i32.rem_u + local.set $3 + local.get $1 + i32.const 10000 + i32.div_u + local.set $1 + local.get $0 + local.get $2 + i32.const 4 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + i32.add + local.get $3 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 1660 + i32.add + i64.load32_u + local.get $3 + 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.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 1660 + 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 1660 + 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/tlsf/removeBlock (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -669,464 +724,225 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $~lib/function/Function<%28i32%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%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 4632 + i32.lt_s + if + i32.const 37424 + i32.const 37472 + 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 + ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4632 + i32.lt_s if - i32.const 0 - i32.const 1616 - i32.const 382 - i32.const 14 + i32.const 37424 + i32.const 37472 + i32.const 1 + i32.const 1 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 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store local.get $0 - i32.load offset=1568 - local.tee $3 + local.get $1 + i32.eq if - local.get $3 - i32.const 4 + 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.gt_u - if - i32.const 0 - i32.const 1616 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end + 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 16 + i32.const 20 i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - local.set $1 - end - else + 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.const 1572 - i32.add + i32.store + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1616 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable + 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 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + else + i32.const 1 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 37408 - i32.const 0 - i32.store - i32.const 38976 - i32.const 0 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 23 - i32.lt_u + i32.eqz if - local.get $0 - i32.const 2 - i32.shl - i32.const 37408 - i32.add - i32.const 0 - i32.store offset=4 - i32.const 0 - local.set $1 - loop $for-loop|1 + loop $do-loop|0 + local.get $2 + i64.load local.get $1 - i32.const 16 - i32.lt_u + i64.load + i64.eq if + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $1 + i32.const 8 + i32.add + local.set $1 local.get $0 i32.const 4 - i32.shl + 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$84 + loop $while-continue|1 + local.get $0 + local.tee $3 + i32.const 1 + i32.sub + local.set $0 + local.get $3 + if + local.get $2 + i32.load16_u + local.tee $5 local.get $1 - i32.add + i32.load16_u + local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 + i32.ne + br_if $__inlined_func$~lib/util/string/compareImpl$84 + local.get $2 i32.const 2 - i32.shl - i32.const 37408 i32.add - i32.const 0 - i32.store offset=96 + local.set $2 local.get $1 - i32.const 1 + i32.const 2 i32.add local.set $1 - br $for-loop|1 + br $while-continue|1 end end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 + i32.const 0 + local.set $3 end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.eqz + return end - i32.const 37408 - i32.const 38980 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 37408 - global.set $~lib/rt/tlsf/ROOT + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 ) - (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 37400 - 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 37400 - 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 37400 - 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.set $1 - 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 $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 i32.const 256 @@ -1254,10 +1070,253 @@ end end ) - (func $~lib/rt/itcms/__new (param $0 i32) (result i32) + (func $~lib/rt/tlsf/initialize + (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 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 37408 + i32.const 0 + i32.store + i32.const 38976 + 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 37408 + 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 37408 + 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 37408 + i32.const 38980 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 37408 + global.set $~lib/rt/tlsf/ROOT + ) + (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/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1472 + call $~lib/rt/itcms/__visit + i32.const 1280 + call $~lib/rt/itcms/__visit + i32.const 2080 + call $~lib/rt/itcms/__visit + i32.const 3136 + 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/__new (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) (local $4 i32) (local $5 i32) local.get $0 @@ -1287,12 +1346,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 @@ -1304,14 +1359,13 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $1 + 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 - local.get $1 i32.add global.set $~lib/rt/itcms/threshold end @@ -1357,8 +1411,6 @@ local.tee $1 i32.eqz if - memory.size - local.tee $1 local.get $4 i32.const 256 i32.ge_u @@ -1386,7 +1438,8 @@ i32.const 4 local.get $3 i32.load offset=1568 - local.get $1 + memory.size + local.tee $1 i32.const 16 i32.shl i32.const 4 @@ -1400,7 +1453,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $2 + local.set $2 + local.get $1 + local.get $2 local.get $1 local.get $2 i32.gt_s @@ -1572,531 +1627,295 @@ 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 1660 - i32.add - i64.load32_u - local.get $3 - 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.get $1 - i32.const 100 - i32.ge_u - if - local.get $0 - local.get $2 - i32.const 2 + (func $~start + (local $0 i64) + (local $1 i32) + (local $2 i64) + (local $3 i64) + (local $4 i64) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 4632 + 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 37400 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 1660 - i32.add - i32.load + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1396 + i32.const 1392 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.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 4 i32.sub - i32.const 1 - i32.shl - i32.add - local.get $1 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4632 + 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 2 - i32.shl - i32.const 1660 - i32.add - i32.load + call $~lib/rt/itcms/__new + local.tee $1 i32.store - else - local.get $0 - local.get $2 + local.get $1 i32.const 1 - i32.sub i32.const 1 - i32.shl + call $~lib/util/number/utoa32_dec_lut + 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 $1 - i32.const 48 - i32.add - i32.store16 - end - ) - (func $~lib/util/number/genDigits (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i64) (result i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i64) - (local $8 i64) - (local $9 i64) - (local $10 i32) - (local $11 i64) - local.get $1 - local.get $0 - i64.sub - local.set $8 - i64.const 1 - i32.const 0 - local.get $2 - i32.sub - local.tee $10 - i64.extend_i32_s - local.tee $0 - i64.shl - local.tee $9 - i64.const 1 - i64.sub - local.tee $11 - local.get $1 - i64.and - local.set $7 - local.get $1 - local.get $0 - i64.shr_u - i32.wrap_i64 - local.tee $5 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $5 - i32.const 100 - i32.lt_u - if (result i32) - local.get $5 - i32.const 10 - i32.ge_u + i32.store + local.get $1 + i32.const 3232 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 3264 + i32.const 5 i32.const 1 - i32.add - else - local.get $5 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $5 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $5 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $5 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $5 - i32.const 100000000 - i32.ge_u - i32.add + call $~lib/builtins/abort + unreachable end - end - local.set $6 - loop $while-continue|0 - local.get $6 - i32.const 0 - i32.gt_s - if - block $break|1 - block $case10|1 - block $case9|1 - block $case8|1 - block $case7|1 - block $case6|1 - block $case5|1 - block $case4|1 - block $case3|1 - block $case2|1 - block $case1|1 - block $case0|1 - local.get $6 - i32.const 1 - i32.sub - br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $case0|1 $case10|1 - end - local.get $5 - i32.const 1000000000 - i32.div_u - local.set $2 - local.get $5 - i32.const 1000000000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 100000000 - i32.div_u - local.set $2 - local.get $5 - i32.const 100000000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 10000000 - i32.div_u - local.set $2 - local.get $5 - i32.const 10000000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 1000000 - i32.div_u - local.set $2 - local.get $5 - i32.const 1000000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 100000 - i32.div_u - local.set $2 - local.get $5 - i32.const 100000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 10000 - i32.div_u - local.set $2 - local.get $5 - i32.const 10000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 1000 - i32.div_u - local.set $2 - local.get $5 - i32.const 1000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 100 - i32.div_u - local.set $2 - local.get $5 - i32.const 100 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 10 - i32.div_u - local.set $2 - local.get $5 - i32.const 10 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - local.set $2 - i32.const 0 - local.set $5 - br $break|1 - end - i32.const 0 - local.set $2 - end - local.get $2 - local.get $4 - i32.or - if - local.get $4 - i32.const 1 - i32.shl - i32.const 3472 - i32.add - local.get $2 - i32.const 65535 - i32.and - i32.const 48 - i32.add - i32.store16 - local.get $4 - i32.const 1 - i32.add - local.set $4 - end - local.get $6 - i32.const 1 - i32.sub - local.set $6 - local.get $3 - local.get $5 - i64.extend_i32_u - local.get $10 - i64.extend_i32_s - local.tee $1 - i64.shl - local.get $7 - i64.add - local.tee $0 - i64.ge_u - if - global.get $~lib/util/number/_K - local.get $6 - i32.add - global.set $~lib/util/number/_K - local.get $6 - i32.const 2 - i32.shl - i32.const 4400 - i32.add - i64.load32_u - local.get $1 - i64.shl - local.set $1 - local.get $4 - i32.const 1 - i32.shl - i32.const 3470 - i32.add - local.tee $5 - i32.load16_u - local.set $2 - loop $while-continue|3 - local.get $0 - local.get $8 - i64.lt_u - local.get $3 - local.get $0 - i64.sub - local.get $1 - i64.ge_u - i32.and - if (result i32) - local.get $8 - local.get $0 - local.get $1 - i64.add - local.tee $7 - i64.gt_u - local.get $8 - local.get $0 - i64.sub - local.get $7 - local.get $8 - i64.sub - i64.gt_u - i32.or - else - i32.const 0 - end - if - local.get $2 - i32.const 1 - i32.sub - local.set $2 - local.get $0 - local.get $1 - i64.add - local.set $0 - br $while-continue|3 - end - end - local.get $5 - local.get $2 - i32.store16 - local.get $4 - return - end - br $while-continue|0 - end - end - loop $while-continue|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 4632 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const -4 + global.set $~lib/util/number/_K + i32.const 3880 + i64.load + global.set $~lib/util/number/_frc_pow + i32.const 4312 + i32.load16_s + global.set $~lib/util/number/_exp_pow + global.get $~lib/util/number/_frc_pow + local.tee $2 + i64.const 4294967295 + i64.and + local.tee $3 + i64.const 31 + i64.shl + local.set $0 + local.get $2 + i64.const 32 + i64.shr_u + local.tee $2 + i64.const 31 + i64.shl + local.get $3 + i64.const 31 + i64.shl local.get $3 i64.const 10 - i64.mul - local.set $3 - local.get $7 + i64.shl + i64.const 32 + i64.shr_u + i64.add + local.tee $4 + i64.const 32 + i64.shr_u + i64.add + local.get $4 + i64.const 4294967295 + i64.and + local.get $2 i64.const 10 + i64.shl + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.sub + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i64.const 31 + i64.shl + local.get $0 + i64.const 32 + i64.shr_u + i64.add + local.get $0 + i64.const 4294967295 + i64.and + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + local.get $4 + global.get $~lib/util/number/_exp_pow + i32.const 1 + i32.add + local.get $4 + local.get $2 + i64.const 2147483647 + i64.mul + local.get $3 + i64.const 2147483647 i64.mul + local.get $3 + i64.const 4294966784 + i64.mul + i64.const 32 + i64.shr_u + i64.add local.tee $0 - local.get $10 - i64.extend_i32_s + i64.const 32 i64.shr_u - local.tee $1 - local.get $4 - i64.extend_i32_s - i64.or - i64.const 0 - i64.ne + i64.add + local.get $2 + i64.const 4294966784 + i64.mul + local.get $0 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.add + i64.sub + call $~lib/util/number/genDigits + global.get $~lib/util/number/_K + call $~lib/util/number/prettify + i32.const 1 + i32.shl + local.tee $5 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $1 + i32.const 3472 + local.get $5 + 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 + local.get $1 + i32.store + local.get $1 + i32.const 4464 + call $~lib/string/String.__eq + i32.eqz if - local.get $4 + i32.const 0 + i32.const 3264 + i32.const 13 i32.const 1 - i32.shl - i32.const 3472 - i32.add - local.get $1 - i32.wrap_i64 - i32.const 65535 - i32.and - i32.const 48 - i32.add - i32.store16 - local.get $4 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 4496 + i32.load + call_indirect (type $0) + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 3264 + i32.const 24 i32.const 1 - i32.add - local.set $4 + call $~lib/builtins/abort + unreachable end - local.get $6 i32.const 1 - i32.sub - local.set $6 - local.get $0 - local.get $11 - i64.and - local.tee $7 - local.get $3 - i64.ge_u - br_if $while-continue|4 - end - global.get $~lib/util/number/_K - local.get $6 - i32.add - global.set $~lib/util/number/_K - local.get $8 - i32.const 0 - local.get $6 - i32.sub - i32.const 2 - i32.shl - i32.const 4400 - i32.add - i64.load32_u - i64.mul - local.set $0 - local.get $4 - i32.const 1 - i32.shl - i32.const 3470 - i32.add - local.tee $5 - i32.load16_u - local.set $2 - loop $while-continue|6 - local.get $0 - local.get $7 - i64.gt_u - local.get $3 - local.get $7 - i64.sub - local.get $9 - i64.ge_u - i32.and - if (result i32) - local.get $0 - local.get $7 - i64.sub - local.get $7 - local.get $9 - i64.add - local.tee $1 - local.get $0 - i64.sub - i64.gt_u - local.get $0 - local.get $1 - i64.gt_u - i32.or - else + i32.const 4560 + i32.load + call_indirect (type $0) + i32.const 4 + i32.ne + if i32.const 0 + i32.const 3264 + i32.const 35 + i32.const 1 + call $~lib/builtins/abort + unreachable end + i32.const 1 + i32.const 4528 + i32.load + call_indirect (type $0) + i32.const 3 + i32.ne if - local.get $2 + i32.const 0 + i32.const 3264 + i32.const 43 i32.const 1 - i32.sub - local.set $2 - local.get $7 - local.get $9 - i64.add - local.set $7 - br $while-continue|6 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return end - local.get $5 - local.get $2 - i32.store16 - local.get $4 + i32.const 37424 + i32.const 37472 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -2419,542 +2238,699 @@ end end ) - (func $start:resolve-ternary~anonymous|0 (param $0 i32) (result i32) - i32.const 2 - ) - (func $start:resolve-ternary~anonymous|1 (param $0 i32) (result i32) - i32.const 3 - ) - (func $resolve-ternary/g1 (param $0 i32) (result i32) - i32.const 4 - ) - (func $resolve-ternary/g2 (param $0 i32) (result i32) - i32.const 5 - ) - (func $~lib/rt/__visit_members (param $0 i32) - (local $1 i32) - block $invalid - block $~lib/function/Function<%28i32%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%29=>i32> $invalid + (func $~lib/util/number/genDigits (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i64) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i64) + (local $8 i64) + (local $9 i64) + (local $10 i32) + (local $11 i64) + local.get $1 + local.get $0 + i64.sub + local.set $8 + i64.const 1 + i32.const 0 + local.get $2 + i32.sub + local.tee $10 + i64.extend_i32_s + local.tee $0 + i64.shl + local.tee $9 + i64.const 1 + i64.sub + local.tee $11 + local.get $1 + i64.and + local.set $7 + local.get $1 + local.get $0 + i64.shr_u + i32.wrap_i64 + local.tee $5 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $5 + i32.const 100 + i32.lt_u + if (result i32) + local.get $5 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $5 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $5 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $5 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $5 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $5 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $5 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.set $2 + loop $while-continue|0 + local.get $2 + i32.const 0 + i32.gt_s + if + block $break|1 + block $case10|1 + block $case9|1 + block $case8|1 + block $case7|1 + block $case6|1 + block $case5|1 + block $case4|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + local.get $2 + i32.const 1 + i32.sub + br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $case0|1 $case10|1 + end + local.get $5 + i32.const 1000000000 + i32.div_u + local.set $6 + local.get $5 + i32.const 1000000000 + i32.rem_u + local.set $5 + br $break|1 + end + local.get $5 + i32.const 100000000 + i32.div_u + local.set $6 + local.get $5 + i32.const 100000000 + i32.rem_u + local.set $5 + br $break|1 + end + local.get $5 + i32.const 10000000 + i32.div_u + local.set $6 + local.get $5 + i32.const 10000000 + i32.rem_u + local.set $5 + br $break|1 + end + local.get $5 + i32.const 1000000 + i32.div_u + local.set $6 + local.get $5 + i32.const 1000000 + i32.rem_u + local.set $5 + br $break|1 + end + local.get $5 + i32.const 100000 + i32.div_u + local.set $6 + local.get $5 + i32.const 100000 + i32.rem_u + local.set $5 + br $break|1 + end + local.get $5 + i32.const 10000 + i32.div_u + local.set $6 + local.get $5 + i32.const 10000 + i32.rem_u + local.set $5 + br $break|1 + end + local.get $5 + i32.const 1000 + i32.div_u + local.set $6 + local.get $5 + i32.const 1000 + i32.rem_u + local.set $5 + br $break|1 + end + local.get $5 + i32.const 100 + i32.div_u + local.set $6 + local.get $5 + i32.const 100 + i32.rem_u + local.set $5 + br $break|1 end - return + local.get $5 + i32.const 10 + i32.div_u + local.set $6 + local.get $5 + i32.const 10 + i32.rem_u + local.set $5 + br $break|1 end - return + local.get $5 + local.set $6 + i32.const 0 + local.set $5 + br $break|1 end - return + i32.const 0 + local.set $6 end - local.get $0 - i32.load - local.tee $0 + local.get $4 + local.get $6 + i32.or if - local.get $0 - call $~lib/rt/itcms/__visit + local.get $4 + i32.const 1 + i32.shl + i32.const 3472 + i32.add + local.get $6 + i32.const 65535 + i32.and + i32.const 48 + i32.add + i32.store16 + local.get $4 + i32.const 1 + i32.add + local.set $4 end - 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 4632 - i32.lt_s - if - i32.const 37424 - i32.const 37472 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - 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 - ) - (func $~start - (local $0 i32) - (local $1 i64) - (local $2 f64) - (local $3 i64) - (local $4 i64) - (local $5 i64) - (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 4632 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - memory.size - i32.const 16 - i32.shl - i32.const 37400 - 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 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4632 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - i32.const 1 - i32.const 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3232 - i32.store offset=4 - local.get $0 - i32.const 3232 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 3264 - i32.const 5 + local.get $2 i32.const 1 - call $~lib/builtins/abort - unreachable + i32.sub + local.set $2 + local.get $3 + local.get $5 + i64.extend_i32_u + local.get $10 + i64.extend_i32_s + local.tee $1 + i64.shl + local.get $7 + i64.add + local.tee $0 + i64.ge_u + if + global.get $~lib/util/number/_K + local.get $2 + i32.add + global.set $~lib/util/number/_K + local.get $2 + i32.const 2 + i32.shl + i32.const 4400 + i32.add + i64.load32_u + local.get $1 + i64.shl + local.set $1 + local.get $4 + i32.const 1 + i32.shl + i32.const 3470 + i32.add + local.tee $5 + i32.load16_u + local.set $2 + loop $while-continue|3 + local.get $0 + local.get $8 + i64.lt_u + local.get $3 + local.get $0 + i64.sub + local.get $1 + i64.ge_u + i32.and + if (result i32) + local.get $8 + local.get $0 + local.get $1 + i64.add + local.tee $7 + i64.gt_u + local.get $8 + local.get $0 + i64.sub + local.get $7 + local.get $8 + i64.sub + i64.gt_u + i32.or + else + i32.const 0 + end + if + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $0 + local.get $1 + i64.add + local.set $0 + br $while-continue|3 + end + end + local.get $5 + local.get $2 + i32.store16 + local.get $4 + return + end + br $while-continue|0 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 4632 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const -4 - global.set $~lib/util/number/_K - i32.const 3880 - i64.load - global.set $~lib/util/number/_frc_pow - i32.const 4312 - i32.load16_s - global.set $~lib/util/number/_exp_pow - global.get $~lib/util/number/_frc_pow - local.tee $3 - i64.const 4294967295 - i64.and - local.tee $4 - i64.const 31 - i64.shl - local.get $4 - i64.const 10 - i64.shl - i64.const 32 - i64.shr_u - i64.add - local.set $1 - local.get $3 - i64.const 32 - i64.shr_u - local.tee $3 - i64.const 31 - i64.shl - local.get $4 - i64.const 31 - i64.shl - local.tee $5 - i64.const 32 - i64.shr_u - i64.add - local.get $5 - i64.const 4294967295 - i64.and - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - local.get $3 - i64.const 31 - i64.shl - local.get $1 - i64.const 32 - i64.shr_u - i64.add - local.get $1 - i64.const 4294967295 - i64.and + end + loop $while-continue|4 local.get $3 i64.const 10 - i64.shl - i64.add - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - i64.const 1 - i64.sub - local.tee $1 - global.get $~lib/util/number/_exp_pow - i32.const 1 - i32.add - local.get $1 - local.get $3 - i64.const 2147483647 - i64.mul - local.get $4 - i64.const 2147483647 i64.mul - local.get $4 - i64.const 4294966784 + local.set $3 + local.get $7 + i64.const 10 i64.mul - i64.const 32 + local.tee $0 + local.get $10 + i64.extend_i32_s i64.shr_u - i64.add local.tee $1 - i64.const 32 - i64.shr_u - i64.add - local.get $3 - i64.const 4294966784 - i64.mul - local.get $1 - i64.const 4294967295 - i64.and - i64.add - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - i64.const 1 - i64.add - i64.sub - call $~lib/util/number/genDigits - global.get $~lib/util/number/_K - call $~lib/util/number/prettify - i32.const 1 - i32.shl - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - i32.const 3472 - local.get $6 - 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 - local.tee $6 - local.get $0 - i32.store - local.get $6 - i32.const 4464 - i32.store offset=4 - local.get $0 - i32.const 4464 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 3264 - i32.const 13 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - i32.const 4496 - i32.load - call_indirect (type $0) - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 3264 - i32.const 24 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - i32.const 4560 - i32.load - call_indirect (type $0) - i32.const 4 - i32.ne + local.get $4 + i64.extend_i32_s + i64.or + i64.const 0 + i64.ne if - i32.const 0 - i32.const 3264 - i32.const 35 + local.get $4 + local.tee $5 i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - i32.const 4528 - i32.load - call_indirect (type $0) - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 3264 - i32.const 43 + i32.add + local.set $4 + local.get $5 i32.const 1 - call $~lib/builtins/abort - unreachable + i32.shl + i32.const 3472 + i32.add + local.get $1 + i32.wrap_i64 + i32.const 65535 + i32.and + i32.const 48 + i32.add + i32.store16 end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 37424 - i32.const 37472 - i32.const 1 - i32.const 1 - 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 4632 - i32.lt_s - if - i32.const 37424 - i32.const 37472 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $0 - local.get $1 - i32.eq - if local.get $2 - 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.tee $4 - local.tee $2 - 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 - local.get $2 - 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 - local.get $4 + local.set $2 local.get $0 - i32.store + local.get $11 + i64.and + local.tee $7 + local.get $3 + i64.ge_u + br_if $while-continue|4 + end + global.get $~lib/util/number/_K + local.get $2 + i32.add + global.set $~lib/util/number/_K + local.get $8 + i32.const 0 + local.get $2 + i32.sub + i32.const 2 + i32.shl + i32.const 4400 + i32.add + i64.load32_u + i64.mul + local.set $0 + local.get $4 + i32.const 1 + i32.shl + i32.const 3470 + i32.add + local.tee $5 + i32.load16_u + local.set $2 + loop $while-continue|6 local.get $0 - local.set $2 - local.get $4 - local.get $1 - i32.store offset=4 + local.get $7 + i64.gt_u local.get $3 - local.tee $0 - i32.const 4 - i32.ge_u + local.get $7 + i64.sub + local.get $9 + i64.ge_u + i32.and if (result i32) + local.get $0 + local.get $7 + i64.sub + local.get $7 + local.get $9 + i64.add + local.tee $1 + local.get $0 + i64.sub + i64.gt_u + local.get $0 + local.get $1 + i64.gt_u + i32.or + else + i32.const 0 + end + if local.get $2 - i32.const 7 + i32.const 1 + i32.sub + local.set $2 + local.get $7 + local.get $9 + i64.add + local.set $7 + br $while-continue|6 + end + end + local.get $5 + local.get $2 + i32.store16 + local.get $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.get $1 - i32.const 7 + 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.or - else - i32.const 1 - end - i32.eqz - if - loop $do-loop|0 - local.get $2 - i64.load - local.get $1 - i64.load - i64.eq - if - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 + i32.const 37400 + 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 - block $__inlined_func$~lib/util/string/compareImpl$84 - loop $while-continue|1 + 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 37400 + i32.lt_u + if local.get $0 - local.tee $3 - i32.const 1 + 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 - local.set $0 - local.get $3 + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 4 + i32.add + local.tee $0 + i32.const 37400 + i32.ge_u if - local.get $2 - i32.load16_u - local.tee $5 - local.get $1 - i32.load16_u - local.tee $4 + 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 $3 - local.get $4 - local.get $5 - i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$84 - local.get $2 - i32.const 2 - i32.add local.set $2 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 + 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 0 - local.set $3 + i32.const 10 + return end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - i32.eqz - return + 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 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer i32.const 0 ) + (func $start:resolve-ternary~anonymous|1 (param $0 i32) (result i32) + i32.const 3 + ) + (func $start:resolve-ternary~anonymous|0 (param $0 i32) (result i32) + i32.const 2 + ) + (func $resolve-ternary/g2 (param $0 i32) (result i32) + i32.const 5 + ) + (func $resolve-ternary/g1 (param $0 i32) (result i32) + i32.const 4 + ) ) diff --git a/tests/compiler/resolve-unary.debug.wat b/tests/compiler/resolve-unary.debug.wat index 1eff1a8a06..46d35d9426 100644 --- a/tests/compiler/resolve-unary.debug.wat +++ b/tests/compiler/resolve-unary.debug.wat @@ -1708,14 +1708,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 @@ -2912,12 +2915,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -3167,13 +3166,13 @@ (local $5 i32) (local $6 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + 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 24 + i32.const 20 memory.fill memory.size i32.const 16 @@ -3201,11 +3200,6 @@ i32.store local.get $6 i32.const 2208 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 call $~lib/string/String.__eq i32.eqz if @@ -3225,11 +3219,6 @@ i32.store local.get $6 i32.const 2304 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 call $~lib/string/String.__eq i32.eqz if @@ -3253,11 +3242,6 @@ i32.store local.get $6 i32.const 2336 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 call $~lib/string/String.__eq i32.eqz if @@ -3281,11 +3265,6 @@ i32.store local.get $6 i32.const 2304 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 call $~lib/string/String.__eq i32.eqz if @@ -3306,11 +3285,6 @@ i32.store local.get $6 i32.const 2400 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 call $~lib/string/String.__eq i32.eqz if @@ -3332,11 +3306,6 @@ i32.store local.get $6 i32.const 2368 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 call $~lib/string/String.__eq i32.eqz if @@ -3358,11 +3327,6 @@ i32.store local.get $6 i32.const 2432 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 call $~lib/string/String.__eq i32.eqz if @@ -3387,11 +3351,6 @@ i32.store local.get $6 i32.const 2304 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 call $~lib/string/String.__eq i32.eqz if @@ -3416,11 +3375,6 @@ i32.store local.get $6 i32.const 2336 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 call $~lib/string/String.__eq i32.eqz if @@ -3438,13 +3392,13 @@ local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=12 + i32.store offset=8 local.get $6 call $resolve-unary/Foo#plus local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=8 + i32.store offset=4 local.get $6 call $~lib/string/String#toString local.set $6 @@ -3453,11 +3407,6 @@ i32.store local.get $6 i32.const 2464 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 call $~lib/string/String.__eq i32.eqz if @@ -3472,13 +3421,13 @@ local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=12 + i32.store offset=8 local.get $6 call $resolve-unary/Foo#minus local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=8 + i32.store offset=4 local.get $6 call $~lib/string/String#toString local.set $6 @@ -3487,11 +3436,6 @@ i32.store local.get $6 i32.const 2496 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 call $~lib/string/String.__eq i32.eqz if @@ -3558,13 +3502,13 @@ local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=12 + i32.store offset=8 local.get $6 call $resolve-unary/Foo#not local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=8 + i32.store offset=4 local.get $6 call $~lib/string/String#toString local.set $6 @@ -3573,11 +3517,6 @@ i32.store local.get $6 i32.const 2528 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 call $~lib/string/String.__eq i32.eqz if @@ -3592,13 +3531,13 @@ local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=12 + i32.store offset=8 local.get $6 call $resolve-unary/Foo#bitwise_not local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=8 + i32.store offset=4 local.get $6 call $~lib/string/String#toString local.set $6 @@ -3607,11 +3546,6 @@ i32.store local.get $6 i32.const 2560 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 call $~lib/string/String.__eq i32.eqz if @@ -3625,7 +3559,7 @@ global.get $~lib/memory/__stack_pointer global.get $resolve-unary/foo local.tee $2 - i32.store offset=16 + i32.store offset=12 local.get $2 local.set $6 global.get $~lib/memory/__stack_pointer @@ -3655,7 +3589,7 @@ global.get $~lib/memory/__stack_pointer global.get $resolve-unary/foo local.tee $3 - i32.store offset=20 + i32.store offset=16 local.get $3 local.set $6 global.get $~lib/memory/__stack_pointer @@ -3689,13 +3623,13 @@ local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=12 + i32.store offset=8 local.get $6 call $resolve-unary/Bar.prefix_inc local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=8 + i32.store offset=4 local.get $6 call $~lib/string/String#toString local.set $6 @@ -3704,11 +3638,6 @@ i32.store local.get $6 i32.const 2592 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 call $~lib/string/String.__eq i32.eqz if @@ -3723,13 +3652,13 @@ local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=12 + i32.store offset=8 local.get $6 call $resolve-unary/Bar.prefix_dec local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=8 + i32.store offset=4 local.get $6 call $~lib/string/String#toString local.set $6 @@ -3738,11 +3667,6 @@ i32.store local.get $6 i32.const 2624 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 call $~lib/string/String.__eq i32.eqz if @@ -3753,19 +3677,17 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer global.get $resolve-unary/bar - local.tee $6 - i32.store + local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=12 + i32.store offset=8 local.get $6 call $resolve-unary/Bar.postfix_inc local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=8 + i32.store offset=4 local.get $6 call $~lib/string/String#toString local.set $6 @@ -3774,11 +3696,6 @@ i32.store local.get $6 i32.const 2656 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 call $~lib/string/String.__eq i32.eqz if @@ -3789,19 +3706,17 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer global.get $resolve-unary/bar - local.tee $6 - i32.store + local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=12 + i32.store offset=8 local.get $6 call $resolve-unary/Bar.postfix_dec local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=8 + i32.store offset=4 local.get $6 call $~lib/string/String#toString local.set $6 @@ -3810,11 +3725,6 @@ i32.store local.get $6 i32.const 2688 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 call $~lib/string/String.__eq i32.eqz if @@ -3828,24 +3738,14 @@ i32.const 1 drop i32.const 2720 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 call $~lib/string/String#get:length drop i32.const 2752 drop i32.const 2784 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 call $resolve-unary/generic<~lib/string/String> global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/resolve-unary.release.wat b/tests/compiler/resolve-unary.release.wat index 97dd0c9459..a407109355 100644 --- a/tests/compiler/resolve-unary.release.wat +++ b/tests/compiler/resolve-unary.release.wat @@ -2,8 +2,8 @@ (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 $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 $7 (func (result i32))) @@ -84,66 +84,167 @@ (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 - (local $0 i32) - (local $1 i32) - global.get $resolve-unary/foo - local.tee $0 + (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 3872 + i32.lt_s if - local.get $0 - call $~lib/rt/itcms/__visit + i32.const 36672 + i32.const 36720 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - global.get $resolve-unary/bar - local.tee $0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + local.get $1 + i32.eq if - local.get $0 - call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return end - i32.const 1472 - call $~lib/rt/itcms/__visit - i32.const 1280 - call $~lib/rt/itcms/__visit - i32.const 2080 - call $~lib/rt/itcms/__visit - i32.const 3136 - 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 + 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 - if - local.get $0 - i32.load offset=4 - i32.const 3 + 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 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 + local.get $1 + i32.const 7 i32.and - local.set $0 - br $while-continue|0 + i32.or + else + i32.const 1 + end + i32.eqz + if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $0 + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + block $__inlined_func$~lib/util/string/compareImpl$79 + loop $while-continue|1 + local.get $0 + local.tee $3 + i32.const 1 + i32.sub + local.set $0 + local.get $3 + if + local.get $2 + i32.load16_u + local.tee $5 + local.get $1 + i32.load16_u + local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 + i32.ne + br_if $__inlined_func$~lib/util/string/compareImpl$79 + local.get $2 + i32.const 2 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end + end + i32.const 0 + local.set $3 end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.eqz + return end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 ) (func $~lib/rt/itcms/__visit (param $0 i32) (local $1 i32) @@ -297,330 +398,608 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 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) - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3872 + i32.lt_s if - i32.const 0 - i32.const 1616 - i32.const 268 - i32.const 14 + i32.const 36672 + i32.const 36720 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u - if + 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 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1248 + local.set $2 + br $__inlined_func$~lib/util/number/itoa32$73 + end + global.get $~lib/memory/__stack_pointer 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 + local.get $0 + i32.sub + local.get $0 + local.get $0 i32.const 31 - i32.const 1073741820 + i32.shr_u + i32.const 1 + i32.shl + local.tee $3 + select + local.tee $0 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 100 + i32.lt_u + if (result i32) + local.get $0 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $0 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $0 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.tee $1 + i32.const 1 + i32.shl local.get $3 + i32.add + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 local.get $3 - i32.const 1073741820 + 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 1660 + i32.add + 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.get $0 + i32.const 100 i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 + 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 1660 + 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 1660 + 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 - local.get $4 + if + local.get $2 + i32.const 45 + i32.store16 + end + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor + i32.add + global.set $~lib/memory/__stack_pointer end - local.tee $3 - i32.const 16 - i32.lt_u local.get $2 - i32.const 23 - i32.lt_u - i32.and - i32.eqz + ) + (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 0 - i32.const 1616 - i32.const 284 - i32.const 14 + i32.const 1280 + i32.const 1344 + i32.const 261 + i32.const 31 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 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u 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 + block $__inlined_func$~lib/rt/itcms/interrupt$69 + i32.const 2048 + local.set $2 + loop $do-loop|0 local.get $2 - i32.rotl - i32.and - i32.store + 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 - ) - (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 + global.get $~lib/rt/tlsf/ROOT i32.eqz if - i32.const 0 - i32.const 1616 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable + call $~lib/rt/tlsf/initialize end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + 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 0 + i32.const 1280 i32.const 1616 - i32.const 203 - i32.const 14 + i32.const 461 + i32.const 29 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 $4 + local.get $2 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else local.get $2 - i32.const -4 - i32.and - i32.add - local.tee $3 - i32.store - local.get $1 - i32.const 4 + i32.const 19 i32.add - local.get $1 - i32.load - i32.const -4 + i32.const -16 i32.and - i32.add - local.tee $4 - i32.load - local.set $2 + i32.const 4 + i32.sub end - local.get $3 - i32.const 2 - i32.and + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz if - local.get $1 + 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 + memory.size + local.tee $2 + i32.const 16 + i32.shl i32.const 4 i32.sub - i32.load - local.tee $1 - i32.load - local.tee $6 - i32.const 1 + i32.ne + i32.shl + i32.add + i32.const 65535 + i32.add + i32.const -65536 i32.and + i32.const 16 + i32.shr_u + local.set $3 + local.get $2 + local.get $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 1616 - i32.const 221 + i32.const 499 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 $5 local.get $2 - i32.const 2 - i32.or - i32.store - local.get $3 + i32.load i32.const -4 i32.and - local.tee $2 - i32.const 12 - i32.lt_u + i32.gt_u if i32.const 0 i32.const 1616 - i32.const 233 + i32.const 501 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 + 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 1616 - i32.const 234 + i32.const 361 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 - i32.const 4 + 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 + 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/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 $2 + local.get $3 i32.const 4 i32.shr_u else i32.const 31 i32.const 1073741820 - local.get $2 - local.get $2 + local.get $3 + local.get $3 i32.const 1073741820 i32.ge_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.tee $3 + local.tee $4 i32.const 7 i32.sub - local.set $5 - local.get $2 + 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 $2 + local.tee $3 i32.const 16 i32.lt_u - local.get $5 + local.get $2 i32.const 23 i32.lt_u i32.and @@ -628,523 +1007,385 @@ if i32.const 0 i32.const 1616 - i32.const 251 + i32.const 284 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 + i32.load offset=8 + local.set $5 local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 + i32.load offset=4 + local.tee $4 if - local.get $3 - local.get $1 + 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 $5 - i32.const 4 - i32.shl local.get $2 - i32.add - i32.const 2 + i32.const 4 i32.shl + local.get $3 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 + local.tee $1 + i32.load offset=96 + i32.eq 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 + 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.load - local.set $4 - local.get $5 - local.set $1 + 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 - else + 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 - i32.const 1572 + 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.gt_u + 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 402 - i32.const 5 + 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.wrap_i64 - i32.const -16 + i32.const 2 + i32.or + i32.store + local.get $3 + i32.const -4 i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 + local.tee $2 + i32.const 12 i32.lt_u if - return + i32.const 0 + i32.const 1616 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable 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 + local.get $2 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 + i32.ne if + i32.const 0 + i32.const 1616 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort unreachable end - i32.const 36640 - i32.const 0 - i32.store - i32.const 38208 - i32.const 0 + local.get $4 + i32.const 4 + i32.sub + local.get $1 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 36640 - 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 36640 - 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 + 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 - i32.const 36640 - i32.const 38212 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 36640 - 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 36640 - 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 36640 - 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 36640 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize + 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/__visit_members (param $0 i32) + block $invalid + block $~lib/function/Function<%28%29=>void> + block $resolve-unary/Bar + block $resolve-unary/Foo + 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-unary/Foo $resolve-unary/Bar $~lib/function/Function<%28%29=>void> $invalid + end + return + end + return + end + return end - global.get $~lib/rt/tlsf/ROOT - local.set $1 - 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 $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock + call $~lib/rt/itcms/__visit + return end + return end - i32.const 10 return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - 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 3872 + i32.lt_s + if + 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.store + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + 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 0 + unreachable ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1261,800 +1502,576 @@ 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 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$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 - 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 $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 - 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 1280 - i32.const 1616 - 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 + local.get $1 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 else - local.get $5 + i32.const 0 end - i32.const 4 - local.get $4 - i32.load offset=1568 - local.get $2 - i32.const 16 - i32.shl - i32.const 4 + end + ) + (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 - 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 + else + i32.const 0 + end + if + unreachable + end + i32.const 36640 + i32.const 0 + i32.store + i32.const 38208 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u if - local.get $3 - memory.grow + local.get $0 + i32.const 2 + i32.shl + i32.const 36640 + i32.add 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.store offset=4 i32.const 0 - i32.const 1616 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable + 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 36640 + 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 - local.get $5 + i32.const 36640 + i32.const 38212 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 36640 + global.set $~lib/rt/tlsf/ROOT + ) + (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 - i32.load - i32.const -4 - i32.and - i32.gt_u + local.get $1 + i64.extend_i32_u + i64.lt_u if i32.const 0 i32.const 1616 - i32.const 501 + i32.const 382 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 + local.get $1 + i32.const 19 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 $6 - i32.const -4 + i32.const -16 i32.and - local.get $5 + i32.const 4 i32.sub + local.set $1 + local.get $0 + i32.load offset=1568 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 + local.get $3 i32.const 4 i32.add - local.get $5 - i32.add - local.tee $5 + 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 - i32.const 4 + local.get $1 + i32.const 16 i32.sub - i32.const 1 - i32.or - i32.store - local.get $4 - local.get $5 - call $~lib/rt/tlsf/insertBlock + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + local.set $1 + end 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 + local.get $0 + i32.const 1572 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 $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 - 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.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 - local.get $2 + i32.const 0 i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $2 - i32.load - i32.const -4 - i32.and + local.get $1 i32.const 4 i32.add + local.get $3 i32.add - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 local.get $0 - memory.fill local.get $1 + call $~lib/rt/tlsf/insertBlock ) - (func $~lib/number/I32#toString (param $0 i32) (result i32) + (func $~lib/rt/itcms/visitRoots + (local $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 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3872 - i32.lt_s + global.get $resolve-unary/foo + local.tee $0 if - i32.const 36672 - i32.const 36720 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/itoa32$73 - local.get $0 - i32.eqz - if - local.get $1 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - 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 + call $~lib/rt/itcms/__visit + end + global.get $resolve-unary/bar + local.tee $0 + if 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) - 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 $1 - i32.const 1 - i32.shl - local.get $3 - i32.add - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - 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 1660 - i32.add - 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.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 1660 - i32.add - i32.load - i32.store - local.get $0 - i32.const 100 - i32.div_u - local.set $0 - end + call $~lib/rt/itcms/__visit + end + i32.const 1472 + call $~lib/rt/itcms/__visit + i32.const 1280 + call $~lib/rt/itcms/__visit + i32.const 2080 + call $~lib/rt/itcms/__visit + i32.const 3136 + 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 - i32.const 10 - i32.ge_u + local.get $1 + i32.ne 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 1660 - 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 + 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 48 + i32.const 20 i32.add - i32.store16 - end - local.get $3 - if - local.get $2 - i32.const 45 - i32.store16 + 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/object/Object#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 3872 + i32.lt_s + if + 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.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 0 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store end - local.get $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 ) - (func $~lib/rt/__visit_members (param $0 i32) + (func $~start + call $start:resolve-unary + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) (local $1 i32) - block $invalid - block $~lib/function/Function<%28%29=>void> - block $resolve-unary/Bar - block $resolve-unary/Foo - 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-unary/Foo $resolve-unary/Bar $~lib/function/Function<%28%29=>void> $invalid - end - return - end - return - end + (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 - local.tee $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 36640 + 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 - return end - return + 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/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3872 - i32.lt_s - if - i32.const 36672 - i32.const 36720 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - 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 - ) - (func $~start - call $start:resolve-unary - ) - (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 3872 - i32.lt_s - if - i32.const 36672 - i32.const 36720 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $0 - local.get $1 - i32.eq - if - local.get $2 - 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.tee $4 - local.tee $2 - 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 - local.get $2 - 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 - local.get $4 - local.get $0 - i32.store - local.get $0 - local.set $2 - local.get $4 - local.get $1 - i32.store offset=4 - local.get $3 + global.get $~lib/rt/itcms/iter local.tee $0 - i32.const 4 - i32.ge_u - if (result i32) - local.get $2 - i32.const 7 + 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 7 + i32.const 3 i32.and - i32.or - else - i32.const 1 - end - i32.eqz - if - loop $do-loop|0 - local.get $2 - i64.load - local.get $1 - i64.load - i64.eq - if - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end + i32.ne + if + i32.const 0 + i32.const 1344 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable end - end - block $__inlined_func$~lib/util/string/compareImpl$79 - loop $while-continue|1 + local.get $0 + i32.const 36640 + i32.lt_u + if local.get $0 - local.tee $3 - i32.const 1 + 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 - local.set $0 - local.get $3 + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 4 + i32.add + local.tee $0 + i32.const 36640 + i32.ge_u if - local.get $2 - i32.load16_u - local.tee $5 - local.get $1 - i32.load16_u - local.tee $4 + 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 $3 - local.get $4 - local.get $5 - i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$79 - local.get $2 - i32.const 2 - i32.add local.set $2 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 + 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 0 - local.set $3 + i32.const 10 + return end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - i32.eqz - return + 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 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer i32.const 0 ) (func $start:resolve-unary (local $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -2064,7 +2081,7 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 24 + i32.const 20 memory.fill memory.size i32.const 16 @@ -2104,9 +2121,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3232 - i32.store offset=4 local.get $0 i32.const 3232 call $~lib/string/String.__eq @@ -2123,12 +2137,8 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 3328 - i32.store offset=4 local.get $0 i32.const 3328 call $~lib/string/String.__eq @@ -2149,12 +2159,8 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 3360 - i32.store offset=4 local.get $0 i32.const 3360 call $~lib/string/String.__eq @@ -2175,12 +2181,8 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 3328 - i32.store offset=4 local.get $0 i32.const 3328 call $~lib/string/String.__eq @@ -2194,18 +2196,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 3424 i32.const 3392 global.get $resolve-unary/a select - local.tee $1 + local.tee $0 i32.store local.get $0 i32.const 3424 - i32.store offset=4 - local.get $1 - i32.const 3424 call $~lib/string/String.__eq i32.eqz if @@ -2217,18 +2215,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 3392 i32.const 3424 global.get $resolve-unary/a select - local.tee $1 + local.tee $0 i32.store local.get $0 i32.const 3392 - i32.store offset=4 - local.get $1 - i32.const 3392 call $~lib/string/String.__eq i32.eqz if @@ -2245,12 +2239,8 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 3456 - i32.store offset=4 local.get $0 i32.const 3456 call $~lib/string/String.__eq @@ -2272,12 +2262,8 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 3328 - i32.store offset=4 local.get $0 i32.const 3328 call $~lib/string/String.__eq @@ -2299,12 +2285,8 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 3360 - i32.store offset=4 local.get $0 i32.const 3360 call $~lib/string/String.__eq @@ -2326,20 +2308,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -2352,16 +2332,13 @@ global.set $resolve-unary/foo global.get $~lib/memory/__stack_pointer global.get $resolve-unary/foo - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 3488 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 3488 - i32.store + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 3488 - i32.store offset=4 + i32.store i32.const 3488 i32.const 3488 call $~lib/string/String.__eq @@ -2375,18 +2352,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $resolve-unary/foo - i32.store offset=12 - local.get $0 - i32.const 3520 i32.store offset=8 - local.get $0 - i32.const 3520 - i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3520 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3520 + i32.store i32.const 3520 i32.const 3520 call $~lib/string/String.__eq @@ -2400,13 +2373,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $resolve-unary/foo - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $1 - global.set $resolve-unary/foo local.get $0 + global.set $resolve-unary/foo + global.get $~lib/memory/__stack_pointer global.get $resolve-unary/foo local.tee $0 i32.store @@ -2422,13 +2394,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $resolve-unary/foo - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $1 - global.set $resolve-unary/foo local.get $0 + global.set $resolve-unary/foo + global.get $~lib/memory/__stack_pointer global.get $resolve-unary/foo local.tee $0 i32.store @@ -2444,18 +2415,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $resolve-unary/foo - i32.store offset=12 - local.get $0 - i32.const 3552 i32.store offset=8 - local.get $0 - i32.const 3552 - i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3552 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3552 + i32.store i32.const 3552 i32.const 3552 call $~lib/string/String.__eq @@ -2469,18 +2436,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $resolve-unary/foo - i32.store offset=12 - local.get $0 - i32.const 3584 i32.store offset=8 - local.get $0 - i32.const 3584 - i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3584 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3584 + i32.store i32.const 3584 i32.const 3584 call $~lib/string/String.__eq @@ -2494,20 +2457,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $resolve-unary/foo - local.tee $1 - i32.store offset=16 + local.tee $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=4 - local.get $1 + local.get $0 global.set $resolve-unary/foo + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store global.get $resolve-unary/foo - local.get $1 + local.get $0 i32.ne if i32.const 0 @@ -2518,20 +2480,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $resolve-unary/foo - local.tee $1 - i32.store offset=20 + local.tee $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=4 - local.get $1 + local.get $0 global.set $resolve-unary/foo + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store global.get $resolve-unary/foo - local.get $1 + local.get $0 i32.ne if i32.const 0 @@ -2550,20 +2511,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 5 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -2576,16 +2535,13 @@ global.set $resolve-unary/bar global.get $~lib/memory/__stack_pointer global.get $resolve-unary/bar - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 3616 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 3616 - i32.store + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 3616 - i32.store offset=4 + i32.store i32.const 3616 i32.const 3616 call $~lib/string/String.__eq @@ -2599,18 +2555,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $resolve-unary/bar - i32.store offset=12 - local.get $0 - i32.const 3648 i32.store offset=8 - local.get $0 - i32.const 3648 - i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3648 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3648 + i32.store i32.const 3648 i32.const 3648 call $~lib/string/String.__eq @@ -2624,22 +2576,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $resolve-unary/bar - local.tee $1 - i32.store - local.get $0 - local.get $1 - i32.store offset=12 - local.get $0 - i32.const 3680 i32.store offset=8 - local.get $0 - i32.const 3680 - i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3680 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3680 + i32.store i32.const 3680 i32.const 3680 call $~lib/string/String.__eq @@ -2653,22 +2597,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $resolve-unary/bar - local.tee $1 - i32.store - local.get $0 - local.get $1 - i32.store offset=12 - local.get $0 - i32.const 3712 i32.store offset=8 - local.get $0 - i32.const 3712 - i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3712 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3712 + i32.store i32.const 3712 i32.const 3712 call $~lib/string/String.__eq @@ -2681,18 +2617,11 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 3744 - i32.store i32.const 3740 i32.load drop - local.get $0 - i32.const 3808 - i32.store - local.get $0 - i32.const 24 + global.get $~lib/memory/__stack_pointer + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer return @@ -2704,41 +2633,4 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/object/Object#constructor (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3872 - i32.lt_s - if - i32.const 36672 - i32.const 36720 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - local.get $1 - 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 - ) ) diff --git a/tests/compiler/return-unreachable.debug.wat b/tests/compiler/return-unreachable.debug.wat index c08d881355..0c46f0c920 100644 --- a/tests/compiler/return-unreachable.debug.wat +++ b/tests/compiler/return-unreachable.debug.wat @@ -1624,14 +1624,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 @@ -2374,12 +2377,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/return-unreachable.release.wat b/tests/compiler/return-unreachable.release.wat index c2b30c2ce8..85d8930589 100644 --- a/tests/compiler/return-unreachable.release.wat +++ b/tests/compiler/return-unreachable.release.wat @@ -1,7 +1,7 @@ (module - (type $0 (func)) - (type $1 (func (param i32))) - (type $2 (func (param i32 i32))) + (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 i32 i32 i32))) (type $5 (func (param i32 i32 i64))) @@ -38,185 +38,6 @@ (export "test" (func $return-unreachable/test)) (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 1056 - call $~lib/rt/itcms/__visit - i32.const 1152 - 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/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 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$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 34328 - 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 $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 - i32.const 1536 - 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 $1 - i32.const 2 - i32.shl - i32.const 1540 - 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 @@ -633,462 +454,193 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + (local $2 i32) (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 + global.get $~lib/rt/itcms/iter + i32.eq if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz if i32.const 0 - i32.const 1488 - i32.const 389 - i32.const 16 + i32.const 1216 + i32.const 148 + i32.const 30 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 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$121 local.get $0 - i32.const 1572 - i32.add - local.get $1 - i32.gt_u + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz if - i32.const 0 - i32.const 1488 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + local.get $0 + i32.load offset=8 + i32.eqz + local.get $0 + i32.const 34328 + 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 $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 - 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 + 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 1536 + 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 $1 + i32.const 2 + i32.shl + i32.const 1540 + i32.add + i32.load + i32.const 32 + i32.and end - local.get $1 - local.get $4 + 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 - i32.and local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or + select + local.get $2 i32.or - i32.store - local.get $1 - i32.const 0 i32.store offset=4 + local.get $0 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 34336 - i32.const 0 - i32.store - i32.const 35904 - 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 34336 - 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 34336 - 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 34336 - i32.const 35908 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34336 - global.set $~lib/rt/tlsf/ROOT + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $2 + local.get $0 + i32.store offset=8 ) - (func $~lib/rt/itcms/step (result i32) - (local $0 i32) - (local $1 i32) - (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - local.get $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 - local.get $0 - i32.load offset=4 - 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 34328 - 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 + (func $~lib/rt/__visit_members (param $0 i32) + 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 20 - i32.add - call $~lib/rt/__visit_members + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array $invalid end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 + return end + return 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 + return end - global.get $~lib/rt/itcms/visitCount + local.get $0 + i32.load + call $~lib/rt/itcms/__visit return end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1560 + 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 - if - i32.const 0 - i32.const 1216 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 34328 - 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 34328 - 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.set $1 - 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 $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return + i32.const 34352 + i32.const 34400 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 + 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.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + 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 0 + unreachable ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1192,29 +744,270 @@ i32.shl i32.add i32.load offset=4 - local.tee $2 - i32.eqz + 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/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 34336 + i32.const 0 + i32.store + i32.const 35904 + 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 34336 + 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 34336 + 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 34336 + i32.const 35908 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34336 + global.set $~lib/rt/tlsf/ROOT + ) + (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/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1344 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + i32.const 1152 + 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 1488 - i32.const 347 - i32.const 18 + i32.const 1216 + i32.const 160 + i32.const 16 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.const 20 i32.add - i32.load offset=96 - else - i32.const 0 + 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 ) @@ -1251,12 +1044,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 @@ -1268,8 +1057,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1321,8 +1109,6 @@ local.tee $2 i32.eqz if - memory.size - local.tee $2 local.get $5 i32.const 256 i32.ge_u @@ -1350,7 +1136,8 @@ i32.const 4 local.get $4 i32.load offset=1568 - local.get $2 + memory.size + local.tee $2 i32.const 16 i32.shl i32.const 4 @@ -1364,7 +1151,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.set $3 + local.get $2 + local.get $3 local.get $2 local.get $3 i32.gt_s @@ -1537,7 +1326,6 @@ local.get $1 ) (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) - (local $2 i32) local.get $0 local.get $1 i32.store @@ -1554,7 +1342,6 @@ unreachable end global.get $~lib/rt/itcms/white - local.tee $2 local.get $1 i32.const 20 i32.sub @@ -1565,33 +1352,327 @@ i32.eq if local.get $0 - i32.const 20 - i32.sub + 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 + end + ) + (func $~start + memory.size + i32.const 16 + i32.shl + i32.const 34328 + 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/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 34328 + 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 - local.tee $0 - local.get $2 + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white i32.eqz - i32.eq + local.get $1 + i32.const 3 + i32.and + i32.ne if - local.get $1 - call $~lib/rt/itcms/Object#makeGray + i32.const 0 + i32.const 1216 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34328 + 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/state - i32.const 1 - i32.eq + global.get $~lib/rt/itcms/total local.get $0 - i32.const 3 - i32.eq + 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 34328 + i32.ge_u if - local.get $1 - call $~lib/rt/itcms/Object#makeGray + 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 $return-unreachable/test (param $0 i32) (result i32) (local $1 i32) @@ -1606,10 +1687,10 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer @@ -1618,40 +1699,39 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 4 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.store 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 call $~lib/array/Array#set:buffer 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 - local.get $2 + local.get $0 i32.store offset=4 - local.get $2 + local.get $0 i32.const 0 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -1661,30 +1741,30 @@ local.tee $1 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 $1 i32.store offset=12 - local.get $2 + local.get $0 local.get $1 call $~lib/array/Array#set:buffer global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 - local.get $2 + local.get $0 local.get $1 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 400 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 - local.get $2 + local.get $0 i32.const 100 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -1692,7 +1772,6 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $0 - local.get $2 i32.store unreachable end @@ -1703,100 +1782,4 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/rt/__visit_members (param $0 i32) - (local $1 i32) - 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 $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - 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 1560 - i32.lt_s - if - i32.const 34352 - i32.const 34400 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - 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 - ) - (func $~start - memory.size - i32.const 16 - i32.shl - i32.const 34328 - 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/return.release.wat b/tests/compiler/return.release.wat index 821708a0cc..6bc1ea50aa 100644 --- a/tests/compiler/return.release.wat +++ b/tests/compiler/return.release.wat @@ -1,7 +1,7 @@ (module (type $0 (func)) - (type $1 (func (param i32))) - (type $2 (func (param i32 i32 i32 i32))) + (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 (param i32 i32 i32 i32))) (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33836)) @@ -14,12 +14,7 @@ (export "memory" (memory $0)) (export "testVoidReturnFunction" (func $export:return/testVoidReturnFunction)) (start $~start) - (func $start:return~anonymous|0 - ) - (func $return/testVoidReturn (param $0 i32) - ) (func $~start - (local $0 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -36,10 +31,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store i32.const 1056 @@ -50,6 +44,10 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $start:return~anonymous|0 + ) + (func $return/testVoidReturn (param $0 i32) + ) (func $export:return/testVoidReturnFunction (param $0 i32) (param $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 diff --git a/tests/compiler/rt/alloc-large-memory.release.wat b/tests/compiler/rt/alloc-large-memory.release.wat index 7430833f99..05d01619c0 100644 --- a/tests/compiler/rt/alloc-large-memory.release.wat +++ b/tests/compiler/rt/alloc-large-memory.release.wat @@ -1,8 +1,8 @@ (module (type $0 (func (param i32 i32))) (type $1 (func (param i32 i32 i32 i32))) - (type $2 (func (param i32 i32 i64))) - (type $3 (func (param i32 i32) (result i32))) + (type $2 (func (param i32 i32) (result i32))) + (type $3 (func (param i32 i32 i64))) (type $4 (func (param i32))) (type $5 (func)) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) @@ -160,6 +160,134 @@ end end ) + (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 1056 + 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 1056 + 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/tlsf/insertBlock (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -520,134 +648,6 @@ local.get $1 call $~lib/rt/tlsf/insertBlock ) - (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 1056 - 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 1056 - 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/memory/heap.alloc (param $0 i32) (local $1 i32) (local $2 i32) @@ -766,8 +766,6 @@ local.tee $1 i32.eqz if - memory.size - local.tee $1 local.get $0 i32.const 256 i32.ge_u @@ -795,7 +793,8 @@ i32.const 4 local.get $3 i32.load offset=1568 - local.get $1 + memory.size + local.tee $1 i32.const 16 i32.shl i32.const 4 @@ -809,7 +808,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $2 + local.set $2 + local.get $1 + local.get $2 local.get $1 local.get $2 i32.gt_s diff --git a/tests/compiler/rt/finalize.debug.wat b/tests/compiler/rt/finalize.debug.wat index d3cb87b0de..9e9ef46519 100644 --- a/tests/compiler/rt/finalize.debug.wat +++ b/tests/compiler/rt/finalize.debug.wat @@ -1644,14 +1644,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 @@ -2360,12 +2363,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/rt/finalize.release.wat b/tests/compiler/rt/finalize.release.wat index 3105a85854..8dbd26236c 100644 --- a/tests/compiler/rt/finalize.release.wat +++ b/tests/compiler/rt/finalize.release.wat @@ -4,8 +4,8 @@ (type $2 (func (param i32 i32))) (type $3 (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 $5 (func (result i32))) + (type $6 (func (param i32 i32 i64))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $rt/finalize/expect (mut i32) (i32.const 0)) (global $rt/finalize/ran (mut i32) (i32.const 0)) @@ -37,133 +37,363 @@ (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/rt/itcms/visitRoots + (func $~lib/rt/itcms/step (result i32) (local $0 i32) (local $1 i32) - i32.const 1248 - 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 + (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 - i32.const 1120 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + 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 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - local.get $0 + 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 - 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 1120 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable + 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 - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$112 - local.get $1 + 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 - local.tee $0 - i32.eqz + i32.eq if - local.get $1 - i32.load offset=8 - i32.eqz - local.get $1 - i32.const 34280 - i32.lt_u + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 34280 + 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 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable + 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 - br $__inlined_func$~lib/rt/itcms/Object#unlink$112 + 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 - local.get $1 - i32.load offset=8 - local.tee $2 + 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 132 - i32.const 16 + i32.const 229 + i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 + i32.const 34280 + 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 + global.get $rt/finalize/expect + local.get $0 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1392 + i32.const 6 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $rt/finalize/ran + local.get $0 + i32.const 4 + i32.add + local.tee $0 + i32.const 34280 + 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 1440 + 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) + (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 1120 + 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$112 + 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 34280 + 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$112 + end + local.get $1 + 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 $0 + local.get $2 + i32.store offset=8 + local.get $2 + 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 @@ -626,119 +856,90 @@ 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 1440 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $rt/finalize/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 $rt/finalize/Ref $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + return end - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - local.set $1 + unreachable + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) 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 1440 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 + i32.load offset=4 + i32.const -2 + i32.and + local.tee $1 + if (result i32) + local.get $0 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 + i32.ctz + i32.const 2 + i32.shl + i32.add + i32.load offset=96 else local.get $0 - i32.const 1572 - i32.add - local.get $1 - i32.gt_u - if + i32.load + i32.const -2 + i32.and + local.tee $1 + if (result i32) + local.get $0 + local.get $1 + i32.ctz + local.tee $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1440 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + 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 i32.const 0 - i32.const 1440 - 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) @@ -806,352 +1007,176 @@ local.get $0 i32.const 1 i32.add - local.set $0 - br $for-loop|0 - end - end - i32.const 34288 - i32.const 35860 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34288 - 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 34280 - 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 34280 - 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 - global.get $rt/finalize/expect - local.get $0 - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1392 - i32.const 6 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $rt/finalize/ran - local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 34280 - 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.set $1 - 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 1440 - 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 $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return + local.set $0 + br $for-loop|0 end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 + end + i32.const 34288 + i32.const 35860 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34288 + global.set $~lib/rt/tlsf/ROOT + ) + (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 - global.set $~lib/rt/itcms/state + i32.const 1440 + 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 1440 + 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 1440 + 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/searchBlock (param $0 i32) (result i32) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) (local $1 i32) - (local $2 i32) - local.get $0 + i32.const 1248 + 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 -2 + i32.const -4 i32.and - local.tee $1 - if (result i32) + local.set $0 + loop $while-continue|0 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) + i32.ne + if local.get $0 - local.get $1 - i32.ctz - local.tee $2 - i32.const 2 - i32.shl - i32.add i32.load offset=4 - local.tee $1 - i32.eqz + i32.const 3 + i32.and + i32.const 3 + i32.ne if i32.const 0 - i32.const 1440 - i32.const 347 - i32.const 18 + i32.const 1120 + i32.const 160 + i32.const 16 call $~lib/builtins/abort unreachable end local.get $0 - local.get $1 - i32.ctz - local.get $2 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl + i32.const 20 i32.add - i32.load offset=96 - else - i32.const 0 + 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 ) @@ -1176,12 +1201,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 @@ -1193,8 +1214,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $1 - local.get $1 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1216,12 +1236,11 @@ local.tee $1 i32.eqz if - memory.size - local.tee $1 i32.const 4 local.get $2 i32.load offset=1568 - local.get $1 + memory.size + local.tee $1 i32.const 16 i32.shl i32.const 4 @@ -1234,7 +1253,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.set $3 + local.get $1 + local.get $3 local.get $1 local.get $3 i32.gt_s @@ -1389,42 +1410,9 @@ memory.fill local.get $0 ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $rt/finalize/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 $rt/finalize/Ref $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - return - end - return - end - unreachable - ) (func $~start (local $0 i32) (local $1 i32) - (local $2 i32) global.get $~started if return @@ -1474,19 +1462,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1495,13 +1482,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 call $~lib/rt/itcms/__new local.tee $0 @@ -1511,7 +1497,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/rt/flags.debug.wat b/tests/compiler/rt/flags.debug.wat index cf8505dea5..7a20ca9635 100644 --- a/tests/compiler/rt/flags.debug.wat +++ b/tests/compiler/rt/flags.debug.wat @@ -607,7 +607,7 @@ unreachable end ) - (func $rt/flags/test<~lib/map/Map> (param $flags i32) + (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) i32.const 42 call $~lib/rt/__typeinfo local.get $flags @@ -622,7 +622,7 @@ unreachable end ) - (func $rt/flags/test<~lib/map/Map> (param $flags i32) + (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) i32.const 43 call $~lib/rt/__typeinfo local.get $flags @@ -637,7 +637,7 @@ unreachable end ) - (func $rt/flags/test<~lib/map/Map> (param $flags i32) + (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) i32.const 44 call $~lib/rt/__typeinfo local.get $flags @@ -652,7 +652,7 @@ unreachable end ) - (func $rt/flags/test<~lib/map/Map> (param $flags i32) + (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) i32.const 45 call $~lib/rt/__typeinfo local.get $flags @@ -667,7 +667,7 @@ unreachable end ) - (func $rt/flags/test<~lib/map/Map> (param $flags i32) + (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) i32.const 46 call $~lib/rt/__typeinfo local.get $flags @@ -682,7 +682,7 @@ unreachable end ) - (func $rt/flags/test<~lib/map/Map> (param $flags i32) + (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) i32.const 47 call $~lib/rt/__typeinfo local.get $flags @@ -697,7 +697,7 @@ unreachable end ) - (func $rt/flags/test<~lib/map/Map> (param $flags i32) + (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) i32.const 48 call $~lib/rt/__typeinfo local.get $flags @@ -712,7 +712,7 @@ unreachable end ) - (func $rt/flags/test<~lib/map/Map> (param $flags i32) + (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) i32.const 49 call $~lib/rt/__typeinfo local.get $flags @@ -727,7 +727,7 @@ unreachable end ) - (func $rt/flags/test<~lib/map/Map> (param $flags i32) + (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) i32.const 50 call $~lib/rt/__typeinfo local.get $flags @@ -742,7 +742,7 @@ unreachable end ) - (func $rt/flags/test<~lib/map/Map> (param $flags i32) + (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) i32.const 51 call $~lib/rt/__typeinfo local.get $flags @@ -757,7 +757,7 @@ unreachable end ) - (func $rt/flags/test<~lib/map/Map> (param $flags i32) + (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) i32.const 52 call $~lib/rt/__typeinfo local.get $flags @@ -988,7 +988,7 @@ i32.or i32.const 2048 i32.or - call $rt/flags/test<~lib/map/Map> + call $"rt/flags/test<~lib/map/Map>" i32.const 16 i32.const 262144 i32.or @@ -998,7 +998,7 @@ i32.or i32.const 2048 i32.or - call $rt/flags/test<~lib/map/Map> + call $"rt/flags/test<~lib/map/Map>" i32.const 16 i32.const 131072 i32.or @@ -1008,7 +1008,7 @@ i32.or i32.const 2048 i32.or - call $rt/flags/test<~lib/map/Map> + call $"rt/flags/test<~lib/map/Map>" i32.const 16 i32.const 65536 i32.or @@ -1018,7 +1018,7 @@ i32.or i32.const 2048 i32.or - call $rt/flags/test<~lib/map/Map> + call $"rt/flags/test<~lib/map/Map>" i32.const 16 i32.const 32768 i32.or @@ -1026,7 +1026,7 @@ i32.or i32.const 1024 i32.or - call $rt/flags/test<~lib/map/Map> + call $"rt/flags/test<~lib/map/Map>" i32.const 16 global.get $rt/flags/KEY_ALIGN_REF i32.or @@ -1036,7 +1036,7 @@ i32.or i32.const 2048 i32.or - call $rt/flags/test<~lib/map/Map> + call $"rt/flags/test<~lib/map/Map>" i32.const 16 global.get $rt/flags/KEY_ALIGN_REF i32.or @@ -1048,7 +1048,7 @@ i32.or i32.const 2048 i32.or - call $rt/flags/test<~lib/map/Map> + call $"rt/flags/test<~lib/map/Map>" i32.const 16 i32.const 32768 i32.or @@ -1058,7 +1058,7 @@ i32.or global.get $rt/flags/VALUE_ALIGN_REF i32.or - call $rt/flags/test<~lib/map/Map> + call $"rt/flags/test<~lib/map/Map>" i32.const 16 i32.const 32768 i32.or @@ -1070,7 +1070,7 @@ i32.or global.get $rt/flags/VALUE_ALIGN_REF i32.or - call $rt/flags/test<~lib/map/Map> + call $"rt/flags/test<~lib/map/Map>" i32.const 16 i32.const 4194304 i32.or @@ -1084,7 +1084,7 @@ i32.or global.get $rt/flags/VALUE_ALIGN_REF i32.or - call $rt/flags/test<~lib/map/Map> + call $"rt/flags/test<~lib/map/Map>" i32.const 16 i32.const 131072 i32.or @@ -1096,7 +1096,7 @@ i32.or i32.const 2048 i32.or - call $rt/flags/test<~lib/map/Map> + call $"rt/flags/test<~lib/map/Map>" ) (func $~start call $start:rt/flags diff --git a/tests/compiler/rt/flags.release.wat b/tests/compiler/rt/flags.release.wat index c0b2f9cf66..5935c9e5e9 100644 --- a/tests/compiler/rt/flags.release.wat +++ b/tests/compiler/rt/flags.release.wat @@ -1,7 +1,7 @@ (module (type $0 (func)) - (type $1 (func (param i32 i32 i32 i32))) - (type $2 (func (param i32) (result i32))) + (type $1 (func (param i32) (result i32))) + (type $2 (func (param i32 i32 i32 i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (memory $0 1) (data $0 (i32.const 1036) "<") @@ -33,6 +33,9 @@ i32.add i32.load ) + (func $~start + call $start:rt/flags + ) (func $start:rt/flags block $folding-inner0 i32.const 4 @@ -284,7 +287,4 @@ call $~lib/builtins/abort unreachable ) - (func $~start - call $start:rt/flags - ) ) diff --git a/tests/compiler/rt/issue-2719.debug.wat b/tests/compiler/rt/issue-2719.debug.wat index 2071e914a1..6aae0a765d 100644 --- a/tests/compiler/rt/issue-2719.debug.wat +++ b/tests/compiler/rt/issue-2719.debug.wat @@ -1621,14 +1621,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 @@ -2313,12 +2316,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/rt/issue-2719.release.wat b/tests/compiler/rt/issue-2719.release.wat index a4b942f375..82735386cb 100644 --- a/tests/compiler/rt/issue-2719.release.wat +++ b/tests/compiler/rt/issue-2719.release.wat @@ -1,8 +1,8 @@ (module (type $0 (func)) - (type $1 (func (param i32))) - (type $2 (func (param i32 i32))) - (type $3 (func (result i32))) + (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 i32 i32 i32))) (type $6 (func (param i32 i32 i64))) @@ -34,132 +34,347 @@ (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/rt/itcms/visitRoots + (func $~lib/rt/itcms/step (result i32) (local $0 i32) (local $1 i32) - i32.const 1248 - 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 + (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 - i32.const 1120 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + 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 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - local.get $0 + 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 - 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 1120 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable + 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 - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$119 - local.get $1 + 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 - local.tee $0 - i32.eqz + i32.eq if - local.get $1 - i32.load offset=8 - i32.eqz - local.get $1 - i32.const 34296 - i32.lt_u + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 34296 + 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 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable + 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 - br $__inlined_func$~lib/rt/itcms/Object#unlink$119 + 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 - local.get $1 - i32.load offset=8 - local.tee $2 + 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 132 - i32.const 16 + i32.const 229 + i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 + i32.const 34296 + 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 34296 + 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/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 1120 + 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 34296 + 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$119 + end + local.get $1 + 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 $0 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $0 local.get $2 i32.load offset=4 i32.const 3 @@ -623,462 +838,105 @@ 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 + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $rt/issue-2719/issue2719_T + 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 $rt/issue-2719/issue2719_T $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + return end - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 + unreachable + ) + (func $rt/issue-2719/issue2719_T#constructor (result i32) + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.sub - local.set $1 - local.get $0 - i32.load offset=1568 - local.tee $3 - if - local.get $3 + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1528 + 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.add - local.get $1 - i32.gt_u + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + 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 1528 + i32.lt_s + br_if $folding-inner0 + 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 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 34304 - i32.const 0 - i32.store - i32.const 35872 - 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 34304 - 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 34304 - 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 34304 - i32.const 35876 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34304 - 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 34296 - 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 34296 - 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 34296 - 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.set $1 - 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 $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - local.tee $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 offset=4 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store offset=4 local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return end - i32.const 0 + i32.const 34320 + i32.const 34368 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1124,87 +982,326 @@ i32.sub local.set $2 end - local.get $1 - i32.const 16 - i32.lt_u + 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/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 34304 + i32.const 0 + i32.store + i32.const 35872 + 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 34304 + 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 34304 + 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 34304 + i32.const 35876 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34304 + global.set $~lib/rt/tlsf/ROOT + ) + (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.const 23 - i32.lt_u + i32.wrap_i64 + i32.const -16 i32.and - i32.eqz + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u if - i32.const 0 - i32.const 1392 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable + return end - local.get $0 - local.get $2 + local.get $1 + local.get $4 i32.const 2 - i32.shl + 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 - i32.load offset=4 - i32.const -1 + 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 - i32.shl - i32.and + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1248 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace local.tee $1 - if (result i32) + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|0 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) + i32.ne + if 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 + i32.const 3 + i32.and + i32.const 3 + i32.ne if i32.const 0 - i32.const 1392 - i32.const 347 - i32.const 18 + i32.const 1120 + i32.const 160 + i32.const 16 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.const 20 i32.add - i32.load offset=96 - else - i32.const 0 + 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 ) @@ -1241,12 +1338,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 @@ -1258,8 +1351,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1311,8 +1403,6 @@ local.tee $2 i32.eqz if - memory.size - local.tee $2 local.get $5 i32.const 256 i32.ge_u @@ -1340,7 +1430,8 @@ i32.const 4 local.get $4 i32.load offset=1568 - local.get $2 + memory.size + local.tee $2 i32.const 16 i32.shl i32.const 4 @@ -1354,7 +1445,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.set $3 + local.get $2 + local.get $3 local.get $2 local.get $3 i32.gt_s @@ -1526,38 +1619,6 @@ memory.fill local.get $1 ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $rt/issue-2719/issue2719_T - 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 $rt/issue-2719/issue2719_T $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - return - end - return - end - unreachable - ) (func $~start (local $0 i32) (local $1 i32) @@ -1682,10 +1743,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -1715,80 +1775,4 @@ call $~lib/builtins/abort unreachable ) - (func $rt/issue-2719/issue2719_T#constructor (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 - global.get $~lib/memory/__stack_pointer - i32.const 1528 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 4 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1528 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - local.get $2 - 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 $1 - local.get $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 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 34320 - i32.const 34368 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) ) diff --git a/tests/compiler/rt/runtime-incremental-export.debug.wat b/tests/compiler/rt/runtime-incremental-export.debug.wat index e0441f24cb..e95efa75fe 100644 --- a/tests/compiler/rt/runtime-incremental-export.debug.wat +++ b/tests/compiler/rt/runtime-incremental-export.debug.wat @@ -1627,14 +1627,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 @@ -2384,12 +2387,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/rt/runtime-incremental-export.release.wat b/tests/compiler/rt/runtime-incremental-export.release.wat index 4e5d52200a..422cd0bc5a 100644 --- a/tests/compiler/rt/runtime-incremental-export.release.wat +++ b/tests/compiler/rt/runtime-incremental-export.release.wat @@ -4,8 +4,8 @@ (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 $5 (func (result i32))) + (type $6 (func (param i32 i32 i64))) (type $7 (func (param i32) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) @@ -42,190 +42,6 @@ (export "__rtti_base" (global $~lib/rt/__rtti_base)) (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 1056 - call $~lib/rt/itcms/__visit - i32.const 1456 - call $~lib/rt/itcms/__visit - i32.const 1520 - 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#unlink (param $0 i32) - (local $1 i32) - 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 34356 - 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 - return - end - local.get $0 - i32.load offset=8 - local.tee $0 - 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 $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 - ) - (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 - local.get $0 - call $~lib/rt/itcms/Object#unlink - global.get $~lib/rt/itcms/toSpace - local.set $1 - local.get $0 - i32.load offset=12 - local.tee $2 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $2 - i32.const 1568 - i32.load - i32.gt_u - if - i32.const 1248 - i32.const 1312 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 2 - i32.shl - i32.const 1572 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $1 - i32.load offset=8 - local.set $2 - local.get $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $1 - 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 - ) (func $~lib/rt/itcms/__visit (param $0 i32) local.get $0 i32.eqz @@ -250,76 +66,336 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $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 + 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 + i32.const 34356 + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 34356 + 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 34356 + 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 34356 + 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/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 @@ -642,119 +718,209 @@ 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 + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + 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 34356 + 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 + return + end + local.get $0 + i32.load offset=8 + local.tee $0 + i32.eqz if i32.const 0 - i32.const 1392 - i32.const 382 - i32.const 14 + i32.const 1120 + i32.const 132 + i32.const 16 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 + 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 + ) + (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 + ) + (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 $3 + local.get $1 i32.const 4 - i32.add + i32.shr_u + local.set $1 + else local.get $1 - i32.gt_u + i32.const 536870910 + i32.lt_u if - i32.const 0 - i32.const 1392 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable + 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 $3 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.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 + local.set $2 end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and local.get $1 - i32.sub - local.tee $3 - i32.const 20 + 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 1392 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable end - local.get $1 - local.get $4 + local.get $0 + local.get $2 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.shl i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 - local.get $0 + i32.load offset=4 + i32.const -1 local.get $1 - call $~lib/rt/tlsf/insertBlock + 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/tlsf/initialize (local $0 i32) @@ -815,417 +981,417 @@ 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 34368 - i32.const 35940 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34368 - 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 - i32.const 34356 - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 34356 - 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 + local.set $1 + br $for-loop|1 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 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + end + i32.const 34368 + i32.const 35940 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34368 + global.set $~lib/rt/tlsf/ROOT + ) + (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/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1248 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + i32.const 1456 + call $~lib/rt/itcms/__visit + i32.const 1520 + 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 - 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.const 3 i32.ne if i32.const 0 i32.const 1120 - i32.const 229 - i32.const 20 + i32.const 160 + i32.const 16 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 34356 - 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 34356 - 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.set $1 - 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 $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return + 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 - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state end - i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u + (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 - i32.const 4 - i32.shr_u - local.set $1 + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + global.get $~lib/rt/itcms/toSpace + local.set $1 + local.get $0 + i32.load offset=12 + local.tee $2 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 else - local.get $1 - i32.const 536870910 - i32.lt_u + local.get $2 + i32.const 1568 + i32.load + i32.gt_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 + i32.const 1248 + i32.const 1312 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable 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 + i32.const 2 + i32.shl + i32.const 1572 + i32.add + i32.load + i32.const 32 + i32.and end + local.set $3 local.get $1 - i32.const 16 - i32.lt_u + i32.load offset=8 + local.set $2 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $1 + i32.or + i32.store offset=4 + local.get $0 local.get $2 - i32.const 23 - i32.lt_u + 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 + ) + (func $~start + memory.size + i32.const 16 + i32.shl + i32.const 34356 + 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 + ) + (func $~lib/rt/itcms/__unpin (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 i32.eqz if - i32.const 0 - i32.const 1392 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable + return end local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add + i32.const 20 + i32.sub + local.tee $1 i32.load offset=4 - i32.const -1 - local.get $1 - i32.shl + i32.const 3 i32.and - local.tee $1 - if (result i32) + i32.const 3 + i32.ne + if + i32.const 1520 + i32.const 1120 + i32.const 352 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + else + local.get $1 + call $~lib/rt/itcms/Object#unlink + global.get $~lib/rt/itcms/fromSpace + local.tee $0 + i32.load offset=8 + 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 + 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 + local.get $0 + local.get $1 + i32.store offset=8 + end + ) + (func $~lib/rt/itcms/__pin (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + if local.get $0 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.eq + if + i32.const 1456 + i32.const 1120 + i32.const 338 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/rt/itcms/Object#unlink + global.get $~lib/rt/itcms/pinSpace + local.tee $3 + i32.load offset=8 + local.set $2 + local.get $1 + local.get $3 + i32.const 3 + i32.or + i32.store offset=4 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 + i32.store offset=8 local.get $2 - i32.const 1 - i32.add - i32.shl + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 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 + i32.or + i32.store offset=4 + local.get $3 + local.get $1 + i32.store offset=8 end + local.get $0 ) (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1260,12 +1426,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 @@ -1277,8 +1439,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1330,8 +1491,6 @@ local.tee $2 i32.eqz if - memory.size - local.tee $2 local.get $5 i32.const 256 i32.ge_u @@ -1359,7 +1518,8 @@ i32.const 4 local.get $4 i32.load offset=1568 - local.get $2 + memory.size + local.tee $2 i32.const 16 i32.shl i32.const 4 @@ -1373,7 +1533,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.set $3 + local.get $2 + local.get $3 local.get $2 local.get $3 i32.gt_s @@ -1545,116 +1707,6 @@ memory.fill local.get $1 ) - (func $~lib/rt/itcms/__pin (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - if - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.eq - if - i32.const 1456 - i32.const 1120 - i32.const 338 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - local.get $1 - call $~lib/rt/itcms/Object#unlink - global.get $~lib/rt/itcms/pinSpace - local.tee $3 - i32.load offset=8 - local.set $2 - local.get $1 - local.get $3 - i32.const 3 - i32.or - 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 - local.get $3 - local.get $1 - i32.store offset=8 - end - local.get $0 - ) - (func $~lib/rt/itcms/__unpin (param $0 i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.eqz - if - return - end - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 1520 - i32.const 1120 - i32.const 352 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - else - local.get $1 - call $~lib/rt/itcms/Object#unlink - global.get $~lib/rt/itcms/fromSpace - local.tee $0 - i32.load offset=8 - 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 - 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 - local.get $0 - local.get $1 - i32.store offset=8 - end - ) (func $~lib/rt/itcms/__collect global.get $~lib/rt/itcms/state i32.const 0 @@ -1690,67 +1742,4 @@ i32.add global.set $~lib/rt/itcms/threshold ) - (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 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - return - end - unreachable - ) - (func $~start - memory.size - i32.const 16 - i32.shl - i32.const 34356 - 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 - ) ) diff --git a/tests/compiler/rt/runtime-minimal-export.debug.wat b/tests/compiler/rt/runtime-minimal-export.debug.wat index 4ba694d3dc..95a809eadd 100644 --- a/tests/compiler/rt/runtime-minimal-export.debug.wat +++ b/tests/compiler/rt/runtime-minimal-export.debug.wat @@ -2034,12 +2034,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/tcms/__visit - end + local.get $1 + call $~lib/rt/tcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/rt/runtime-minimal-export.release.wat b/tests/compiler/rt/runtime-minimal-export.release.wat index aaeece8e32..dbea43d114 100644 --- a/tests/compiler/rt/runtime-minimal-export.release.wat +++ b/tests/compiler/rt/runtime-minimal-export.release.wat @@ -33,6 +33,52 @@ (export "__rtti_base" (global $~lib/rt/__rtti_base)) (export "memory" (memory $0)) (start $~start) + (func $~lib/rt/tcms/__visit (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + global.get $~lib/rt/tcms/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 + call $~lib/rt/tcms/Object#unlink + global.get $~lib/rt/tcms/toSpace + local.tee $0 + i32.load offset=8 + local.set $2 + local.get $1 + local.get $0 + global.get $~lib/rt/tcms/white + i32.eqz + i32.or + 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 + local.get $0 + local.get $1 + i32.store offset=8 + end + ) (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -425,134 +471,199 @@ 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 + (func $~lib/rt/tcms/Object#unlink (param $0 i32) + (local $1 i32) + 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 1476 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 101 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.tee $0 + i32.eqz if i32.const 0 - i32.const 1184 - i32.const 382 - i32.const 14 + i32.const 1120 + i32.const 105 + i32.const 16 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 + 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 + ) + (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 $3 + local.get $1 i32.const 4 - i32.add + i32.shr_u + local.set $1 + else local.get $1 - i32.gt_u + i32.const 536870910 + i32.lt_u if - i32.const 0 - i32.const 1184 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable + 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 $3 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.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 1184 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + local.set $2 end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and local.get $1 - i32.sub - local.tee $3 - i32.const 20 + 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 1184 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable end - local.get $1 - local.get $4 + local.get $0 + local.get $2 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.shl i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 - local.get $0 + i32.load offset=4 + i32.const -1 local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size + i32.shl + i32.and local.tee $1 - i32.const 0 - i32.le_s if (result i32) - i32.const 1 + local.get $0 local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s + 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 1184 + 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/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 @@ -619,133 +730,272 @@ i32.const 1488 global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (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 - i32.const 256 - i32.lt_u + i64.extend_i32_u + i64.lt_u if - local.get $1 + i32.const 0 + i32.const 1184 + 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.shr_u - local.set $1 - else + i32.add local.get $1 - i32.const 536870910 - i32.lt_u + i32.gt_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 + i32.const 0 + i32.const 1184 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $3 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 + 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 1184 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end end - local.get $1 - i32.const 16 - i32.lt_u local.get $2 - i32.const 23 + 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/__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/tcms/__visit + return + end + unreachable + ) + (func $~start + i32.const 1236 + i32.const 1232 + i32.store + i32.const 1240 + i32.const 1232 + i32.store + i32.const 1232 + global.set $~lib/rt/tcms/fromSpace + i32.const 1332 + i32.const 1328 + i32.store + i32.const 1336 + i32.const 1328 + i32.store + i32.const 1328 + global.set $~lib/rt/tcms/pinSpace + i32.const 1428 + i32.const 1424 + i32.store + i32.const 1432 + i32.const 1424 + i32.store + i32.const 1424 + global.set $~lib/rt/tcms/toSpace + ) + (func $~lib/rt/tcms/__unpin (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 i32.eqz if - i32.const 0 - i32.const 1184 - i32.const 334 - i32.const 14 + return + end + local.get $0 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 1376 + i32.const 1120 + i32.const 195 + i32.const 5 call $~lib/builtins/abort unreachable end + local.get $1 + call $~lib/rt/tcms/Object#unlink + global.get $~lib/rt/tcms/fromSpace + local.tee $0 + i32.load offset=8 + local.set $2 + local.get $1 local.get $0 + global.get $~lib/rt/tcms/white + i32.or + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=8 local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - i32.const -1 local.get $1 - i32.shl + local.get $2 + i32.load offset=4 + i32.const 3 i32.and - local.tee $1 - if (result i32) + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tcms/__pin (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + if local.get $0 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.eq + if + i32.const 1280 + i32.const 1120 + i32.const 181 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/rt/tcms/Object#unlink + global.get $~lib/rt/tcms/pinSpace + local.tee $3 + i32.load offset=8 + local.set $2 + local.get $1 + local.get $3 + i32.const 3 + i32.or + i32.store offset=4 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 + i32.store offset=8 local.get $2 - i32.const 1 - i32.add - i32.shl + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 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 1184 - 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 + i32.or + i32.store offset=4 + local.get $3 + local.get $1 + i32.store offset=8 end + local.get $0 ) (func $~lib/rt/tcms/__new (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -805,8 +1055,6 @@ local.tee $2 i32.eqz if - memory.size - local.tee $2 local.get $5 i32.const 256 i32.ge_u @@ -834,7 +1082,8 @@ i32.const 4 local.get $4 i32.load offset=1568 - local.get $2 + memory.size + local.tee $2 i32.const 16 i32.shl i32.const 4 @@ -848,7 +1097,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.set $3 + local.get $2 + local.get $3 local.get $2 local.get $3 i32.gt_s @@ -1015,159 +1266,6 @@ i32.const 20 i32.add ) - (func $~lib/rt/tcms/Object#unlink (param $0 i32) - (local $1 i32) - 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 1476 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 101 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $0 - i32.load offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 105 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - 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 - ) - (func $~lib/rt/tcms/__pin (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - if - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.eq - if - i32.const 1280 - i32.const 1120 - i32.const 181 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - local.get $1 - call $~lib/rt/tcms/Object#unlink - global.get $~lib/rt/tcms/pinSpace - local.tee $3 - i32.load offset=8 - local.set $2 - local.get $1 - local.get $3 - i32.const 3 - i32.or - 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 - local.get $3 - local.get $1 - i32.store offset=8 - end - local.get $0 - ) - (func $~lib/rt/tcms/__unpin (param $0 i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.eqz - if - return - end - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 1376 - i32.const 1120 - i32.const 195 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - call $~lib/rt/tcms/Object#unlink - global.get $~lib/rt/tcms/fromSpace - local.tee $0 - i32.load offset=8 - local.set $2 - local.get $1 - local.get $0 - global.get $~lib/rt/tcms/white - i32.or - 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 - local.get $0 - local.get $1 - i32.store offset=8 - ) (func $~lib/rt/tcms/__collect (local $0 i32) (local $1 i32) @@ -1288,7 +1386,6 @@ i32.load offset=4 i32.const -4 i32.and - local.set $1 local.get $0 i32.const 1476 i32.lt_u @@ -1322,7 +1419,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $6 local.get $0 i32.const 4 i32.sub @@ -1355,12 +1451,10 @@ i32.const 1 i32.or i32.store - local.get $6 local.get $4 call $~lib/rt/tlsf/insertBlock end end - local.get $1 local.set $0 br $while-continue|2 end @@ -1378,105 +1472,4 @@ local.get $3 global.set $~lib/rt/tcms/white ) - (func $~lib/rt/tcms/__visit (param $0 i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.eqz - if - return - end - global.get $~lib/rt/tcms/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 - call $~lib/rt/tcms/Object#unlink - global.get $~lib/rt/tcms/toSpace - local.tee $0 - i32.load offset=8 - local.set $2 - local.get $1 - local.get $0 - global.get $~lib/rt/tcms/white - i32.eqz - i32.or - 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 - local.get $0 - local.get $1 - i32.store offset=8 - end - ) - (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 - local.tee $0 - if - local.get $0 - call $~lib/rt/tcms/__visit - end - return - end - unreachable - ) - (func $~start - i32.const 1236 - i32.const 1232 - i32.store - i32.const 1240 - i32.const 1232 - i32.store - i32.const 1232 - global.set $~lib/rt/tcms/fromSpace - i32.const 1332 - i32.const 1328 - i32.store - i32.const 1336 - i32.const 1328 - i32.store - i32.const 1328 - global.set $~lib/rt/tcms/pinSpace - i32.const 1428 - i32.const 1424 - i32.store - i32.const 1432 - i32.const 1424 - i32.store - i32.const 1424 - global.set $~lib/rt/tcms/toSpace - ) ) diff --git a/tests/compiler/rt/runtime-stub-export.release.wat b/tests/compiler/rt/runtime-stub-export.release.wat index d158af6e80..639ae34c0b 100644 --- a/tests/compiler/rt/runtime-stub-export.release.wat +++ b/tests/compiler/rt/runtime-stub-export.release.wat @@ -1,9 +1,9 @@ (module (type $0 (func)) (type $1 (func (param i32 i32 i32 i32))) - (type $2 (func (param i32 i32) (result i32))) + (type $2 (func (param i32))) (type $3 (func (param i32) (result i32))) - (type $4 (func (param i32))) + (type $4 (func (param i32 i32) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/rt/stub/offset (mut i32) (i32.const 0)) (global $~lib/rt/__rtti_base i32 (i32.const 1168)) @@ -20,13 +20,21 @@ (export "__rtti_base" (global $~lib/rt/__rtti_base)) (export "memory" (memory $0)) (start $~start) + (func $~start + i32.const 1196 + global.set $~lib/rt/stub/offset + ) + (func $~lib/rt/stub/__unpin (param $0 i32) + ) + (func $~lib/rt/stub/__pin (param $0 i32) (result i32) + local.get $0 + ) (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 @@ -41,7 +49,7 @@ local.get $0 i32.const 16 i32.add - local.tee $4 + local.tee $3 i32.const 1073741820 i32.gt_u if @@ -53,34 +61,33 @@ unreachable end global.get $~lib/rt/stub/offset - local.tee $3 i32.const 4 i32.add local.tee $2 - local.get $4 + local.get $3 i32.const 19 i32.add i32.const -16 i32.and i32.const 4 i32.sub - local.tee $4 + local.tee $3 i32.add - local.tee $5 + local.tee $4 memory.size - local.tee $6 + local.tee $5 i32.const 16 i32.shl i32.const 15 i32.add i32.const -16 i32.and - local.tee $7 + local.tee $6 i32.gt_u if - local.get $6 local.get $5 - local.get $7 + local.get $4 + local.get $6 i32.sub i32.const 65535 i32.add @@ -88,16 +95,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $7 + local.tee $6 + local.get $5 local.get $6 - local.get $7 i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $7 + local.get $6 memory.grow i32.const 0 i32.lt_s @@ -106,10 +113,10 @@ end end end - local.get $5 + global.get $~lib/rt/stub/offset + local.get $4 global.set $~lib/rt/stub/offset local.get $3 - local.get $4 i32.store local.get $2 i32.const 4 @@ -130,15 +137,6 @@ i32.const 16 i32.add ) - (func $~lib/rt/stub/__pin (param $0 i32) (result i32) - local.get $0 - ) - (func $~lib/rt/stub/__unpin (param $0 i32) - ) (func $~lib/rt/stub/__collect ) - (func $~start - i32.const 1196 - global.set $~lib/rt/stub/offset - ) ) diff --git a/tests/compiler/simd.debug.wat b/tests/compiler/simd.debug.wat index cebaf35fa6..ded9a32b78 100644 --- a/tests/compiler/simd.debug.wat +++ b/tests/compiler/simd.debug.wat @@ -1660,14 +1660,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + drop global.get $~lib/rt/itcms/total - i64.extend_i32_u i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 + i32.const 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold @@ -6811,12 +6814,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -6954,7 +6953,6 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -6986,14 +6984,14 @@ i32.const 4 i32.const 32 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store - local.get $2 - local.set $3 + local.get $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=4 - local.get $3 + local.get $2 i32.const 0 call $~lib/array/Array#__get i32x4.extract_lane 0 diff --git a/tests/compiler/simd.release.wat b/tests/compiler/simd.release.wat index 0626df5725..4194c78220 100644 --- a/tests/compiler/simd.release.wat +++ b/tests/compiler/simd.release.wat @@ -2,22 +2,22 @@ (type $0 (func (param i32))) (type $1 (func)) (type $2 (func (param i32 i32 i32) (result v128))) - (type $3 (func (param i32 i32))) - (type $4 (func (param i32 i32) (result i32))) + (type $3 (func (param i32 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 $7 (func (result 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 $7 (func (param i32) (result i32))) + (type $8 (func (result i32))) + (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 i64) (result v128))) + (type $11 (func (param i64 i64) (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))) + (type $13 (func (param i32 i32 i32 i32 i32 i32 i32 i32) (result v128))) + (type $14 (func (param f64) (result v128))) + (type $15 (func (param f64 f64) (result v128))) + (type $16 (func (param f32 f32 f32) (result v128))) + (type $17 (func (param f32 f32 f32 f32) (result v128))) + (type $18 (func (param v128) (result v128))) (import "env" "abort" (func $~lib/builtins/abort (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)) @@ -65,182 +65,341 @@ (export "vec" (global $simd/vec)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots + (func $~lib/rt/tlsf/initialize (local $0 i32) (local $1 i32) - i32.const 1296 - call $~lib/rt/itcms/__visit - i32.const 1104 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace + memory.size local.tee $1 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|0 - local.get $0 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 local.get $1 - i32.ne + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 34384 + i32.const 0 + i32.store + i32.const 35952 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u if local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1168 - i32.const 160 + 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 - call $~lib/builtins/abort - unreachable + 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 20 + i32.const 1 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 + 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/Object#makeGray (param $0 i32) - (local $1 i32) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - local.get $0 - global.get $~lib/rt/itcms/iter - i32.eq + (local $4 i32) + local.get $1 + i32.const 1073741820 + i32.gt_u if - local.get $0 - i32.load offset=8 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1168 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end + i32.const 1104 + i32.const 1440 + i32.const 461 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else local.get $1 - global.set $~lib/rt/itcms/iter + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub end - block $__inlined_func$~lib/rt/itcms/Object#unlink$132 + local.tee $3 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if + local.get $3 + i32.const 256 + i32.ge_u + if (result i32) + local.get $3 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $3 + i32.const 1 + i32.const 27 + local.get $3 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $3 + end + else + local.get $3 + end + i32.const 4 local.get $0 - i32.load offset=4 - i32.const -4 - i32.and + i32.load offset=1568 + memory.size local.tee $1 - i32.eqz + 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.set $2 + local.get $1 + local.get $2 + local.get $1 + local.get $2 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s if - local.get $0 - i32.load offset=8 - i32.eqz - local.get $0 - i32.const 34380 - i32.lt_u - i32.and - i32.eqz + local.get $2 + memory.grow + i32.const 0 + i32.lt_s if - i32.const 0 - i32.const 1168 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$132 end local.get $0 - i32.load offset=8 - local.tee $2 + 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 $0 + local.get $3 + call $~lib/rt/tlsf/searchBlock + local.tee $1 i32.eqz if i32.const 0 - i32.const 1168 - i32.const 132 + i32.const 1440 + i32.const 499 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 + local.get $3 + local.get $1 + i32.load + i32.const -4 + i32.and + i32.gt_u + if + i32.const 0 + i32.const 1440 + i32.const 501 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/rt/tlsf/removeBlock + local.get $1 + i32.load + local.set $4 + local.get $3 + i32.const 4 + i32.add + i32.const 15 + i32.and + if + i32.const 0 + i32.const 1440 + i32.const 361 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const -4 + i32.and + local.get $3 + i32.sub + local.tee $2 + i32.const 16 + i32.ge_u + if + local.get $1 + local.get $3 + local.get $4 + i32.const 2 + i32.and + i32.or + i32.store + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + local.get $2 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $0 + local.get $3 + call $~lib/rt/tlsf/insertBlock else local.get $1 - i32.const 1584 - i32.load - i32.gt_u - if - i32.const 1296 - i32.const 1360 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end + local.get $4 + i32.const -2 + i32.and + i32.store local.get $1 - i32.const 2 - i32.shl - i32.const 1588 + i32.const 4 i32.add + local.get $1 i32.load - i32.const 32 + i32.const -4 + i32.and + i32.add + local.tee $0 + local.get $0 + i32.load + i32.const -3 i32.and + i32.store end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $1 + local.get $1 + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + (local $1 i32) + (local $2 i32) local.get $0 - global.get $~lib/rt/itcms/white + i32.const 34380 + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store offset=4 + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - local.get $1 - i32.store offset=8 - local.get $1 + i32.const 4 + i32.sub + local.set $1 local.get $0 - local.get $1 - i32.load offset=4 - i32.const 3 + i32.const 15 i32.and - i32.or - i32.store offset=4 - local.get $2 + i32.const 1 local.get $0 - i32.store offset=8 + 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 1440 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + i32.store + local.get $1 + call $~lib/rt/tlsf/insertBlock ) (func $~lib/rt/itcms/__visit (param $0 i32) local.get $0 @@ -658,979 +817,1377 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + (local $2 i32) (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 1440 - 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 + global.get $~lib/rt/itcms/iter + i32.eq if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz if i32.const 0 - i32.const 1440 - i32.const 389 - i32.const 16 + i32.const 1168 + i32.const 148 + i32.const 30 call $~lib/builtins/abort unreachable end - local.get $3 local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$132 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz if - local.get $3 - i32.load - local.set $4 - local.get $5 - local.set $1 + 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 1168 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$132 end - else local.get $0 - i32.const 1572 - i32.add - local.get $1 - i32.gt_u + i32.load offset=8 + local.tee $2 + i32.eqz if i32.const 0 - i32.const 1440 - i32.const 402 - i32.const 5 + i32.const 1168 + 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 $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 + 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 1584 + i32.load + i32.gt_u + if + i32.const 1296 + i32.const 1360 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1588 + 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 - i32.and local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or + select + local.get $2 i32.or - i32.store - local.get $1 - i32.const 0 i32.store offset=4 + local.get $0 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 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $2 + local.get $0 + i32.store offset=8 ) - (func $~lib/rt/tlsf/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 - i32.const 0 - i32.store - i32.const 35952 - 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 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 + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $~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 $invalid + end + return + end + return + end + return end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return end local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 + call $~lib/array/Array~visit + return end + local.get $0 + call $~lib/array/Array~visit + return 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 + unreachable ) - (func $~lib/rt/tlsf/__free (param $0 i32) - (local $1 i32) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - local.get $0 - i32.const 34380 + local.get $1 + i32.const 256 i32.lt_u if - return + 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 - global.get $~lib/rt/tlsf/ROOT + local.get $1 + i32.const 16 + i32.lt_u + local.get $2 + i32.const 23 + i32.lt_u + i32.and i32.eqz if - call $~lib/rt/tlsf/initialize + i32.const 0 + i32.const 1440 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/tlsf/ROOT - local.set $2 - local.get $0 - i32.const 4 - i32.sub - local.set $1 local.get $0 - i32.const 15 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const -1 + local.get $1 + i32.shl i32.and - i32.const 1 - local.get $0 - select + local.tee $1 if (result i32) - i32.const 1 - else + 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 1440 + 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/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 1440 - i32.const 562 - i32.const 3 + 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 1440 + 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 1440 + 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 - i32.load + 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 $2 + 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/itcms/step (result i32) + (func $~lib/rt/itcms/visitRoots (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 1296 + call $~lib/rt/itcms/__visit + i32.const 1104 + 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 - 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 + i32.const 1168 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter + 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 - loop $while-continue|1 - local.get $0 - global.get $~lib/rt/itcms/toSpace - i32.ne + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + 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 - 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 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 - 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 + global.get $~lib/rt/itcms/total + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$68 end - 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 1168 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable + i32.gt_s + br_if $do-loop|0 end - local.get $0 - i32.const 34380 + 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 - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total - local.get $0 - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.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 + global.set $~lib/rt/itcms/threshold 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 + global.get $~lib/rt/tlsf/ROOT i32.eqz if - i32.const 0 - i32.const 1440 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable + call $~lib/rt/tlsf/initialize end + global.get $~lib/rt/tlsf/ROOT + i32.const 32 + call $~lib/rt/tlsf/allocateBlock + local.tee $1 local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - i32.const -1 + i32.store offset=12 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 1440 - 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/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + i32.const 16 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $2 + i32.load offset=8 + local.set $0 local.get $1 - i32.const 1073741820 - i32.gt_u - if - i32.const 1104 - i32.const 1440 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end + local.get $2 + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $1 + local.get $0 + i32.store offset=8 local.get $0 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 $3 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - memory.size - local.tee $1 - local.get $3 - i32.const 256 - i32.ge_u - if (result i32) - local.get $3 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $3 - i32.const 1 - i32.const 27 - local.get $3 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $3 - end - else - local.get $3 - end - i32.const 4 - local.get $0 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - i32.add - i32.const 65535 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $2 - local.get $1 - local.get $2 - i32.gt_s - select - memory.grow - i32.const 0 - i32.lt_s - if - local.get $2 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $0 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $0 - local.get $3 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1440 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $3 + 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/total local.get $1 i32.load i32.const -4 i32.and - i32.gt_u + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $1 + i32.const 20 + i32.add + local.tee $0 + v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000 + v128.store align=1 + local.get $0 + ) + (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 1612 + i32.lt_s if - i32.const 0 - i32.const 1440 - i32.const 501 - i32.const 14 + 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.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $0 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 i32.load - local.set $4 - local.get $3 + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1440 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $4 - i32.const -4 - i32.and - local.get $3 - i32.sub - local.tee $2 - i32.const 16 - i32.ge_u - if - local.get $1 + global.set $~lib/memory/__stack_pointer + ) + (func $~start + (local $0 i32) + (local $1 i32) + (local $2 v128) + (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 1612 + 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 34380 + 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 + global.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 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.const 1056 + v128.load align=1 + v128.store align=1 local.get $3 - local.get $4 - i32.const 2 - i32.and - i32.or i32.store - local.get $1 i32.const 4 - i32.add + call $~lib/rt/itcms/__new + local.tee $4 + local.get $3 + i32.store + local.get $3 + if + local.get $4 + i32.eqz + if + i32.const 0 + i32.const 1168 + i32.const 295 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/white + local.get $3 + i32.const 20 + i32.sub + local.tee $5 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $4 + i32.const 20 + i32.sub + i32.load offset=4 + i32.const 3 + i32.and + local.tee $1 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $5 + call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + local.get $1 + i32.const 3 + i32.eq + i32.and + if + local.get $5 + call $~lib/rt/itcms/Object#makeGray + end + end + end + end + local.get $4 local.get $3 + i32.store offset=4 + local.get $4 + i32.const 16 + i32.store offset=8 + local.get $4 + i32.const 1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.tee $3 - local.get $2 + global.set $~lib/memory/__stack_pointer + local.get $4 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub - i32.const 1 - i32.or + 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 - local.get $0 - local.get $3 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $4 - i32.const -2 - i32.and i32.store - local.get $1 + local.get $4 + i32.load offset=12 + i32.eqz + if + i32.const 1296 + i32.const 1504 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.load offset=4 + v128.load + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add - local.get $1 - i32.load - i32.const -4 - i32.and + global.set $~lib/memory/__stack_pointer + i32x4.extract_lane 0 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 5 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + v128.const i32x4 0x00000001 0x00000001 0x00000001 0x00000001 + global.set $simd/vec + call $simd/test_v128 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + i32.const 16 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 i32.add local.tee $0 + i32.const 1 + i32.store8 local.get $0 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $1 - ) - (func $~lib/rt/itcms/__new (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - 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 - local.tee $1 - local.get $1 - 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 + i32.const 2 + i32.store8 offset=1 + local.get $0 + i32.const 3 + i32.store8 offset=2 + local.get $0 + i32.const 4 + i32.store8 offset=3 + local.get $0 + i32.const 5 + i32.store8 offset=4 + local.get $0 + i32.const 6 + i32.store8 offset=5 + local.get $0 + i32.const 7 + i32.store8 offset=6 + local.get $0 + i32.const 255 + i32.store8 offset=7 + local.get $0 + v128.load8x8_s align=1 + v128.const i32x4 0x00020001 0x00040003 0x00060005 0xffff0007 + i8x16.eq + i8x16.all_true + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 609 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $0 + v128.load8x8_u align=1 + v128.const i32x4 0x00020001 0x00040003 0x00060005 0x00ff0007 + i8x16.eq + i8x16.all_true + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 614 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/__free + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + i32.const 16 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $0 + i32.const 1 + i32.store16 + local.get $0 + i32.const 2 + i32.store16 offset=2 + local.get $0 + i32.const 3 + i32.store16 offset=4 + local.get $0 + i32.const 65535 + i32.store16 offset=6 + local.get $0 + v128.load16x4_s align=2 + v128.const i32x4 0x00000001 0x00000002 0x00000003 0xffffffff + i8x16.eq + i8x16.all_true + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 790 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + v128.load16x4_u align=2 + v128.const i32x4 0x00000001 0x00000002 0x00000003 0x0000ffff + i8x16.eq + i8x16.all_true + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 795 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/__free + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + i32.const 16 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $0 + i32.const 1 + i32.store + local.get $0 + i32.const -1 + i32.store offset=4 + local.get $0 + v128.load32x2_s align=4 + v128.const i32x4 0x00000001 0x00000000 0xffffffff 0xffffffff + i8x16.eq + i8x16.all_true + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 862 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + v128.load32x2_u align=4 + v128.const i32x4 0x00000001 0x00000000 0xffffffff 0x00000000 + i8x16.eq + i8x16.all_true + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 867 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/__free + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - i32.const 32 - call $~lib/rt/tlsf/allocateBlock - 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 $2 - i32.load offset=8 - local.set $0 - local.get $1 - local.get $2 - global.get $~lib/rt/itcms/white - 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/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 $0 - v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000 - v128.store align=1 - local.get $0 + i32.const 34400 + i32.const 34448 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $simd/test_v128 + (func $~lib/rt/itcms/step (result i32) (local $0 i32) - (local $1 v128) - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - i32.const 64 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $0 - local.get $0 - v128.load offset=16 - v128.store offset=32 - local.get $0 - call $~lib/rt/tlsf/__free - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - i32.const 16 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $0 - i32.const 42 - i32.store8 - local.get $0 - v128.load8_splat - v128.const i32x4 0x2a2a2a2a 0x2a2a2a2a 0x2a2a2a2a 0x2a2a2a2a - i8x16.eq - i8x16.all_true - i32.eqz - if + (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 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 + 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 1168 + 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 + 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 - i32.const 1552 - i32.const 71 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.set $~lib/rt/itcms/state end + i32.const 0 + ) + (func $simd/test_vars_i8x16_partial (param $0 i32) (param $1 i32) (param $2 i32) (result v128) + v128.const i32x4 0x03000100 0x07000504 0x0b0a0908 0x000e0d0c local.get $0 - call $~lib/rt/tlsf/__free - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - i32.const 16 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $0 - i32.const 42 - i32.store16 + i8x16.replace_lane 2 + local.get $1 + i8x16.replace_lane 6 + local.get $2 + i8x16.replace_lane 15 + ) + (func $simd/test_vars_i8x16_full (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) (param $6 i32) (param $7 i32) (param $8 i32) (param $9 i32) (param $10 i32) (param $11 i32) (param $12 i32) (param $13 i32) (param $14 i32) (param $15 i32) (result v128) local.get $0 - v128.load16_splat - v128.const i32x4 0x002a002a 0x002a002a 0x002a002a 0x002a002a - i8x16.eq - i8x16.all_true - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 81 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + i8x16.splat + local.get $1 + i8x16.replace_lane 1 + local.get $2 + i8x16.replace_lane 2 + local.get $3 + i8x16.replace_lane 3 + local.get $4 + i8x16.replace_lane 4 + local.get $5 + i8x16.replace_lane 5 + local.get $6 + i8x16.replace_lane 6 + local.get $7 + i8x16.replace_lane 7 + local.get $8 + i8x16.replace_lane 8 + local.get $9 + i8x16.replace_lane 9 + local.get $10 + i8x16.replace_lane 10 + local.get $11 + i8x16.replace_lane 11 + local.get $12 + i8x16.replace_lane 12 + local.get $13 + i8x16.replace_lane 13 + local.get $14 + i8x16.replace_lane 14 + local.get $15 + i8x16.replace_lane 15 + ) + (func $simd/test_vars_i64x2_partial (param $0 i64) (result v128) + v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000 + local.get $0 + i64x2.replace_lane 1 + ) + (func $simd/test_vars_i64x2_full (param $0 i64) (param $1 i64) (result v128) + local.get $0 + i64x2.splat + local.get $1 + i64x2.replace_lane 1 + ) + (func $simd/test_vars_i32x4_partial (param $0 i32) (param $1 i32) (param $2 i32) (result v128) + v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000 + local.get $0 + i32x4.replace_lane 1 + local.get $1 + i32x4.replace_lane 2 + local.get $2 + i32x4.replace_lane 3 + ) + (func $simd/test_vars_i32x4_full (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result v128) + local.get $0 + i32x4.splat + local.get $1 + i32x4.replace_lane 1 + local.get $2 + i32x4.replace_lane 2 + local.get $3 + i32x4.replace_lane 3 + ) + (func $simd/test_vars_i16x8_partial (param $0 i32) (param $1 i32) (param $2 i32) (result v128) + v128.const i32x4 0x00010000 0x00030000 0x00050000 0x00000006 + local.get $0 + i16x8.replace_lane 2 + local.get $1 + i16x8.replace_lane 4 + local.get $2 + i16x8.replace_lane 7 + ) + (func $simd/test_vars_i16x8_full (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) (param $6 i32) (param $7 i32) (result v128) + local.get $0 + i16x8.splat + local.get $1 + i16x8.replace_lane 1 + local.get $2 + i16x8.replace_lane 2 + local.get $3 + i16x8.replace_lane 3 + local.get $4 + i16x8.replace_lane 4 + local.get $5 + i16x8.replace_lane 5 + local.get $6 + i16x8.replace_lane 6 + local.get $7 + i16x8.replace_lane 7 + ) + (func $simd/test_vars_f64x2_partial (param $0 f64) (result v128) + v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000 + local.get $0 + f64x2.replace_lane 1 + ) + (func $simd/test_vars_f64x2_full (param $0 f64) (param $1 f64) (result v128) + local.get $0 + f64x2.splat + local.get $1 + f64x2.replace_lane 1 + ) + (func $simd/test_vars_f32x4_partial (param $0 f32) (param $1 f32) (param $2 f32) (result v128) + v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000 + local.get $0 + f32x4.replace_lane 1 + local.get $1 + f32x4.replace_lane 2 + local.get $2 + f32x4.replace_lane 3 + ) + (func $simd/test_vars_f32x4_full (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (result v128) + local.get $0 + f32x4.splat + local.get $1 + f32x4.replace_lane 1 + local.get $2 + f32x4.replace_lane 2 + local.get $3 + f32x4.replace_lane 3 + ) + (func $simd/test_v128 + (local $0 i32) + (local $1 v128) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + i32.const 64 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $0 + local.get $0 + v128.load offset=16 + v128.store offset=32 + local.get $0 + call $~lib/rt/tlsf/__free + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + i32.const 16 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $0 + i32.const 42 + i32.store8 + local.get $0 + v128.load8_splat + v128.const i32x4 0x2a2a2a2a 0x2a2a2a2a 0x2a2a2a2a 0x2a2a2a2a + i8x16.eq + i8x16.all_true + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 71 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/__free + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + i32.const 16 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $0 + i32.const 42 + i32.store16 + local.get $0 + v128.load16_splat + v128.const i32x4 0x002a002a 0x002a002a 0x002a002a 0x002a002a + i8x16.eq + i8x16.all_true + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 81 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $0 call $~lib/rt/tlsf/__free global.get $~lib/rt/tlsf/ROOT @@ -1966,581 +2523,4 @@ local.get $0 i32x4.mul ) - (func $simd/test_vars_i8x16_partial (param $0 i32) (param $1 i32) (param $2 i32) (result v128) - v128.const i32x4 0x03000100 0x07000504 0x0b0a0908 0x000e0d0c - local.get $0 - i8x16.replace_lane 2 - local.get $1 - i8x16.replace_lane 6 - local.get $2 - i8x16.replace_lane 15 - ) - (func $simd/test_vars_i8x16_full (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) (param $6 i32) (param $7 i32) (param $8 i32) (param $9 i32) (param $10 i32) (param $11 i32) (param $12 i32) (param $13 i32) (param $14 i32) (param $15 i32) (result v128) - local.get $0 - i8x16.splat - local.get $1 - i8x16.replace_lane 1 - local.get $2 - i8x16.replace_lane 2 - local.get $3 - i8x16.replace_lane 3 - local.get $4 - i8x16.replace_lane 4 - local.get $5 - i8x16.replace_lane 5 - local.get $6 - i8x16.replace_lane 6 - local.get $7 - i8x16.replace_lane 7 - local.get $8 - i8x16.replace_lane 8 - local.get $9 - i8x16.replace_lane 9 - local.get $10 - i8x16.replace_lane 10 - local.get $11 - i8x16.replace_lane 11 - local.get $12 - i8x16.replace_lane 12 - local.get $13 - i8x16.replace_lane 13 - local.get $14 - i8x16.replace_lane 14 - local.get $15 - i8x16.replace_lane 15 - ) - (func $simd/test_vars_i16x8_partial (param $0 i32) (param $1 i32) (param $2 i32) (result v128) - v128.const i32x4 0x00010000 0x00030000 0x00050000 0x00000006 - local.get $0 - i16x8.replace_lane 2 - local.get $1 - i16x8.replace_lane 4 - local.get $2 - i16x8.replace_lane 7 - ) - (func $simd/test_vars_i16x8_full (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) (param $6 i32) (param $7 i32) (result v128) - local.get $0 - i16x8.splat - local.get $1 - i16x8.replace_lane 1 - local.get $2 - i16x8.replace_lane 2 - local.get $3 - i16x8.replace_lane 3 - local.get $4 - i16x8.replace_lane 4 - local.get $5 - i16x8.replace_lane 5 - local.get $6 - i16x8.replace_lane 6 - local.get $7 - i16x8.replace_lane 7 - ) - (func $simd/test_vars_i32x4_partial (param $0 i32) (param $1 i32) (param $2 i32) (result v128) - v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000 - local.get $0 - i32x4.replace_lane 1 - local.get $1 - i32x4.replace_lane 2 - local.get $2 - i32x4.replace_lane 3 - ) - (func $simd/test_vars_i32x4_full (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result v128) - local.get $0 - i32x4.splat - local.get $1 - i32x4.replace_lane 1 - local.get $2 - i32x4.replace_lane 2 - local.get $3 - i32x4.replace_lane 3 - ) - (func $simd/test_vars_i64x2_partial (param $0 i64) (result v128) - v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000 - local.get $0 - i64x2.replace_lane 1 - ) - (func $simd/test_vars_i64x2_full (param $0 i64) (param $1 i64) (result v128) - local.get $0 - i64x2.splat - local.get $1 - i64x2.replace_lane 1 - ) - (func $simd/test_vars_f32x4_partial (param $0 f32) (param $1 f32) (param $2 f32) (result v128) - v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000 - local.get $0 - f32x4.replace_lane 1 - local.get $1 - f32x4.replace_lane 2 - local.get $2 - f32x4.replace_lane 3 - ) - (func $simd/test_vars_f32x4_full (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (result v128) - local.get $0 - f32x4.splat - local.get $1 - f32x4.replace_lane 1 - local.get $2 - f32x4.replace_lane 2 - local.get $3 - f32x4.replace_lane 3 - ) - (func $simd/test_vars_f64x2_partial (param $0 f64) (result v128) - v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000 - local.get $0 - f64x2.replace_lane 1 - ) - (func $simd/test_vars_f64x2_full (param $0 f64) (param $1 f64) (result v128) - local.get $0 - f64x2.splat - local.get $1 - f64x2.replace_lane 1 - ) - (func $~lib/array/Array~visit (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 1612 - i32.lt_s - if - i32.const 34400 - i32.const 34448 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - 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 - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $~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 $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - return - end - local.get $0 - call $~lib/array/Array~visit - return - end - local.get $0 - call $~lib/array/Array~visit - return - end - unreachable - ) - (func $~start - (local $0 i32) - (local $1 v128) - (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 1612 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - memory.size - i32.const 16 - i32.shl - i32.const 34380 - 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 - local.get $3 - 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 - local.tee $2 - i32.const 0 - i32.store - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.const 1056 - v128.load align=1 - v128.store align=1 - local.get $2 - local.get $0 - i32.store - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $2 - local.get $0 - i32.store - local.get $0 - if - local.get $2 - i32.eqz - if - i32.const 0 - i32.const 1168 - i32.const 295 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/itcms/white - local.tee $4 - local.get $0 - i32.const 20 - i32.sub - local.tee $5 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $4 - i32.eqz - local.get $2 - i32.const 20 - i32.sub - i32.load offset=4 - i32.const 3 - i32.and - local.tee $4 - i32.eq - if - local.get $5 - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - local.get $4 - i32.const 3 - i32.eq - i32.and - if - local.get $5 - call $~lib/rt/itcms/Object#makeGray - end - end - end - end - local.get $2 - local.get $0 - i32.store offset=4 - local.get $2 - i32.const 16 - i32.store offset=8 - local.get $2 - i32.const 1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - 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 1612 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - local.get $2 - i32.store - local.get $2 - i32.load offset=12 - i32.eqz - if - i32.const 1296 - i32.const 1504 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $2 - i32.store - local.get $2 - i32.load offset=4 - v128.load - local.set $1 - local.get $0 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32x4.extract_lane 0 - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1552 - i32.const 5 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - v128.const i32x4 0x00000001 0x00000001 0x00000001 0x00000001 - global.set $simd/vec - call $simd/test_v128 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - i32.const 16 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $0 - i32.const 1 - i32.store8 - local.get $0 - i32.const 2 - i32.store8 offset=1 - local.get $0 - i32.const 3 - i32.store8 offset=2 - local.get $0 - i32.const 4 - i32.store8 offset=3 - local.get $0 - i32.const 5 - i32.store8 offset=4 - local.get $0 - i32.const 6 - i32.store8 offset=5 - local.get $0 - i32.const 7 - i32.store8 offset=6 - local.get $0 - i32.const 255 - i32.store8 offset=7 - local.get $0 - v128.load8x8_s align=1 - v128.const i32x4 0x00020001 0x00040003 0x00060005 0xffff0007 - i8x16.eq - i8x16.all_true - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 609 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - v128.load8x8_u align=1 - v128.const i32x4 0x00020001 0x00040003 0x00060005 0x00ff0007 - i8x16.eq - i8x16.all_true - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 614 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/tlsf/__free - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - i32.const 16 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $0 - i32.const 1 - i32.store16 - local.get $0 - i32.const 2 - i32.store16 offset=2 - local.get $0 - i32.const 3 - i32.store16 offset=4 - local.get $0 - i32.const 65535 - i32.store16 offset=6 - local.get $0 - v128.load16x4_s align=2 - v128.const i32x4 0x00000001 0x00000002 0x00000003 0xffffffff - i8x16.eq - i8x16.all_true - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 790 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - v128.load16x4_u align=2 - v128.const i32x4 0x00000001 0x00000002 0x00000003 0x0000ffff - i8x16.eq - i8x16.all_true - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 795 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/tlsf/__free - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - i32.const 16 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $0 - i32.const 1 - i32.store - local.get $0 - i32.const -1 - i32.store offset=4 - local.get $0 - v128.load32x2_s align=4 - v128.const i32x4 0x00000001 0x00000000 0xffffffff 0xffffffff - i8x16.eq - i8x16.all_true - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 862 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - v128.load32x2_u align=4 - v128.const i32x4 0x00000001 0x00000000 0xffffffff 0x00000000 - i8x16.eq - i8x16.all_true - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 867 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/tlsf/__free - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 34400 - i32.const 34448 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) ) diff --git a/tests/compiler/std/array-access.debug.wat b/tests/compiler/std/array-access.debug.wat index a86f14c3ee..951850584d 100644 --- a/tests/compiler/std/array-access.debug.wat +++ b/tests/compiler/std/array-access.debug.wat @@ -541,21 +541,18 @@ (func $std/array-access/stringArrayMethodCall (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 + i32.store offset=4 local.get $1 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get @@ -565,16 +562,11 @@ i32.store local.get $1 i32.const 272 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 0 call $~lib/string/String#startsWith 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 @@ -692,7 +684,7 @@ (func $std/array-access/stringArrayArrayMethodCall (param $a i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -700,20 +692,20 @@ 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 local.get $a local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + 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=8 + i32.store offset=4 local.get $1 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get @@ -723,16 +715,11 @@ i32.store local.get $1 i32.const 272 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 0 call $~lib/string/String#startsWith local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer local.get $1 diff --git a/tests/compiler/std/array-access.release.wat b/tests/compiler/std/array-access.release.wat index 9eff9ef383..b24b426a6e 100644 --- a/tests/compiler/std/array-access.release.wat +++ b/tests/compiler/std/array-access.release.wat @@ -22,7 +22,6 @@ (export "stringArrayArrayMethodCall" (func $export:std/array-access/stringArrayArrayMethodCall)) (export "functionArrayElementCall" (func $export:std/array-access/functionArrayElementCall)) (func $~lib/array/Array<~lib/array/Array>#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -39,10 +38,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -58,10 +56,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=4 local.get $1 @@ -109,10 +106,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -121,11 +117,9 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.set $2 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1296 i32.store - local.get $2 i32.const 1292 i32.load i32.const 1 @@ -133,7 +127,7 @@ local.tee $2 i32.lt_s if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -141,12 +135,11 @@ return end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store i32.const 1296 local.set $3 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1296 i32.store offset=4 i32.const 1 @@ -228,8 +221,7 @@ local.get $2 i32.eqz ) - (func $export:std/array-access/i32ArrayArrayElementAccess (param $0 i32) (result i32) - (local $1 i32) + (func $export:std/array-access/stringArrayPropertyAccess (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -240,10 +232,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -252,10 +243,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -265,45 +255,12 @@ 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 1308 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - local.get $0 - i32.store local.get $0 - i32.load offset=12 + i32.const 20 + i32.sub + i32.load offset=16 i32.const 1 - i32.le_u - if - i32.const 1056 - i32.const 1120 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - i32.load offset=4 - local.set $0 - local.get $1 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.shr_u global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -312,7 +269,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end i32.const 34096 @@ -322,8 +278,7 @@ call $~lib/builtins/abort unreachable ) - (func $export:std/array-access/stringArrayPropertyAccess (param $0 i32) (result i32) - (local $1 i32) + (func $export:std/array-access/stringArrayMethodCall (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -334,10 +289,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -346,10 +300,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -360,12 +313,7 @@ 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 $0 + call $~lib/string/String#startsWith global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -374,7 +322,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end i32.const 34096 @@ -384,8 +331,7 @@ call $~lib/builtins/abort unreachable ) - (func $export:std/array-access/stringArrayMethodCall (param $0 i32) (result i32) - (local $1 i32) + (func $export:std/array-access/stringArrayArrayPropertyAccess (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -396,10 +342,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -408,13 +353,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -423,14 +367,21 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1296 i32.store offset=4 local.get $0 - call $~lib/string/String#startsWith + i32.const 1 + call $~lib/array/Array<~lib/array/Array>#__get local.set $0 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 12 i32.add global.set $~lib/memory/__stack_pointer @@ -438,7 +389,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end i32.const 34096 @@ -448,8 +398,7 @@ call $~lib/builtins/abort unreachable ) - (func $export:std/array-access/stringArrayArrayPropertyAccess (param $0 i32) (result i32) - (local $1 i32) + (func $export:std/array-access/stringArrayArrayMethodCall (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -460,10 +409,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -472,13 +420,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -496,12 +443,7 @@ 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 $0 + call $~lib/string/String#startsWith global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -510,7 +452,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end i32.const 34096 @@ -520,8 +461,7 @@ call $~lib/builtins/abort unreachable ) - (func $export:std/array-access/stringArrayArrayMethodCall (param $0 i32) (result i32) - (local $1 i32) + (func $export:std/array-access/i32ArrayArrayElementAccess (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -532,11 +472,10 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 16 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -544,44 +483,62 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 - i64.const 0 - i64.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=4 local.get $0 i32.const 0 call $~lib/array/Array<~lib/array/Array>#__get local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + 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 1308 + 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=12 i32.const 1 - call $~lib/array/Array<~lib/array/Array>#__get - local.set $0 + i32.le_u + if + i32.const 1056 + i32.const 1120 + 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 - i32.const 1296 - i32.store offset=4 local.get $0 - call $~lib/string/String#startsWith - local.set $0 + i32.load offset=4 + i32.load offset=4 global.get $~lib/memory/__stack_pointer - i32.const 16 + 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 i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end i32.const 34096 @@ -592,7 +549,6 @@ unreachable ) (func $export:std/array-access/functionArrayElementCall (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -603,10 +559,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -615,10 +570,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store i32.const 123 @@ -627,7 +581,6 @@ call $~lib/array/Array<~lib/array/Array>#__get i32.load call_indirect (type $0) - drop unreachable end i32.const 34096 diff --git a/tests/compiler/std/array-literal.debug.wat b/tests/compiler/std/array-literal.debug.wat index 46c5f163bf..641be48a4f 100644 --- a/tests/compiler/std/array-literal.debug.wat +++ b/tests/compiler/std/array-literal.debug.wat @@ -1656,14 +1656,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 @@ -2571,12 +2574,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -3354,29 +3353,21 @@ (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) global.get $~lib/memory/__stack_pointer - i32.const 44 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 44 + i32.const 24 memory.fill global.get $std/array-literal/staticArrayI8 - local.set $16 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $8 i32.store - local.get $16 + local.get $8 call $~lib/array/Array#get:length i32.const 3 i32.eq @@ -3390,11 +3381,11 @@ unreachable end global.get $std/array-literal/staticArrayI8 - local.set $16 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $8 i32.store - local.get $16 + local.get $8 i32.const 0 call $~lib/array/Array#__get i32.const 0 @@ -3409,11 +3400,11 @@ unreachable end global.get $std/array-literal/staticArrayI8 - local.set $16 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $8 i32.store - local.get $16 + local.get $8 i32.const 1 call $~lib/array/Array#__get i32.const 1 @@ -3428,11 +3419,11 @@ unreachable end global.get $std/array-literal/staticArrayI8 - local.set $16 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $8 i32.store - local.get $16 + local.get $8 i32.const 2 call $~lib/array/Array#__get i32.const 2 @@ -3447,11 +3438,11 @@ unreachable end global.get $std/array-literal/staticArrayI32 - local.set $16 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $8 i32.store - local.get $16 + local.get $8 call $~lib/array/Array#get:length i32.const 3 i32.eq @@ -3465,11 +3456,11 @@ unreachable end global.get $std/array-literal/staticArrayI32 - local.set $16 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $8 i32.store - local.get $16 + local.get $8 i32.const 0 call $~lib/array/Array#__get i32.const 0 @@ -3484,11 +3475,11 @@ unreachable end global.get $std/array-literal/staticArrayI32 - local.set $16 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $8 i32.store - local.get $16 + local.get $8 i32.const 1 call $~lib/array/Array#__get i32.const 1 @@ -3503,11 +3494,11 @@ unreachable end global.get $std/array-literal/staticArrayI32 - local.set $16 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $8 i32.store - local.get $16 + local.get $8 i32.const 2 call $~lib/array/Array#__get i32.const 2 @@ -3522,11 +3513,11 @@ unreachable end global.get $std/array-literal/emptyArrayI32 - local.set $16 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $8 i32.store - local.get $16 + local.get $8 call $~lib/array/Array#get:length i32.const 0 i32.eq @@ -3562,18 +3553,13 @@ i32.const 4 i32.const 0 call $~lib/rt/__newArray - local.tee $6 + local.tee $3 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.load offset=4 - local.tee $7 - i32.store offset=8 - local.get $6 + local.get $3 i32.const 0 global.get $std/array-literal/i call $~lib/array/Array#__set - local.get $6 + local.get $3 i32.const 1 global.get $std/array-literal/i i32.const 1 @@ -3581,7 +3567,7 @@ global.set $std/array-literal/i global.get $std/array-literal/i call $~lib/array/Array#__set - local.get $6 + local.get $3 i32.const 2 global.get $std/array-literal/i i32.const 1 @@ -3589,14 +3575,14 @@ global.set $std/array-literal/i global.get $std/array-literal/i call $~lib/array/Array#__set - local.get $6 + local.get $3 global.set $std/array-literal/dynamicArrayI8 global.get $std/array-literal/dynamicArrayI8 - local.set $16 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $8 i32.store - local.get $16 + local.get $8 call $~lib/array/Array#get:length i32.const 3 i32.eq @@ -3610,11 +3596,11 @@ unreachable end global.get $std/array-literal/dynamicArrayI8 - local.set $16 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $8 i32.store - local.get $16 + local.get $8 i32.const 0 call $~lib/array/Array#__get i32.const 0 @@ -3629,11 +3615,11 @@ unreachable end global.get $std/array-literal/dynamicArrayI8 - local.set $16 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $8 i32.store - local.get $16 + local.get $8 i32.const 1 call $~lib/array/Array#__get i32.const 1 @@ -3648,11 +3634,11 @@ unreachable end global.get $std/array-literal/dynamicArrayI8 - local.set $16 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $8 i32.store - local.get $16 + local.get $8 i32.const 2 call $~lib/array/Array#__get i32.const 2 @@ -3674,18 +3660,13 @@ i32.const 5 i32.const 0 call $~lib/rt/__newArray - local.tee $8 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.load offset=4 - local.tee $9 - i32.store offset=16 - local.get $8 + local.tee $4 + i32.store offset=8 + local.get $4 i32.const 0 global.get $std/array-literal/i call $~lib/array/Array#__set - local.get $8 + local.get $4 i32.const 1 global.get $std/array-literal/i i32.const 1 @@ -3693,7 +3674,7 @@ global.set $std/array-literal/i global.get $std/array-literal/i call $~lib/array/Array#__set - local.get $8 + local.get $4 i32.const 2 global.get $std/array-literal/i i32.const 1 @@ -3701,14 +3682,14 @@ global.set $std/array-literal/i global.get $std/array-literal/i call $~lib/array/Array#__set - local.get $8 + local.get $4 global.set $std/array-literal/dynamicArrayI32 global.get $std/array-literal/dynamicArrayI32 - local.set $16 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $8 i32.store - local.get $16 + local.get $8 call $~lib/array/Array#get:length i32.const 3 i32.eq @@ -3722,11 +3703,11 @@ unreachable end global.get $std/array-literal/dynamicArrayI32 - local.set $16 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $8 i32.store - local.get $16 + local.get $8 i32.const 0 call $~lib/array/Array#__get i32.const 0 @@ -3741,11 +3722,11 @@ unreachable end global.get $std/array-literal/dynamicArrayI32 - local.set $16 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $8 i32.store - local.get $16 + local.get $8 i32.const 1 call $~lib/array/Array#__get i32.const 1 @@ -3760,11 +3741,11 @@ unreachable end global.get $std/array-literal/dynamicArrayI32 - local.set $16 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $8 i32.store - local.get $16 + local.get $8 i32.const 2 call $~lib/array/Array#__get i32.const 2 @@ -3784,36 +3765,31 @@ i32.const 7 i32.const 0 call $~lib/rt/__newArray - local.tee $10 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.load offset=4 - local.tee $11 - i32.store offset=24 - local.get $10 + local.tee $5 + i32.store offset=12 + local.get $5 i32.const 0 i32.const 0 call $std/array-literal/Ref#constructor call $~lib/array/Array#__set - local.get $10 + local.get $5 i32.const 1 i32.const 0 call $std/array-literal/Ref#constructor call $~lib/array/Array#__set - local.get $10 + local.get $5 i32.const 2 i32.const 0 call $std/array-literal/Ref#constructor call $~lib/array/Array#__set - local.get $10 + local.get $5 global.set $std/array-literal/dynamicArrayRef global.get $std/array-literal/dynamicArrayRef - local.set $16 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $8 i32.store - local.get $16 + local.get $8 call $~lib/array/Array#get:length i32.const 3 i32.eq @@ -3832,36 +3808,31 @@ i32.const 9 i32.const 0 call $~lib/rt/__newArray - local.tee $12 - i32.store offset=28 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.load offset=4 - local.tee $13 - i32.store offset=32 - local.get $12 + local.tee $6 + i32.store offset=16 + local.get $6 i32.const 0 i32.const 0 call $std/array-literal/RefWithCtor#constructor call $~lib/array/Array#__set - local.get $12 + local.get $6 i32.const 1 i32.const 0 call $std/array-literal/RefWithCtor#constructor call $~lib/array/Array#__set - local.get $12 + local.get $6 i32.const 2 i32.const 0 call $std/array-literal/RefWithCtor#constructor call $~lib/array/Array#__set - local.get $12 + local.get $6 global.set $std/array-literal/dynamicArrayRefWithCtor global.get $std/array-literal/dynamicArrayRefWithCtor - local.set $16 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $8 i32.store - local.get $16 + local.get $8 call $~lib/array/Array#get:length i32.const 3 i32.eq @@ -3890,30 +3861,25 @@ i32.const 7 i32.const 0 call $~lib/rt/__newArray - local.tee $14 - i32.store offset=36 - global.get $~lib/memory/__stack_pointer - local.get $14 - i32.load offset=4 - local.tee $15 - i32.store offset=40 - local.get $14 + local.tee $7 + i32.store offset=20 + local.get $7 i32.const 0 i32.const 0 call $std/array-literal/Ref#constructor call $~lib/array/Array#__set - local.get $14 - local.set $16 + local.get $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $8 i32.store - local.get $16 + local.get $8 call $std/array-literal/doesntLeak 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 44 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/std/array-literal.release.wat b/tests/compiler/std/array-literal.release.wat index f84dd33de2..0f52e76640 100644 --- a/tests/compiler/std/array-literal.release.wat +++ b/tests/compiler/std/array-literal.release.wat @@ -1,14 +1,14 @@ (module (type $0 (func (param i32))) (type $1 (func (param i32 i32 i32))) - (type $2 (func)) - (type $3 (func (param i32 i32) (result i32))) + (type $2 (func (param i32 i32) (result i32))) + (type $3 (func)) (type $4 (func (result i32))) (type $5 (func (param i32 i32))) (type $6 (func (param i32 i32 i32 i32))) - (type $7 (func (param i32 i32 i64))) - (type $8 (func (param i32) (result i32))) - (type $9 (func (param i32 i32 i32) (result i32))) + (type $7 (func (param i32) (result i32))) + (type $8 (func (param i32 i32 i32) (result i32))) + (type $9 (func (param i32 i32 i64))) (import "env" "abort" (func $~lib/builtins/abort (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)) @@ -59,219 +59,6 @@ (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 - (local $0 i32) - (local $1 i32) - i32.const 1088 - call $~lib/rt/itcms/__visit - i32.const 1344 - call $~lib/rt/itcms/__visit - global.get $std/array-literal/emptyArrayI32 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/array-literal/dynamicArrayI8 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/array-literal/dynamicArrayI32 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/array-literal/dynamicArrayRef - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/array-literal/dynamicArrayRefWithCtor - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 1200 - call $~lib/rt/itcms/__visit - i32.const 1808 - call $~lib/rt/itcms/__visit - i32.const 1472 - 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 1536 - 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 1536 - 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$154 - 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 34652 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1536 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$154 - end - local.get $0 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1536 - 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 1840 - i32.load - i32.gt_u - if - i32.const 1200 - i32.const 1664 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.const 1844 - 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 @@ -296,591 +83,571 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $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 1744 - 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 1744 - 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 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1884 + i32.lt_s if - i32.const 0 - i32.const 1744 - i32.const 284 - i32.const 14 + i32.const 34672 + i32.const 34720 + i32.const 1 + i32.const 1 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 + 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 - 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 + i32.load offset=12 + i32.ge_u 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 1744 - 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 1744 - 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 + i32.lt_s if - i32.const 0 - i32.const 1744 - i32.const 221 - i32.const 16 + i32.const 1200 + i32.const 1264 + i32.const 130 + i32.const 22 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.const 1 i32.add local.tee $3 + i32.const 2 + 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 - local.get $4 - local.get $2 + 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.or + i32.shl + i32.add + local.get $2 i32.store - local.get $3 - i32.const -4 - i32.and - local.tee $2 - i32.const 12 - i32.lt_u + 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/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 1884 + i32.lt_s if - i32.const 0 - i32.const 1744 - i32.const 233 - i32.const 14 + i32.const 34672 + i32.const 34720 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $4 - local.get $1 + 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 - local.get $2 + global.set $~lib/memory/__stack_pointer + ) + (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 1472 + i32.const 1536 + i32.const 261 + i32.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 - i32.ne + local.tee $2 + i32.const 1073741820 + i32.gt_u if - i32.const 0 + i32.const 1472 i32.const 1744 - i32.const 234 - i32.const 14 + i32.const 461 + i32.const 29 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 + i32.const 12 + i32.le_u if (result i32) - local.get $2 - i32.const 4 - i32.shr_u + i32.const 12 else - i32.const 31 - i32.const 1073741820 local.get $2 - local.get $2 - i32.const 1073741820 + 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 + local.get $5 + i32.const 256 i32.ge_u - select + 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 + memory.size 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 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.set $3 + local.get $2 + local.get $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.xor + 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 1744 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end end - local.tee $2 - i32.const 16 - i32.lt_u local.get $5 - i32.const 23 - i32.lt_u + local.get $2 + i32.load + i32.const -4 i32.and - i32.eqz + i32.gt_u if i32.const 0 i32.const 1744 - i32.const 251 + i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $0 - local.get $5 - i32.const 4 - i32.shl + local.get $4 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 + call $~lib/rt/tlsf/removeBlock 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.set $6 local.get $5 - i32.const 2 - i32.shl + i32.const 4 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 + i32.const 15 + i32.and if i32.const 0 i32.const 1744 - i32.const 382 + i32.const 361 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 19 - i32.add - i32.const -16 + local.get $6 + i32.const -4 i32.and - i32.const 4 + local.get $5 i32.sub - local.set $1 - local.get $0 - i32.load offset=1568 local.tee $3 + i32.const 16 + i32.ge_u if - local.get $3 + 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 $1 - i32.gt_u - if - i32.const 0 - i32.const 1744 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end + local.get $5 + i32.add + local.tee $5 local.get $3 - local.get $1 - i32.const 16 + i32.const 4 i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - local.set $1 - end + i32.const 1 + i32.or + i32.store + local.get $4 + local.get $5 + call $~lib/rt/tlsf/insertBlock else - local.get $0 - i32.const 1572 + local.get $2 + local.get $6 + i32.const -2 + i32.and + i32.store + local.get $2 + i32.const 4 i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1744 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + 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 - i32.wrap_i64 - i32.const -16 + 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 - i32.sub - local.tee $3 + 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.lt_u + i32.add + local.tee $1 + i32.const 0 + local.get $0 + memory.fill + local.get $1 + ) + (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 1884 + i32.lt_s if - return + 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.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store 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 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 1200 + i32.const 1264 + 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 $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 - i32.const 4 + local.get $0 + i32.load offset=4 i32.add - local.get $3 + i32.load8_s + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.tee $3 - i32.const 2 + 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 1884 + i32.lt_s + if + 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.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $3 - i32.store offset=1568 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 1200 + i32.const 1264 + 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 - call $~lib/rt/tlsf/insertBlock + 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/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 + (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1884 + i32.lt_s if + i32.const 34672 + i32.const 34720 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort unreachable end - i32.const 34656 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - i32.const 36224 - i32.const 0 + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.shl + local.tee $1 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 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 34656 - 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 34656 - 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 34656 - i32.const 36228 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34656 - global.set $~lib/rt/tlsf/ROOT + i32.const 16 + local.get $2 + call $~lib/rt/itcms/__new + local.tee $2 + local.get $3 + i32.store + local.get $2 + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $2 + local.get $3 + i32.store offset=4 + local.get $2 + local.get $1 + i32.store offset=8 + local.get $2 + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 ) (func $~lib/rt/itcms/step (result i32) (local $0 i32) @@ -1092,7 +859,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1125,7 +891,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1134,62 +899,146 @@ 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 $std/array-literal/Ref#constructor (result i32) + (local $0 i32) + (local $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 1884 + 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 + i32.store + 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 1884 + i32.lt_s + br_if $folding-inner0 + 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 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 offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + i32.const 34672 + i32.const 34720 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (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.const 256 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1744 + 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 - local.get $1 + i32.const 0 + i32.const 1744 + 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 - 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.const 1073741820 + local.get $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 i32.clz i32.sub - local.tee $2 + 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 - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 end - local.get $1 + local.tee $3 i32.const 16 i32.lt_u local.get $2 @@ -1200,396 +1049,323 @@ if i32.const 0 i32.const 1744 - i32.const 334 + 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 2 + i32.const 4 i32.shl + local.get $3 i32.add - i32.load offset=4 - i32.const -1 - local.get $1 + i32.const 2 i32.shl - i32.and + i32.add local.tee $1 - if (result i32) - local.get $0 + i32.load offset=96 + i32.eq + if 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 $5 + i32.store offset=96 + local.get $5 + i32.eqz + if local.get $0 - local.get $1 - i32.ctz - local.tee $1 + local.get $2 i32.const 2 i32.shl i32.add + local.tee $1 i32.load offset=4 - local.tee $2 + 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 - i32.const 0 - i32.const 1744 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $2 + i32.rotl + i32.and + i32.store 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) + (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 $0 - i32.const 1073741804 - i32.ge_u + local.get $1 + i32.eqz if - i32.const 1472 - i32.const 1536 - i32.const 261 - i32.const 31 + i32.const 0 + i32.const 1744 + i32.const 201 + 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$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 - 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 $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 - 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 + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz if - i32.const 1472 + i32.const 0 i32.const 1744 - i32.const 461 - i32.const 29 + i32.const 203 + i32.const 14 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.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.eqz + i32.const 1 + i32.and 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 $0 local.get $4 - i32.load offset=1568 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $3 + i32.const 4 + i32.add local.get $2 - i32.const 16 - i32.shl + i32.const -4 + i32.and + i32.add + local.tee $3 + i32.store + local.get $1 i32.const 4 - i32.sub - i32.ne - i32.shl i32.add - i32.const 65535 + local.get $1 + i32.load + i32.const -4 + i32.and i32.add - i32.const -65536 + 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.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 1744 - i32.const 499 + 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 $5 + local.get $4 local.get $2 - i32.load + i32.const 2 + i32.or + i32.store + local.get $3 i32.const -4 i32.and - i32.gt_u + local.tee $2 + i32.const 12 + i32.lt_u if i32.const 0 i32.const 1744 - i32.const 501 + i32.const 233 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 + local.get $1 i32.const 4 i32.add - i32.const 15 - i32.and + local.get $2 + i32.add + i32.ne if i32.const 0 i32.const 1744 - i32.const 361 + i32.const 234 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $6 - i32.const -4 - i32.and - local.get $5 + local.get $4 + i32.const 4 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 $1 + i32.store + local.get $2 + i32.const 256 + i32.lt_u + if (result i32) 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 + i32.shr_u else + i32.const 31 + i32.const 1073741820 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 + 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.load - i32.const -3 - i32.and - i32.store + 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 1744 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable 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 $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.get $~lib/rt/itcms/white - i32.or + i32.const 0 i32.store offset=4 - local.get $2 + local.get $1 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 + 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 - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 + 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 $1 - i32.const 0 + local.tee $0 local.get $0 - memory.fill - local.get $1 + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 ) (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -1609,7 +1385,6 @@ unreachable end global.get $~lib/rt/itcms/white - local.tee $3 local.get $1 i32.const 20 i32.sub @@ -1619,8 +1394,6 @@ i32.and i32.eq if - local.get $3 - i32.eqz local.get $0 i32.const 20 i32.sub @@ -1629,6 +1402,8 @@ i32.const 3 i32.and local.tee $3 + global.get $~lib/rt/itcms/white + i32.eqz i32.eq if local.get $0 @@ -1651,106 +1426,137 @@ end end ) - (func $~lib/array/Array~visit (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 1884 - i32.lt_s - if - i32.const 34672 - i32.const 34720 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - 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 - ) - (func $~lib/array/Array~visit (param $0 i32) + (func $~lib/rt/itcms/Object#makeGray (param $0 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 1884 - i32.lt_s + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq if - i32.const 34672 - i32.const 34720 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1536 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $1 - local.get $2 - local.get $0 - i32.store - local.get $1 + block $__inlined_func$~lib/rt/itcms/Object#unlink$154 + 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 34652 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1536 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$154 + end + local.get $0 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1536 + 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.shl - i32.add - local.set $2 - loop $while-continue|0 + i32.le_u + if (result i32) + i32.const 1 + else local.get $1 - local.get $2 - i32.lt_u + i32.const 1840 + i32.load + i32.gt_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 + i32.const 1200 + i32.const 1664 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable end + local.get $1 + i32.const 2 + i32.shl + i32.const 1844 + i32.add + i32.load + i32.const 32 + i32.and end - global.get $~lib/memory/__stack_pointer + local.set $3 + local.get $2 + i32.load offset=8 + local.set $1 local.get $0 - i32.store + 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 - i32.load - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + 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/__visit_members (param $0 i32) block $invalid @@ -1778,11 +1584,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end local.get $0 @@ -1807,148 +1609,6 @@ end unreachable ) - (func $~start - call $start:std/array-literal - ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1884 - i32.lt_s - if - i32.const 34672 - i32.const 34720 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - local.set $0 - local.get $1 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1884 - i32.lt_s - if - i32.const 34672 - i32.const 34720 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1200 - i32.const 1264 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=4 - i32.add - i32.load8_s - local.set $0 - local.get $2 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1884 - i32.lt_s - if - i32.const 34672 - i32.const 34720 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1200 - i32.const 1264 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - local.get $2 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) @@ -1968,10 +1628,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -2025,7 +1684,7 @@ local.tee $3 local.get $0 i32.load - local.tee $2 + local.tee $1 i32.const 20 i32.sub local.tee $4 @@ -2039,16 +1698,16 @@ local.get $4 local.get $3 i32.store offset=16 - local.get $2 - local.set $1 + local.get $1 + local.set $2 br $__inlined_func$~lib/rt/itcms/__renew$149 end local.get $3 local.get $4 i32.load offset=12 call $~lib/rt/itcms/__new - local.tee $1 - local.get $2 + local.tee $2 + local.get $1 local.get $3 local.get $4 i32.load offset=16 @@ -2064,26 +1723,93 @@ i32.ne if local.get $0 - local.get $1 + local.get $2 i32.store local.get $0 - local.get $1 + local.get $2 i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.const 0 call $~lib/rt/itcms/__link end local.get $0 local.get $3 - i32.store offset=8 + 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 1884 + i32.lt_s + if + 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.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 1200 + i32.const 1264 + 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 + i32.const 0 + 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 $1 + local.get $0 + i32.load offset=4 + i32.add + local.get $2 + i32.store8 + 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) + (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 @@ -2101,10 +1827,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -2128,7 +1853,7 @@ i32.const 1 i32.add local.tee $3 - i32.const 0 + i32.const 2 call $~lib/array/ensureCapacity global.get $~lib/memory/__stack_pointer local.get $0 @@ -2137,163 +1862,460 @@ local.get $3 i32.store offset=12 end - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=4 - i32.add - local.get $2 - i32.store8 - local.get $3 - 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.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/array-literal/RefWithCtor#constructor (result i32) + (local $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 1884 + i32.lt_s + if + 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.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/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 1744 + 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 1744 + 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/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 34656 + i32.const 0 + i32.store + i32.const 36224 + 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 34656 + 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 34656 + 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 34656 + i32.const 36228 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34656 + global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/rt/tlsf/addMemory (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 1884 - i32.lt_s + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u if - i32.const 34672 - i32.const 34720 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1744 + i32.const 382 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store 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=12 - i32.ge_u + i32.load offset=1568 + local.tee $3 if + local.get $3 + i32.const 4 + i32.add local.get $1 - i32.const 0 - i32.lt_s + i32.gt_u if - i32.const 1200 - i32.const 1264 - i32.const 130 - i32.const 22 + i32.const 0 + i32.const 1744 + i32.const 389 + i32.const 16 call $~lib/builtins/abort unreachable end - local.get $0 + local.get $3 local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 2 - call $~lib/array/ensureCapacity - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + 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 - local.get $3 - i32.store offset=12 + i32.const 1572 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1744 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end end - global.get $~lib/memory/__stack_pointer + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub local.tee $3 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 + i32.const 20 + i32.lt_u + if + return + end local.get $1 + local.get $4 i32.const 2 - i32.shl - i32.add - local.get $2 - i32.store + 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 - global.set $~lib/memory/__stack_pointer + 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 $std/array-literal/Ref#constructor (result i32) + (func $~lib/rt/itcms/visitRoots (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 1884 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store + i32.const 1088 + call $~lib/rt/itcms/__visit + i32.const 1344 + call $~lib/rt/itcms/__visit + global.get $std/array-literal/emptyArrayI32 + local.tee $0 + if local.get $0 - i32.const 0 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $1 + call $~lib/rt/itcms/__visit + end + global.get $std/array-literal/dynamicArrayI8 + local.tee $0 + if local.get $0 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1884 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store + call $~lib/rt/itcms/__visit + end + global.get $std/array-literal/dynamicArrayI32 + local.tee $0 + if local.get $0 - i32.eqz - if - local.get $2 - 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 $1 + call $~lib/rt/itcms/__visit + end + global.get $std/array-literal/dynamicArrayRef + local.tee $0 + if local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + call $~lib/rt/itcms/__visit + end + global.get $std/array-literal/dynamicArrayRefWithCtor + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 1200 + call $~lib/rt/itcms/__visit + i32.const 1808 + call $~lib/rt/itcms/__visit + i32.const 1472 + 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 - return + 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 1536 + 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 - i32.const 34672 - i32.const 34720 - 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) + (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 @@ -2311,66 +2333,91 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + 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.ge_u - if + i32.const 2 + i32.shl + i32.add + local.set $2 + loop $while-continue|0 local.get $1 - i32.const 0 - i32.lt_s + local.get $2 + i32.lt_u if - i32.const 1200 - i32.const 1264 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable + 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 - local.get $0 - local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 2 - 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.load + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.get $2 + global.set $~lib/memory/__stack_pointer + ) + (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 1884 + i32.lt_s + if + 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.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $2 - i32.const 1 - call $~lib/rt/itcms/__link + 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 ) + (func $~start + call $start:std/array-literal + ) (func $start:std/array-literal (local $0 i32) global.get $~lib/memory/__stack_pointer - i32.const 44 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -2385,11 +2432,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 - i32.const 44 + i32.const 24 memory.fill - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1088 i32.store i32.const 1088 @@ -2564,10 +2610,6 @@ call $~lib/rt/__newArray local.tee $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=4 - i32.store offset=8 local.get $0 i32.const 0 global.get $std/array-literal/i @@ -2663,11 +2705,7 @@ i32.const 5 call $~lib/rt/__newArray local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=4 - i32.store offset=16 + i32.store offset=8 local.get $0 i32.const 0 global.get $std/array-literal/i @@ -2761,11 +2799,7 @@ i32.const 7 call $~lib/rt/__newArray local.tee $0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=4 - i32.store offset=24 + i32.store offset=12 local.get $0 i32.const 0 call $std/array-literal/Ref#constructor @@ -2802,11 +2836,7 @@ i32.const 9 call $~lib/rt/__newArray local.tee $0 - i32.store offset=28 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=4 - i32.store offset=32 + i32.store offset=16 local.get $0 i32.const 0 call $std/array-literal/RefWithCtor#constructor @@ -2853,11 +2883,7 @@ i32.const 7 call $~lib/rt/__newArray local.tee $0 - i32.store offset=36 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=4 - i32.store offset=40 + i32.store offset=20 local.get $0 i32.const 0 call $std/array-literal/Ref#constructor @@ -2901,96 +2927,8 @@ i32.add global.set $~lib/rt/itcms/threshold global.get $~lib/memory/__stack_pointer - i32.const 44 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1884 - i32.lt_s - if - i32.const 34672 - i32.const 34720 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $3 - local.get $0 - local.get $1 - i32.shl - local.tee $1 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - i32.const 16 - local.get $2 - call $~lib/rt/itcms/__new - local.tee $2 - local.get $3 - i32.store - local.get $2 - local.get $3 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $2 - local.get $3 - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - local.get $2 - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $std/array-literal/RefWithCtor#constructor (result i32) - (local $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 1884 - i32.lt_s - if - i32.const 34672 - i32.const 34720 - 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 - local.get $0 - i32.const 0 - i32.const 8 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) ) diff --git a/tests/compiler/std/array.debug.wat b/tests/compiler/std/array.debug.wat index bff2f09e20..b54061ee14 100644 --- a/tests/compiler/std/array.debug.wat +++ b/tests/compiler/std/array.debug.wat @@ -13,22 +13,22 @@ (type $11 (func)) (type $12 (func (param i64 i32) (result i32))) (type $13 (func (result f64))) - (type $14 (func (param i32 i32 i32 i32))) - (type $15 (func (param i64) (result i64))) - (type $16 (func (param i32 i64 i32))) - (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 f64) (result i32))) + (type $14 (func (param i32 f64 i32) (result i32))) + (type $15 (func (param i32 i32 i32 i32))) + (type $16 (func (param i64) (result i64))) + (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 f64 i32) (result i32))) - (type $24 (func (param i32 i32 i64) (result i32))) - (type $25 (func (result i32))) - (type $26 (func (param i32 i32 f32 i32 i32))) - (type $27 (func (param i32 i64 i32 i32))) - (type $28 (func (param i64))) - (type $29 (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) + (type $23 (func (param i32 i32 i64) (result i32))) + (type $24 (func (result 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))) (type $30 (func (param i64) (result i32))) (type $31 (func (param i32 i32) (result f32))) (type $32 (func (param i32 i32) (result f64))) @@ -1965,14 +1965,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 @@ -4500,161 +4503,6 @@ end end ) - (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) - (local $j i32) - (local $k i32) - (local $tmp f32) - local.get $i - local.get $right - i32.eq - if - local.get $i - return - end - local.get $i - local.set $j - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - f32.load - local.get $ptr - local.get $j - i32.const 1 - i32.add - local.tee $j - i32.const 2 - i32.shl - i32.add - f32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $7) - i32.const 0 - i32.gt_s - if - loop $while-continue|0 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - f32.load offset=4 - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - f32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $7) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 - end - end - local.get $j - local.set $k - loop $while-continue|1 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - f32.load - local.set $tmp - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - f32.load - f32.store - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $tmp - f32.store - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 - end - end - else - loop $while-continue|2 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - f32.load offset=4 - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - f32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $7) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|2 - end - end - end - local.get $j - return - ) (func $~lib/util/sort/nodePower (param $left i32) (param $right i32) (param $startA i32) (param $startB i32) (param $endB i32) (result i32) (local $n i64) (local $s i32) @@ -5059,161 +4907,6 @@ end end ) - (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) - (local $j i32) - (local $k i32) - (local $tmp f64) - local.get $i - local.get $right - i32.eq - if - local.get $i - return - end - local.get $i - local.set $j - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - f64.load - local.get $ptr - local.get $j - i32.const 1 - i32.add - local.tee $j - i32.const 3 - i32.shl - i32.add - f64.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $8) - i32.const 0 - i32.gt_s - if - loop $while-continue|0 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - f64.load offset=8 - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - f64.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $8) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 - end - end - local.get $j - local.set $k - loop $while-continue|1 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - f64.load - local.set $tmp - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 3 - i32.shl - i32.add - f64.load - f64.store - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 3 - i32.shl - i32.add - local.get $tmp - f64.store - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 - end - end - else - loop $while-continue|2 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - f64.load offset=8 - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - f64.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $8) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|2 - end - end - end - local.get $j - return - ) (func $~lib/util/sort/mergeRuns (param $ptr i32) (param $l i32) (param $m i32) (param $r i32) (param $buffer i32) (param $comparator i32) (local $i i32) (local $j i32) @@ -5567,161 +5260,6 @@ end end ) - (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) - (local $j i32) - (local $k i32) - (local $tmp i32) - local.get $i - local.get $right - i32.eq - if - local.get $i - return - end - local.get $i - local.set $j - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - local.get $ptr - local.get $j - i32.const 1 - i32.add - local.tee $j - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - if - loop $while-continue|0 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 - end - end - local.get $j - local.set $k - loop $while-continue|1 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.set $tmp - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $tmp - i32.store - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 - end - end - else - loop $while-continue|2 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|2 - end - end - end - local.get $j - return - ) (func $~lib/util/sort/mergeRuns (param $ptr i32) (param $l i32) (param $m i32) (param $r i32) (param $buffer i32) (param $comparator i32) (local $i i32) (local $j i32) @@ -6046,161 +5584,6 @@ end end ) - (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) - (local $j i32) - (local $k i32) - (local $tmp i32) - local.get $i - local.get $right - i32.eq - if - local.get $i - return - end - local.get $i - local.set $j - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - local.get $ptr - local.get $j - i32.const 1 - i32.add - local.tee $j - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - if - loop $while-continue|0 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 - end - end - local.get $j - local.set $k - loop $while-continue|1 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.set $tmp - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $tmp - i32.store - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 - end - end - else - loop $while-continue|2 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|2 - end - end - end - local.get $j - return - ) (func $~lib/util/sort/mergeRuns (param $ptr i32) (param $l i32) (param $m i32) (param $r i32) (param $buffer i32) (param $comparator i32) (local $i i32) (local $j i32) @@ -7663,26 +7046,30 @@ end unreachable ) - (func $~lib/util/number/dtoa_core (param $buffer i32) (param $value f64) (result i32) + (func $~lib/util/number/dtoa_core (param $buffer i32) (param $value f64) (param $isSingle i32) (result i32) (local $sign i32) - (local $value|3 f64) - (local $buffer|4 i32) - (local $sign|5 i32) - (local $uv i64) - (local $exp i32) - (local $sid i64) + (local $value|4 f64) + (local $buffer|5 i32) + (local $sign|6 i32) + (local $isSingle|7 i32) (local $frc i64) + (local $exp i32) + (local $uv i32) + (local $sid i32) + (local $uv|12 i64) + (local $sid|13 i64) (local $f i64) (local $e i32) - (local $frc|12 i64) - (local $exp|13 i32) + (local $isSingle|16 i32) + (local $frc|17 i64) + (local $exp|18 i32) (local $off i32) (local $m i32) (local $minExp i32) (local $dk f64) (local $k i32) (local $index i32) - (local $off|20 i32) + (local $off|25 i32) (local $frc_pow i64) (local $exp_pow i32) (local $u i64) @@ -7698,28 +7085,28 @@ (local $e1 i32) (local $e2 i32) (local $w_exp i32) - (local $u|36 i64) - (local $v|37 i64) - (local $u0|38 i64) - (local $v0|39 i64) - (local $u1|40 i64) - (local $v1|41 i64) - (local $l|42 i64) - (local $t|43 i64) - (local $w|44 i64) + (local $u|41 i64) + (local $v|42 i64) + (local $u0|43 i64) + (local $v0|44 i64) + (local $u1|45 i64) + (local $v1|46 i64) + (local $l|47 i64) + (local $t|48 i64) + (local $w|49 i64) (local $wp_frc i64) - (local $e1|46 i32) - (local $e2|47 i32) + (local $e1|51 i32) + (local $e2|52 i32) (local $wp_exp i32) - (local $u|49 i64) - (local $v|50 i64) - (local $u0|51 i64) - (local $v0|52 i64) - (local $u1|53 i64) - (local $v1|54 i64) - (local $l|55 i64) - (local $t|56 i64) - (local $w|57 i64) + (local $u|54 i64) + (local $v|55 i64) + (local $u0|56 i64) + (local $v0|57 i64) + (local $u1|58 i64) + (local $v1|59 i64) + (local $l|60 i64) + (local $t|61 i64) + (local $w|62 i64) (local $wm_frc i64) (local $delta i64) (local $len i32) @@ -7738,77 +7125,127 @@ end block $~lib/util/number/grisu2|inlined.0 (result i32) local.get $value - local.set $value|3 + local.set $value|4 local.get $buffer - local.set $buffer|4 + local.set $buffer|5 local.get $sign - local.set $sign|5 - local.get $value|3 - i64.reinterpret_f64 - local.set $uv - local.get $uv - i64.const 9218868437227405312 - i64.and - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.set $exp - local.get $uv - i64.const 4503599627370495 - i64.and - local.set $sid - local.get $exp - i32.const 0 - i32.ne - i64.extend_i32_u - i64.const 52 - i64.shl - local.get $sid - i64.add - local.set $frc - local.get $exp - i32.const 1 - local.get $exp - select - i32.const 1023 - i32.const 52 - i32.add - i32.sub - local.set $exp + local.set $sign|6 + local.get $isSingle + local.set $isSingle|7 + local.get $isSingle|7 + if + local.get $value|4 + f32.demote_f64 + i32.reinterpret_f32 + local.set $uv + local.get $uv + i32.const 2139095040 + i32.and + i32.const 23 + i32.shr_u + local.set $exp + local.get $uv + i32.const 8388607 + i32.and + local.set $sid + local.get $exp + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 23 + i64.shl + local.get $sid + i64.extend_i32_u + i64.add + local.set $frc + local.get $exp + if (result i32) + local.get $exp + else + i32.const 1 + end + i32.const 127 + i32.const 23 + i32.add + i32.sub + local.set $exp + else + local.get $value|4 + i64.reinterpret_f64 + local.set $uv|12 + local.get $uv|12 + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.set $exp + local.get $uv|12 + i64.const 4503599627370495 + i64.and + local.set $sid|13 + local.get $exp + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 52 + i64.shl + local.get $sid|13 + i64.add + local.set $frc + local.get $exp + if (result i32) + local.get $exp + else + i32.const 1 + end + i32.const 1023 + i32.const 52 + i32.add + i32.sub + local.set $exp + end local.get $frc local.set $f local.get $exp local.set $e + local.get $isSingle|7 + local.set $isSingle|16 local.get $f i64.const 1 i64.shl i64.const 1 i64.add - local.set $frc|12 + local.set $frc|17 local.get $e i32.const 1 i32.sub - local.set $exp|13 - local.get $frc|12 + local.set $exp|18 + local.get $frc|17 i64.clz i32.wrap_i64 local.set $off - local.get $frc|12 + local.get $frc|17 local.get $off i64.extend_i32_s i64.shl - local.set $frc|12 - local.get $exp|13 + local.set $frc|17 + local.get $exp|18 local.get $off i32.sub - local.set $exp|13 + local.set $exp|18 i32.const 1 local.get $f - i64.const 4503599627370496 + local.get $isSingle|16 + if (result i64) + i64.const 8388608 + else + i64.const 4503599627370496 + end i64.eq i32.add local.set $m - local.get $frc|12 + local.get $frc|17 global.set $~lib/util/number/_frc_plus local.get $f local.get $m @@ -7819,12 +7256,12 @@ local.get $e local.get $m i32.sub - local.get $exp|13 + local.get $exp|18 i32.sub i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_minus - local.get $exp|13 + local.get $exp|18 global.set $~lib/util/number/_exp global.get $~lib/util/number/_exp local.set $minExp @@ -7876,14 +7313,14 @@ local.get $frc i64.clz i32.wrap_i64 - local.set $off|20 + local.set $off|25 local.get $frc - local.get $off|20 + local.get $off|25 i64.extend_i32_s i64.shl local.set $frc local.get $exp - local.get $off|20 + local.get $off|25 i32.sub local.set $exp global.get $~lib/util/number/_frc_pow @@ -7968,63 +7405,63 @@ local.set $w_exp block $~lib/util/number/umul64f|inlined.1 (result i64) global.get $~lib/util/number/_frc_plus - local.set $u|36 + local.set $u|41 local.get $frc_pow - local.set $v|37 - local.get $u|36 + local.set $v|42 + local.get $u|41 i64.const 4294967295 i64.and - local.set $u0|38 - local.get $v|37 + local.set $u0|43 + local.get $v|42 i64.const 4294967295 i64.and - local.set $v0|39 - local.get $u|36 + local.set $v0|44 + local.get $u|41 i64.const 32 i64.shr_u - local.set $u1|40 - local.get $v|37 + local.set $u1|45 + local.get $v|42 i64.const 32 i64.shr_u - local.set $v1|41 - local.get $u0|38 - local.get $v0|39 + local.set $v1|46 + local.get $u0|43 + local.get $v0|44 i64.mul - local.set $l|42 - local.get $u1|40 - local.get $v0|39 + local.set $l|47 + local.get $u1|45 + local.get $v0|44 i64.mul - local.get $l|42 + local.get $l|47 i64.const 32 i64.shr_u i64.add - local.set $t|43 - local.get $u0|38 - local.get $v1|41 + local.set $t|48 + local.get $u0|43 + local.get $v1|46 i64.mul - local.get $t|43 + local.get $t|48 i64.const 4294967295 i64.and i64.add - local.set $w|44 - local.get $w|44 + local.set $w|49 + local.get $w|49 i64.const 2147483647 i64.add - local.set $w|44 - local.get $t|43 + local.set $w|49 + local.get $t|48 i64.const 32 i64.shr_u - local.set $t|43 - local.get $w|44 + local.set $t|48 + local.get $w|49 i64.const 32 i64.shr_u - local.set $w|44 - local.get $u1|40 - local.get $v1|41 + local.set $w|49 + local.get $u1|45 + local.get $v1|46 i64.mul - local.get $t|43 + local.get $t|48 i64.add - local.get $w|44 + local.get $w|49 i64.add br $~lib/util/number/umul64f|inlined.1 end @@ -8033,11 +7470,11 @@ local.set $wp_frc block $~lib/util/number/umul64e|inlined.1 (result i32) global.get $~lib/util/number/_exp - local.set $e1|46 + local.set $e1|51 local.get $exp_pow - local.set $e2|47 - local.get $e1|46 - local.get $e2|47 + local.set $e2|52 + local.get $e1|51 + local.get $e2|52 i32.add i32.const 64 i32.add @@ -8046,63 +7483,63 @@ local.set $wp_exp block $~lib/util/number/umul64f|inlined.2 (result i64) global.get $~lib/util/number/_frc_minus - local.set $u|49 + local.set $u|54 local.get $frc_pow - local.set $v|50 - local.get $u|49 + local.set $v|55 + local.get $u|54 i64.const 4294967295 i64.and - local.set $u0|51 - local.get $v|50 + local.set $u0|56 + local.get $v|55 i64.const 4294967295 i64.and - local.set $v0|52 - local.get $u|49 + local.set $v0|57 + local.get $u|54 i64.const 32 i64.shr_u - local.set $u1|53 - local.get $v|50 + local.set $u1|58 + local.get $v|55 i64.const 32 i64.shr_u - local.set $v1|54 - local.get $u0|51 - local.get $v0|52 + local.set $v1|59 + local.get $u0|56 + local.get $v0|57 i64.mul - local.set $l|55 - local.get $u1|53 - local.get $v0|52 + local.set $l|60 + local.get $u1|58 + local.get $v0|57 i64.mul - local.get $l|55 + local.get $l|60 i64.const 32 i64.shr_u i64.add - local.set $t|56 - local.get $u0|51 - local.get $v1|54 + local.set $t|61 + local.get $u0|56 + local.get $v1|59 i64.mul - local.get $t|56 + local.get $t|61 i64.const 4294967295 i64.and i64.add - local.set $w|57 - local.get $w|57 + local.set $w|62 + local.get $w|62 i64.const 2147483647 i64.add - local.set $w|57 - local.get $t|56 + local.set $w|62 + local.get $t|61 i64.const 32 i64.shr_u - local.set $t|56 - local.get $w|57 + local.set $t|61 + local.get $w|62 i64.const 32 i64.shr_u - local.set $w|57 - local.get $u1|53 - local.get $v1|54 + local.set $w|62 + local.get $u1|58 + local.get $v1|59 i64.mul - local.get $t|56 + local.get $t|61 i64.add - local.get $w|57 + local.get $w|62 i64.add br $~lib/util/number/umul64f|inlined.2 end @@ -8113,13 +7550,13 @@ local.get $wm_frc i64.sub local.set $delta - local.get $buffer|4 + local.get $buffer|5 local.get $w_frc local.get $w_exp local.get $wp_frc local.get $wp_exp local.get $delta - local.get $sign|5 + local.get $sign|6 call $~lib/util/number/genDigits br $~lib/util/number/grisu2|inlined.0 end @@ -8140,77 +7577,90 @@ i32.add return ) - (func $~lib/util/number/dtoa_buffered (param $buffer i32) (param $value f64) (result i32) + (func $~lib/util/number/dtoa_buffered (param $buffer i32) (param $value f64) (result i32) + (local $buffer|2 i32) + (local $value|3 f64) + (local $isSingle i32) (local $sign i32) - local.get $value - f64.const 0 - f64.eq - if - local.get $buffer - i32.const 48 - i32.store16 + block $~lib/util/number/dtoa_buffered_impl|inlined.0 (result i32) local.get $buffer - i32.const 46 - i32.store16 offset=2 - local.get $buffer - i32.const 48 - i32.store16 offset=4 - i32.const 3 - return - end - local.get $value - local.get $value - f64.sub - f64.const 0 - f64.eq - i32.eqz - if - local.get $value + local.set $buffer|2 local.get $value - f64.ne + local.set $value|3 + i32.const 0 + local.set $isSingle + local.get $value|3 + f64.const 0 + f64.eq if - local.get $buffer - i32.const 78 + local.get $buffer|2 + i32.const 48 i32.store16 - local.get $buffer - i32.const 97 + local.get $buffer|2 + i32.const 46 i32.store16 offset=2 - local.get $buffer - i32.const 78 + local.get $buffer|2 + i32.const 48 i32.store16 offset=4 i32.const 3 - return - else - local.get $value - f64.const 0 - f64.lt - local.set $sign - local.get $sign + br $~lib/util/number/dtoa_buffered_impl|inlined.0 + end + local.get $value|3 + local.get $value|3 + f64.sub + f64.const 0 + f64.eq + i32.eqz + if + local.get $value|3 + local.get $value|3 + f64.ne if - local.get $buffer - i32.const 45 + local.get $buffer|2 + i32.const 78 i32.store16 - local.get $buffer - i32.const 2 + local.get $buffer|2 + i32.const 97 + i32.store16 offset=2 + local.get $buffer|2 + i32.const 78 + i32.store16 offset=4 + i32.const 3 + br $~lib/util/number/dtoa_buffered_impl|inlined.0 + else + local.get $value|3 + f64.const 0 + f64.lt + local.set $sign + local.get $sign + if + local.get $buffer|2 + i32.const 45 + i32.store16 + local.get $buffer|2 + i32.const 2 + i32.add + local.set $buffer|2 + end + local.get $buffer|2 + i64.const 29555310648492105 + i64.store + local.get $buffer|2 + i64.const 34058970405077102 + i64.store offset=8 + i32.const 8 + local.get $sign i32.add - local.set $buffer + br $~lib/util/number/dtoa_buffered_impl|inlined.0 end - local.get $buffer - i64.const 29555310648492105 - i64.store - local.get $buffer - i64.const 34058970405077102 - i64.store offset=8 - i32.const 8 - local.get $sign - i32.add - return + unreachable end - unreachable + local.get $buffer|2 + local.get $value|3 + local.get $isSingle + call $~lib/util/number/dtoa_core + br $~lib/util/number/dtoa_buffered_impl|inlined.0 end - local.get $buffer - local.get $value - call $~lib/util/number/dtoa_core return ) (func $std/array/Ref#toString (param $this i32) (result i32) @@ -9230,12 +8680,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -14215,22 +13661,26 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 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 i64.const 0 i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 i32.const 0 local.set $i local.get $this - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store - local.get $6 + local.get $7 call $~lib/array/Array#get:length_ local.set $len loop $for-loop|0 @@ -14238,11 +13688,11 @@ local.get $len local.tee $4 local.get $this - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store - local.get $6 + local.get $7 call $~lib/array/Array#get:length_ local.tee $5 local.get $4 @@ -14251,12 +13701,16 @@ select i32.lt_s if - local.get $this - local.set $6 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $fn + local.tee $6 i32.store offset=4 - local.get $6 + local.get $this + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 call $~lib/array/Array#get:dataStart local.get $i i32.const 2 @@ -14265,24 +13719,24 @@ i32.load local.get $i local.get $this - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store - local.get $6 + local.get $7 i32.const 3 global.set $~argumentsLength - local.get $fn + local.get $6 i32.load call_indirect (type $3) if local.get $i - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $7 return end local.get $i @@ -14293,12 +13747,12 @@ end end i32.const -1 - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $7 return ) (func $start:std/array~anonymous|3 (param $value i32) (param $_ i32) (param $array i32) (result i32) @@ -14363,20 +13817,24 @@ (func $~lib/array/Array#findLastIndex (param $this i32) (param $fn i32) (result i32) (local $i i32) (local $3 i32) + (local $4 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 i64.const 0 i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 local.get $this - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store - local.get $3 + local.get $4 call $~lib/array/Array#get:length_ i32.const 1 i32.sub @@ -14386,12 +13844,16 @@ i32.const 0 i32.ge_s if - local.get $this - local.set $3 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $fn + local.tee $3 i32.store offset=4 - local.get $3 + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 call $~lib/array/Array#get:dataStart local.get $i i32.const 2 @@ -14400,24 +13862,24 @@ i32.load local.get $i local.get $this - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store - local.get $3 + local.get $4 i32.const 3 global.set $~argumentsLength - local.get $fn + local.get $3 i32.load call_indirect (type $3) if local.get $i - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $4 return end local.get $i @@ -14428,12 +13890,12 @@ end end i32.const -1 - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $4 return ) (func $start:std/array~anonymous|9 (param $value i32) (param $_ i32) (param $array i32) (result i32) @@ -14471,22 +13933,26 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 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 i64.const 0 i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 i32.const 0 local.set $i local.get $this - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store - local.get $6 + local.get $7 call $~lib/array/Array#get:length_ local.set $len loop $for-loop|0 @@ -14494,11 +13960,11 @@ local.get $len local.tee $4 local.get $this - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store - local.get $6 + local.get $7 call $~lib/array/Array#get:length_ local.tee $5 local.get $4 @@ -14507,12 +13973,16 @@ select i32.lt_s if - local.get $this - local.set $6 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $fn + local.tee $6 i32.store offset=4 - local.get $6 + local.get $this + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 call $~lib/array/Array#get:dataStart local.get $i i32.const 2 @@ -14521,25 +13991,25 @@ i32.load local.get $i local.get $this - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store - local.get $6 + local.get $7 i32.const 3 global.set $~argumentsLength - local.get $fn + local.get $6 i32.load call_indirect (type $3) i32.eqz if i32.const 0 - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $7 return end local.get $i @@ -14550,12 +14020,12 @@ end end i32.const 1 - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $7 return ) (func $start:std/array~anonymous|12 (param $value i32) (param $_ i32) (param $array i32) (result i32) @@ -14623,22 +14093,26 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 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 i64.const 0 i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 i32.const 0 local.set $i local.get $this - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store - local.get $6 + local.get $7 call $~lib/array/Array#get:length_ local.set $len loop $for-loop|0 @@ -14646,11 +14120,11 @@ local.get $len local.tee $4 local.get $this - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store - local.get $6 + local.get $7 call $~lib/array/Array#get:length_ local.tee $5 local.get $4 @@ -14659,12 +14133,16 @@ select i32.lt_s if - local.get $this - local.set $6 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $fn + local.tee $6 i32.store offset=4 - local.get $6 + local.get $this + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 call $~lib/array/Array#get:dataStart local.get $i i32.const 2 @@ -14673,24 +14151,24 @@ i32.load local.get $i local.get $this - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store - local.get $6 + local.get $7 i32.const 3 global.set $~argumentsLength - local.get $fn + local.get $6 i32.load call_indirect (type $3) if i32.const 1 - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $7 return end local.get $i @@ -14701,12 +14179,12 @@ end end i32.const 0 - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $7 return ) (func $start:std/array~anonymous|17 (param $value i32) (param $_ i32) (param $array i32) (result i32) @@ -14774,22 +14252,26 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 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 i64.const 0 i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 i32.const 0 local.set $i local.get $this - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store - local.get $6 + local.get $7 call $~lib/array/Array#get:length_ local.set $len loop $for-loop|0 @@ -14797,11 +14279,11 @@ local.get $len local.tee $4 local.get $this - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store - local.get $6 + local.get $7 call $~lib/array/Array#get:length_ local.tee $5 local.get $4 @@ -14810,12 +14292,16 @@ select i32.lt_s if - local.get $this - local.set $6 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $fn + local.tee $6 i32.store offset=4 - local.get $6 + local.get $this + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 call $~lib/array/Array#get:dataStart local.get $i i32.const 2 @@ -14824,14 +14310,14 @@ i32.load local.get $i local.get $this - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store - local.get $6 + local.get $7 i32.const 3 global.set $~argumentsLength - local.get $fn + local.get $6 i32.load call_indirect (type $5) local.get $i @@ -14842,7 +14328,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) @@ -15043,25 +14529,24 @@ (local $i i32) (local $6 i32) (local $7 i32) + (local $8 i32) (local $result i32) - (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 + i32.const 0 + i32.const 20 + memory.fill local.get $this - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store - local.get $9 + local.get $10 call $~lib/array/Array#get:length_ local.set $len global.get $~lib/memory/__stack_pointer @@ -15073,11 +14558,11 @@ local.tee $out i32.store offset=4 local.get $out - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store - local.get $9 + local.get $10 call $~lib/array/Array<~lib/string/String>#get:dataStart local.set $outStart i32.const 0 @@ -15087,11 +14572,11 @@ local.get $len local.tee $6 local.get $this - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store - local.get $9 + local.get $10 call $~lib/array/Array#get:length_ local.tee $7 local.get $6 @@ -15101,12 +14586,16 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $this - local.set $9 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $fn + local.tee $8 i32.store offset=8 - local.get $9 + local.get $this + local.set $10 + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store offset=12 + local.get $10 call $~lib/array/Array#get:dataStart local.get $i i32.const 2 @@ -15115,18 +14604,18 @@ i32.load local.get $i local.get $this - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store - local.get $9 + local.get $10 i32.const 3 global.set $~argumentsLength - local.get $fn + local.get $8 i32.load call_indirect (type $3) local.tee $result - i32.store offset=12 + i32.store offset=16 local.get $outStart local.get $i i32.const 2 @@ -15148,12 +14637,12 @@ end end local.get $out - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $10 return ) (func $~lib/array/Array#map (param $this i32) (param $fn i32) (result i32) @@ -15163,10 +14652,11 @@ (local $i i32) (local $6 i32) (local $7 i32) + (local $8 i32) (local $result f32) - (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -15174,14 +14664,14 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 local.get $this - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store - local.get $9 + local.get $10 call $~lib/array/Array#get:length_ local.set $len global.get $~lib/memory/__stack_pointer @@ -15193,11 +14683,11 @@ local.tee $out i32.store offset=4 local.get $out - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store - local.get $9 + local.get $10 call $~lib/array/Array#get:dataStart local.set $outStart i32.const 0 @@ -15207,11 +14697,11 @@ local.get $len local.tee $6 local.get $this - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store - local.get $9 + local.get $10 call $~lib/array/Array#get:length_ local.tee $7 local.get $6 @@ -15220,12 +14710,16 @@ select i32.lt_s if - local.get $this - local.set $9 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $fn + local.tee $8 i32.store offset=8 - local.get $9 + local.get $this + local.set $10 + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store offset=12 + local.get $10 call $~lib/array/Array#get:dataStart local.get $i i32.const 2 @@ -15234,16 +14728,16 @@ i32.load local.get $i local.get $this - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store - local.get $9 + local.get $10 i32.const 3 global.set $~argumentsLength - local.get $fn + local.get $8 i32.load - call_indirect (type $17) + call_indirect (type $18) local.set $result local.get $outStart local.get $i @@ -15262,12 +14756,12 @@ end end local.get $out - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $10 return ) (func $start:std/array~anonymous|27 (param $value i32) (param $_ i32) (param $array i32) (result i32) @@ -15309,10 +14803,11 @@ (local $i i32) (local $6 i32) (local $7 i32) + (local $8 i32) (local $result i32) - (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -15320,14 +14815,14 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 local.get $this - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store - local.get $9 + local.get $10 call $~lib/array/Array#get:length_ local.set $len global.get $~lib/memory/__stack_pointer @@ -15339,11 +14834,11 @@ local.tee $out i32.store offset=4 local.get $out - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store - local.get $9 + local.get $10 call $~lib/array/Array#get:dataStart local.set $outStart i32.const 0 @@ -15353,11 +14848,11 @@ local.get $len local.tee $6 local.get $this - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store - local.get $9 + local.get $10 call $~lib/array/Array#get:length_ local.tee $7 local.get $6 @@ -15366,12 +14861,16 @@ select i32.lt_s if - local.get $this - local.set $9 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $fn + local.tee $8 i32.store offset=8 - local.get $9 + local.get $this + local.set $10 + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store offset=12 + local.get $10 call $~lib/array/Array#get:dataStart local.get $i i32.const 2 @@ -15380,14 +14879,14 @@ i32.load local.get $i local.get $this - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store - local.get $9 + local.get $10 i32.const 3 global.set $~argumentsLength - local.get $fn + local.get $8 i32.load call_indirect (type $3) local.set $result @@ -15408,12 +14907,12 @@ end end local.get $out - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $10 return ) (func $start:std/array~anonymous|29 (param $value i32) (param $_ i32) (param $array i32) (result i32) @@ -15626,24 +15125,28 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 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 i64.const 0 i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 local.get $initialValue local.set $acc i32.const 0 local.set $i local.get $this - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store - local.get $8 + local.get $9 call $~lib/array/Array#get:length_ local.set $len loop $for-loop|0 @@ -15651,11 +15154,11 @@ local.get $len local.tee $6 local.get $this - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store - local.get $8 + local.get $9 call $~lib/array/Array#get:length_ local.tee $7 local.get $6 @@ -15664,13 +15167,17 @@ select i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn + local.tee $8 + i32.store offset=4 local.get $acc local.get $this - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 + local.get $9 + i32.store offset=8 + local.get $9 call $~lib/array/Array#get:dataStart local.get $i i32.const 2 @@ -15679,14 +15186,14 @@ i32.load local.get $i local.get $this - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store - local.get $8 + local.get $9 i32.const 4 global.set $~argumentsLength - local.get $fn + local.get $8 i32.load call_indirect (type $4) local.set $acc @@ -15698,12 +15205,12 @@ end end local.get $acc - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $9 return ) (func $~lib/array/Array#reduce (param $this i32) (param $fn i32) (param $initialValue i32) (result i32) @@ -15713,24 +15220,28 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 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 i64.const 0 i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 local.get $initialValue local.set $acc i32.const 0 local.set $i local.get $this - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store - local.get $8 + local.get $9 call $~lib/array/Array#get:length_ local.set $len loop $for-loop|0 @@ -15738,11 +15249,11 @@ local.get $len local.tee $6 local.get $this - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store - local.get $8 + local.get $9 call $~lib/array/Array#get:length_ local.tee $7 local.get $6 @@ -15751,13 +15262,17 @@ select i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn + local.tee $8 + i32.store offset=4 local.get $acc local.get $this - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 + local.get $9 + i32.store offset=8 + local.get $9 call $~lib/array/Array#get:dataStart local.get $i i32.const 2 @@ -15766,14 +15281,14 @@ i32.load local.get $i local.get $this - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store - local.get $8 + local.get $9 i32.const 4 global.set $~argumentsLength - local.get $fn + local.get $8 i32.load call_indirect (type $4) local.set $acc @@ -15785,12 +15300,12 @@ end end local.get $acc - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $9 return ) (func $start:std/array~anonymous|38 (param $prev i32) (param $current i32) (param $_ i32) (param $array i32) (result i32) @@ -15856,22 +15371,26 @@ (local $acc i32) (local $i i32) (local $5 i32) + (local $6 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 i64.const 0 i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 local.get $initialValue local.set $acc local.get $this - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store - local.get $5 + local.get $6 call $~lib/array/Array#get:length_ i32.const 1 i32.sub @@ -15881,13 +15400,17 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $fn + local.tee $5 + i32.store offset=4 local.get $acc local.get $this - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 + local.get $6 + i32.store offset=8 + local.get $6 call $~lib/array/Array#get:dataStart local.get $i i32.const 2 @@ -15896,14 +15419,14 @@ i32.load local.get $i local.get $this - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store - local.get $5 + local.get $6 i32.const 4 global.set $~argumentsLength - local.get $fn + local.get $5 i32.load call_indirect (type $4) local.set $acc @@ -15915,34 +15438,38 @@ end end local.get $acc - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $6 return ) (func $~lib/array/Array#reduceRight (param $this i32) (param $fn i32) (param $initialValue i32) (result i32) (local $acc i32) (local $i i32) (local $5 i32) + (local $6 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 i64.const 0 i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 local.get $initialValue local.set $acc local.get $this - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store - local.get $5 + local.get $6 call $~lib/array/Array#get:length_ i32.const 1 i32.sub @@ -15952,13 +15479,17 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $fn + local.tee $5 + i32.store offset=4 local.get $acc local.get $this - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 + local.get $6 + i32.store offset=8 + local.get $6 call $~lib/array/Array#get:dataStart local.get $i i32.const 2 @@ -15967,14 +15498,14 @@ i32.load local.get $i local.get $this - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store - local.get $5 + local.get $6 i32.const 4 global.set $~argumentsLength - local.get $fn + local.get $5 i32.load call_indirect (type $4) local.set $acc @@ -15986,12 +15517,12 @@ end end local.get $acc - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $6 return ) (func $start:std/array~anonymous|45 (param $prev i32) (param $current i32) (param $_ i32) (param $array i32) (result i32) @@ -18841,22 +18372,23 @@ (local $i i32) (local $len i32) (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 call $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i64.const 0 + i64.store i32.const 1 local.set $i local.get $data - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 call $~lib/array/Array#get:length local.set $len loop $for-loop|0 @@ -18864,39 +18396,43 @@ local.get $len i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $4 + i32.store offset=4 local.get $data - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 local.get $i i32.const 1 i32.sub call $~lib/array/Array#__get local.get $data - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 local.get $i call $~lib/array/Array#__get i32.const 2 global.set $~argumentsLength - local.get $comparator + local.get $4 i32.load call_indirect (type $0) i32.const 0 i32.gt_s if i32.const 0 - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $5 return end local.get $i @@ -18907,12 +18443,12 @@ end end i32.const 1 - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $5 return ) (func $std/array/assertSorted (param $arr i32) (param $comparator i32) @@ -19487,46 +19023,51 @@ ) (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) (local $j i32) + (local $5 i32) + (local $6 i32) (local $k i32) (local $tmp i32) - (local $7 i32) + (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 + i32.const 24 + memory.fill local.get $i local.get $right i32.eq if local.get $i - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $10 return end local.get $i local.set $j + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $5 + i32.store local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 + local.get $10 + i32.store offset=4 + local.get $10 local.get $ptr local.get $j i32.const 1 @@ -19536,14 +19077,14 @@ i32.shl i32.add i32.load - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 + local.get $10 + i32.store offset=8 + local.get $10 i32.const 2 global.set $~argumentsLength - local.get $comparator + local.get $5 i32.load call_indirect (type $0) i32.const 0 @@ -19554,31 +19095,35 @@ local.get $right i32.lt_s if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $6 + i32.store offset=12 local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 + local.get $10 + i32.store offset=4 + local.get $10 local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 + local.get $10 + i32.store offset=8 + local.get $10 i32.const 2 global.set $~argumentsLength - local.get $comparator + local.get $6 i32.load call_indirect (type $0) i32.const 31 @@ -19609,7 +19154,7 @@ i32.add i32.load local.tee $tmp - i32.store offset=8 + i32.store offset=16 local.get $ptr local.get $i i32.const 2 @@ -19646,31 +19191,35 @@ local.get $right i32.lt_s if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $9 + i32.store offset=20 local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 + local.get $10 + i32.store offset=4 + local.get $10 local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 + local.get $10 + i32.store offset=8 + local.get $10 i32.const 2 global.set $~argumentsLength - local.get $comparator + local.get $9 i32.load call_indirect (type $0) i32.const 0 @@ -19688,12 +19237,12 @@ end end local.get $j - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $10 return ) (func $~lib/util/sort/mergeRuns (param $ptr i32) (param $l i32) (param $m i32) (param $r i32) (param $buffer i32) (param $comparator i32) @@ -21224,46 +20773,51 @@ ) (func $~lib/util/sort/extendRunRight<~lib/array/Array> (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) (local $j i32) + (local $5 i32) + (local $6 i32) (local $k i32) (local $tmp i32) - (local $7 i32) + (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 + i32.const 24 + memory.fill local.get $i local.get $right i32.eq if local.get $i - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $10 return end local.get $i local.set $j + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $5 + i32.store local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 + local.get $10 + i32.store offset=4 + local.get $10 local.get $ptr local.get $j i32.const 1 @@ -21273,14 +20827,14 @@ i32.shl i32.add i32.load - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 + local.get $10 + i32.store offset=8 + local.get $10 i32.const 2 global.set $~argumentsLength - local.get $comparator + local.get $5 i32.load call_indirect (type $0) i32.const 0 @@ -21291,31 +20845,35 @@ local.get $right i32.lt_s if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $6 + i32.store offset=12 local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 + local.get $10 + i32.store offset=4 + local.get $10 local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 + local.get $10 + i32.store offset=8 + local.get $10 i32.const 2 global.set $~argumentsLength - local.get $comparator + local.get $6 i32.load call_indirect (type $0) i32.const 31 @@ -21346,7 +20904,7 @@ i32.add i32.load local.tee $tmp - i32.store offset=8 + i32.store offset=16 local.get $ptr local.get $i i32.const 2 @@ -21383,31 +20941,35 @@ local.get $right i32.lt_s if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $9 + i32.store offset=20 local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 + local.get $10 + i32.store offset=4 + local.get $10 local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 + local.get $10 + i32.store offset=8 + local.get $10 i32.const 2 global.set $~argumentsLength - local.get $comparator + local.get $9 i32.load call_indirect (type $0) i32.const 0 @@ -21425,12 +20987,12 @@ end end local.get $j - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $10 return ) (func $~lib/util/sort/mergeRuns<~lib/array/Array> (param $ptr i32) (param $l i32) (param $m i32) (param $r i32) (param $buffer i32) (param $comparator i32) @@ -22254,8 +21816,9 @@ (local $i i32) (local $len i32) (local $4 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -22263,16 +21826,16 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 i32.const 1 local.set $i local.get $data - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 call $~lib/array/Array<~lib/array/Array>#get:length local.set $len loop $for-loop|0 @@ -22280,49 +21843,53 @@ local.get $len i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $4 + i32.store offset=4 local.get $data - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 + local.get $5 + i32.store offset=12 + local.get $5 local.get $i i32.const 1 i32.sub call $~lib/array/Array<~lib/array/Array>#__get - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 local.get $data - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 + local.get $5 + i32.store offset=12 + local.get $5 local.get $i call $~lib/array/Array<~lib/array/Array>#__get - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 + local.get $5 + i32.store offset=8 + local.get $5 i32.const 2 global.set $~argumentsLength - local.get $comparator + local.get $4 i32.load call_indirect (type $0) i32.const 0 i32.gt_s if i32.const 0 - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $5 return end local.get $i @@ -22333,12 +21900,12 @@ end end i32.const 1 - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $5 return ) (func $std/array/assertSorted<~lib/array/Array> (param $arr i32) (param $comparator i32) @@ -22979,46 +22546,51 @@ ) (func $~lib/util/sort/extendRunRight> (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) (local $j i32) + (local $5 i32) + (local $6 i32) (local $k i32) (local $tmp i32) - (local $7 i32) + (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 + i32.const 24 + memory.fill local.get $i local.get $right i32.eq if local.get $i - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $10 return end local.get $i local.set $j + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $5 + i32.store local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 + local.get $10 + i32.store offset=4 + local.get $10 local.get $ptr local.get $j i32.const 1 @@ -23028,14 +22600,14 @@ i32.shl i32.add i32.load - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 + local.get $10 + i32.store offset=8 + local.get $10 i32.const 2 global.set $~argumentsLength - local.get $comparator + local.get $5 i32.load call_indirect (type $0) i32.const 0 @@ -23046,31 +22618,35 @@ local.get $right i32.lt_s if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $6 + i32.store offset=12 local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 + local.get $10 + i32.store offset=4 + local.get $10 local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 + local.get $10 + i32.store offset=8 + local.get $10 i32.const 2 global.set $~argumentsLength - local.get $comparator + local.get $6 i32.load call_indirect (type $0) i32.const 31 @@ -23101,7 +22677,7 @@ i32.add i32.load local.tee $tmp - i32.store offset=8 + i32.store offset=16 local.get $ptr local.get $i i32.const 2 @@ -23138,31 +22714,35 @@ local.get $right i32.lt_s if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $9 + i32.store offset=20 local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 + local.get $10 + i32.store offset=4 + local.get $10 local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 + local.get $10 + i32.store offset=8 + local.get $10 i32.const 2 global.set $~argumentsLength - local.get $comparator + local.get $9 i32.load call_indirect (type $0) i32.const 0 @@ -23180,12 +22760,12 @@ end end local.get $j - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $10 return ) (func $~lib/util/sort/mergeRuns> (param $ptr i32) (param $l i32) (param $m i32) (param $r i32) (param $buffer i32) (param $comparator i32) @@ -24009,8 +23589,9 @@ (local $i i32) (local $len i32) (local $4 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -24018,16 +23599,16 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 i32.const 1 local.set $i local.get $data - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 call $~lib/array/Array>#get:length local.set $len loop $for-loop|0 @@ -24035,49 +23616,53 @@ local.get $len i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $4 + i32.store offset=4 local.get $data - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 + local.get $5 + i32.store offset=12 + local.get $5 local.get $i i32.const 1 i32.sub call $~lib/array/Array>#__get - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 local.get $data - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 + local.get $5 + i32.store offset=12 + local.get $5 local.get $i call $~lib/array/Array>#__get - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 + local.get $5 + i32.store offset=8 + local.get $5 i32.const 2 global.set $~argumentsLength - local.get $comparator + local.get $4 i32.load call_indirect (type $0) i32.const 0 i32.gt_s if i32.const 0 - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $5 return end local.get $i @@ -24088,12 +23673,12 @@ end end i32.const 1 - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $5 return ) (func $std/array/assertSorted> (param $arr i32) (param $comparator i32) @@ -24391,46 +23976,51 @@ ) (func $~lib/util/sort/extendRunRight<~lib/string/String|null> (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) (local $j i32) + (local $5 i32) + (local $6 i32) (local $k i32) (local $tmp i32) - (local $7 i32) + (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 + i32.const 24 + memory.fill local.get $i local.get $right i32.eq if local.get $i - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $10 return end local.get $i local.set $j + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $5 + i32.store local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 + local.get $10 + i32.store offset=4 + local.get $10 local.get $ptr local.get $j i32.const 1 @@ -24440,14 +24030,14 @@ i32.shl i32.add i32.load - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 + local.get $10 + i32.store offset=8 + local.get $10 i32.const 2 global.set $~argumentsLength - local.get $comparator + local.get $5 i32.load call_indirect (type $0) i32.const 0 @@ -24458,31 +24048,35 @@ local.get $right i32.lt_s if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $6 + i32.store offset=12 local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 + local.get $10 + i32.store offset=4 + local.get $10 local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 + local.get $10 + i32.store offset=8 + local.get $10 i32.const 2 global.set $~argumentsLength - local.get $comparator + local.get $6 i32.load call_indirect (type $0) i32.const 31 @@ -24513,7 +24107,7 @@ i32.add i32.load local.tee $tmp - i32.store offset=8 + i32.store offset=16 local.get $ptr local.get $i i32.const 2 @@ -24550,31 +24144,35 @@ local.get $right i32.lt_s if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $9 + i32.store offset=20 local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 + local.get $10 + i32.store offset=4 + local.get $10 local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 + local.get $10 + i32.store offset=8 + local.get $10 i32.const 2 global.set $~argumentsLength - local.get $comparator + local.get $9 i32.load call_indirect (type $0) i32.const 0 @@ -24592,12 +24190,12 @@ end end local.get $j - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $10 return ) (func $~lib/util/sort/mergeRuns<~lib/string/String|null> (param $ptr i32) (param $l i32) (param $m i32) (param $r i32) (param $buffer i32) (param $comparator i32) @@ -25411,8 +25009,9 @@ (local $i i32) (local $len i32) (local $4 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -25420,16 +25019,16 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 i32.const 1 local.set $i local.get $data - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 call $~lib/array/Array<~lib/string/String|null>#get:length local.set $len loop $for-loop|0 @@ -25437,49 +25036,53 @@ local.get $len i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $4 + i32.store offset=4 local.get $data - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 + local.get $5 + i32.store offset=12 + local.get $5 local.get $i i32.const 1 i32.sub call $~lib/array/Array<~lib/string/String|null>#__get - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 local.get $data - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 + local.get $5 + i32.store offset=12 + local.get $5 local.get $i call $~lib/array/Array<~lib/string/String|null>#__get - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 + local.get $5 + i32.store offset=8 + local.get $5 i32.const 2 global.set $~argumentsLength - local.get $comparator + local.get $4 i32.load call_indirect (type $0) i32.const 0 i32.gt_s if i32.const 0 - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $5 return end local.get $i @@ -25490,12 +25093,12 @@ end end i32.const 1 - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $5 return ) (func $std/array/assertSorted<~lib/string/String|null> (param $arr i32) (param $comparator i32) @@ -26293,14 +25896,16 @@ (local $x f64) (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + 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.const 20 - memory.fill + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 10544 local.tee $result @@ -26320,19 +25925,9 @@ i32.store offset=4 local.get $4 global.get $std/array/charset - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $4 block $~lib/math/NativeMath.floor|inlined.0 (result f64) call $~lib/math/NativeMath.random global.get $std/array/charset - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=16 - local.get $4 call $~lib/string/String#get:length f64.convert_i32_s f64.mul @@ -26361,7 +25956,7 @@ local.get $result local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer local.get $4 @@ -26745,46 +26340,51 @@ ) (func $~lib/util/sort/extendRunRight<~lib/string/String> (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) (local $j i32) + (local $5 i32) + (local $6 i32) (local $k i32) (local $tmp i32) - (local $7 i32) + (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 + i32.const 24 + memory.fill local.get $i local.get $right i32.eq if local.get $i - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $10 return end local.get $i local.set $j + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $5 + i32.store local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 + local.get $10 + i32.store offset=4 + local.get $10 local.get $ptr local.get $j i32.const 1 @@ -26794,14 +26394,14 @@ i32.shl i32.add i32.load - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 + local.get $10 + i32.store offset=8 + local.get $10 i32.const 2 global.set $~argumentsLength - local.get $comparator + local.get $5 i32.load call_indirect (type $0) i32.const 0 @@ -26812,31 +26412,35 @@ local.get $right i32.lt_s if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $6 + i32.store offset=12 local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 + local.get $10 + i32.store offset=4 + local.get $10 local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 + local.get $10 + i32.store offset=8 + local.get $10 i32.const 2 global.set $~argumentsLength - local.get $comparator + local.get $6 i32.load call_indirect (type $0) i32.const 31 @@ -26867,7 +26471,7 @@ i32.add i32.load local.tee $tmp - i32.store offset=8 + i32.store offset=16 local.get $ptr local.get $i i32.const 2 @@ -26904,31 +26508,35 @@ local.get $right i32.lt_s if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $9 + i32.store offset=20 local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 + local.get $10 + i32.store offset=4 + local.get $10 local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 + local.get $10 + i32.store offset=8 + local.get $10 i32.const 2 global.set $~argumentsLength - local.get $comparator + local.get $9 i32.load call_indirect (type $0) i32.const 0 @@ -26946,12 +26554,12 @@ end end local.get $j - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $10 return ) (func $~lib/util/sort/mergeRuns<~lib/string/String> (param $ptr i32) (param $l i32) (param $m i32) (param $r i32) (param $buffer i32) (param $comparator i32) @@ -27775,8 +27383,9 @@ (local $i i32) (local $len i32) (local $4 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -27784,16 +27393,16 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 i32.const 1 local.set $i local.get $data - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 call $~lib/array/Array<~lib/string/String>#get:length local.set $len loop $for-loop|0 @@ -27801,49 +27410,53 @@ local.get $len i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $4 + i32.store offset=4 local.get $data - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 + local.get $5 + i32.store offset=12 + local.get $5 local.get $i i32.const 1 i32.sub call $~lib/array/Array<~lib/string/String>#__get - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 local.get $data - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 + local.get $5 + i32.store offset=12 + local.get $5 local.get $i call $~lib/array/Array<~lib/string/String>#__get - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 + local.get $5 + i32.store offset=8 + local.get $5 i32.const 2 global.set $~argumentsLength - local.get $comparator + local.get $4 i32.load call_indirect (type $0) i32.const 0 i32.gt_s if i32.const 0 - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $5 return end local.get $i @@ -27854,12 +27467,12 @@ end end i32.const 1 - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $5 return ) (func $std/array/assertSorted<~lib/string/String> (param $arr i32) (param $comparator i32) @@ -28990,7 +28603,7 @@ if local.get $dataStart f64.load - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $10 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -29046,7 +28659,7 @@ i32.shl i32.add local.get $value - call $~lib/util/number/dtoa_buffered + call $~lib/util/number/dtoa_buffered i32.add local.set $offset local.get $sepLen @@ -29087,7 +28700,7 @@ i32.shl i32.add local.get $value - call $~lib/util/number/dtoa_buffered + call $~lib/util/number/dtoa_buffered i32.add local.set $offset local.get $estLen @@ -29957,13 +29570,13 @@ (func $~lib/array/Array#toString (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 - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -29971,15 +29584,10 @@ i32.store local.get $1 i32.const 10832 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/array/Array#join 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 @@ -30216,13 +29824,13 @@ (func $~lib/array/Array#toString (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 - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -30230,15 +29838,10 @@ i32.store local.get $1 i32.const 10832 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/array/Array#join 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 @@ -30475,13 +30078,13 @@ (func $~lib/array/Array#toString (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 - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -30489,15 +30092,10 @@ i32.store local.get $1 i32.const 10832 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/array/Array#join 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 @@ -30734,13 +30332,13 @@ (func $~lib/array/Array#toString (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 - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -30748,15 +30346,10 @@ i32.store local.get $1 i32.const 10832 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/array/Array#join 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 @@ -30993,13 +30586,13 @@ (func $~lib/array/Array#toString (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 - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -31007,15 +30600,10 @@ i32.store local.get $1 i32.const 10832 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/array/Array#join 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 @@ -31254,13 +30842,13 @@ (func $~lib/array/Array#toString (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 - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -31268,15 +30856,10 @@ i32.store local.get $1 i32.const 10832 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/array/Array#join 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 @@ -31285,13 +30868,13 @@ (func $~lib/array/Array<~lib/string/String|null>#toString (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 - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -31299,15 +30882,10 @@ i32.store local.get $1 i32.const 10832 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/array/Array<~lib/string/String|null>#join 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 @@ -31564,13 +31142,13 @@ (func $~lib/array/Array<~lib/array/Array>#toString (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 - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -31578,15 +31156,10 @@ i32.store local.get $1 i32.const 10832 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/array/Array<~lib/array/Array>#join 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 @@ -31896,13 +31469,13 @@ (func $~lib/array/Array#toString (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 - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -31910,15 +31483,10 @@ i32.store local.get $1 i32.const 10832 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/array/Array#join 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 @@ -32175,13 +31743,13 @@ (func $~lib/array/Array<~lib/array/Array>#toString (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 - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -32189,15 +31757,10 @@ i32.store local.get $1 i32.const 10832 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/array/Array<~lib/array/Array>#join 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 @@ -32352,13 +31915,13 @@ (func $~lib/array/Array#toString (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 - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -32366,300 +31929,290 @@ i32.store local.get $1 i32.const 10832 + call $~lib/array/Array#join 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/string/joinReferenceArray<~lib/array/Array> (param $dataStart i32) (param $length i32) (param $separator i32) (result i32) + (local $lastIndex i32) + (local $value i32) + (local $result i32) + (local $sepLen i32) + (local $i i32) + (local $8 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 + local.get $length + i32.const 1 + i32.sub + local.set $lastIndex + local.get $lastIndex + i32.const 0 + i32.lt_s + if + i32.const 10544 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + return + end + local.get $lastIndex + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $dataStart + i32.load + local.tee $value + i32.store + local.get $value + i32.const 0 + i32.ne + if (result i32) + local.get $value + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $~lib/array/Array#toString + else + i32.const 10544 + end + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + return + end + global.get $~lib/memory/__stack_pointer + i32.const 10544 + local.tee $result + i32.store offset=8 + local.get $separator + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 i32.store offset=4 + local.get $8 + call $~lib/string/String#get:length + local.set $sepLen + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $lastIndex + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $dataStart + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $value + i32.store + local.get $value + i32.const 0 + i32.ne + if + global.get $~lib/memory/__stack_pointer + local.get $result + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $value + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=16 + local.get $8 + call $~lib/array/Array#toString + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=12 + local.get $8 + call $~lib/string/String.__concat + local.tee $result + i32.store offset=8 + end + local.get $sepLen + if + global.get $~lib/memory/__stack_pointer + local.get $result + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $separator + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=12 + local.get $8 + call $~lib/string/String.__concat + local.tee $result + i32.store offset=8 + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $dataStart + local.get $lastIndex + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $value + i32.store + local.get $value + i32.const 0 + i32.ne + if + global.get $~lib/memory/__stack_pointer + local.get $result + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $value + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=16 + local.get $8 + call $~lib/array/Array#toString + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=12 + local.get $8 + call $~lib/string/String.__concat + local.tee $result + i32.store offset=8 + end + local.get $result + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + return + ) + (func $~lib/array/Array<~lib/array/Array>#join (param $this i32) (param $separator i32) (result i32) + (local $ptr i32) + (local $len 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/array/Array<~lib/array/Array>#get:dataStart + local.set $ptr + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/array/Array<~lib/array/Array>#get:length_ + local.set $len + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.lt_s + drop + i32.const 0 + drop + i32.const 1 + drop + local.get $ptr + local.get $len + local.get $separator + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/util/string/joinReferenceArray<~lib/array/Array> + 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/array/Array<~lib/array/Array>#toString (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 - call $~lib/array/Array#join + i32.store + local.get $1 + i32.const 10832 + call $~lib/array/Array<~lib/array/Array>#join 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/util/string/joinReferenceArray<~lib/array/Array> (param $dataStart i32) (param $length i32) (param $separator i32) (result i32) - (local $lastIndex i32) - (local $value i32) - (local $result i32) - (local $sepLen i32) - (local $i i32) - (local $8 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 - local.get $length - i32.const 1 - i32.sub - local.set $lastIndex - local.get $lastIndex - i32.const 0 - i32.lt_s - if - i32.const 10544 - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - return - end - local.get $lastIndex - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $dataStart - i32.load - local.tee $value - i32.store - local.get $value - i32.const 0 - i32.ne - if (result i32) - local.get $value - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $~lib/array/Array#toString - else - i32.const 10544 - end - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - return - end - global.get $~lib/memory/__stack_pointer - i32.const 10544 - local.tee $result - i32.store offset=8 - local.get $separator - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $~lib/string/String#get:length - local.set $sepLen - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $lastIndex - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $dataStart - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $value - i32.store - local.get $value - i32.const 0 - i32.ne - if - global.get $~lib/memory/__stack_pointer - local.get $result - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - local.get $value - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=16 - local.get $8 - call $~lib/array/Array#toString - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $8 - call $~lib/string/String.__concat - local.tee $result - i32.store offset=8 - end - local.get $sepLen - if - global.get $~lib/memory/__stack_pointer - local.get $result - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - local.get $separator - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $8 - call $~lib/string/String.__concat - local.tee $result - i32.store offset=8 - end - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $dataStart - local.get $lastIndex - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $value - i32.store - local.get $value - i32.const 0 - i32.ne - if - global.get $~lib/memory/__stack_pointer - local.get $result - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - local.get $value - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=16 - local.get $8 - call $~lib/array/Array#toString - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $8 - call $~lib/string/String.__concat - local.tee $result - i32.store offset=8 - end - local.get $result - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - return - ) - (func $~lib/array/Array<~lib/array/Array>#join (param $this i32) (param $separator i32) (result i32) - (local $ptr i32) - (local $len 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/array/Array<~lib/array/Array>#get:dataStart - local.set $ptr - local.get $this - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - call $~lib/array/Array<~lib/array/Array>#get:length_ - local.set $len - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - i32.const 1 - i32.lt_s - drop - i32.const 0 - drop - i32.const 1 - drop - local.get $ptr - local.get $len - local.get $separator - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - call $~lib/util/string/joinReferenceArray<~lib/array/Array> - 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/array/Array<~lib/array/Array>#toString (param $this i32) (result 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 - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.const 10832 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/array/Array<~lib/array/Array>#join - 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/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> (param $dataStart i32) (param $length i32) (param $separator i32) (result i32) + (func $~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> (param $dataStart i32) (param $length i32) (param $separator i32) (result i32) (local $lastIndex i32) (local $value i32) (local $result i32) @@ -32910,13 +32463,13 @@ (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#toString (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 - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -32924,15 +32477,10 @@ i32.store local.get $1 i32.const 10832 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#join 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 @@ -33445,23 +32993,24 @@ (local $i i32) (local $6 i32) (local $7 i32) + (local $8 i32) (local $result i32) - (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 + i32.const 24 memory.fill local.get $this - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store - local.get $9 + local.get $10 call $~lib/array/Array<~lib/array/Array>#get:length_ local.set $len global.get $~lib/memory/__stack_pointer @@ -33473,11 +33022,11 @@ local.tee $out i32.store offset=4 local.get $out - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store - local.get $9 + local.get $10 call $~lib/array/Array<~lib/array/Array>#get:dataStart local.set $outStart i32.const 0 @@ -33487,11 +33036,11 @@ local.get $len local.tee $6 local.get $this - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store - local.get $9 + local.get $10 call $~lib/array/Array<~lib/array/Array>#get:length_ local.tee $7 local.get $6 @@ -33501,37 +33050,41 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $fn + local.tee $8 + i32.store offset=8 local.get $this - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=12 - local.get $9 + local.get $10 + i32.store offset=16 + local.get $10 call $~lib/array/Array<~lib/array/Array>#get:dataStart local.get $i i32.const 2 i32.shl i32.add i32.load - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store - local.get $9 + local.get $10 local.get $i local.get $this - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 + local.get $10 + i32.store offset=12 + local.get $10 i32.const 3 global.set $~argumentsLength - local.get $fn + local.get $8 i32.load call_indirect (type $3) local.tee $result - i32.store offset=16 + i32.store offset=20 local.get $outStart local.get $i i32.const 2 @@ -33553,12 +33106,12 @@ end end local.get $out - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $10 return ) (func $start:std/array @@ -33859,196 +33412,14 @@ (local $294 i32) (local $295 i32) (local $296 i32) - (local $297 i32) - (local $298 i32) - (local $299 i32) - (local $300 i32) - (local $301 i32) - (local $302 i32) - (local $303 i32) - (local $304 i32) - (local $305 i32) - (local $306 i32) - (local $307 i32) - (local $308 i32) - (local $309 i32) - (local $310 i32) - (local $311 i32) - (local $312 i32) - (local $313 i32) - (local $314 i32) - (local $315 i32) - (local $316 i32) - (local $317 i32) - (local $318 i32) - (local $319 i32) - (local $320 i32) - (local $321 i32) - (local $322 i32) - (local $323 i32) - (local $324 i32) - (local $325 i32) - (local $326 i32) - (local $327 i32) - (local $328 i32) - (local $329 i32) - (local $330 i32) - (local $331 i32) - (local $332 i32) - (local $333 i32) - (local $334 i32) - (local $335 i32) - (local $336 i32) - (local $337 i32) - (local $338 i32) - (local $339 i32) - (local $340 i32) - (local $341 i32) - (local $342 i32) - (local $343 i32) - (local $344 i32) - (local $345 i32) - (local $346 i32) - (local $347 i32) - (local $348 i32) - (local $349 i32) - (local $350 i32) - (local $351 i32) - (local $352 i32) - (local $353 i32) - (local $354 i32) - (local $355 i32) - (local $356 i32) - (local $357 i32) - (local $358 i32) - (local $359 i32) - (local $360 i32) - (local $361 i32) - (local $362 i32) - (local $363 i32) - (local $364 i32) - (local $365 i32) - (local $366 i32) - (local $367 i32) - (local $368 i32) - (local $369 i32) - (local $370 i32) - (local $371 i32) - (local $372 i32) - (local $373 i32) - (local $374 i32) - (local $375 i32) - (local $376 i32) - (local $377 i32) - (local $378 i32) - (local $379 i32) - (local $380 i32) - (local $381 i32) - (local $382 i32) - (local $383 i32) - (local $384 i32) - (local $385 i32) - (local $386 i32) - (local $387 i32) - (local $388 i32) - (local $389 i32) - (local $390 i32) - (local $391 i32) - (local $392 i32) - (local $393 i32) - (local $394 i32) - (local $395 i32) - (local $396 i32) - (local $397 i32) - (local $398 i32) - (local $399 i32) - (local $400 i32) - (local $401 i32) - (local $402 i32) - (local $403 i32) - (local $404 i32) - (local $405 i32) - (local $406 i32) - (local $407 i32) - (local $408 i32) - (local $409 i32) - (local $410 i32) - (local $411 i32) - (local $412 i32) - (local $413 i32) - (local $414 i32) - (local $415 i32) - (local $416 i32) - (local $417 i32) - (local $418 i32) - (local $419 i32) - (local $420 i32) - (local $421 i32) - (local $422 i32) - (local $423 i32) - (local $424 i32) - (local $425 i32) - (local $426 i32) - (local $427 i32) - (local $428 i32) - (local $429 i32) - (local $430 i32) - (local $431 i32) - (local $432 i32) - (local $433 i32) - (local $434 i32) - (local $435 i32) - (local $436 i32) - (local $437 i32) - (local $438 i32) - (local $439 i32) - (local $440 i32) - (local $441 i32) - (local $442 i32) - (local $443 i32) - (local $444 i32) - (local $445 i32) - (local $446 i32) - (local $447 i32) - (local $448 i32) - (local $449 i32) - (local $450 i32) - (local $451 i32) - (local $452 i32) - (local $453 i32) - (local $454 i32) - (local $455 i32) - (local $456 i32) - (local $457 i32) - (local $458 i32) - (local $459 i32) - (local $460 i32) - (local $461 i32) - (local $462 i32) - (local $463 i32) - (local $464 i32) - (local $465 i32) - (local $466 i32) - (local $467 i32) - (local $468 i32) - (local $469 i32) - (local $470 i32) - (local $471 i32) - (local $472 i32) - (local $473 i32) - (local $474 i32) - (local $475 i32) - (local $476 i32) - (local $477 i32) - (local $478 i32) - global.get $~lib/memory/__stack_pointer - i32.const 508 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 508 + global.get $~lib/memory/__stack_pointer + i32.const 444 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 444 memory.fill i32.const 0 i32.const 0 @@ -34098,11 +33469,11 @@ i32.const 0 i32.const 0 call $std/array/Ref#constructor - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array.isArray i32.eqz i32.eqz @@ -34117,11 +33488,11 @@ i32.const 0 i32.const 1 call $~lib/typedarray/Uint8Array#constructor - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array.isArray<~lib/typedarray/Uint8Array> i32.eqz i32.eqz @@ -34146,11 +33517,6 @@ unreachable end i32.const 640 - local.set $478 - global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store - local.get $478 call $~lib/array/Array.isArray<~lib/string/String> i32.eqz i32.eqz @@ -34163,11 +33529,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array.isArray<~lib/array/Array> i32.eqz if @@ -34184,35 +33550,35 @@ i32.const 7 i32.const 672 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $2 - local.set $478 + local.get $1 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 i32.const 1 i32.const 3 call $~lib/array/Array#fill drop - local.get $2 - local.set $478 + local.get $1 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 0 i32.const 7 i32.const 704 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -34224,12 +33590,12 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.set $478 + local.get $1 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 i32.const 0 i32.const 1 @@ -34237,22 +33603,22 @@ i32.const 0 call $~lib/array/Array#fill@varargs drop - local.get $2 - local.set $478 + local.get $1 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 0 i32.const 7 i32.const 736 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -34264,33 +33630,33 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.set $478 + local.get $1 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 i32.const 0 i32.const -3 call $~lib/array/Array#fill drop - local.get $2 - local.set $478 + local.get $1 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 0 i32.const 7 i32.const 768 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -34302,12 +33668,12 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.set $478 + local.get $1 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 i32.const -2 i32.const 2 @@ -34315,22 +33681,22 @@ i32.const 0 call $~lib/array/Array#fill@varargs drop - local.get $2 - local.set $478 + local.get $1 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 0 i32.const 7 i32.const 800 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -34342,33 +33708,33 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.set $478 + local.get $1 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 i32.const 1 i32.const 0 call $~lib/array/Array#fill drop - local.get $2 - local.set $478 + local.get $1 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 0 i32.const 7 i32.const 832 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -34380,12 +33746,12 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.set $478 + local.get $1 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const -1 i32.const 0 i32.const 1 @@ -34393,22 +33759,22 @@ i32.const 0 call $~lib/array/Array#fill@varargs drop - local.get $2 - local.set $478 + local.get $1 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 0 i32.const 7 i32.const 864 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -34426,35 +33792,35 @@ i32.const 8 i32.const 896 call $~lib/rt/__newArray - local.tee $17 + local.tee $9 i32.store offset=12 - local.get $17 - local.set $478 + local.get $9 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 i32.const 1 i32.const 3 call $~lib/array/Array#fill drop - local.get $17 - local.set $478 + local.get $9 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 8 i32.const 944 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -34466,12 +33832,12 @@ call $~lib/builtins/abort unreachable end - local.get $17 - local.set $478 + local.get $9 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 i32.const 0 i32.const 1 @@ -34479,22 +33845,22 @@ i32.const 0 call $~lib/array/Array#fill@varargs drop - local.get $17 - local.set $478 + local.get $9 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 8 i32.const 992 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -34506,33 +33872,33 @@ call $~lib/builtins/abort unreachable end - local.get $17 - local.set $478 + local.get $9 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 i32.const 0 i32.const -3 call $~lib/array/Array#fill drop - local.get $17 - local.set $478 + local.get $9 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 8 i32.const 1040 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -34544,12 +33910,12 @@ call $~lib/builtins/abort unreachable end - local.get $17 - local.set $478 + local.get $9 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 i32.const -2 i32.const 2 @@ -34557,22 +33923,22 @@ i32.const 0 call $~lib/array/Array#fill@varargs drop - local.get $17 - local.set $478 + local.get $9 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 8 i32.const 1088 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -34584,33 +33950,33 @@ call $~lib/builtins/abort unreachable end - local.get $17 - local.set $478 + local.get $9 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 i32.const 1 i32.const 0 call $~lib/array/Array#fill drop - local.get $17 - local.set $478 + local.get $9 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 8 i32.const 1136 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -34622,12 +33988,12 @@ call $~lib/builtins/abort unreachable end - local.get $17 - local.set $478 + local.get $9 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const -1 i32.const 0 i32.const 1 @@ -34635,22 +34001,22 @@ i32.const 0 call $~lib/array/Array#fill@varargs drop - local.get $17 - local.set $478 + local.get $9 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 8 i32.const 1184 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -34668,35 +34034,35 @@ i32.const 9 i32.const 1232 call $~lib/rt/__newArray - local.tee $32 + local.tee $17 i32.store offset=16 - local.get $32 - local.set $478 + local.get $17 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 f32.const 1 i32.const 1 i32.const 3 call $~lib/array/Array#fill drop - local.get $32 - local.set $478 + local.get $17 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 9 i32.const 1280 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -34708,12 +34074,12 @@ call $~lib/builtins/abort unreachable end - local.get $32 - local.set $478 + local.get $17 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 f32.const 0 i32.const 0 i32.const 1 @@ -34721,22 +34087,22 @@ i32.const 0 call $~lib/array/Array#fill@varargs drop - local.get $32 - local.set $478 + local.get $17 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 9 i32.const 1328 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -34748,33 +34114,33 @@ call $~lib/builtins/abort unreachable end - local.get $32 - local.set $478 + local.get $17 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 f32.const 1 i32.const 0 i32.const -3 call $~lib/array/Array#fill drop - local.get $32 - local.set $478 + local.get $17 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 9 i32.const 1376 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -34786,12 +34152,12 @@ call $~lib/builtins/abort unreachable end - local.get $32 - local.set $478 + local.get $17 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 f32.const 2 i32.const -2 i32.const 2 @@ -34799,22 +34165,22 @@ i32.const 0 call $~lib/array/Array#fill@varargs drop - local.get $32 - local.set $478 + local.get $17 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 9 i32.const 1424 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -34826,33 +34192,33 @@ call $~lib/builtins/abort unreachable end - local.get $32 - local.set $478 + local.get $17 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 f32.const 0 i32.const 1 i32.const 0 call $~lib/array/Array#fill drop - local.get $32 - local.set $478 + local.get $17 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 9 i32.const 1472 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -34864,12 +34230,12 @@ call $~lib/builtins/abort unreachable end - local.get $32 - local.set $478 + local.get $17 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 f32.const -1 i32.const 0 i32.const 1 @@ -34877,22 +34243,22 @@ i32.const 0 call $~lib/array/Array#fill@varargs drop - local.get $32 - local.set $478 + local.get $17 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 9 i32.const 1520 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -34904,12 +34270,12 @@ call $~lib/builtins/abort unreachable end - local.get $32 - local.set $478 + local.get $17 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 f32.const -0 i32.const 0 i32.const 1 @@ -34917,22 +34283,22 @@ i32.const 0 call $~lib/array/Array#fill@varargs drop - local.get $32 - local.set $478 + local.get $17 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 9 i32.const 1568 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -34945,11 +34311,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 0 i32.eq @@ -34963,11 +34329,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/internalCapacity i32.const 8 i32.eq @@ -34981,20 +34347,20 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 42 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -35009,11 +34375,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 1 i32.eq @@ -35027,11 +34393,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/internalCapacity i32.const 8 i32.eq @@ -35045,14 +34411,14 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop - local.set $47 - local.get $47 + local.set $25 + local.get $25 i32.const 42 i32.eq i32.eqz @@ -35065,11 +34431,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 0 i32.eq @@ -35083,11 +34449,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/internalCapacity i32.const 8 i32.eq @@ -35101,20 +34467,20 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 43 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 1 i32.eq @@ -35128,11 +34494,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/internalCapacity i32.const 8 i32.eq @@ -35146,11 +34512,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -35165,20 +34531,20 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 44 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -35192,11 +34558,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/internalCapacity i32.const 8 i32.eq @@ -35210,11 +34576,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -35229,11 +34595,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -35248,20 +34614,20 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 45 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 3 i32.eq @@ -35275,11 +34641,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/internalCapacity i32.const 8 i32.eq @@ -35293,11 +34659,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -35312,11 +34678,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -35331,11 +34697,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -35356,42 +34722,37 @@ i32.const 10 i32.const 0 call $~lib/rt/__newArray - local.tee $48 + local.tee $26 i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $48 - i32.load offset=4 - local.tee $49 - i32.store offset=24 - local.get $48 + local.get $26 i32.const 0 i32.const 0 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $48 + local.get $26 i32.const 1 i32.const 0 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $48 - local.tee $50 - i32.store offset=28 - local.get $50 - local.set $478 + local.get $26 + local.tee $27 + i32.store offset=24 + local.get $27 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#set:length - local.get $50 - local.set $478 + local.get $27 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 0 i32.eq @@ -35410,14 +34771,14 @@ i32.const 4 i32.const 1664 call $~lib/rt/__newArray - local.tee $53 - i32.store offset=32 - local.get $53 - local.set $478 + local.tee $29 + i32.store offset=28 + local.get $29 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#at i32.const 1 @@ -35431,12 +34792,12 @@ call $~lib/builtins/abort unreachable end - local.get $53 - local.set $478 + local.get $29 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 3 call $~lib/array/Array#at i32.const 4 @@ -35450,12 +34811,12 @@ call $~lib/builtins/abort unreachable end - local.get $53 - local.set $478 + local.get $29 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const -1 call $~lib/array/Array#at i32.const 4 @@ -35469,12 +34830,12 @@ call $~lib/builtins/abort unreachable end - local.get $53 - local.set $478 + local.get $29 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const -4 call $~lib/array/Array#at i32.const 1 @@ -35492,30 +34853,30 @@ i32.const 0 i32.const 0 call $~lib/array/Array#constructor - local.tee $54 - i32.store offset=36 + local.tee $30 + i32.store offset=32 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 - local.get $54 - local.set $478 + local.get $296 + local.get $30 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#concat - local.tee $55 - i32.store offset=40 + local.tee $31 + i32.store offset=36 global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/internalCapacity i32.const 8 i32.eq @@ -35529,11 +34890,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 3 i32.eq @@ -35546,12 +34907,12 @@ call $~lib/builtins/abort unreachable end - local.get $55 - local.set $478 + local.get $31 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 3 i32.eq @@ -35564,30 +34925,30 @@ call $~lib/builtins/abort unreachable end - local.get $55 - local.set $478 + local.get $31 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 i32.const 2 i32.const 4 i32.const 1712 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#concat drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/internalCapacity i32.const 8 i32.eq @@ -35600,12 +34961,12 @@ call $~lib/builtins/abort unreachable end - local.get $55 - local.set $478 + local.get $31 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -35619,12 +34980,12 @@ call $~lib/builtins/abort unreachable end - local.get $55 - local.set $478 + local.get $31 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -35638,12 +34999,12 @@ call $~lib/builtins/abort unreachable end - local.get $55 - local.set $478 + local.get $31 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -35657,46 +35018,46 @@ call $~lib/builtins/abort unreachable end - local.get $54 - local.set $478 + local.get $30 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 46 call $~lib/array/Array#push drop - local.get $54 - local.set $478 + local.get $30 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 47 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 - local.get $54 - local.set $478 + local.get $296 + local.get $30 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#concat - local.tee $55 - i32.store offset=40 + local.tee $31 + i32.store offset=36 global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/internalCapacity i32.const 8 i32.eq @@ -35709,12 +35070,12 @@ call $~lib/builtins/abort unreachable end - local.get $54 - local.set $478 + local.get $30 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -35727,12 +35088,12 @@ call $~lib/builtins/abort unreachable end - local.get $55 - local.set $478 + local.get $31 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 5 i32.eq @@ -35745,12 +35106,12 @@ call $~lib/builtins/abort unreachable end - local.get $55 - local.set $478 + local.get $31 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -35764,12 +35125,12 @@ call $~lib/builtins/abort unreachable end - local.get $55 - local.set $478 + local.get $31 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -35783,12 +35144,12 @@ call $~lib/builtins/abort unreachable end - local.get $55 - local.set $478 + local.get $31 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -35802,12 +35163,12 @@ call $~lib/builtins/abort unreachable end - local.get $55 - local.set $478 + local.get $31 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 3 call $~lib/array/Array#__get i32.const 46 @@ -35821,12 +35182,12 @@ call $~lib/builtins/abort unreachable end - local.get $55 - local.set $478 + local.get $31 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 4 call $~lib/array/Array#__get i32.const 47 @@ -35840,20 +35201,20 @@ call $~lib/builtins/abort unreachable end - local.get $55 - local.set $478 + local.get $31 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop - local.get $55 - local.set $478 + local.get $31 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 4 i32.eq @@ -35872,14 +35233,14 @@ i32.const 4 i32.const 1744 call $~lib/rt/__newArray - local.tee $60 - i32.store offset=44 - local.get $60 - local.set $478 + local.tee $34 + i32.store offset=40 + local.get $34 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 0 i32.eq @@ -35893,27 +35254,27 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $60 - local.set $478 + local.get $34 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#concat - local.tee $55 - i32.store offset=40 - local.get $55 - local.set $478 + local.tee $31 + i32.store offset=36 + local.get $31 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 3 i32.eq @@ -35926,12 +35287,12 @@ call $~lib/builtins/abort unreachable end - local.get $60 - local.set $478 + local.get $34 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 0 i32.eq @@ -35950,35 +35311,35 @@ i32.const 4 i32.const 1776 call $~lib/rt/__newArray - local.tee $63 - i32.store offset=48 - local.get $63 - local.set $478 + local.tee $36 + i32.store offset=44 + local.get $36 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const 0 i32.const 3 i32.const 2 global.set $~argumentsLength i32.const 0 call $~lib/array/Array#copyWithin@varargs - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 4 i32.const 1824 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -35996,35 +35357,35 @@ i32.const 4 i32.const 1872 call $~lib/rt/__newArray - local.tee $63 - i32.store offset=48 - local.get $63 - local.set $478 + local.tee $36 + i32.store offset=44 + local.get $36 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const 1 i32.const 3 i32.const 2 global.set $~argumentsLength i32.const 0 call $~lib/array/Array#copyWithin@varargs - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 4 i32.const 1920 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -36042,35 +35403,35 @@ i32.const 4 i32.const 1968 call $~lib/rt/__newArray - local.tee $63 - i32.store offset=48 - local.get $63 - local.set $478 + local.tee $36 + i32.store offset=44 + local.get $36 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const 1 i32.const 2 i32.const 2 global.set $~argumentsLength i32.const 0 call $~lib/array/Array#copyWithin@varargs - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 4 i32.const 2016 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -36088,35 +35449,35 @@ i32.const 4 i32.const 2064 call $~lib/rt/__newArray - local.tee $63 - i32.store offset=48 - local.get $63 - local.set $478 + local.tee $36 + i32.store offset=44 + local.get $36 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const 2 i32.const 2 i32.const 2 global.set $~argumentsLength i32.const 0 call $~lib/array/Array#copyWithin@varargs - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 4 i32.const 2112 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -36134,33 +35495,33 @@ i32.const 4 i32.const 2160 call $~lib/rt/__newArray - local.tee $63 - i32.store offset=48 - local.get $63 - local.set $478 + local.tee $36 + i32.store offset=44 + local.get $36 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const 0 i32.const 3 i32.const 4 call $~lib/array/Array#copyWithin - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 4 i32.const 2208 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -36178,33 +35539,33 @@ i32.const 4 i32.const 2256 call $~lib/rt/__newArray - local.tee $63 - i32.store offset=48 - local.get $63 - local.set $478 + local.tee $36 + i32.store offset=44 + local.get $36 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const 1 i32.const 3 i32.const 4 call $~lib/array/Array#copyWithin - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 4 i32.const 2304 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -36222,33 +35583,33 @@ i32.const 4 i32.const 2352 call $~lib/rt/__newArray - local.tee $63 - i32.store offset=48 - local.get $63 - local.set $478 + local.tee $36 + i32.store offset=44 + local.get $36 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const 1 i32.const 2 i32.const 4 call $~lib/array/Array#copyWithin - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 4 i32.const 2400 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -36266,35 +35627,35 @@ i32.const 4 i32.const 2448 call $~lib/rt/__newArray - local.tee $63 - i32.store offset=48 - local.get $63 - local.set $478 + local.tee $36 + i32.store offset=44 + local.get $36 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const 0 i32.const -2 i32.const 2 global.set $~argumentsLength i32.const 0 call $~lib/array/Array#copyWithin@varargs - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 4 i32.const 2496 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -36312,33 +35673,33 @@ i32.const 4 i32.const 2544 call $~lib/rt/__newArray - local.tee $63 - i32.store offset=48 - local.get $63 - local.set $478 + local.tee $36 + i32.store offset=44 + local.get $36 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const 0 i32.const -2 i32.const -1 call $~lib/array/Array#copyWithin - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 4 i32.const 2592 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -36356,33 +35717,33 @@ i32.const 4 i32.const 2640 call $~lib/rt/__newArray - local.tee $63 - i32.store offset=48 - local.get $63 - local.set $478 + local.tee $36 + i32.store offset=44 + local.get $36 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const -4 i32.const -3 i32.const -2 call $~lib/array/Array#copyWithin - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 4 i32.const 2688 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -36400,33 +35761,33 @@ i32.const 4 i32.const 2736 call $~lib/rt/__newArray - local.tee $63 - i32.store offset=48 - local.get $63 - local.set $478 + local.tee $36 + i32.store offset=44 + local.get $36 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const -4 i32.const -3 i32.const -1 call $~lib/array/Array#copyWithin - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 4 i32.const 2784 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -36444,35 +35805,35 @@ i32.const 4 i32.const 2832 call $~lib/rt/__newArray - local.tee $63 - i32.store offset=48 - local.get $63 - local.set $478 + local.tee $36 + i32.store offset=44 + local.get $36 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const -4 i32.const -3 i32.const 2 global.set $~argumentsLength i32.const 0 call $~lib/array/Array#copyWithin@varargs - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 4 i32.const 2880 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -36485,20 +35846,20 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 42 call $~lib/array/Array#unshift drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 4 i32.eq @@ -36512,11 +35873,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/internalCapacity i32.const 8 i32.eq @@ -36530,11 +35891,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -36549,11 +35910,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -36568,11 +35929,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -36587,11 +35948,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 3 call $~lib/array/Array#__get i32.const 45 @@ -36606,20 +35967,20 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 41 call $~lib/array/Array#unshift drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 5 i32.eq @@ -36633,11 +35994,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/internalCapacity i32.const 8 i32.eq @@ -36651,11 +36012,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#__get i32.const 41 @@ -36670,11 +36031,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 call $~lib/array/Array#__get i32.const 42 @@ -36689,11 +36050,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 call $~lib/array/Array#__get i32.const 43 @@ -36708,11 +36069,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 3 call $~lib/array/Array#__get i32.const 44 @@ -36727,11 +36088,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 4 call $~lib/array/Array#__get i32.const 45 @@ -36746,11 +36107,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#shift global.set $std/array/i global.get $std/array/i @@ -36766,11 +36127,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 4 i32.eq @@ -36784,11 +36145,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/internalCapacity i32.const 8 i32.eq @@ -36802,11 +36163,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -36821,11 +36182,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -36840,11 +36201,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -36859,11 +36220,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 3 call $~lib/array/Array#__get i32.const 45 @@ -36878,11 +36239,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop global.set $std/array/i global.get $std/array/i @@ -36898,11 +36259,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 3 i32.eq @@ -36916,11 +36277,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/internalCapacity i32.const 8 i32.eq @@ -36934,11 +36295,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -36953,11 +36314,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -36972,11 +36333,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -36996,38 +36357,38 @@ i32.const 4 i32.const 2928 call $~lib/rt/__newArray - local.tee $113 - i32.store offset=56 + local.tee $62 + i32.store offset=52 global.get $~lib/memory/__stack_pointer - local.get $113 - local.set $478 + local.get $62 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/array/Array#slice@varargs - local.tee $110 - i32.store offset=60 - local.get $110 - local.set $478 + local.tee $60 + i32.store offset=56 + local.get $60 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 3 i32.const 2 i32.const 4 i32.const 2976 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -37040,33 +36401,33 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $113 - local.set $478 + local.get $62 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 i32.const 4 call $~lib/array/Array#slice - local.tee $110 - i32.store offset=60 - local.get $110 - local.set $478 + local.tee $60 + i32.store offset=56 + local.get $60 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 i32.const 2 i32.const 4 i32.const 3008 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -37079,33 +36440,33 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $113 - local.set $478 + local.get $62 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 i32.const 5 call $~lib/array/Array#slice - local.tee $110 - i32.store offset=60 - local.get $110 - local.set $478 + local.tee $60 + i32.store offset=56 + local.get $60 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 4 i32.const 2 i32.const 4 i32.const 3040 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -37118,31 +36479,31 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $113 - local.set $478 + local.get $62 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 i32.const 0 global.set $~argumentsLength i32.const 0 call $~lib/array/Array#slice@varargs - local.tee $110 - i32.store offset=60 - local.get $110 - local.set $478 + local.tee $60 + i32.store offset=56 + local.get $60 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 - local.get $113 - local.set $478 + local.get $296 + local.get $62 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -37155,35 +36516,35 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $113 - local.set $478 + local.get $62 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const -2 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/array/Array#slice@varargs - local.tee $110 - i32.store offset=60 - local.get $110 - local.set $478 + local.tee $60 + i32.store offset=56 + local.get $60 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 i32.const 2 i32.const 4 i32.const 3088 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -37196,33 +36557,33 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $113 - local.set $478 + local.get $62 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 i32.const -1 call $~lib/array/Array#slice - local.tee $110 - i32.store offset=60 - local.get $110 - local.set $478 + local.tee $60 + i32.store offset=56 + local.get $60 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 i32.const 2 i32.const 4 i32.const 3120 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -37235,33 +36596,33 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $113 - local.set $478 + local.get $62 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const -3 i32.const -1 call $~lib/array/Array#slice - local.tee $110 - i32.store offset=60 - local.get $110 - local.set $478 + local.tee $60 + i32.store offset=56 + local.get $60 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 i32.const 2 i32.const 4 i32.const 3152 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -37273,20 +36634,20 @@ call $~lib/builtins/abort unreachable end - local.get $113 - local.set $478 + local.get $62 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const -1 i32.const -3 call $~lib/array/Array#slice - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 0 i32.eq @@ -37299,22 +36660,22 @@ call $~lib/builtins/abort unreachable end - local.get $113 - local.set $478 + local.get $62 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 10 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/array/Array#slice@varargs - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 0 i32.eq @@ -37328,19 +36689,19 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#reverse drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 3 i32.eq @@ -37354,11 +36715,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/internalCapacity i32.const 8 i32.eq @@ -37372,11 +36733,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#__get i32.const 44 @@ -37391,11 +36752,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -37410,11 +36771,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 call $~lib/array/Array#__get i32.const 42 @@ -37429,20 +36790,20 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 43 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 44 call $~lib/array/Array#push drop @@ -37452,45 +36813,45 @@ i32.const 7 i32.const 3184 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#reverse - local.tee $128 - i32.store offset=64 + local.tee $70 + i32.store offset=60 i32.const 0 - local.set $129 - local.get $128 - local.set $478 + local.set $71 + local.get $70 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length - local.set $130 + local.set $72 loop $for-loop|0 - local.get $129 - local.get $130 + local.get $71 + local.get $72 i32.lt_s if - local.get $128 - local.set $478 + local.get $70 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 - local.get $129 + local.get $296 + local.get $71 call $~lib/array/Array#__get - local.get $128 - local.set $478 + local.get $70 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length - local.get $129 + local.get $71 i32.sub i32.const 1 i32.sub @@ -37504,10 +36865,10 @@ call $~lib/builtins/abort unreachable end - local.get $129 + local.get $71 i32.const 1 i32.add - local.set $129 + local.set $71 br $for-loop|0 end end @@ -37517,45 +36878,45 @@ i32.const 7 i32.const 3216 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#reverse - local.tee $133 - i32.store offset=68 + local.tee $74 + i32.store offset=64 i32.const 0 - local.set $134 - local.get $133 - local.set $478 + local.set $75 + local.get $74 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length - local.set $135 + local.set $76 loop $for-loop|1 - local.get $134 - local.get $135 + local.get $75 + local.get $76 i32.lt_s if - local.get $133 - local.set $478 + local.get $74 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 - local.get $134 + local.get $296 + local.get $75 call $~lib/array/Array#__get - local.get $133 - local.set $478 + local.get $74 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length - local.get $134 + local.get $75 i32.sub i32.const 1 i32.sub @@ -37569,10 +36930,10 @@ call $~lib/builtins/abort unreachable end - local.get $134 + local.get $75 i32.const 1 i32.add - local.set $134 + local.set $75 br $for-loop|1 end end @@ -37582,45 +36943,45 @@ i32.const 7 i32.const 3248 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#reverse - local.tee $138 - i32.store offset=72 + local.tee $78 + i32.store offset=68 i32.const 0 - local.set $139 - local.get $138 - local.set $478 + local.set $79 + local.get $78 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length - local.set $140 + local.set $80 loop $for-loop|2 - local.get $139 - local.get $140 + local.get $79 + local.get $80 i32.lt_s if - local.get $138 - local.set $478 + local.get $78 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 - local.get $139 + local.get $296 + local.get $79 call $~lib/array/Array#__get - local.get $138 - local.set $478 + local.get $78 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length - local.get $139 + local.get $79 i32.sub i32.const 1 i32.sub @@ -37634,10 +36995,10 @@ call $~lib/builtins/abort unreachable end - local.get $139 + local.get $79 i32.const 1 i32.add - local.set $139 + local.set $79 br $for-loop|2 end end @@ -37647,45 +37008,45 @@ i32.const 11 i32.const 3296 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#reverse - local.tee $143 - i32.store offset=76 + local.tee $82 + i32.store offset=72 i32.const 0 - local.set $144 - local.get $143 - local.set $478 + local.set $83 + local.get $82 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length - local.set $145 + local.set $84 loop $for-loop|3 - local.get $144 - local.get $145 + local.get $83 + local.get $84 i32.lt_s if - local.get $143 - local.set $478 + local.get $82 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 - local.get $144 + local.get $296 + local.get $83 call $~lib/array/Array#__get - local.get $143 - local.set $478 + local.get $82 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length - local.get $144 + local.get $83 i32.sub i32.const 1 i32.sub @@ -37699,10 +37060,10 @@ call $~lib/builtins/abort unreachable end - local.get $144 + local.get $83 i32.const 1 i32.add - local.set $144 + local.set $83 br $for-loop|3 end end @@ -37712,45 +37073,45 @@ i32.const 11 i32.const 3344 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#reverse - local.tee $148 - i32.store offset=80 + local.tee $86 + i32.store offset=76 i32.const 0 - local.set $149 - local.get $148 - local.set $478 + local.set $87 + local.get $86 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length - local.set $150 + local.set $88 loop $for-loop|4 - local.get $149 - local.get $150 + local.get $87 + local.get $88 i32.lt_s if - local.get $148 - local.set $478 + local.get $86 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 - local.get $149 + local.get $296 + local.get $87 call $~lib/array/Array#__get - local.get $148 - local.set $478 + local.get $86 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length - local.get $149 + local.get $87 i32.sub i32.const 1 i32.sub @@ -37764,10 +37125,10 @@ call $~lib/builtins/abort unreachable end - local.get $149 + local.get $87 i32.const 1 i32.add - local.set $149 + local.set $87 br $for-loop|4 end end @@ -37777,45 +37138,45 @@ i32.const 11 i32.const 3392 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#reverse - local.tee $153 - i32.store offset=84 + local.tee $90 + i32.store offset=80 i32.const 0 - local.set $154 - local.get $153 - local.set $478 + local.set $91 + local.get $90 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length - local.set $155 + local.set $92 loop $for-loop|5 - local.get $154 - local.get $155 + local.get $91 + local.get $92 i32.lt_s if - local.get $153 - local.set $478 + local.get $90 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 - local.get $154 + local.get $296 + local.get $91 call $~lib/array/Array#__get - local.get $153 - local.set $478 + local.get $90 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length - local.get $154 + local.get $91 i32.sub i32.const 1 i32.sub @@ -37829,19 +37190,19 @@ call $~lib/builtins/abort unreachable end - local.get $154 + local.get $91 i32.const 1 i32.add - local.set $154 + local.set $91 br $for-loop|5 end end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 44 i32.const 0 call $~lib/array/Array#indexOf @@ -37859,11 +37220,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 42 i32.const 0 call $~lib/array/Array#indexOf @@ -37881,11 +37242,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 45 i32.const 0 call $~lib/array/Array#indexOf @@ -37903,11 +37264,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 43 i32.const 100 call $~lib/array/Array#indexOf @@ -37925,11 +37286,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 43 i32.const -100 call $~lib/array/Array#indexOf @@ -37947,11 +37308,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 43 i32.const -2 call $~lib/array/Array#indexOf @@ -37969,11 +37330,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 43 i32.const -4 call $~lib/array/Array#indexOf @@ -37991,11 +37352,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 43 i32.const 0 call $~lib/array/Array#indexOf @@ -38013,11 +37374,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 43 i32.const 1 call $~lib/array/Array#indexOf @@ -38035,11 +37396,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 43 i32.const 2 call $~lib/array/Array#indexOf @@ -38061,11 +37422,11 @@ i32.const 9 i32.const 3440 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 f32.const nan:0x400000 i32.const 0 call $~lib/array/Array#indexOf @@ -38085,11 +37446,11 @@ i32.const 12 i32.const 3472 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 f64.const nan:0x8000000000000 i32.const 0 call $~lib/array/Array#indexOf @@ -38110,14 +37471,14 @@ i32.const 4 i32.const 3504 call $~lib/rt/__newArray - local.tee $162 - i32.store offset=88 - local.get $162 - local.set $478 + local.tee $96 + i32.store offset=84 + local.get $96 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 i32.const 1 global.set $~argumentsLength @@ -38134,12 +37495,12 @@ call $~lib/builtins/abort unreachable end - local.get $162 - local.set $478 + local.get $96 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 7 i32.const 1 global.set $~argumentsLength @@ -38156,12 +37517,12 @@ call $~lib/builtins/abort unreachable end - local.get $162 - local.set $478 + local.get $96 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 i32.const 3 call $~lib/array/Array#lastIndexOf @@ -38176,12 +37537,12 @@ call $~lib/builtins/abort unreachable end - local.get $162 - local.set $478 + local.get $96 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 i32.const 2 call $~lib/array/Array#lastIndexOf @@ -38196,12 +37557,12 @@ call $~lib/builtins/abort unreachable end - local.get $162 - local.set $478 + local.get $96 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 i32.const -2 call $~lib/array/Array#lastIndexOf @@ -38216,12 +37577,12 @@ call $~lib/builtins/abort unreachable end - local.get $162 - local.set $478 + local.get $96 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 i32.const -1 call $~lib/array/Array#lastIndexOf @@ -38237,16 +37598,16 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 44 i32.const 0 call $~lib/array/Array#includes - local.set $163 - local.get $163 + local.set $97 + local.get $97 i32.const 1 i32.eq i32.eqz @@ -38259,16 +37620,16 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 42 i32.const 0 call $~lib/array/Array#includes - local.set $163 - local.get $163 + local.set $97 + local.get $97 i32.const 1 i32.eq i32.eqz @@ -38281,16 +37642,16 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 45 i32.const 0 call $~lib/array/Array#includes - local.set $163 - local.get $163 + local.set $97 + local.get $97 i32.const 0 i32.eq i32.eqz @@ -38303,16 +37664,16 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 43 i32.const 100 call $~lib/array/Array#includes - local.set $163 - local.get $163 + local.set $97 + local.get $97 i32.const 0 i32.eq i32.eqz @@ -38325,16 +37686,16 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 43 i32.const -100 call $~lib/array/Array#includes - local.set $163 - local.get $163 + local.set $97 + local.get $97 i32.const 1 i32.eq i32.eqz @@ -38347,16 +37708,16 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 43 i32.const -2 call $~lib/array/Array#includes - local.set $163 - local.get $163 + local.set $97 + local.get $97 i32.const 1 i32.eq i32.eqz @@ -38369,16 +37730,16 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 43 i32.const -4 call $~lib/array/Array#includes - local.set $163 - local.get $163 + local.set $97 + local.get $97 i32.const 1 i32.eq i32.eqz @@ -38391,16 +37752,16 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 43 i32.const 0 call $~lib/array/Array#includes - local.set $163 - local.get $163 + local.set $97 + local.get $97 i32.const 1 i32.eq i32.eqz @@ -38413,16 +37774,16 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 43 i32.const 1 call $~lib/array/Array#includes - local.set $163 - local.get $163 + local.set $97 + local.get $97 i32.const 1 i32.eq i32.eqz @@ -38435,16 +37796,16 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 43 i32.const 2 call $~lib/array/Array#includes - local.set $163 - local.get $163 + local.set $97 + local.get $97 i32.const 1 i32.eq i32.eqz @@ -38461,11 +37822,11 @@ i32.const 9 i32.const 3552 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 f32.const nan:0x400000 i32.const 0 call $~lib/array/Array#includes @@ -38483,11 +37844,11 @@ i32.const 12 i32.const 3584 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 f64.const nan:0x8000000000000 i32.const 0 call $~lib/array/Array#includes @@ -38501,21 +37862,21 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 i32.const 1 call $~lib/array/Array#splice drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 4 i32.eq @@ -38529,11 +37890,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/internalCapacity i32.const 8 i32.eq @@ -38547,11 +37908,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#__get i32.const 44 @@ -38566,11 +37927,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 call $~lib/array/Array#__get i32.const 42 @@ -38590,34 +37951,34 @@ i32.const 4 i32.const 3616 call $~lib/rt/__newArray - local.tee $170 - i32.store offset=92 - local.get $170 - local.set $478 + local.tee $101 + i32.store offset=88 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const 0 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/array/Array#splice@varargs - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 4 i32.const 3664 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -38629,22 +37990,22 @@ call $~lib/builtins/abort unreachable end - local.get $170 - local.set $478 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 i32.const 2 i32.const 4 i32.const 3712 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -38662,32 +38023,32 @@ i32.const 4 i32.const 3744 call $~lib/rt/__newArray - local.tee $170 - i32.store offset=92 - local.get $170 - local.set $478 + local.tee $101 + i32.store offset=88 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const 0 i32.const 0 call $~lib/array/Array#splice - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 i32.const 2 i32.const 4 i32.const 3792 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -38699,22 +38060,22 @@ call $~lib/builtins/abort unreachable end - local.get $170 - local.set $478 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 4 i32.const 3824 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -38732,34 +38093,34 @@ i32.const 4 i32.const 3872 call $~lib/rt/__newArray - local.tee $170 - i32.store offset=92 - local.get $170 - local.set $478 + local.tee $101 + i32.store offset=88 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const 2 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/array/Array#splice@varargs - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 3 i32.const 2 i32.const 4 i32.const 3920 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -38771,22 +38132,22 @@ call $~lib/builtins/abort unreachable end - local.get $170 - local.set $478 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 i32.const 2 i32.const 4 i32.const 3952 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -38804,32 +38165,32 @@ i32.const 4 i32.const 3984 call $~lib/rt/__newArray - local.tee $170 - i32.store offset=92 - local.get $170 - local.set $478 + local.tee $101 + i32.store offset=88 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const 2 i32.const 2 call $~lib/array/Array#splice - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 i32.const 2 i32.const 4 i32.const 4032 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -38841,22 +38202,22 @@ call $~lib/builtins/abort unreachable end - local.get $170 - local.set $478 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 3 i32.const 2 i32.const 4 i32.const 4064 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -38874,32 +38235,32 @@ i32.const 4 i32.const 4096 call $~lib/rt/__newArray - local.tee $170 - i32.store offset=92 - local.get $170 - local.set $478 + local.tee $101 + i32.store offset=88 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const 0 i32.const 1 call $~lib/array/Array#splice - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 i32.const 2 i32.const 4 i32.const 4144 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -38911,22 +38272,22 @@ call $~lib/builtins/abort unreachable end - local.get $170 - local.set $478 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 4 i32.const 2 i32.const 4 i32.const 4176 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -38944,34 +38305,34 @@ i32.const 4 i32.const 4224 call $~lib/rt/__newArray - local.tee $170 - i32.store offset=92 - local.get $170 - local.set $478 + local.tee $101 + i32.store offset=88 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const -1 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/array/Array#splice@varargs - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 i32.const 2 i32.const 4 i32.const 4272 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -38983,22 +38344,22 @@ call $~lib/builtins/abort unreachable end - local.get $170 - local.set $478 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 4 i32.const 2 i32.const 4 i32.const 4304 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -39016,34 +38377,34 @@ i32.const 4 i32.const 4352 call $~lib/rt/__newArray - local.tee $170 - i32.store offset=92 - local.get $170 - local.set $478 + local.tee $101 + i32.store offset=88 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const -2 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/array/Array#splice@varargs - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 i32.const 2 i32.const 4 i32.const 4400 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -39055,22 +38416,22 @@ call $~lib/builtins/abort unreachable end - local.get $170 - local.set $478 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 3 i32.const 2 i32.const 4 i32.const 4432 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -39088,32 +38449,32 @@ i32.const 4 i32.const 4464 call $~lib/rt/__newArray - local.tee $170 - i32.store offset=92 - local.get $170 - local.set $478 + local.tee $101 + i32.store offset=88 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const -2 i32.const 1 call $~lib/array/Array#splice - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 i32.const 2 i32.const 4 i32.const 4512 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -39125,22 +38486,22 @@ call $~lib/builtins/abort unreachable end - local.get $170 - local.set $478 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 4 i32.const 2 i32.const 4 i32.const 4544 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -39158,32 +38519,32 @@ i32.const 4 i32.const 4592 call $~lib/rt/__newArray - local.tee $170 - i32.store offset=92 - local.get $170 - local.set $478 + local.tee $101 + i32.store offset=88 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const -7 i32.const 1 call $~lib/array/Array#splice - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 i32.const 2 i32.const 4 i32.const 4640 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -39195,22 +38556,22 @@ call $~lib/builtins/abort unreachable end - local.get $170 - local.set $478 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 4 i32.const 2 i32.const 4 i32.const 4672 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -39228,32 +38589,32 @@ i32.const 4 i32.const 4720 call $~lib/rt/__newArray - local.tee $170 - i32.store offset=92 - local.get $170 - local.set $478 + local.tee $101 + i32.store offset=88 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const -2 i32.const -1 call $~lib/array/Array#splice - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 i32.const 2 i32.const 4 i32.const 4768 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -39265,22 +38626,22 @@ call $~lib/builtins/abort unreachable end - local.get $170 - local.set $478 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 4 i32.const 4800 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -39298,32 +38659,32 @@ i32.const 4 i32.const 4848 call $~lib/rt/__newArray - local.tee $170 - i32.store offset=92 - local.get $170 - local.set $478 + local.tee $101 + i32.store offset=88 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const 1 i32.const -2 call $~lib/array/Array#splice - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 i32.const 2 i32.const 4 i32.const 4896 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -39335,22 +38696,22 @@ call $~lib/builtins/abort unreachable end - local.get $170 - local.set $478 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 4 i32.const 4928 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -39368,32 +38729,32 @@ i32.const 4 i32.const 4976 call $~lib/rt/__newArray - local.tee $170 - i32.store offset=92 - local.get $170 - local.set $478 + local.tee $101 + i32.store offset=88 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const 4 i32.const 0 call $~lib/array/Array#splice - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 i32.const 2 i32.const 4 i32.const 5024 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -39405,22 +38766,22 @@ call $~lib/builtins/abort unreachable end - local.get $170 - local.set $478 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 4 i32.const 5056 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -39438,32 +38799,32 @@ i32.const 4 i32.const 5104 call $~lib/rt/__newArray - local.tee $170 - i32.store offset=92 - local.get $170 - local.set $478 + local.tee $101 + i32.store offset=88 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const 7 i32.const 0 call $~lib/array/Array#splice - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 i32.const 2 i32.const 4 i32.const 5152 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -39475,22 +38836,22 @@ call $~lib/builtins/abort unreachable end - local.get $170 - local.set $478 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 4 i32.const 5184 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -39508,32 +38869,32 @@ i32.const 4 i32.const 5232 call $~lib/rt/__newArray - local.tee $170 - i32.store offset=92 - local.get $170 - local.set $478 + local.tee $101 + i32.store offset=88 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const 7 i32.const 5 call $~lib/array/Array#splice - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 i32.const 2 i32.const 4 i32.const 5280 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -39545,22 +38906,22 @@ call $~lib/builtins/abort unreachable end - local.get $170 - local.set $478 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 4 i32.const 5312 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -39578,26 +38939,26 @@ i32.const 10 i32.const 5360 call $~lib/rt/__newArray - local.tee $255 - i32.store offset=96 + local.tee $144 + i32.store offset=92 global.get $~lib/memory/__stack_pointer - local.get $255 - local.set $478 + local.get $144 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 i32.const 2 call $~lib/array/Array#splice - local.tee $256 - i32.store offset=100 - local.get $256 - local.set $478 + local.tee $145 + i32.store offset=96 + local.get $145 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 0 i32.eq @@ -39610,12 +38971,12 @@ call $~lib/builtins/abort unreachable end - local.get $255 - local.set $478 + local.get $144 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 0 i32.eq @@ -39635,64 +38996,59 @@ i32.const 10 i32.const 0 call $~lib/rt/__newArray - local.tee $257 - i32.store offset=104 - global.get $~lib/memory/__stack_pointer - local.get $257 - i32.load offset=4 - local.tee $258 - i32.store offset=108 - local.get $257 + local.tee $146 + i32.store offset=100 + local.get $146 i32.const 0 i32.const 0 i32.const 1 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $257 + local.get $146 i32.const 1 i32.const 0 i32.const 2 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $257 + local.get $146 i32.const 2 i32.const 0 i32.const 3 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $257 + local.get $146 i32.const 3 i32.const 0 i32.const 4 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $257 + local.get $146 i32.const 4 i32.const 0 i32.const 5 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $257 - local.tee $255 - i32.store offset=96 + local.get $146 + local.tee $144 + i32.store offset=92 global.get $~lib/memory/__stack_pointer - local.get $255 - local.set $478 + local.get $144 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 i32.const 2 call $~lib/array/Array#splice - local.tee $256 - i32.store offset=100 - local.get $256 - local.set $478 + local.tee $145 + i32.store offset=96 + local.get $145 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -39705,19 +39061,19 @@ call $~lib/builtins/abort unreachable end - local.get $256 - local.set $478 + local.get $145 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#__get - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/Ref#get:v i32.const 3 i32.eq @@ -39730,19 +39086,19 @@ call $~lib/builtins/abort unreachable end - local.get $256 - local.set $478 + local.get $145 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 1 call $~lib/array/Array#__get - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/Ref#get:v i32.const 4 i32.eq @@ -39755,12 +39111,12 @@ call $~lib/builtins/abort unreachable end - local.get $255 - local.set $478 + local.get $144 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 3 i32.eq @@ -39773,19 +39129,19 @@ call $~lib/builtins/abort unreachable end - local.get $255 - local.set $478 + local.get $144 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#__get - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/Ref#get:v i32.const 1 i32.eq @@ -39798,19 +39154,19 @@ call $~lib/builtins/abort unreachable end - local.get $255 - local.set $478 + local.get $144 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 1 call $~lib/array/Array#__get - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/Ref#get:v i32.const 2 i32.eq @@ -39823,19 +39179,19 @@ call $~lib/builtins/abort unreachable end - local.get $255 - local.set $478 + local.get $144 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 2 call $~lib/array/Array#__get - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/Ref#get:v i32.const 5 i32.eq @@ -39855,50 +39211,45 @@ i32.const 13 i32.const 0 call $~lib/rt/__newArray - local.tee $259 - i32.store offset=112 - global.get $~lib/memory/__stack_pointer - local.get $259 - i32.load offset=4 - local.tee $260 - i32.store offset=116 - local.get $259 + local.tee $147 + i32.store offset=104 + local.get $147 i32.const 0 i32.const 0 i32.const 1 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $259 + local.get $147 i32.const 1 i32.const 0 call $~lib/array/Array#__set - local.get $259 + local.get $147 i32.const 2 i32.const 0 i32.const 2 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $259 - local.tee $261 - i32.store offset=120 + local.get $147 + local.tee $148 + i32.store offset=108 global.get $~lib/memory/__stack_pointer - local.get $261 - local.set $478 + local.get $148 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 i32.const 1 call $~lib/array/Array#splice - local.tee $262 - i32.store offset=124 - local.get $262 - local.set $478 + local.tee $149 + i32.store offset=112 + local.get $149 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 1 i32.eq @@ -39912,19 +39263,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $262 - local.set $478 + local.get $149 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#__get - local.tee $263 - i32.store offset=128 - local.get $263 + local.tee $150 + i32.store offset=116 + local.get $150 if (result i32) - local.get $263 + local.get $150 else i32.const 5520 i32.const 528 @@ -39933,11 +39284,11 @@ call $~lib/builtins/abort unreachable end - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/Ref#get:v i32.const 1 i32.eq @@ -39950,12 +39301,12 @@ call $~lib/builtins/abort unreachable end - local.get $261 - local.set $478 + local.get $148 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -39968,12 +39319,12 @@ call $~lib/builtins/abort unreachable end - local.get $261 - local.set $478 + local.get $148 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#__get i32.const 0 @@ -39988,19 +39339,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $261 - local.set $478 + local.get $148 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 1 call $~lib/array/Array#__get - local.tee $264 - i32.store offset=132 - local.get $264 + local.tee $151 + i32.store offset=120 + local.get $151 if (result i32) - local.get $264 + local.get $151 else i32.const 5520 i32.const 528 @@ -40009,11 +39360,11 @@ call $~lib/builtins/abort unreachable end - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/Ref#get:v i32.const 2 i32.eq @@ -40027,53 +39378,53 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 i32.const 0 call $~lib/array/Array#__set global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 i32.const 1 call $~lib/array/Array#__set global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 i32.const 2 call $~lib/array/Array#__set global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 3 i32.const 3 call $~lib/array/Array#__set global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5648 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#findIndex global.set $std/array/i global.get $std/array/i @@ -40089,17 +39440,17 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5680 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#findIndex global.set $std/array/i global.get $std/array/i @@ -40115,17 +39466,17 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5712 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#findIndex global.set $std/array/i global.get $std/array/i @@ -40141,17 +39492,17 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5744 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#findIndex global.set $std/array/i global.get $std/array/i @@ -40167,11 +39518,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 8 i32.eq @@ -40185,17 +39536,17 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5776 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#findIndex global.set $std/array/i global.get $std/array/i @@ -40211,49 +39562,49 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5808 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#findIndex global.set $std/array/i global.get $std/array/i @@ -40269,11 +39620,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -40287,20 +39638,20 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 3 call $~lib/array/Array#push drop @@ -40310,20 +39661,20 @@ i32.const 4 i32.const 5840 call $~lib/rt/__newArray - local.tee $267 - i32.store offset=136 - local.get $267 - local.set $478 + local.tee $153 + i32.store offset=124 + local.get $153 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5888 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#findLastIndex global.set $std/array/i global.get $std/array/i @@ -40338,18 +39689,18 @@ call $~lib/builtins/abort unreachable end - local.get $267 - local.set $478 + local.get $153 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5920 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#findLastIndex global.set $std/array/i global.get $std/array/i @@ -40364,18 +39715,18 @@ call $~lib/builtins/abort unreachable end - local.get $267 - local.set $478 + local.get $153 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5952 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#findLastIndex global.set $std/array/i global.get $std/array/i @@ -40390,18 +39741,18 @@ call $~lib/builtins/abort unreachable end - local.get $267 - local.set $478 + local.get $153 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5984 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#findLastIndex global.set $std/array/i global.get $std/array/i @@ -40417,20 +39768,20 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 6016 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#every - local.set $268 - local.get $268 + local.set $154 + local.get $154 i32.const 1 i32.eq i32.eqz @@ -40443,20 +39794,20 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 6048 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#every - local.set $268 - local.get $268 + local.set $154 + local.get $154 i32.const 0 i32.eq i32.eqz @@ -40469,20 +39820,20 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 6080 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#every - local.set $268 - local.get $268 + local.set $154 + local.get $154 i32.const 1 i32.eq i32.eqz @@ -40495,11 +39846,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 8 i32.eq @@ -40513,20 +39864,20 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 6112 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#every - local.set $268 - local.get $268 + local.set $154 + local.get $154 i32.const 0 i32.eq i32.eqz @@ -40539,52 +39890,52 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 6144 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#every - local.set $268 - local.get $268 + local.set $154 + local.get $154 i32.const 1 i32.eq i32.eqz @@ -40597,11 +39948,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -40615,38 +39966,38 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 3 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 6176 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#some - local.set $269 - local.get $269 + local.set $155 + local.get $155 i32.const 1 i32.eq i32.eqz @@ -40659,20 +40010,20 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 6208 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#some - local.set $269 - local.get $269 + local.set $155 + local.get $155 i32.const 0 i32.eq i32.eqz @@ -40685,20 +40036,20 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 6240 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#some - local.set $269 - local.get $269 + local.set $155 + local.get $155 i32.const 0 i32.eq i32.eqz @@ -40711,11 +40062,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 8 i32.eq @@ -40729,20 +40080,20 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 6272 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#some - local.set $269 - local.get $269 + local.set $155 + local.get $155 i32.const 1 i32.eq i32.eqz @@ -40755,52 +40106,52 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 6304 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#some - local.set $269 - local.get $269 + local.set $155 + local.get $155 i32.const 0 i32.eq i32.eqz @@ -40813,11 +40164,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -40831,37 +40182,37 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 3 call $~lib/array/Array#push drop i32.const 0 global.set $std/array/i global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 6336 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#forEach global.get $std/array/i i32.const 6 @@ -40878,17 +40229,17 @@ i32.const 0 global.set $std/array/i global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 6368 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#forEach global.get $std/array/i i32.const 6 @@ -40903,11 +40254,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 8 i32.eq @@ -40923,17 +40274,17 @@ i32.const 0 global.set $std/array/i global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 6400 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#forEach global.get $std/array/i i32.const 406 @@ -40948,51 +40299,51 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop i32.const 0 global.set $std/array/i global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 6432 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#forEach global.get $std/array/i i32.const 1 @@ -41007,11 +40358,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -41025,42 +40376,42 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 3 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 6464 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#forEach global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 100 i32.eq @@ -41074,101 +40425,101 @@ unreachable end i32.const 0 - local.set $270 + local.set $156 loop $for-loop|6 - local.get $270 + local.get $156 i32.const 100 i32.lt_s if global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop - local.get $270 + local.get $156 i32.const 1 i32.add - local.set $270 + local.set $156 br $for-loop|6 end end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 3 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 8272 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#map<~lib/string/String> - local.tee $271 - i32.store offset=140 + local.tee $157 + i32.store offset=128 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 8304 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#map - local.tee $272 - i32.store offset=144 - local.get $272 - local.set $478 + local.tee $158 + i32.store offset=132 + local.get $158 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 4 i32.eq @@ -41181,20 +40532,20 @@ call $~lib/builtins/abort unreachable end - local.get $272 - local.set $478 + local.get $158 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#__get global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#__get f32.convert_i32_s @@ -41211,17 +40562,17 @@ i32.const 0 global.set $std/array/i global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 8336 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#map drop global.get $std/array/i @@ -41237,11 +40588,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 8 i32.eq @@ -41257,17 +40608,17 @@ i32.const 0 global.set $std/array/i global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 8368 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#map drop global.get $std/array/i @@ -41283,51 +40634,51 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop i32.const 0 global.set $std/array/i global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 8400 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#map drop global.get $std/array/i @@ -41343,11 +40694,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -41361,45 +40712,45 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 3 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 8432 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#filter - local.tee $273 - i32.store offset=148 - local.get $273 - local.set $478 + local.tee $159 + i32.store offset=136 + local.get $159 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -41415,17 +40766,17 @@ i32.const 0 global.set $std/array/i global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 8464 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#filter drop global.get $std/array/i @@ -41441,11 +40792,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 8 i32.eq @@ -41461,17 +40812,17 @@ i32.const 0 global.set $std/array/i global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 8496 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#filter drop global.get $std/array/i @@ -41487,51 +40838,51 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop i32.const 0 global.set $std/array/i global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 8528 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#filter drop global.get $std/array/i @@ -41547,11 +40898,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -41565,35 +40916,35 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 3 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 8560 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#reduce global.set $std/array/i @@ -41610,17 +40961,17 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 8592 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 4 call $~lib/array/Array#reduce global.set $std/array/i @@ -41637,21 +40988,21 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 8624 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#reduce - local.set $274 - local.get $274 + local.set $160 + local.get $160 i32.const 0 i32.ne i32.const 1 @@ -41666,21 +41017,21 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 8656 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#reduce - local.set $274 - local.get $274 + local.set $160 + local.get $160 i32.const 0 i32.ne i32.const 0 @@ -41695,17 +41046,17 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 8688 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#reduce global.set $std/array/i @@ -41722,11 +41073,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 8 i32.eq @@ -41740,17 +41091,17 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 8720 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#reduce global.set $std/array/i @@ -41767,49 +41118,49 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 8752 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#reduce global.set $std/array/i @@ -41826,11 +41177,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -41844,35 +41195,35 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 3 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 8784 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#reduceRight global.set $std/array/i @@ -41889,17 +41240,17 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 8816 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 4 call $~lib/array/Array#reduceRight global.set $std/array/i @@ -41916,21 +41267,21 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 8848 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#reduceRight - local.set $275 - local.get $275 + local.set $161 + local.get $161 i32.const 0 i32.ne i32.const 1 @@ -41945,21 +41296,21 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 8880 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#reduceRight - local.set $275 - local.get $275 + local.set $161 + local.get $161 i32.const 0 i32.ne i32.const 0 @@ -41974,17 +41325,17 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 8912 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#reduceRight global.set $std/array/i @@ -42001,11 +41352,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 8 i32.eq @@ -42019,17 +41370,17 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 8944 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#reduceRight global.set $std/array/i @@ -42046,49 +41397,49 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 8976 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#reduceRight global.set $std/array/i @@ -42105,11 +41456,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 0 i32.eq @@ -42123,38 +41474,38 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 3 call $~lib/array/Array#push drop @@ -42167,314 +41518,309 @@ i32.const 23 i32.const 0 call $~lib/rt/__newArray - local.tee $276 - i32.store offset=152 - global.get $~lib/memory/__stack_pointer - local.get $276 - i32.load offset=4 - local.tee $277 - i32.store offset=156 - local.get $276 + local.tee $162 + i32.store offset=140 + local.get $162 i32.const 0 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $278 - i32.store offset=160 - local.get $278 - local.set $478 + local.tee $163 + i32.store offset=144 + local.get $163 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 100 call $std/array/Dim#set:height - local.get $278 - local.set $478 + local.get $163 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 80 call $std/array/Dim#set:width - local.get $278 + local.get $163 call $~lib/array/Array#__set - local.get $276 + local.get $162 i32.const 1 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $279 - i32.store offset=164 - local.get $279 - local.set $478 + local.tee $164 + i32.store offset=148 + local.get $164 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 90 call $std/array/Dim#set:height - local.get $279 - local.set $478 + local.get $164 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 90 call $std/array/Dim#set:width - local.get $279 + local.get $164 call $~lib/array/Array#__set - local.get $276 + local.get $162 i32.const 2 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $280 - i32.store offset=168 - local.get $280 - local.set $478 + local.tee $165 + i32.store offset=152 + local.get $165 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 70 call $std/array/Dim#set:height - local.get $280 - local.set $478 + local.get $165 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 95 call $std/array/Dim#set:width - local.get $280 + local.get $165 call $~lib/array/Array#__set - local.get $276 + local.get $162 i32.const 3 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $281 - i32.store offset=172 - local.get $281 - local.set $478 + local.tee $166 + i32.store offset=156 + local.get $166 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 100 call $std/array/Dim#set:height - local.get $281 - local.set $478 + local.get $166 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 100 call $std/array/Dim#set:width - local.get $281 + local.get $166 call $~lib/array/Array#__set - local.get $276 + local.get $162 i32.const 4 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $282 - i32.store offset=176 - local.get $282 - local.set $478 + local.tee $167 + i32.store offset=160 + local.get $167 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 80 call $std/array/Dim#set:height - local.get $282 - local.set $478 + local.get $167 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 110 call $std/array/Dim#set:width - local.get $282 + local.get $167 call $~lib/array/Array#__set - local.get $276 + local.get $162 i32.const 5 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $283 - i32.store offset=180 - local.get $283 - local.set $478 + local.tee $168 + i32.store offset=164 + local.get $168 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 110 call $std/array/Dim#set:height - local.get $283 - local.set $478 + local.get $168 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 115 call $std/array/Dim#set:width - local.get $283 + local.get $168 call $~lib/array/Array#__set - local.get $276 + local.get $162 i32.const 6 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $284 - i32.store offset=184 - local.get $284 - local.set $478 + local.tee $169 + i32.store offset=168 + local.get $169 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 100 call $std/array/Dim#set:height - local.get $284 - local.set $478 + local.get $169 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 120 call $std/array/Dim#set:width - local.get $284 + local.get $169 call $~lib/array/Array#__set - local.get $276 + local.get $162 i32.const 7 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $285 - i32.store offset=188 - local.get $285 - local.set $478 + local.tee $170 + i32.store offset=172 + local.get $170 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 70 call $std/array/Dim#set:height - local.get $285 - local.set $478 + local.get $170 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 125 call $std/array/Dim#set:width - local.get $285 + local.get $170 call $~lib/array/Array#__set - local.get $276 + local.get $162 i32.const 8 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $286 - i32.store offset=192 - local.get $286 - local.set $478 + local.tee $171 + i32.store offset=176 + local.get $171 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 70 call $std/array/Dim#set:height - local.get $286 - local.set $478 + local.get $171 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 130 call $std/array/Dim#set:width - local.get $286 + local.get $171 call $~lib/array/Array#__set - local.get $276 + local.get $162 i32.const 9 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $287 - i32.store offset=196 - local.get $287 - local.set $478 + local.tee $172 + i32.store offset=180 + local.get $172 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 100 call $std/array/Dim#set:height - local.get $287 - local.set $478 + local.get $172 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 135 call $std/array/Dim#set:width - local.get $287 + local.get $172 call $~lib/array/Array#__set - local.get $276 + local.get $162 i32.const 10 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $288 - i32.store offset=200 - local.get $288 - local.set $478 + local.tee $173 + i32.store offset=184 + local.get $173 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 75 call $std/array/Dim#set:height - local.get $288 - local.set $478 + local.get $173 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 140 call $std/array/Dim#set:width - local.get $288 + local.get $173 call $~lib/array/Array#__set - local.get $276 + local.get $162 i32.const 11 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $289 - i32.store offset=204 - local.get $289 - local.set $478 + local.tee $174 + i32.store offset=188 + local.get $174 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 70 call $std/array/Dim#set:height - local.get $289 - local.set $478 + local.get $174 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 140 call $std/array/Dim#set:width - local.get $289 + local.get $174 call $~lib/array/Array#__set - local.get $276 + local.get $162 global.set $std/array/inputStabArr global.get $~lib/memory/__stack_pointer i32.const 12 @@ -42482,314 +41828,309 @@ i32.const 23 i32.const 0 call $~lib/rt/__newArray - local.tee $290 - i32.store offset=208 - global.get $~lib/memory/__stack_pointer - local.get $290 - i32.load offset=4 - local.tee $291 - i32.store offset=212 - local.get $290 + local.tee $175 + i32.store offset=192 + local.get $175 i32.const 0 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $292 - i32.store offset=216 - local.get $292 - local.set $478 + local.tee $176 + i32.store offset=196 + local.get $176 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 70 call $std/array/Dim#set:height - local.get $292 - local.set $478 + local.get $176 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 95 call $std/array/Dim#set:width - local.get $292 + local.get $176 call $~lib/array/Array#__set - local.get $290 + local.get $175 i32.const 1 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $293 - i32.store offset=220 - local.get $293 - local.set $478 + local.tee $177 + i32.store offset=200 + local.get $177 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 70 call $std/array/Dim#set:height - local.get $293 - local.set $478 + local.get $177 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 125 call $std/array/Dim#set:width - local.get $293 + local.get $177 call $~lib/array/Array#__set - local.get $290 + local.get $175 i32.const 2 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $294 - i32.store offset=224 - local.get $294 - local.set $478 + local.tee $178 + i32.store offset=204 + local.get $178 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 70 call $std/array/Dim#set:height - local.get $294 - local.set $478 + local.get $178 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 130 call $std/array/Dim#set:width - local.get $294 + local.get $178 call $~lib/array/Array#__set - local.get $290 + local.get $175 i32.const 3 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $295 - i32.store offset=228 - local.get $295 - local.set $478 + local.tee $179 + i32.store offset=208 + local.get $179 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 70 call $std/array/Dim#set:height - local.get $295 - local.set $478 + local.get $179 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 140 call $std/array/Dim#set:width - local.get $295 + local.get $179 call $~lib/array/Array#__set - local.get $290 + local.get $175 i32.const 4 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $296 - i32.store offset=232 - local.get $296 - local.set $478 + local.tee $180 + i32.store offset=212 + local.get $180 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 75 call $std/array/Dim#set:height - local.get $296 - local.set $478 + local.get $180 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 140 call $std/array/Dim#set:width - local.get $296 + local.get $180 call $~lib/array/Array#__set - local.get $290 + local.get $175 i32.const 5 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $297 - i32.store offset=236 - local.get $297 - local.set $478 + local.tee $181 + i32.store offset=216 + local.get $181 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 80 call $std/array/Dim#set:height - local.get $297 - local.set $478 + local.get $181 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 110 call $std/array/Dim#set:width - local.get $297 + local.get $181 call $~lib/array/Array#__set - local.get $290 + local.get $175 i32.const 6 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $298 - i32.store offset=240 - local.get $298 - local.set $478 + local.tee $182 + i32.store offset=220 + local.get $182 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 90 call $std/array/Dim#set:height - local.get $298 - local.set $478 + local.get $182 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 90 call $std/array/Dim#set:width - local.get $298 + local.get $182 call $~lib/array/Array#__set - local.get $290 + local.get $175 i32.const 7 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $299 - i32.store offset=244 - local.get $299 - local.set $478 + local.tee $183 + i32.store offset=224 + local.get $183 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 100 call $std/array/Dim#set:height - local.get $299 - local.set $478 + local.get $183 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 80 call $std/array/Dim#set:width - local.get $299 + local.get $183 call $~lib/array/Array#__set - local.get $290 + local.get $175 i32.const 8 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $300 - i32.store offset=248 - local.get $300 - local.set $478 + local.tee $184 + i32.store offset=228 + local.get $184 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 100 call $std/array/Dim#set:height - local.get $300 - local.set $478 + local.get $184 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 100 call $std/array/Dim#set:width - local.get $300 + local.get $184 call $~lib/array/Array#__set - local.get $290 + local.get $175 i32.const 9 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $301 - i32.store offset=252 - local.get $301 - local.set $478 + local.tee $185 + i32.store offset=232 + local.get $185 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 100 call $std/array/Dim#set:height - local.get $301 - local.set $478 + local.get $185 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 120 call $std/array/Dim#set:width - local.get $301 + local.get $185 call $~lib/array/Array#__set - local.get $290 + local.get $175 i32.const 10 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $302 - i32.store offset=256 - local.get $302 - local.set $478 + local.tee $186 + i32.store offset=236 + local.get $186 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 100 call $std/array/Dim#set:height - local.get $302 - local.set $478 + local.get $186 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 135 call $std/array/Dim#set:width - local.get $302 + local.get $186 call $~lib/array/Array#__set - local.get $290 + local.get $175 i32.const 11 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $303 - i32.store offset=260 - local.get $303 - local.set $478 + local.tee $187 + i32.store offset=240 + local.get $187 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 110 call $std/array/Dim#set:height - local.get $303 - local.set $478 + local.get $187 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 115 call $std/array/Dim#set:width - local.get $303 + local.get $187 call $~lib/array/Array#__set - local.get $290 + local.get $175 global.set $std/array/outputStabArr global.get $~lib/memory/__stack_pointer i32.const 3 @@ -42797,35 +42138,35 @@ i32.const 9 i32.const 9200 call $~lib/rt/__newArray - local.tee $306 - i32.store offset=264 - local.get $306 - local.set $478 + local.tee $189 + i32.store offset=244 + local.get $189 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 global.set $~argumentsLength i32.const 0 call $~lib/array/Array#sort@varargs drop - local.get $306 - local.set $478 + local.get $189 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 3 i32.const 2 i32.const 9 i32.const 9264 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -42843,35 +42184,35 @@ i32.const 9 i32.const 9296 call $~lib/rt/__newArray - local.tee $311 - i32.store offset=268 - local.get $311 - local.set $478 + local.tee $192 + i32.store offset=248 + local.get $192 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 global.set $~argumentsLength i32.const 0 call $~lib/array/Array#sort@varargs drop - local.get $311 - local.set $478 + local.get $192 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 8 i32.const 2 i32.const 9 i32.const 9360 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -42889,35 +42230,35 @@ i32.const 12 i32.const 9424 call $~lib/rt/__newArray - local.tee $316 - i32.store offset=272 - local.get $316 - local.set $478 + local.tee $195 + i32.store offset=252 + local.get $195 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 global.set $~argumentsLength i32.const 0 call $~lib/array/Array#sort@varargs drop - local.get $316 - local.set $478 + local.get $195 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 8 i32.const 3 i32.const 12 i32.const 9552 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -42935,35 +42276,35 @@ i32.const 4 i32.const 9648 call $~lib/rt/__newArray - local.tee $321 - i32.store offset=276 - local.get $321 - local.set $478 + local.tee $198 + i32.store offset=256 + local.get $198 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 global.set $~argumentsLength i32.const 0 call $~lib/array/Array#sort@varargs drop - local.get $321 - local.set $478 + local.get $198 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 4 i32.const 9728 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -42981,35 +42322,35 @@ i32.const 8 i32.const 9776 call $~lib/rt/__newArray - local.tee $326 - i32.store offset=280 - local.get $326 - local.set $478 + local.tee $201 + i32.store offset=260 + local.get $201 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 global.set $~argumentsLength i32.const 0 call $~lib/array/Array#sort@varargs drop - local.get $326 - local.set $478 + local.get $201 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 8 i32.const 9856 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -43027,95 +42368,95 @@ i32.const 4 i32.const 9904 call $~lib/rt/__newArray - local.tee $331 - i32.store offset=284 + local.tee $204 + i32.store offset=264 global.get $~lib/memory/__stack_pointer i32.const 1 i32.const 2 i32.const 4 i32.const 9936 call $~lib/rt/__newArray - local.tee $334 - i32.store offset=288 + local.tee $206 + i32.store offset=268 global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 i32.const 4 i32.const 9968 call $~lib/rt/__newArray - local.tee $337 - i32.store offset=292 + local.tee $208 + i32.store offset=272 global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 2 i32.const 4 i32.const 10000 call $~lib/rt/__newArray - local.tee $340 - i32.store offset=296 + local.tee $210 + i32.store offset=276 global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 2 i32.const 4 i32.const 10048 call $~lib/rt/__newArray - local.tee $343 - i32.store offset=300 + local.tee $212 + i32.store offset=280 global.get $~lib/memory/__stack_pointer i32.const 64 call $std/array/createReverseOrderedArray - local.tee $344 - i32.store offset=304 + local.tee $213 + i32.store offset=284 global.get $~lib/memory/__stack_pointer i32.const 128 call $std/array/createReverseOrderedArray - local.tee $345 - i32.store offset=308 + local.tee $214 + i32.store offset=288 global.get $~lib/memory/__stack_pointer i32.const 1024 call $std/array/createReverseOrderedArray - local.tee $346 - i32.store offset=312 + local.tee $215 + i32.store offset=292 global.get $~lib/memory/__stack_pointer i32.const 10000 call $std/array/createReverseOrderedArray - local.tee $347 - i32.store offset=316 + local.tee $216 + i32.store offset=296 global.get $~lib/memory/__stack_pointer i32.const 512 call $std/array/createRandomOrderedArray - local.tee $348 - i32.store offset=320 - local.get $331 - local.set $478 + local.tee $217 + i32.store offset=300 + local.get $204 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/assertSortedDefault - local.get $334 - local.set $478 + local.get $206 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/assertSortedDefault - local.get $334 - local.set $478 + local.get $206 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 i32.const 2 i32.const 4 i32.const 10128 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -43127,29 +42468,29 @@ call $~lib/builtins/abort unreachable end - local.get $337 - local.set $478 + local.get $208 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/assertSortedDefault - local.get $337 - local.set $478 + local.get $208 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 i32.const 2 i32.const 4 i32.const 10160 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -43161,25 +42502,25 @@ call $~lib/builtins/abort unreachable end - local.get $340 - local.set $478 + local.get $210 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/assertSortedDefault - local.get $340 - local.set $478 + local.get $210 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 - local.get $343 - local.set $478 + local.get $296 + local.get $212 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -43191,25 +42532,25 @@ call $~lib/builtins/abort unreachable end - local.get $344 - local.set $478 + local.get $213 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/assertSortedDefault - local.get $344 - local.set $478 + local.get $213 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 - local.get $343 - local.set $478 + local.get $296 + local.get $212 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -43221,25 +42562,25 @@ call $~lib/builtins/abort unreachable end - local.get $345 - local.set $478 + local.get $214 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/assertSortedDefault - local.get $345 - local.set $478 + local.get $214 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 - local.get $343 - local.set $478 + local.get $296 + local.get $212 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -43251,25 +42592,25 @@ call $~lib/builtins/abort unreachable end - local.get $346 - local.set $478 + local.get $215 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/assertSortedDefault - local.get $346 - local.set $478 + local.get $215 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 - local.get $343 - local.set $478 + local.get $296 + local.get $212 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -43281,25 +42622,25 @@ call $~lib/builtins/abort unreachable end - local.get $347 - local.set $478 + local.get $216 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/assertSortedDefault - local.get $347 - local.set $478 + local.get $216 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 - local.get $343 - local.set $478 + local.get $296 + local.get $212 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -43311,111 +42652,111 @@ call $~lib/builtins/abort unreachable end - local.get $348 - local.set $478 + local.get $217 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/assertSortedDefault call $std/array/assertStableSortedForComplexObjects global.get $~lib/memory/__stack_pointer i32.const 64 call $std/array/createRandomOrderedArray - local.tee $353 - i32.store offset=324 + local.tee $220 + i32.store offset=304 global.get $~lib/memory/__stack_pointer i32.const 257 call $std/array/createRandomOrderedArray - local.tee $354 - i32.store offset=328 - local.get $353 - local.set $478 + local.tee $221 + i32.store offset=308 + local.get $220 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 10224 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $std/array/assertSorted - local.get $353 - local.set $478 + local.get $220 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 10256 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $std/array/assertSorted - local.get $354 - local.set $478 + local.get $221 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 10288 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $std/array/assertSorted - local.get $354 - local.set $478 + local.get $221 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 10320 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $std/array/assertSorted global.get $~lib/memory/__stack_pointer i32.const 2 call $std/array/createReverseOrderedNestedArray - local.tee $355 - i32.store offset=332 - local.get $355 - local.set $478 + local.tee $222 + i32.store offset=312 + local.get $222 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 10352 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer i32.const 512 call $std/array/createReverseOrderedElementsArray - local.tee $356 - i32.store offset=336 - local.get $356 - local.set $478 + local.tee $223 + i32.store offset=316 + local.get $223 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 10384 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $std/array/assertSorted> global.get $~lib/memory/__stack_pointer i32.const 7 @@ -43423,38 +42764,38 @@ i32.const 34 i32.const 10576 call $~lib/rt/__newArray - local.tee $359 - i32.store offset=340 + local.tee $225 + i32.store offset=320 global.get $~lib/memory/__stack_pointer i32.const 7 i32.const 2 i32.const 34 i32.const 10624 call $~lib/rt/__newArray - local.tee $362 - i32.store offset=344 - local.get $359 - local.set $478 + local.tee $227 + i32.store offset=324 + local.get $225 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 global.set $~argumentsLength i32.const 0 call $std/array/assertSorted<~lib/string/String|null>@varargs - local.get $359 - local.set $478 + local.get $225 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 - local.get $362 - local.set $478 + local.get $296 + local.get $227 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual<~lib/string/String|null> i32.eqz @@ -43469,14 +42810,14 @@ global.get $~lib/memory/__stack_pointer i32.const 400 call $std/array/createRandomStringArray - local.tee $363 - i32.store offset=348 - local.get $363 - local.set $478 + local.tee $228 + i32.store offset=328 + local.get $228 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 global.set $~argumentsLength i32.const 0 @@ -43486,29 +42827,19 @@ i32.const 37 i32.const 10736 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=8 + local.get $296 i32.const 10832 - local.set $478 - global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=352 - local.get $478 call $~lib/array/Array#join - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 10864 - local.set $478 - global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=8 - local.get $478 call $~lib/string/String.__eq i32.eqz if @@ -43524,29 +42855,19 @@ i32.const 4 i32.const 10912 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=8 + local.get $296 i32.const 10544 - local.set $478 - global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=352 - local.get $478 call $~lib/array/Array#join - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 10944 - local.set $478 - global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=8 - local.get $478 call $~lib/string/String.__eq i32.eqz if @@ -43562,29 +42883,19 @@ i32.const 8 i32.const 10976 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=8 + local.get $296 i32.const 11008 - local.set $478 - global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=352 - local.get $478 call $~lib/array/Array#join - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 10944 - local.set $478 - global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=8 - local.get $478 call $~lib/string/String.__eq i32.eqz if @@ -43600,29 +42911,19 @@ i32.const 4 i32.const 11040 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=8 + local.get $296 i32.const 11072 - local.set $478 - global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=352 - local.get $478 call $~lib/array/Array#join - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 11104 - local.set $478 - global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=8 - local.get $478 call $~lib/string/String.__eq i32.eqz if @@ -43638,29 +42939,19 @@ i32.const 12 i32.const 11184 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=8 + local.get $296 i32.const 11264 - local.set $478 - global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=352 - local.get $478 call $~lib/array/Array#join - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 12432 - local.set $478 - global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=8 - local.get $478 call $~lib/string/String.__eq i32.eqz if @@ -43676,29 +42967,19 @@ i32.const 34 i32.const 12576 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=8 + local.get $296 i32.const 10544 - local.set $478 - global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=352 - local.get $478 call $~lib/array/Array<~lib/string/String|null>#join - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 12544 - local.set $478 - global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=8 - local.get $478 call $~lib/string/String.__eq i32.eqz if @@ -43716,56 +42997,41 @@ i32.const 13 i32.const 0 call $~lib/rt/__newArray - local.tee $376 - i32.store offset=356 - global.get $~lib/memory/__stack_pointer - local.get $376 - i32.load offset=4 - local.tee $377 - i32.store offset=360 - local.get $376 + local.tee $235 + i32.store offset=332 + local.get $235 i32.const 0 i32.const 0 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $376 + local.get $235 i32.const 1 i32.const 0 call $~lib/array/Array#__set - local.get $376 + local.get $235 i32.const 2 i32.const 0 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $376 - local.tee $378 - i32.store offset=364 - local.get $378 - local.set $478 + local.get $235 + local.tee $236 + i32.store offset=336 + local.get $236 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=8 + local.get $296 i32.const 10832 - local.set $478 - global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=352 - local.get $478 call $~lib/array/Array#join - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 12672 - local.set $478 - global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=8 - local.get $478 call $~lib/string/String.__eq i32.eqz if @@ -43783,52 +43049,37 @@ i32.const 10 i32.const 0 call $~lib/rt/__newArray - local.tee $379 - i32.store offset=368 - global.get $~lib/memory/__stack_pointer - local.get $379 - i32.load offset=4 - local.tee $380 - i32.store offset=372 - local.get $379 + local.tee $237 + i32.store offset=340 + local.get $237 i32.const 0 i32.const 0 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $379 + local.get $237 i32.const 1 i32.const 0 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $379 - local.tee $381 - i32.store offset=376 - local.get $381 - local.set $478 + local.get $237 + local.tee $238 + i32.store offset=344 + local.get $238 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=8 + local.get $296 i32.const 10832 - local.set $478 - global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=352 - local.get $478 call $~lib/array/Array#join - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 12768 - local.set $478 - global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=8 - local.get $478 call $~lib/string/String.__eq i32.eqz if @@ -43845,50 +43096,45 @@ i32.const 4 i32.const 12864 call $~lib/rt/__newArray - local.tee $384 - i32.store offset=380 + local.tee $240 + i32.store offset=348 global.get $~lib/memory/__stack_pointer i32.const 1 i32.const 2 i32.const 4 i32.const 12896 call $~lib/rt/__newArray - local.tee $387 - i32.store offset=384 + local.tee $242 + i32.store offset=352 global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 i32.const 4 i32.const 12928 call $~lib/rt/__newArray - local.tee $390 - i32.store offset=388 + local.tee $244 + i32.store offset=356 global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 2 i32.const 4 i32.const 12960 call $~lib/rt/__newArray - local.tee $393 - i32.store offset=392 - local.get $384 - local.set $478 + local.tee $246 + i32.store offset=360 + local.get $240 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=8 + local.get $296 call $~lib/array/Array#toString - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 10544 - local.set $478 - global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=8 - local.get $478 call $~lib/string/String.__eq i32.eqz if @@ -43899,24 +43145,19 @@ call $~lib/builtins/abort unreachable end - local.get $387 - local.set $478 + local.get $242 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=8 + local.get $296 call $~lib/array/Array#toString - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 12544 - local.set $478 - global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=8 - local.get $478 call $~lib/string/String.__eq i32.eqz if @@ -43927,24 +43168,19 @@ call $~lib/builtins/abort unreachable end - local.get $390 - local.set $478 + local.get $244 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=8 + local.get $296 call $~lib/array/Array#toString - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 13008 - local.set $478 - global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=8 - local.get $478 call $~lib/string/String.__eq i32.eqz if @@ -43955,24 +43191,19 @@ call $~lib/builtins/abort unreachable end - local.get $393 - local.set $478 + local.get $246 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=8 + local.get $296 call $~lib/array/Array#toString - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 13040 - local.set $478 - global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=8 - local.get $478 call $~lib/string/String.__eq i32.eqz if @@ -43988,23 +43219,18 @@ i32.const 38 i32.const 13088 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=8 + local.get $296 call $~lib/array/Array#toString - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 13120 - local.set $478 - global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=8 - local.get $478 call $~lib/string/String.__eq i32.eqz if @@ -44020,23 +43246,18 @@ i32.const 38 i32.const 13152 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=8 + local.get $296 call $~lib/array/Array#toString - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 13184 - local.set $478 - global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=8 - local.get $478 call $~lib/string/String.__eq i32.eqz if @@ -44052,23 +43273,18 @@ i32.const 11 i32.const 13232 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=8 + local.get $296 call $~lib/array/Array#toString - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 13264 - local.set $478 - global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=8 - local.get $478 call $~lib/string/String.__eq i32.eqz if @@ -44084,23 +43300,18 @@ i32.const 39 i32.const 13312 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=8 + local.get $296 call $~lib/array/Array#toString - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 13344 - local.set $478 - global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=8 - local.get $478 call $~lib/string/String.__eq i32.eqz if @@ -44116,23 +43327,18 @@ i32.const 4 i32.const 13392 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=8 + local.get $296 call $~lib/array/Array#toString - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 13424 - local.set $478 - global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=8 - local.get $478 call $~lib/string/String.__eq i32.eqz if @@ -44148,23 +43354,18 @@ i32.const 40 i32.const 13488 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=8 + local.get $296 call $~lib/array/Array#toString - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 13536 - local.set $478 - global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=8 - local.get $478 call $~lib/string/String.__eq i32.eqz if @@ -44180,23 +43381,18 @@ i32.const 41 i32.const 13616 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=8 + local.get $296 call $~lib/array/Array#toString - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 13680 - local.set $478 - global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=8 - local.get $478 call $~lib/string/String.__eq i32.eqz if @@ -44213,26 +43409,21 @@ i32.const 34 i32.const 13840 call $~lib/rt/__newArray - local.tee $410 - i32.store offset=396 - local.get $410 - local.set $478 + local.tee $255 + i32.store offset=364 + local.get $255 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=8 + local.get $296 call $~lib/array/Array<~lib/string/String|null>#toString - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 13888 - local.set $478 - global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=8 - local.get $478 call $~lib/string/String.__eq i32.eqz if @@ -44248,23 +43439,18 @@ i32.const 34 i32.const 14000 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=8 + local.get $296 call $~lib/array/Array<~lib/string/String|null>#toString - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 14048 - local.set $478 - global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=8 - local.get $478 call $~lib/string/String.__eq i32.eqz if @@ -44282,14 +43468,9 @@ i32.const 29 i32.const 0 call $~lib/rt/__newArray - local.tee $413 - i32.store offset=400 - global.get $~lib/memory/__stack_pointer - local.get $413 - i32.load offset=4 - local.tee $414 - i32.store offset=404 - local.get $413 + local.tee $257 + i32.store offset=368 + local.get $257 i32.const 0 i32.const 2 i32.const 2 @@ -44297,7 +43478,7 @@ i32.const 14080 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__set - local.get $413 + local.get $257 i32.const 1 i32.const 2 i32.const 2 @@ -44305,27 +43486,22 @@ i32.const 14112 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__set - local.get $413 - local.tee $419 - i32.store offset=408 - local.get $419 - local.set $478 + local.get $257 + local.tee $260 + i32.store offset=372 + local.get $260 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=8 + local.get $296 call $~lib/array/Array<~lib/array/Array>#toString - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 14144 - local.set $478 - global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=8 - local.get $478 call $~lib/string/String.__eq i32.eqz if @@ -44343,14 +43519,9 @@ i32.const 42 i32.const 0 call $~lib/rt/__newArray - local.tee $420 - i32.store offset=412 - global.get $~lib/memory/__stack_pointer - local.get $420 - i32.load offset=4 - local.tee $421 - i32.store offset=416 - local.get $420 + local.tee $261 + i32.store offset=376 + local.get $261 i32.const 0 i32.const 2 i32.const 0 @@ -44358,7 +43529,7 @@ i32.const 14192 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__set - local.get $420 + local.get $261 i32.const 1 i32.const 2 i32.const 0 @@ -44366,27 +43537,22 @@ i32.const 14224 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__set - local.get $420 - local.tee $426 - i32.store offset=420 - local.get $426 - local.set $478 + local.get $261 + local.tee $264 + i32.store offset=380 + local.get $264 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=8 + local.get $296 call $~lib/array/Array<~lib/array/Array>#toString - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 14144 - local.set $478 - global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=8 - local.get $478 call $~lib/string/String.__eq i32.eqz if @@ -44404,14 +43570,9 @@ i32.const 44 i32.const 0 call $~lib/rt/__newArray - local.tee $427 - i32.store offset=424 - global.get $~lib/memory/__stack_pointer - local.get $427 - i32.load offset=4 - local.tee $428 - i32.store offset=428 - local.get $427 + local.tee $265 + i32.store offset=384 + local.get $265 i32.const 0 global.get $~lib/memory/__stack_pointer i32.const 1 @@ -44419,14 +43580,9 @@ i32.const 43 i32.const 0 call $~lib/rt/__newArray - local.tee $429 - i32.store offset=432 - global.get $~lib/memory/__stack_pointer - local.get $429 - i32.load offset=4 - local.tee $430 - i32.store offset=436 - local.get $429 + local.tee $266 + i32.store offset=388 + local.get $266 i32.const 0 i32.const 1 i32.const 2 @@ -44434,29 +43590,24 @@ i32.const 14256 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__set - local.get $429 + local.get $266 call $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#__set - local.get $427 - local.tee $433 - i32.store offset=440 - local.get $433 - local.set $478 + local.get $265 + local.tee $268 + i32.store offset=392 + local.get $268 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=8 + local.get $296 call $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#toString - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 12544 - local.set $478 - global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=8 - local.get $478 call $~lib/string/String.__eq i32.eqz if @@ -44474,14 +43625,9 @@ i32.const 29 i32.const 0 call $~lib/rt/__newArray - local.tee $434 - i32.store offset=444 - global.get $~lib/memory/__stack_pointer - local.get $434 - i32.load offset=4 - local.tee $435 - i32.store offset=448 - local.get $434 + local.tee $269 + i32.store offset=396 + local.get $269 i32.const 0 i32.const 1 i32.const 2 @@ -44489,7 +43635,7 @@ i32.const 14288 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__set - local.get $434 + local.get $269 i32.const 1 i32.const 3 i32.const 2 @@ -44497,7 +43643,7 @@ i32.const 14320 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__set - local.get $434 + local.get $269 i32.const 2 i32.const 3 i32.const 2 @@ -44505,7 +43651,7 @@ i32.const 14352 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__set - local.get $434 + local.get $269 i32.const 3 i32.const 3 i32.const 2 @@ -44513,25 +43659,25 @@ i32.const 14384 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__set - local.get $434 - local.tee $444 - i32.store offset=452 + local.get $269 + local.tee $274 + i32.store offset=400 global.get $~lib/memory/__stack_pointer - local.get $444 - local.set $478 + local.get $274 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array<~lib/array/Array>#flat - local.tee $445 - i32.store offset=456 - local.get $445 - local.set $478 + local.tee $275 + i32.store offset=404 + local.get $275 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 10 i32.eq @@ -44545,21 +43691,21 @@ unreachable end i32.const 0 - local.set $446 + local.set $276 loop $for-loop|7 - local.get $446 + local.get $276 i32.const 10 i32.lt_s if - local.get $445 - local.set $478 + local.get $275 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 - local.get $446 + local.get $296 + local.get $276 call $~lib/array/Array#__get - local.get $446 + local.get $276 i32.eq i32.eqz if @@ -44570,10 +43716,10 @@ call $~lib/builtins/abort unreachable end - local.get $446 + local.get $276 i32.const 1 i32.add - local.set $446 + local.set $276 br $for-loop|7 end end @@ -44584,14 +43730,9 @@ i32.const 45 i32.const 0 call $~lib/rt/__newArray - local.tee $447 - i32.store offset=460 - global.get $~lib/memory/__stack_pointer - local.get $447 - i32.load offset=4 - local.tee $448 - i32.store offset=464 - local.get $447 + local.tee $277 + i32.store offset=408 + local.get $277 i32.const 0 i32.const 1 i32.const 2 @@ -44599,7 +43740,7 @@ i32.const 14448 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#__set - local.get $447 + local.get $277 i32.const 1 i32.const 3 i32.const 2 @@ -44607,7 +43748,7 @@ i32.const 14544 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#__set - local.get $447 + local.get $277 i32.const 2 i32.const 3 i32.const 2 @@ -44615,7 +43756,7 @@ i32.const 14672 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#__set - local.get $447 + local.get $277 i32.const 3 i32.const 1 i32.const 2 @@ -44623,33 +43764,33 @@ i32.const 14736 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#__set - local.get $447 - local.tee $457 - i32.store offset=468 + local.get $277 + local.tee $282 + i32.store offset=412 global.get $~lib/memory/__stack_pointer - local.get $457 - local.set $478 + local.get $282 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#flat - local.tee $458 - i32.store offset=472 + local.tee $283 + i32.store offset=416 global.get $~lib/memory/__stack_pointer i32.const 8 i32.const 2 i32.const 34 i32.const 14768 call $~lib/rt/__newArray - local.tee $461 - i32.store offset=476 - local.get $458 - local.set $478 + local.tee $285 + i32.store offset=420 + local.get $283 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array<~lib/string/String|null>#get:length i32.const 8 i32.eq @@ -44663,44 +43804,44 @@ unreachable end i32.const 0 - local.set $462 + local.set $286 loop $for-loop|8 - local.get $462 - local.get $461 - local.set $478 + local.get $286 + local.get $285 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array<~lib/string/String|null>#get:length i32.lt_s if - local.get $458 - local.set $478 + local.get $283 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 - local.get $462 + local.get $296 + i32.store offset=48 + local.get $296 + local.get $286 call $~lib/array/Array<~lib/string/String|null>#__get - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 - local.get $461 - local.set $478 + local.get $296 + local.get $285 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 - local.get $462 + local.get $296 + i32.store offset=48 + local.get $296 + local.get $286 call $~lib/array/Array<~lib/string/String|null>#__get - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/string/String.__eq i32.eqz if @@ -44711,10 +43852,10 @@ call $~lib/builtins/abort unreachable end - local.get $462 + local.get $286 i32.const 1 i32.add - local.set $462 + local.set $286 br $for-loop|8 end end @@ -44725,14 +43866,9 @@ i32.const 29 i32.const 0 call $~lib/rt/__newArray - local.tee $463 - i32.store offset=480 - global.get $~lib/memory/__stack_pointer - local.get $463 - i32.load offset=4 - local.tee $464 - i32.store offset=484 - local.get $463 + local.tee $287 + i32.store offset=424 + local.get $287 i32.const 0 i32.const 0 i32.const 2 @@ -44740,7 +43876,7 @@ i32.const 14832 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__set - local.get $463 + local.get $287 i32.const 1 i32.const 0 i32.const 2 @@ -44748,21 +43884,21 @@ i32.const 14864 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__set - local.get $463 - local.tee $469 - i32.store offset=488 - local.get $469 - local.set $478 + local.get $287 + local.tee $290 + i32.store offset=428 + local.get $290 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array<~lib/array/Array>#flat - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 0 i32.eq @@ -44782,14 +43918,9 @@ i32.const 29 i32.const 0 call $~lib/rt/__newArray - local.tee $470 - i32.store offset=492 - global.get $~lib/memory/__stack_pointer - local.get $470 - i32.load offset=4 - local.tee $471 - i32.store offset=496 - local.get $470 + local.tee $291 + i32.store offset=432 + local.get $291 i32.const 0 i32.const 1 i32.const 2 @@ -44797,7 +43928,7 @@ i32.const 14896 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__set - local.get $470 + local.get $291 i32.const 1 i32.const 1 i32.const 2 @@ -44805,37 +43936,37 @@ i32.const 14928 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__set - local.get $470 - local.tee $476 - i32.store offset=500 + local.get $291 + local.tee $294 + i32.store offset=436 global.get $~lib/memory/__stack_pointer - local.get $476 - local.set $478 + local.get $294 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 14960 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 call $~lib/array/Array<~lib/array/Array>#map<~lib/array/Array> - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array<~lib/array/Array>#flat - local.tee $477 - i32.store offset=504 - local.get $477 - local.set $478 + local.tee $295 + i32.store offset=440 + local.get $295 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 4 i32.eq @@ -44848,12 +43979,12 @@ call $~lib/builtins/abort unreachable end - local.get $477 - local.set $478 + local.get $295 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#__get i32.const 1 @@ -44867,12 +43998,12 @@ call $~lib/builtins/abort unreachable end - local.get $477 - local.set $478 + local.get $295 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 call $~lib/array/Array#__get i32.const 3 @@ -44886,12 +44017,12 @@ call $~lib/builtins/abort unreachable end - local.get $477 - local.set $478 + local.get $295 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 call $~lib/array/Array#__get i32.const 2 @@ -44905,12 +44036,12 @@ call $~lib/builtins/abort unreachable end - local.get $477 - local.set $478 + local.get $295 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 3 call $~lib/array/Array#__get i32.const 3 @@ -44934,7 +44065,7 @@ global.set $~lib/memory/__stack_pointer call $~lib/rt/itcms/__collect global.get $~lib/memory/__stack_pointer - i32.const 508 + i32.const 444 i32.add global.set $~lib/memory/__stack_pointer ) @@ -46665,6 +45796,782 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) + (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) + (local $j i32) + (local $5 i32) + (local $6 i32) + (local $k i32) + (local $tmp f32) + (local $9 i32) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $i + local.get $right + i32.eq + if + local.get $i + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + end + local.get $i + local.set $j + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $5 + i32.store + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + f32.load + local.get $ptr + local.get $j + i32.const 1 + i32.add + local.tee $j + i32.const 2 + i32.shl + i32.add + f32.load + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect (type $7) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $6 + i32.store offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + f32.load offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + f32.load + i32.const 2 + global.set $~argumentsLength + local.get $6 + i32.load + call_indirect (type $7) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 + end + end + local.get $j + local.set $k + loop $while-continue|1 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + f32.load + local.set $tmp + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + f32.load + f32.store + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $tmp + f32.store + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $9 + i32.store offset=8 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + f32.load offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + f32.load + i32.const 2 + global.set $~argumentsLength + local.get $9 + i32.load + call_indirect (type $7) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|2 + end + end + end + local.get $j + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + ) + (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) + (local $j i32) + (local $5 i32) + (local $6 i32) + (local $k i32) + (local $tmp f64) + (local $9 i32) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $i + local.get $right + i32.eq + if + local.get $i + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + end + local.get $i + local.set $j + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $5 + i32.store + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + f64.load + local.get $ptr + local.get $j + i32.const 1 + i32.add + local.tee $j + i32.const 3 + i32.shl + i32.add + f64.load + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect (type $8) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $6 + i32.store offset=4 + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + f64.load + i32.const 2 + global.set $~argumentsLength + local.get $6 + i32.load + call_indirect (type $8) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 + end + end + local.get $j + local.set $k + loop $while-continue|1 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 3 + i32.shl + i32.add + f64.load + local.set $tmp + local.get $ptr + local.get $i + i32.const 3 + i32.shl + i32.add + local.get $ptr + local.get $k + i32.const 3 + i32.shl + i32.add + f64.load + f64.store + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 3 + i32.shl + i32.add + local.get $tmp + f64.store + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $9 + i32.store offset=8 + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + f64.load + i32.const 2 + global.set $~argumentsLength + local.get $9 + i32.load + call_indirect (type $8) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|2 + end + end + end + local.get $j + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + ) + (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) + (local $j i32) + (local $5 i32) + (local $6 i32) + (local $k i32) + (local $tmp i32) + (local $9 i32) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $i + local.get $right + i32.eq + if + local.get $i + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + end + local.get $i + local.set $j + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $5 + i32.store + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load + local.get $ptr + local.get $j + i32.const 1 + i32.add + local.tee $j + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $6 + i32.store offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $6 + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 + end + end + local.get $j + local.set $k + loop $while-continue|1 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.set $tmp + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $tmp + i32.store + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $9 + i32.store offset=8 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $9 + i32.load + call_indirect (type $0) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|2 + end + end + end + local.get $j + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + ) + (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) + (local $j i32) + (local $5 i32) + (local $6 i32) + (local $k i32) + (local $tmp i32) + (local $9 i32) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $i + local.get $right + i32.eq + if + local.get $i + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + end + local.get $i + local.set $j + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $5 + i32.store + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load + local.get $ptr + local.get $j + i32.const 1 + i32.add + local.tee $j + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $6 + i32.store offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $6 + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 + end + end + local.get $j + local.set $k + loop $while-continue|1 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.set $tmp + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $tmp + i32.store + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $9 + i32.store offset=8 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $9 + i32.load + call_indirect (type $0) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|2 + end + end + end + local.get $j + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + ) (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) (local $out i32) (local $decimals i32) @@ -46812,10 +46719,12 @@ local.get $12 return ) - (func $~lib/util/number/dtoa (param $value f64) (result i32) + (func $~lib/util/number/dtoa (param $value f64) (result i32) + (local $value|1 f64) + (local $isSingle i32) (local $size i32) (local $result i32) - (local $3 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -46824,76 +46733,66 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $value - f64.const 0 - f64.eq - if - i32.const 11296 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return - end - local.get $value - local.get $value - f64.sub - f64.const 0 - f64.eq - i32.eqz - if - local.get $value + block $~lib/util/number/dtoa_impl|inlined.0 (result i32) local.get $value - f64.ne + local.set $value|1 + i32.const 0 + local.set $isSingle + local.get $value|1 + f64.const 0 + f64.eq if - i32.const 11328 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return + i32.const 11296 + br $~lib/util/number/dtoa_impl|inlined.0 end - i32.const 11360 - i32.const 11408 - local.get $value + local.get $value|1 + local.get $value|1 + f64.sub f64.const 0 - f64.lt - select - local.set $3 + f64.eq + i32.eqz + if + local.get $value|1 + local.get $value|1 + f64.ne + if + i32.const 11328 + br $~lib/util/number/dtoa_impl|inlined.0 + end + 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 11440 + 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 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return + local.get $size + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $result + i32.store + local.get $result + i32.const 11440 + local.get $size + memory.copy + local.get $result + br $~lib/util/number/dtoa_impl|inlined.0 end - i32.const 11440 - local.get $value - 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 11440 - local.get $size - memory.copy - local.get $result - local.set $3 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $5 return ) (func $~lib/util/number/utoa64 (param $value i64) (param $radix i32) (result i32) diff --git a/tests/compiler/std/array.release.wat b/tests/compiler/std/array.release.wat index 08748ccc40..d3525108c2 100644 --- a/tests/compiler/std/array.release.wat +++ b/tests/compiler/std/array.release.wat @@ -4,8 +4,8 @@ (type $2 (func (param i32) (result i32))) (type $3 (func (param i32 i32 i32))) (type $4 (func (param i32 i32 i32 i32) (result i32))) - (type $5 (func (param f32 f32) (result i32))) - (type $6 (func (param f64 f64) (result i32))) + (type $5 (func (param f64 f64) (result i32))) + (type $6 (func (param f32 f32) (result i32))) (type $7 (func (param i32 i32))) (type $8 (func (param i32))) (type $9 (func (param i32 i32 i32 i32))) @@ -14,19 +14,19 @@ (type $12 (func (result f64))) (type $13 (func (param i32 i32 i32 i32 i32 i32))) (type $14 (func (result i32))) - (type $15 (func (param i32 i32 i32) (result f32))) + (type $15 (func (param i32 i64) (result i32))) (type $16 (func (param i32 f64) (result i32))) - (type $17 (func (param i32 i64) (result i32))) - (type $18 (func (param i32 i32 i64))) - (type $19 (func (param i32 i64 i64 i32 i64 i32) (result i32))) + (type $17 (func (param i32 i32 i32) (result f32))) + (type $18 (func (param i32 i32) (result f32))) + (type $19 (func (param i32 i32) (result f64))) (type $20 (func (param i32 i64 i32))) - (type $21 (func (param i32 f32 i32 i32))) - (type $22 (func (param i32 i32) (result f32))) - (type $23 (func (param i32 f32 i32))) - (type $24 (func (param i32 i32) (result f64))) + (type $21 (func (param i32 f32 i32))) + (type $22 (func (param i32 f32 i32 i32))) + (type $23 (func (param i32 i32 i64))) + (type $24 (func (param i32 i64 i64 i32 i64 i32) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (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))) + (import "env" "Math.random" (func $~lib/bindings/dom/Math.random (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)) @@ -660,1262 +660,1385 @@ (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)) (export "_start" (func $~start)) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - global.get $std/array/arr - local.tee $0 + (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result 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 16192 + i32.lt_s if - local.get $0 - call $~lib/rt/itcms/__visit + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - i32.const 10032 - call $~lib/rt/itcms/__visit - global.get $std/array/inputStabArr - local.tee $0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.shl + local.tee $5 + i32.const 1 + call $~lib/rt/itcms/__new + local.set $1 + local.get $3 if - local.get $0 - call $~lib/rt/itcms/__visit + local.get $1 + local.get $3 + local.get $5 + memory.copy end - global.get $std/array/outputStabArr - local.tee $0 + local.get $1 + i32.store + i32.const 16 + local.get $2 + call $~lib/rt/itcms/__new + local.tee $2 + local.get $1 + i32.store + local.get $2 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $2 + local.get $1 + i32.store offset=4 + local.get $2 + local.get $5 + i32.store offset=8 + local.get $2 + 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 $2 + ) + (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 16192 + i32.lt_s if - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 1344 - call $~lib/rt/itcms/__visit - i32.const 1056 - call $~lib/rt/itcms/__visit - i32.const 2640 - call $~lib/rt/itcms/__visit - i32.const 6416 - call $~lib/rt/itcms/__visit - i32.const 1152 - call $~lib/rt/itcms/__visit - i32.const 8144 - call $~lib/rt/itcms/__visit - i32.const 9200 - 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 + 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 + 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/rt/itcms/Object#makeGray (param $0 i32) - (local $1 i32) - (local $2 i32) + (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 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 + global.get $~lib/memory/__stack_pointer local.get $0 - global.get $~lib/rt/itcms/iter - i32.eq + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u if - local.get $0 - i32.load offset=8 - local.tee $1 - i32.eqz + local.get $1 + i32.const 0 + i32.lt_s if - i32.const 0 - i32.const 1216 - i32.const 148 - i32.const 30 + i32.const 1344 + i32.const 1104 + i32.const 130 + i32.const 22 call $~lib/builtins/abort unreachable end + local.get $0 local.get $1 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$729 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer 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 48960 - 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$729 - end + i32.store 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 - i32.const 16000 - 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 $1 - i32.const 2 - i32.shl - i32.const 16004 - i32.add - i32.load - i32.const 32 - i32.and + local.get $3 + i32.store offset=12 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 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.store offset=8 - local.get $1 + i32.store local.get $0 - local.get $1 i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add local.get $2 + i32.store local.get $0 - i32.store offset=8 + 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/itcms/__visit (param $0 i32) - local.get $0 - i32.eqz + (func $std/array/isArraysEqual (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 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 + block $folding-inner1 + block $folding-inner0 + local.get $2 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#get:length + local.get $2 + i32.ne + br_if $folding-inner0 + local.get $0 + local.get $1 + i32.eq + br_if $folding-inner1 + end + loop $for-loop|0 + local.get $2 + local.get $3 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $3 + call $~lib/array/Array#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + local.get $3 + call $~lib/array/Array#__get + local.get $4 + i32.ne + br_if $folding-inner0 + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + br $folding-inner1 + end + 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/rt/itcms/white - local.get $0 - i32.const 20 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - local.tee $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s if - local.get $0 - call $~lib/rt/itcms/Object#makeGray - global.get $~lib/rt/itcms/visitCount + i32.const 48992 + i32.const 49040 i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount + i32.const 1 + call $~lib/builtins/abort + unreachable end - ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) + 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.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + local.get $0 + i32.load offset=12 + i32.ge_u if - i32.const 0 - i32.const 1488 - i32.const 268 - i32.const 14 + i32.const 1344 + i32.const 1104 + i32.const 114 + i32.const 42 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u + 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/Array#pop (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 0 - i32.const 1488 - i32.const 270 - i32.const 14 + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 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 + 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 + local.tee $1 + i32.const 0 + i32.le_s if - i32.const 0 - i32.const 1488 - i32.const 284 - i32.const 14 + i32.const 2640 + i32.const 1104 + i32.const 271 + i32.const 18 call $~lib/builtins/abort unreachable end - local.get $1 - i32.load offset=8 - local.set $5 - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 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 1 + i32.sub + local.tee $1 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 + i32.load + 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/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (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 $1 - i32.eqz + local.get $0 + i32.const 1073741804 + i32.ge_u if - i32.const 0 - i32.const 1488 - i32.const 201 - i32.const 14 + i32.const 1152 + i32.const 1216 + i32.const 261 + i32.const 31 call $~lib/builtins/abort unreachable end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and + 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 $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$68 + 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 - i32.const 0 - i32.const 1488 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable + call $~lib/rt/tlsf/initialize end - local.get $1 - i32.const 4 + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 16 i32.add + call $~lib/rt/tlsf/allocateBlock + local.tee $2 + local.get $1 + i32.store offset=12 + local.get $2 + local.get $0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 + local.set $3 + local.get $2 + local.get $1 + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $2 + local.get $3 + i32.store offset=8 + local.get $3 + local.get $2 + local.get $3 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 local.get $1 + local.get $2 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $2 i32.load i32.const -4 i32.and + i32.const 4 i32.add - 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 + global.set $~lib/rt/itcms/total local.get $2 + i32.const 20 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 + local.tee $1 + i32.const 0 + local.get $0 + memory.fill + local.get $1 + ) + (func $~lib/array/Array#push (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + 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 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s if - i32.const 0 - i32.const 1488 - i32.const 251 - i32.const 14 + 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 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $5 - i32.const 4 - i32.shl - local.get $2 - i32.add - i32.const 2 - i32.shl + i32.store + local.get $0 + local.get $0 + i32.load offset=12 + local.tee $2 + i32.const 1 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.tee $3 + i32.const 1 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $5 - i32.const 4 - i32.shl + i32.store + local.get $0 + i32.load offset=4 local.get $2 - i32.add i32.const 2 i32.shl i32.add local.get $1 - i32.store offset=96 - local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer 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 + local.get $3 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 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 + global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u + global.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 0 - i32.const 1488 - i32.const 382 - i32.const 14 + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 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 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store local.get $0 - i32.load offset=1568 - local.tee $3 + local.get $1 + i32.eq if - local.get $3 - i32.const 4 + global.get $~lib/memory/__stack_pointer + i32.const 8 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 + global.set $~lib/memory/__stack_pointer + i32.const 1 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) + 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 $2 + global.get $~lib/memory/__stack_pointer local.get $1 + i32.store + local.get $2 + local.get $1 + i32.const 20 i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - i32.const 48960 - i32.const 0 - i32.store - i32.const 50528 - i32.const 0 - i32.store - loop $for-loop|0 + 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.const 23 - i32.lt_u - if - local.get $0 - i32.const 2 - i32.shl - i32.const 48960 - i32.add - i32.const 0 - i32.store offset=4 - i32.const 0 - local.set $1 - loop $for-loop|1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + block $__inlined_func$~lib/util/string/compareImpl$1 (result i32) + local.get $2 + i32.const 4 + i32.ge_u + if (result i32) + local.get $0 + i32.const 7 + i32.and local.get $1 - i32.const 16 - i32.lt_u + i32.const 7 + i32.and + i32.or + else + i32.const 1 + end + i32.eqz + if + loop $do-loop|0 + local.get $0 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $0 + i32.const 8 + i32.add + local.set $0 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $2 + i32.const 4 + i32.sub + local.tee $2 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + loop $while-continue|1 + local.get $2 + local.tee $3 + i32.const 1 + i32.sub + local.set $2 + local.get $3 if local.get $0 - i32.const 4 - i32.shl + i32.load16_u + local.tee $3 local.get $1 - i32.add + i32.load16_u + local.tee $4 + i32.ne + if + local.get $3 + local.get $4 + i32.sub + br $__inlined_func$~lib/util/string/compareImpl$1 + end + local.get $0 i32.const 2 - i32.shl - i32.const 48960 i32.add - i32.const 0 - i32.store offset=96 + local.set $0 local.get $1 - i32.const 1 + i32.const 2 i32.add local.set $1 - br $for-loop|1 + br $while-continue|1 end end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 + i32.const 0 end + i32.eqz + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return end - i32.const 48960 - i32.const 50532 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 48960 - global.set $~lib/rt/tlsf/ROOT + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 ) - (func $~lib/rt/tlsf/__free (param $0 i32) + (func $std/array/Dim#constructor (result i32) + (local $0 i32) (local $1 i32) - (local $2 i32) - local.get $0 - i32.const 48960 - i32.lt_u - if - return + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + 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 + i32.const 8 + i32.const 22 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + 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 16192 + i32.lt_s + br_if $folding-inner0 + 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 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 + 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 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return end - global.get $~lib/rt/tlsf/ROOT + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 i32.eqz if - call $~lib/rt/tlsf/initialize + return end - global.get $~lib/rt/tlsf/ROOT - local.set $2 - local.get $0 - i32.const 4 - i32.sub - local.set $1 - local.get $0 - i32.const 15 - i32.and - i32.const 1 local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $1 - i32.load - i32.const 1 - i32.and - end + i32.eqz if i32.const 0 - i32.const 1488 - i32.const 562 - i32.const 3 + i32.const 1216 + i32.const 295 + i32.const 14 call $~lib/builtins/abort unreachable end + global.get $~lib/rt/itcms/white 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 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + local.tee $0 + i32.load offset=4 + i32.const 3 + i32.and + local.tee $3 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $0 + local.get $1 + local.get $2 + select + call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + local.get $3 + i32.const 3 + i32.eq + i32.and + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + end + end + end ) - (func $~lib/rt/itcms/step (result i32) - (local $0 i32) - (local $1 i32) + (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/string/String.__concat (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 + (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 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.sub + global.set $~lib/memory/__stack_pointer + 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$740 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 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 + 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 - loop $while-continue|0 - local.get $0 - i32.const 48960 - 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 + br $__inlined_func$~lib/string/String#concat$740 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 + global.get $~lib/memory/__stack_pointer 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 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 local.get $0 - i32.const 48960 - 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 + 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/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (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 + (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 536870910 - i32.lt_u + i32.const 10000 + i32.ge_u if local.get $1 - i32.const 1 - i32.const 27 + i32.const 10000 + i32.rem_u + local.set $3 local.get $1 - i32.clz + 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 - 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 + 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 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u - i32.and - i32.eqz + i32.const 100 + i32.ge_u if - i32.const 0 - i32.const 1488 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable + 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 $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) + i32.const 10 + i32.ge_u + if local.get $0 - local.get $1 - i32.ctz local.get $2 - i32.const 4 + 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 offset=96 + i32.load + i32.store else local.get $0 - i32.load - i32.const -1 local.get $2 i32.const 1 - i32.add + i32.sub + i32.const 1 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 + i32.add + local.get $1 + i32.const 48 + i32.add + i32.store16 end ) - (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - local.get $1 - i32.const 1073741820 - i32.gt_u + (func $std/array/internalCapacity (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 16192 + i32.lt_s if - i32.const 1152 - i32.const 1488 - i32.const 461 - i32.const 29 + 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 $0 + i32.load + local.tee $0 + i32.store offset=4 + 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_s + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/array/Ref#constructor (param $0 i32) (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 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 + i32.const 4 + 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 local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer local.get $1 - i32.const 12 - i32.le_u + ) + (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 12 - else + i32.const 1 local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 end - local.tee $3 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz if - memory.size - local.tee $1 - local.get $3 - i32.const 256 - i32.ge_u - if (result i32) - local.get $3 + unreachable + end + i32.const 48960 + i32.const 0 + i32.store + i32.const 50528 + 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 48960 + 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 48960 + 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 48960 + i32.const 50532 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 48960 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/array/Array#splice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 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 $2 + local.get $0 + i32.load offset=12 + local.tee $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $3 + i32.add + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $3 + local.get $1 + local.get $3 + i32.lt_s + select + end + local.tee $4 + i32.sub + local.tee $1 + local.get $1 + local.get $2 + i32.gt_s + select + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + local.tee $5 + i32.const 2 + i32.const 4 + i32.const 0 + call $~lib/rt/__newArray + local.tee $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.tee $2 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.tee $6 + local.get $5 + i32.const 2 + i32.shl + memory.copy + local.get $4 + local.get $5 + i32.add + local.tee $4 + local.get $3 + i32.ne + if + local.get $6 + local.get $2 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.get $3 + local.get $4 + i32.sub + i32.const 2 + i32.shl + memory.copy + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $3 + local.get $5 + i32.sub + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $1 + i32.const 1073741820 + i32.gt_u + if + i32.const 1152 + i32.const 1488 + i32.const 461 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + 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 $3 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if + local.get $3 + i32.const 256 + i32.ge_u + if (result i32) + local.get $3 i32.const 536870910 i32.lt_u if (result i32) @@ -1938,7 +2061,8 @@ i32.const 4 local.get $0 i32.load offset=1568 - local.get $1 + memory.size + local.tee $1 i32.const 16 i32.shl i32.const 4 @@ -1952,7 +2076,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $2 + local.set $2 + local.get $1 + local.get $2 local.get $1 local.get $2 i32.gt_s @@ -2079,4382 +2205,4353 @@ end local.get $1 ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/__free (param $0 i32) + (local $1 i32) (local $2 i32) - (local $3 i32) local.get $0 - i32.const 1073741804 - i32.ge_u + i32.const 48960 + i32.lt_u if - i32.const 1152 - i32.const 1216 - i32.const 261 - i32.const 31 - call $~lib/builtins/abort - unreachable + return 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 $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$68 - end - local.get $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - local.tee $2 - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - local.get $2 - i32.add - global.set $~lib/rt/itcms/threshold - end - end - global.get $~lib/rt/tlsf/ROOT - i32.eqz + global.get $~lib/rt/tlsf/ROOT + i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 16 - i32.add - call $~lib/rt/tlsf/allocateBlock - local.tee $2 - local.get $1 - i32.store offset=12 - local.get $2 + i32.const 4 + i32.sub + local.set $1 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.const 15 i32.and - i32.or - i32.store offset=4 + 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 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 + i32.const 1 + i32.or + i32.store local.get $1 + call $~lib/rt/tlsf/insertBlock ) - (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - local.get $1 - i32.eqz + global.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 - return + 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $0 + i32.load offset=12 + local.tee $3 i32.eqz + local.get $2 + local.get $3 + i32.ge_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 + local.get $2 + i32.const 0 + i32.lt_s if + local.get $2 + local.get $3 + i32.add + local.tee $2 i32.const 0 - i32.const 1216 - i32.const 295 - i32.const 14 - call $~lib/builtins/abort - unreachable + local.get $2 + i32.const 0 + i32.gt_s + select + local.set $2 end - global.get $~lib/rt/itcms/white - local.tee $3 - local.get $1 - i32.const 20 - i32.sub - local.tee $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if + local.set $0 + loop $while-continue|0 + local.get $2 local.get $3 - i32.eqz - local.get $0 - i32.const 20 - i32.sub - local.tee $0 - i32.load offset=4 - i32.const 3 - i32.and - local.tee $3 - i32.eq + i32.lt_s if local.get $0 - local.get $1 local.get $2 - select - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - local.get $3 - i32.const 3 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $1 i32.eq - i32.and if - local.get $1 - call $~lib/rt/itcms/Object#makeGray + 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 $start:std/array~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - i32.eqz - ) - (func $start:std/array~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - i32.const 1 - i32.eq - ) - (func $start:std/array~anonymous|2 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - i32.const 100 - i32.eq - ) - (func $start:std/array~anonymous|10 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - i32.const 0 - i32.ge_s - ) - (func $start:std/array~anonymous|11 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (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 - i32.le_s - ) - (func $start:std/array~anonymous|13 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - i32.const 10 - i32.lt_s - ) - (func $start:std/array~anonymous|15 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - i32.const 3 - i32.ge_s - ) - (func $start:std/array~anonymous|16 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 + local.get $1 i32.const 0 - i32.lt_s - ) - (func $start:std/array~anonymous|18 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - i32.const 10 i32.gt_s - ) - (func $start:std/array~anonymous|20 (param $0 i32) (param $1 i32) (param $2 i32) - global.get $std/array/i + select + local.tee $2 local.get $0 - 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 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $1 local.get $1 - i32.const 100 - i32.ge_u + 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 - 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 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - i32.load - i32.store - local.get $1 - i32.const 100 - i32.div_u - local.set $1 + global.set $~lib/memory/__stack_pointer + i32.const 11568 + return end + local.get $3 + i32.eqz + local.get $4 local.get $1 - i32.const 10 - i32.ge_u + i32.const 1 + i32.shl + i32.eq + i32.and 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 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - i32.load - i32.store - else + global.set $~lib/memory/__stack_pointer 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 + return 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 - ) - (func $start:std/array~anonymous|26 (param $0 i32) (param $1 i32) (param $2 i32) (result f32) - local.get $0 - f32.convert_i32_s - ) - (func $start:std/array~anonymous|28 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - global.get $std/array/i - local.get $0 - i32.add - global.set $std/array/i - local.get $0 - ) - (func $start:std/array~anonymous|30 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $2 i32.const 2 - i32.ge_s - ) - (func $start:std/array~anonymous|32 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - global.get $std/array/i + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=4 + local.get $1 local.get $0 + local.get $3 i32.add - global.set $std/array/i - local.get $0 - i32.const 2 - i32.ge_s + local.get $2 + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 ) - (func $start:std/array~anonymous|34 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/array/Array#includes (param $0 i32) (param $1 i32) (param $2 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 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $0 local.get $1 + local.get $2 + call $~lib/array/Array#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 $start:std/array~anonymous|36 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - i32.const 1 - local.get $1 - i32.const 2 - i32.gt_s + (func $~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 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 - select - ) - (func $start:std/array~anonymous|37 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - i32.const 1 + i32.store local.get $1 - i32.const 100 - i32.gt_s local.get $0 - select - ) - (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) - (local $5 f32) - (local $6 f32) - (local $7 i32) - (local $8 f32) - (local $9 i32) - local.get $1 - local.get $3 - local.get $2 + i32.load offset=12 + i32.ge_u + if + i32.const 1344 + i32.const 1104 + 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.sub - i32.const 1 + i32.const 2 + i32.shl i32.add - local.tee $7 - local.get $3 - i32.sub - i32.const 1 - i32.and - i32.sub - local.get $7 - i32.const 1 - i32.and - local.get $3 - select + i32.load + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.set $7 - loop $for-loop|0 - local.get $2 - local.get $7 - i32.ge_s - if - local.get $0 - local.get $7 - i32.const 2 - i32.shl - i32.add - local.tee $3 - f32.load offset=4 - local.tee $8 - local.set $6 - local.get $3 - f32.load - local.set $5 - i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $8 - local.get $4 - i32.load - call_indirect (type $5) - i32.const 0 - i32.le_s - if - local.get $5 - local.set $6 - local.get $8 - local.set $5 - end - local.get $7 - i32.const 1 - i32.sub - local.set $3 - loop $while-continue|1 - local.get $1 - local.get $3 - i32.le_s - if - block $while-break|1 - local.get $0 - local.get $3 - i32.const 2 - i32.shl - i32.add - local.tee $9 - f32.load - local.set $8 - i32.const 2 - global.set $~argumentsLength - local.get $8 - local.get $5 - local.get $4 - i32.load - call_indirect (type $5) - i32.const 0 - i32.le_s - br_if $while-break|1 - local.get $9 - local.get $8 - f32.store offset=8 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - br $while-continue|1 - end - end - end - local.get $0 - local.get $3 - i32.const 2 - i32.shl - i32.add - local.get $5 - f32.store offset=8 - loop $while-continue|2 - local.get $1 - local.get $3 - i32.le_s - if - block $while-break|2 - local.get $0 - local.get $3 - i32.const 2 - i32.shl - i32.add - local.tee $9 - f32.load - local.set $5 - i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $6 - local.get $4 - i32.load - call_indirect (type $5) - i32.const 0 - i32.le_s - br_if $while-break|2 - local.get $9 - local.get $5 - f32.store offset=4 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - br $while-continue|2 - end - end - end - local.get $0 - local.get $3 - i32.const 2 - i32.shl - i32.add - local.get $6 - f32.store offset=4 - local.get $7 - i32.const 2 - i32.add - local.set $7 - br $for-loop|0 - end - end + global.set $~lib/memory/__stack_pointer + local.get $0 ) - (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (local $4 i32) - (local $5 f32) - (local $6 i32) - (local $7 f32) + (func $~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 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 - local.get $2 - i32.eq + local.get $0 + i32.load offset=12 + i32.ge_u if - local.get $1 - return + i32.const 1344 + i32.const 1104 + 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 - f32.load - local.set $5 + i32.load + local.tee $0 + i32.store offset=4 local.get $0 - local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 2 - i32.shl + i32.eqz + if + i32.const 6416 + i32.const 1104 + i32.const 118 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - f32.load - local.set $7 - i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $7 - local.get $3 - i32.load - call_indirect (type $5) - i32.const 0 - i32.gt_s + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $std/array/isArraysEqual (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 f32) + (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 16192 + i32.lt_s if - loop $while-continue|0 - local.get $2 + 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + block $folding-inner1 + block $folding-inner0 + local.get $1 + call $~lib/array/Array#get:length local.get $4 - i32.gt_s - if (result i32) - local.get $0 - local.get $4 - i32.const 2 - i32.shl - i32.add - local.tee $6 - f32.load offset=4 - local.set $5 - local.get $6 - f32.load - local.set $7 - i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $7 - local.get $3 - i32.load - call_indirect (type $5) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $while-continue|0 - end - end - local.get $4 - local.set $2 - loop $while-continue|1 + i32.ne + br_if $folding-inner0 + local.get $0 local.get $1 - local.get $2 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.tee $3 - f32.load - local.set $5 - local.get $3 - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $3 - f32.load - f32.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - local.get $3 - local.get $5 - f32.store + i32.eq + br_if $folding-inner1 + loop $for-loop|0 local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|1 - end - end - else - loop $while-continue|2 - local.get $2 - local.get $4 - i32.gt_s - if (result i32) - local.get $0 - local.get $4 - i32.const 2 - i32.shl - i32.add - local.tee $1 - f32.load offset=4 - local.set $5 - local.get $1 - f32.load - local.set $7 - i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $7 - local.get $3 - i32.load - call_indirect (type $5) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if local.get $4 - i32.const 1 - i32.add - local.set $4 - br $while-continue|2 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $2 + call $~lib/array/Array#__get + local.tee $3 + local.get $3 + f32.ne + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + local.get $2 + call $~lib/array/Array#__get + local.tee $3 + local.get $3 + f32.ne + else + i32.const 0 + end + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $2 + call $~lib/array/Array#__get + f64.promote_f32 + i64.reinterpret_f64 + i64.const 63 + i64.shr_u + i32.wrap_i64 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + local.get $2 + call $~lib/array/Array#__get + f64.promote_f32 + i64.reinterpret_f64 + i64.const 63 + i64.shr_u + i32.wrap_i64 + i32.ne + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $2 + call $~lib/array/Array#__get + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + local.get $2 + call $~lib/array/Array#__get + local.get $3 + f32.ne + br_if $folding-inner0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end end + br $folding-inner1 end - end - local.get $4 - ) - (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) - (local $6 i32) - (local $7 f32) - (local $8 f32) - (local $9 i32) - (local $10 i32) - local.get $2 + 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 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer i32.const 1 + ) + (func $std/array/assertSortedDefault (param $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.sub - local.tee $6 - local.get $3 + 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 + i32.const 11120 + i32.store offset=4 + local.get $0 + i32.const 11120 + call $std/array/assertSorted + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.set $9 - local.get $6 - i32.const 1 + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#toString (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 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 11856 + call $~lib/array/Array#join + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.set $2 + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#reduceRight (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + 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 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 1 + i32.sub + local.set $3 loop $for-loop|0 - local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.const 0 + i32.ge_s if - local.get $2 - i32.const 1 - i32.sub - local.tee $2 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.get $3 i32.const 2 i32.shl - local.tee $10 - local.get $4 i32.add + i32.load + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $10 - i32.add - f32.load - f32.store + i32.store + i32.const 4 + global.set $~argumentsLength + local.get $2 + local.get $4 + local.get $3 + local.get $0 + local.get $1 + i32.load + call_indirect (type $4) + local.set $2 + local.get $3 + i32.const 1 + i32.sub + local.set $3 br $for-loop|0 end end - loop $for-loop|1 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/array/Array#reduce (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 12 + 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 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + local.set $4 + loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $3 - local.get $6 - i32.gt_s + local.get $4 + local.get $0 + i32.load offset=12 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + i32.lt_s if - local.get $4 - local.get $9 - local.get $6 - i32.sub - i32.const 2 - i32.shl - i32.add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $6 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.get $3 i32.const 2 i32.shl i32.add - f32.load offset=4 - f32.store - local.get $6 + i32.load + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 4 + global.set $~argumentsLength + local.get $2 + local.get $5 + local.get $3 + local.get $0 + local.get $1 + i32.load + call_indirect (type $4) + local.set $2 + local.get $3 i32.const 1 i32.add - local.set $6 - br $for-loop|1 - end - end - loop $for-loop|2 - local.get $1 - local.get $3 - i32.le_s - if - local.get $4 - local.get $6 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $7 - local.get $4 - local.get $2 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $8 - i32.const 2 - global.set $~argumentsLength - local.get $7 - local.get $8 - local.get $5 - i32.load - call_indirect (type $5) - i32.const 0 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $7 - f32.store - local.get $6 - i32.const 1 - i32.sub - local.set $6 - else - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $8 - f32.store - local.get $2 - i32.const 1 - i32.add - local.set $2 - end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|2 + local.set $3 + br $for-loop|0 end end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f32) (param $1 f32) (result i32) - (local $2 i32) - (local $3 i32) + (func $~lib/array/Array#copyWithin (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result 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 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 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.reinterpret_f32 - local.tee $2 - i32.const 31 - i32.shr_s - i32.const 1 - i32.shr_u - local.get $2 - i32.xor - local.tee $2 - local.get $1 - i32.reinterpret_f32 - local.tee $3 - i32.const 31 - i32.shr_s - i32.const 1 - i32.shr_u + i32.store + local.get $0 + i32.load offset=4 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $3 - i32.xor - local.tee $3 - i32.gt_s - local.get $2 + local.get $0 + i32.load offset=12 + local.tee $5 local.get $3 + local.get $5 i32.lt_s - i32.sub - ) - (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 f64) - (local $5 f64) - (local $6 i32) - (local $7 f64) - (local $8 i32) + select + local.set $3 + local.get $4 local.get $1 - local.get $3 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $5 + i32.add + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $5 + local.get $1 + local.get $5 + i32.lt_s + select + end + local.tee $1 + i32.const 2 + i32.shl + i32.add + local.get $4 local.get $2 - local.get $1 - i32.sub - i32.const 1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $2 + local.get $5 + i32.add + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + else + local.get $2 + local.get $5 + local.get $2 + local.get $5 + i32.lt_s + select + end + local.tee $2 + i32.const 2 + i32.shl i32.add - local.tee $6 local.get $3 + i32.const 0 + i32.lt_s + if (result i32) + local.get $3 + local.get $5 + i32.add + local.tee $3 + i32.const 0 + local.get $3 + i32.const 0 + i32.gt_s + select + else + local.get $3 + local.get $5 + local.get $3 + local.get $5 + i32.lt_s + select + end + local.get $2 i32.sub - i32.const 1 - i32.and + local.tee $2 + local.get $5 + local.get $1 i32.sub - local.get $6 - i32.const 1 - i32.and - local.get $3 + local.tee $1 + local.get $1 + local.get $2 + i32.gt_s select + i32.const 2 + i32.shl + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.set $6 - loop $for-loop|0 - local.get $2 - local.get $6 - i32.ge_s - if - local.get $0 - local.get $6 - i32.const 3 - i32.shl - i32.add - local.tee $3 - f64.load offset=8 - local.tee $7 - local.set $5 - local.get $3 - f64.load - local.set $4 - i32.const 2 - global.set $~argumentsLength - local.get $4 - local.get $7 - i32.const 10544 - i32.load - call_indirect (type $6) - i32.const 0 - i32.le_s - if - local.get $4 - local.set $5 - local.get $7 - local.set $4 - end - local.get $6 - i32.const 1 - i32.sub - local.set $3 - loop $while-continue|1 - local.get $1 - local.get $3 - i32.le_s - if - block $while-break|1 - local.get $0 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.tee $8 - f64.load - local.set $7 - i32.const 2 - global.set $~argumentsLength - local.get $7 - local.get $4 - i32.const 10544 - i32.load - call_indirect (type $6) - i32.const 0 - i32.le_s - br_if $while-break|1 - local.get $8 - local.get $7 - f64.store offset=16 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - br $while-continue|1 - end - end - end - local.get $0 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.get $4 - f64.store offset=16 - loop $while-continue|2 - local.get $1 - local.get $3 - i32.le_s - if - block $while-break|2 - local.get $0 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.tee $8 - f64.load - local.set $4 - i32.const 2 - global.set $~argumentsLength - local.get $4 - local.get $5 - i32.const 10544 - i32.load - call_indirect (type $6) - i32.const 0 - i32.le_s - br_if $while-break|2 - local.get $8 - local.get $4 - f64.store offset=8 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - br $while-continue|2 - end - end - end - local.get $0 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.get $5 - f64.store offset=8 - local.get $6 - i32.const 2 - i32.add - local.set $6 - br $for-loop|0 - end - end + global.set $~lib/memory/__stack_pointer + local.get $0 ) - (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - (local $4 f64) - (local $5 f64) - (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 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $1 - local.get $2 - i32.eq + local.get $0 + i32.load offset=12 + i32.ge_u if local.get $1 - return + i32.const 0 + i32.lt_s + if + i32.const 1344 + i32.const 1104 + 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 + 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.const 2 i32.shl i32.add - f64.load - local.set $4 + 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 (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 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 + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 3 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 1344 + i32.const 1104 + 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 - f64.load - local.set $5 - i32.const 2 - global.set $~argumentsLength - local.get $4 - local.get $5 - i32.const 10544 - i32.load - call_indirect (type $6) - i32.const 0 - i32.gt_s + f32.load + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/array/isArraysEqual (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.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s if - loop $while-continue|0 - local.get $2 - local.get $3 - i32.gt_s - if (result i32) - local.get $0 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.tee $6 - f64.load offset=8 - local.set $4 - local.get $6 - f64.load - local.set $5 - i32.const 2 - global.set $~argumentsLength - local.get $4 - local.get $5 - i32.const 10544 - i32.load - call_indirect (type $6) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $while-continue|0 - end - end - local.get $3 - local.set $2 - loop $while-continue|1 + 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + block $folding-inner1 + block $folding-inner0 local.get $1 - local.get $2 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.tee $6 - f64.load - local.set $4 - local.get $6 - local.get $0 - local.get $2 - i32.const 3 - i32.shl - i32.add - local.tee $6 - f64.load - f64.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - local.get $6 - local.get $4 - f64.store - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|1 - end - end - else - loop $while-continue|2 - local.get $2 + call $~lib/array/Array#get:length local.get $3 - i32.gt_s - if (result i32) - local.get $0 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.tee $1 - f64.load offset=8 - local.set $4 - local.get $1 - f64.load - local.set $5 - i32.const 2 - global.set $~argumentsLength - local.get $4 - local.get $5 - i32.const 10544 - i32.load - call_indirect (type $6) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if + i32.ne + br_if $folding-inner0 + local.get $0 + local.get $1 + i32.eq + br_if $folding-inner1 + loop $for-loop|0 + local.get $2 local.get $3 - i32.const 1 - i32.add - local.set $3 - br $while-continue|2 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $2 + call $~lib/array/Array#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + local.get $2 + call $~lib/array/Array#__get + local.get $4 + i32.ne + br_if $folding-inner0 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end end + br $folding-inner1 end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + return end - local.get $3 - ) - (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) - (local $5 i32) - (local $6 f64) - (local $7 f64) - (local $8 i32) - (local $9 i32) - local.get $2 - i32.const 1 - i32.sub - local.tee $5 - local.get $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.set $8 - local.get $5 + global.set $~lib/memory/__stack_pointer i32.const 1 - i32.add - local.set $2 - loop $for-loop|0 - local.get $1 - local.get $2 - i32.lt_s - if - local.get $2 - i32.const 1 - i32.sub - local.tee $2 - i32.const 3 - i32.shl - local.tee $9 - local.get $4 - i32.add - local.get $0 - local.get $9 - i32.add - f64.load - f64.store - br $for-loop|0 - end + ) + (func $~lib/array/Array#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + 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 - loop $for-loop|1 + 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 + local.set $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 local.get $3 - local.get $5 + i32.add + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 i32.gt_s - if - local.get $4 - local.get $8 - local.get $5 - i32.sub - i32.const 3 - i32.shl - i32.add - local.get $0 - local.get $5 - i32.const 3 - i32.shl - i32.add - f64.load offset=8 - f64.store - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|1 - end - end - loop $for-loop|2 + select + else local.get $1 local.get $3 - i32.le_s - if - local.get $4 - local.get $5 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $6 - local.get $4 - local.get $2 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $7 - i32.const 2 - global.set $~argumentsLength - local.get $6 - local.get $7 - i32.const 10544 - i32.load - call_indirect (type $6) - i32.const 0 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $6 - f64.store - local.get $5 - i32.const 1 - i32.sub - local.set $5 - else - local.get $0 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $7 - f64.store - local.get $2 - i32.const 1 - i32.add - local.set $2 - end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|2 - end + local.get $1 + local.get $3 + i32.lt_s + select end - ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f64) (param $1 f64) (result i32) - (local $2 i64) - (local $3 i64) - local.get $0 - i64.reinterpret_f64 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $2 + local.get $3 + i32.add + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + else + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.lt_s + select + end + local.get $1 + i32.sub local.tee $2 - i64.const 63 - i64.shr_s - i64.const 1 - i64.shr_u + i32.const 0 local.get $2 - i64.xor + i32.const 0 + i32.gt_s + select local.tee $2 - local.get $1 - i64.reinterpret_f64 + i32.const 2 + i32.const 4 + i32.const 0 + call $~lib/rt/__newArray local.tee $3 - i64.const 63 - i64.shr_s - i64.const 1 - i64.shr_u + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $3 - i64.xor - local.tee $3 - i64.gt_s - local.get $2 + i32.store local.get $3 - i64.lt_s - i32.sub - ) - (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) + i32.load offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 local.get $1 - local.get $3 + i32.const 2 + i32.shl + i32.add local.get $2 - local.get $1 - i32.sub - i32.const 1 + i32.const 2 + i32.shl + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.tee $5 + global.set $~lib/memory/__stack_pointer local.get $3 + ) + (func $~lib/array/Array#findIndex (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 12 i32.sub - i32.const 1 - i32.and - i32.sub - local.get $5 - i32.const 1 - i32.and - local.get $3 - select - i32.add - local.set $7 + 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 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + local.set $3 loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $2 - local.get $7 - i32.ge_s + local.get $3 + local.get $0 + i32.load offset=12 + local.tee $4 + local.get $3 + local.get $4 + i32.lt_s + select + i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $7 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.get $2 i32.const 2 i32.shl i32.add - local.tee $3 - i32.load offset=4 - local.tee $6 - local.set $5 - local.get $3 i32.load - local.set $3 - i32.const 2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 3 global.set $~argumentsLength - local.get $3 - local.get $6 - local.get $4 + local.get $2 + local.get $0 + local.get $1 i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s + call_indirect (type $1) if - local.get $3 - local.set $5 - local.get $6 - local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return end - local.get $7 + local.get $2 i32.const 1 - i32.sub - local.set $6 - loop $while-continue|1 - local.get $1 - local.get $6 - i32.le_s - if - block $while-break|1 - local.get $0 - local.get $6 - i32.const 2 - i32.shl - i32.add - local.tee $8 - i32.load - local.set $9 - i32.const 2 - global.set $~argumentsLength - local.get $9 - local.get $3 - local.get $4 - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - br_if $while-break|1 - local.get $8 - local.get $9 - i32.store offset=8 - local.get $6 - i32.const 1 - i32.sub - local.set $6 - br $while-continue|1 - end - end - end - local.get $0 - local.get $6 - i32.const 2 - i32.shl - i32.add - local.get $3 - i32.store offset=8 - loop $while-continue|2 - local.get $1 - local.get $6 - i32.le_s - if - block $while-break|2 - local.get $0 - local.get $6 - i32.const 2 - i32.shl - i32.add - local.tee $3 - i32.load - local.set $8 - i32.const 2 - global.set $~argumentsLength - local.get $8 - local.get $5 - local.get $4 - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - br_if $while-break|2 - local.get $3 - local.get $8 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.sub - local.set $6 - br $while-continue|2 - end - end - end - local.get $0 - local.get $6 - i32.const 2 - i32.shl i32.add - local.get $5 - i32.store offset=4 - local.get $7 - i32.const 2 - i32.add - local.set $7 + local.set $2 br $for-loop|0 end end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const -1 ) - (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) + (func $~lib/array/Array#copyWithin@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 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 + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 2 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 2147483647 + local.set $3 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 local.get $1 local.get $2 - i32.eq + local.get $3 + call $~lib/array/Array#copyWithin + 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 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 16192 + i32.lt_s if - local.get $1 - return + 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 + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 1344 + i32.const 1104 + 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 1 - i32.add - local.tee $4 - i32.const 2 + i32.const 3 i32.shl i32.add - i32.load - local.set $6 - i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $6 - local.get $3 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s + f64.load + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/array/isArraysEqual (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.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s if - loop $while-continue|0 - local.get $2 - local.get $4 - i32.gt_s - if (result i32) - local.get $0 - local.get $4 - i32.const 2 - i32.shl - i32.add - local.tee $5 - i32.load offset=4 - local.set $6 - local.get $5 - i32.load - local.set $5 - i32.const 2 - global.set $~argumentsLength - local.get $6 - local.get $5 + 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + block $folding-inner1 + block $folding-inner0 + local.get $1 + call $~lib/array/Array#get:length + local.get $3 + i32.ne + br_if $folding-inner0 + local.get $0 + local.get $1 + i32.eq + br_if $folding-inner1 + loop $for-loop|0 + local.get $2 local.get $3 - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $while-continue|0 - end - end - local.get $4 - local.set $2 - loop $while-continue|1 - local.get $1 - local.get $2 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.tee $3 - i32.load - local.set $5 - local.get $3 - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $3 - i32.load - i32.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - local.get $3 - local.get $5 - i32.store - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|1 - end - end - else - loop $while-continue|2 - local.get $2 - local.get $4 - i32.gt_s - if (result i32) - local.get $0 - local.get $4 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - local.set $5 - local.get $1 - i32.load - local.set $1 - i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $1 - local.get $3 - i32.load - call_indirect (type $0) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $while-continue|2 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $2 + call $~lib/array/Array#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + local.get $2 + call $~lib/array/Array#__get + local.get $4 + i32.ne + br_if $folding-inner0 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end end + br $folding-inner1 end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + return end - local.get $4 - ) - (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $2 - i32.const 1 - i32.sub - local.tee $6 - local.get $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.set $7 - local.get $6 + global.set $~lib/memory/__stack_pointer i32.const 1 + ) + (func $start:std/array~anonymous|34 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $0 + local.get $1 i32.add - local.set $2 - loop $for-loop|0 + ) + (func $~lib/array/ensureCapacity (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 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=8 + local.tee $4 + i32.const 2 + i32.shr_u + i32.gt_u + if + local.get $1 + i32.const 268435455 + i32.gt_u + if + i32.const 1056 + i32.const 1104 + 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 $3 + i32.const 8 local.get $1 + local.get $1 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.set $1 local.get $2 - i32.lt_s if - local.get $2 + i32.const 1073741820 + local.get $4 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$657 + local.get $3 + i32.const 20 + i32.sub + local.tee $4 + i32.load + i32.const -4 + i32.and + i32.const 16 i32.sub + local.get $1 + i32.ge_u + if + local.get $4 + local.get $1 + i32.store offset=16 + local.get $3 + local.set $2 + br $__inlined_func$~lib/rt/itcms/__renew$657 + end + local.get $1 + local.get $4 + i32.load offset=12 + call $~lib/rt/itcms/__new local.tee $2 - i32.const 2 - i32.shl - local.tee $8 + local.get $3 + local.get $1 local.get $4 - i32.add - local.get $0 - local.get $8 - i32.add - i32.load - i32.store - br $for-loop|0 + i32.load offset=16 + local.tee $4 + local.get $1 + local.get $4 + i32.lt_u + select + memory.copy end - end - loop $for-loop|1 + local.get $2 local.get $3 - local.get $6 - i32.gt_s + i32.ne if - local.get $4 - local.get $7 - local.get $6 - i32.sub - i32.const 2 - i32.shl - i32.add local.get $0 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 + local.get $2 i32.store - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|1 + local.get $0 + local.get $2 + i32.store offset=4 + local.get $0 + local.get $2 + i32.const 0 + call $~lib/rt/itcms/__link end - end - loop $for-loop|2 + 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#__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 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 + 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 1104 + 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 $1 + local.get $0 + i32.load offset=4 + i32.add + i32.load8_u + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#some (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 12 + 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 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + local.set $3 + loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 local.get $3 - i32.le_s + local.get $0 + i32.load offset=12 + local.tee $4 + local.get $3 + local.get $4 + i32.lt_s + select + i32.lt_s if - local.get $4 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $7 - local.get $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 local.get $2 i32.const 2 i32.shl i32.add i32.load - local.set $8 - i32.const 2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 3 global.set $~argumentsLength - local.get $7 - local.get $8 - local.get $5 + local.get $2 + local.get $0 + local.get $1 i32.load - call_indirect (type $0) - i32.const 0 - i32.lt_s + call_indirect (type $1) if - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $7 - i32.store - local.get $6 - i32.const 1 - i32.sub - local.set $6 - else - local.get $0 - local.get $1 - i32.const 2 - i32.shl + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add - local.get $8 - i32.store - local.get $2 + global.set $~lib/memory/__stack_pointer i32.const 1 - i32.add - local.set $2 + return end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 - br $for-loop|2 + local.set $2 + br $for-loop|0 end end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - ) - (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $1 - local.get $3 + 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + local.tee $3 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const -1 + return + end local.get $2 - local.get $1 - i32.sub - i32.const 1 + local.get $3 i32.add - local.tee $4 local.get $3 - i32.sub i32.const 1 - i32.and i32.sub - local.get $4 - i32.const 1 - i32.and + local.get $2 + local.get $2 local.get $3 + i32.ge_s select - i32.add - local.set $6 - loop $for-loop|0 + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.set $0 + loop $while-continue|0 local.get $2 - local.get $6 + i32.const 0 i32.ge_s if local.get $0 - local.get $6 + local.get $2 i32.const 2 i32.shl i32.add - local.tee $3 - i32.load offset=4 - local.tee $5 - local.set $4 - local.get $3 - i32.load - local.set $3 - i32.const 2 - global.set $~argumentsLength - local.get $3 - local.get $5 - i32.const 10848 i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s + local.get $1 + i32.eq if - local.get $3 - local.set $4 - local.get $5 - local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return end - local.get $6 + local.get $2 i32.const 1 i32.sub - local.set $5 - loop $while-continue|1 - local.get $1 - local.get $5 - i32.le_s - if - block $while-break|1 - local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - local.tee $8 - i32.load - local.set $7 - i32.const 2 - global.set $~argumentsLength - local.get $7 - local.get $3 - i32.const 10848 - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - br_if $while-break|1 - local.get $8 - local.get $7 - i32.store offset=8 - local.get $5 - i32.const 1 - i32.sub - local.set $5 - br $while-continue|1 - end - end - end + 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/array/Array#forEach (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + 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 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + local.set $3 + loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 + local.get $3 + local.get $0 + i32.load offset=12 + local.tee $4 + local.get $3 + local.get $4 + i32.lt_s + select + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - local.get $3 i32.store offset=8 - loop $while-continue|2 - local.get $1 - local.get $5 - i32.le_s - if - block $while-break|2 - local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - local.tee $3 - i32.load - local.set $7 - i32.const 2 - global.set $~argumentsLength - local.get $7 - local.get $4 - i32.const 10848 - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - br_if $while-break|2 - local.get $3 - local.get $7 - i32.store offset=4 - local.get $5 - i32.const 1 - i32.sub - local.set $5 - br $while-continue|2 - end - end - end local.get $0 - local.get $5 + i32.load offset=4 + local.get $2 i32.const 2 i32.shl i32.add - local.get $4 - i32.store offset=4 - local.get $6 - i32.const 2 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $3) + local.get $2 + i32.const 1 i32.add - local.set $6 + local.set $2 br $for-loop|0 end end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#every (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - local.get $1 - local.get $2 - i32.eq + 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 16192 + i32.lt_s if - local.get $1 - return + 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 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $4 + i32.store local.get $0 - local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 - i32.const 2 - global.set $~argumentsLength - local.get $4 - local.get $5 - i32.const 10848 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - if - loop $while-continue|0 - local.get $2 - local.get $3 - i32.gt_s - if (result i32) - local.get $0 - local.get $3 - i32.const 2 - i32.shl - i32.add - local.tee $4 - i32.load offset=4 - local.set $5 - local.get $4 - i32.load - local.set $4 - i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $4 - i32.const 10848 - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $while-continue|0 - end - end - local.get $3 - local.set $2 - loop $while-continue|1 - local.get $1 - local.get $2 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.tee $4 - i32.load - local.set $5 - local.get $4 - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $4 - i32.load - i32.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - local.get $4 - local.get $5 - i32.store - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|1 - end - end - else - loop $while-continue|2 - local.get $2 - local.get $3 - i32.gt_s - if (result i32) - local.get $0 - local.get $3 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - local.set $4 - local.get $1 - i32.load - local.set $1 - i32.const 2 - global.set $~argumentsLength - local.get $4 - local.get $1 - i32.const 10848 - i32.load - call_indirect (type $0) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $while-continue|2 - end - end - end - local.get $3 - ) - (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - local.get $2 - i32.const 1 - i32.sub - local.tee $5 - local.get $3 - i32.add - local.set $6 - local.get $5 - i32.const 1 - i32.add - local.set $2 + i32.load offset=12 + local.set $3 loop $for-loop|0 - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $2 + local.get $3 + local.get $0 + i32.load offset=12 + local.tee $4 + local.get $3 + local.get $4 + i32.lt_s + select i32.lt_s if - local.get $2 - i32.const 1 - i32.sub - local.tee $2 - i32.const 2 - i32.shl - local.tee $7 - local.get $4 - i32.add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $7 - i32.add - i32.load - i32.store - br $for-loop|0 - end - end - loop $for-loop|1 - local.get $3 - local.get $5 - i32.gt_s - if - local.get $4 - local.get $6 - local.get $5 - i32.sub - i32.const 2 - i32.shl - i32.add + i32.store offset=8 local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add i32.load offset=4 - i32.store - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|1 - end - end - loop $for-loop|2 - local.get $1 - local.get $3 - i32.le_s - if - local.get $4 - local.get $5 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $6 - local.get $4 local.get $2 i32.const 2 i32.shl i32.add i32.load - local.set $7 - i32.const 2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 3 global.set $~argumentsLength - local.get $6 - local.get $7 - i32.const 10848 + local.get $2 + local.get $0 + local.get $1 i32.load - call_indirect (type $0) - i32.const 0 - i32.lt_s + call_indirect (type $1) + i32.eqz if - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $6 - i32.store - local.get $5 - i32.const 1 - i32.sub - local.set $5 - else - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $7 - i32.store - local.get $2 - i32.const 1 + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add - local.set $2 + global.set $~lib/memory/__stack_pointer + i32.const 0 + return end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 - br $for-loop|2 + local.set $2 + br $for-loop|0 end end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) - local.get $0 - local.get $1 - i32.gt_u - local.get $0 - local.get $1 - i32.lt_u + (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 - ) - (func $~lib/math/NativeMath.random (result f64) - (local $0 i64) - (local $1 i64) - global.get $~lib/math/random_seeded - i32.eqz + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s if - i64.const -7046029254386353131 - call $~lib/builtins/seed - i64.reinterpret_f64 - local.tee $0 - local.get $0 - i64.eqz - select - local.tee $0 - local.get $0 - i64.const 33 - i64.shr_u - i64.xor - i64.const -49064778989728563 - i64.mul - local.tee $0 - local.get $0 - i64.const 33 - i64.shr_u - i64.xor - i64.const -4265267296055464877 - i64.mul - local.tee $0 - local.get $0 - i64.const 33 - i64.shr_u - i64.xor - global.set $~lib/math/random_state0_64 - global.get $~lib/math/random_state0_64 - i64.const -1 - i64.xor - local.tee $0 - local.get $0 - i64.const 33 - i64.shr_u - i64.xor - i64.const -49064778989728563 - i64.mul - local.tee $0 - local.get $0 - i64.const 33 - i64.shr_u - i64.xor - i64.const -4265267296055464877 - i64.mul - local.tee $0 - local.get $0 - i64.const 33 - i64.shr_u - i64.xor - global.set $~lib/math/random_state1_64 + i32.const 48992 + i32.const 49040 i32.const 1 - global.set $~lib/math/random_seeded + i32.const 1 + call $~lib/builtins/abort + unreachable end - global.get $~lib/math/random_state0_64 - local.set $1 - global.get $~lib/math/random_state1_64 - local.tee $0 - global.set $~lib/math/random_state0_64 + 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 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 - i64.const 23 - i64.shl - i64.xor - local.tee $1 + i32.const 0 + i32.store local.get $1 - i64.const 17 - i64.shr_u - i64.xor - local.get $0 - i64.xor - local.get $0 - i64.const 26 - i64.shr_u - i64.xor - global.set $~lib/math/random_state1_64 - local.get $0 - i64.const 12 - i64.shr_u - i64.const 4607182418800017408 - i64.or - f64.reinterpret_i64 - f64.const -1 - f64.add - ) - (func $start:std/array~anonymous|49 (param $0 i32) (param $1 i32) (result i32) + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $0 - i32.sub - ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + i32.store offset=4 local.get $1 i32.const 0 - i32.lt_s - local.tee $2 + 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 - local.get $0 - i32.const 45 - i32.store16 - i32.const 0 - local.get $1 - i32.sub - local.set $1 + i32.const 1056 + i32.const 1104 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 8 local.get $0 - local.get $2 - i32.const 1 + 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 + 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 $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 - local.set $0 + global.set $~lib/memory/__stack_pointer local.get $1 - i32.const 10 - i32.lt_u - if + ) + (func $std/array/assertSorted (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 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 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 + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.const 48 - i32.or - i32.store16 - local.get $2 - i32.const 1 + i32.store offset=12 + local.get $0 + local.get $1 + call $~lib/array/Array#sort + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.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 + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + i32.const 1 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/array/Array#get:length + local.set $3 + block $__inlined_func$std/array/isSorted$662 (result i32) + loop $for-loop|0 + local.get $0 + local.get $3 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $0 + i32.const 1 + i32.sub + call $~lib/array/Array#__get + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $0 + call $~lib/array/Array#__get + i32.const 2 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + br $__inlined_func$std/array/isSorted$662 + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + end + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1080 + 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 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 + i32.sub + ) + (func $~lib/util/number/utoa64_dec_lut (param $0 i32) (param $1 i64) (param $2 i32) + (local $3 i32) + (local $4 i32) + loop $while-continue|0 + local.get $1 + i64.const 100000000 + i64.ge_u + if + local.get $0 + local.get $2 + i32.const 4 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + i32.add + local.get $1 + local.get $1 + i64.const 100000000 + i64.div_u + local.tee $1 + i64.const 100000000 + i64.mul + i64.sub + i32.wrap_i64 + local.tee $3 + i32.const 10000 + i32.rem_u + local.tee $4 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 7724 + i32.add + i64.load32_u + local.get $4 + 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 + local.get $0 + local.get $2 + i32.const 4 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + i32.add + local.get $3 + i32.const 10000 + i32.div_u + local.tee $3 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 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 $0 local.get $1 + i32.wrap_i64 + local.get $2 + call $~lib/util/number/utoa32_dec_lut + ) + (func $~lib/util/number/itoa32 (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 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 + 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 $0 + select + 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 end end - local.tee $0 - call $~lib/util/number/utoa32_dec_lut + local.tee $1 + i32.const 1 + i32.shl local.get $0 - local.get $2 i32.add - ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $0 + local.get $3 + i32.add + local.get $2 local.get $1 - i32.const 10 - i32.lt_u + call $~lib/util/number/utoa32_dec_lut + local.get $0 if - local.get $0 - local.get $1 - i32.const 48 - i32.or + local.get $3 + i32.const 45 i32.store16 - i32.const 1 - return end - local.get $0 - local.get $1 - 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 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (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 48960 + 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 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 + 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 48960 + 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/array/Array#fill (param $0 i32) (param $1 i32) (param $2 i32) (param $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 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 + 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 + local.get $0 + i32.load offset=12 local.tee $0 - call $~lib/util/number/utoa32_dec_lut + local.get $2 + i32.add + local.get $2 + local.get $0 local.get $0 - ) - (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) - (local $6 i32) - (local $7 i32) - (local $8 i64) - (local $9 i64) - (local $10 i32) - (local $11 i64) - (local $12 i64) local.get $2 - local.get $1 - i64.sub - local.set $9 - i64.const 1 + i32.gt_s + select + local.get $2 i32.const 0 + i32.lt_s + select + local.tee $2 + local.get $0 + local.get $3 + i32.add + local.get $3 + local.get $0 + local.get $0 local.get $3 + i32.gt_s + select + local.get $3 + i32.const 0 + i32.lt_s + select + local.tee $0 + i32.lt_s + if + local.get $2 + local.get $4 + i32.add + local.get $1 + local.get $0 + local.get $2 + i32.sub + memory.fill + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#fill (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - local.tee $10 - i64.extend_i32_s - local.tee $1 - i64.shl - local.tee $12 - i64.const 1 - i64.sub - local.tee $11 + 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 + 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 local.get $2 - i64.and - local.set $8 + local.get $0 + i32.load offset=12 + local.tee $0 + i32.add local.get $2 - local.get $1 - i64.shr_u - i32.wrap_i64 - local.tee $3 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $3 - i32.const 100 - i32.lt_u - if (result i32) - local.get $3 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $3 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $3 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $3 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $3 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $3 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $3 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.set $7 - loop $while-continue|0 - local.get $7 - i32.const 0 - i32.gt_s + local.get $0 + local.get $0 + local.get $2 + i32.gt_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $2 + local.get $0 + local.get $3 + i32.add + local.get $3 + local.get $0 + local.get $0 + local.get $3 + i32.gt_s + select + local.get $3 + i32.const 0 + i32.lt_s + select + local.set $0 + block $__inlined_func$~lib/util/bytes/FILL$139 + local.get $1 + i32.eqz + local.get $1 + i32.const -1 + i32.eq + i32.or if - block $break|1 - block $case10|1 - block $case9|1 - block $case8|1 - block $case7|1 - block $case6|1 - block $case5|1 - block $case4|1 - block $case3|1 - block $case2|1 - block $case1|1 - block $case0|1 - local.get $7 - i32.const 1 - i32.sub - br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $case0|1 $case10|1 - end - local.get $3 - i32.const 1000000000 - i32.div_u - local.set $6 - local.get $3 - i32.const 1000000000 - i32.rem_u - local.set $3 - br $break|1 - end - local.get $3 - i32.const 100000000 - i32.div_u - local.set $6 - local.get $3 - i32.const 100000000 - i32.rem_u - local.set $3 - br $break|1 - end - local.get $3 - i32.const 10000000 - i32.div_u - local.set $6 - local.get $3 - i32.const 10000000 - i32.rem_u - local.set $3 - br $break|1 - end - local.get $3 - i32.const 1000000 - i32.div_u - local.set $6 - local.get $3 - i32.const 1000000 - i32.rem_u - local.set $3 - br $break|1 - end - local.get $3 - i32.const 100000 - i32.div_u - local.set $6 - local.get $3 - i32.const 100000 - i32.rem_u - local.set $3 - br $break|1 - end - local.get $3 - i32.const 10000 - i32.div_u - local.set $6 - local.get $3 - i32.const 10000 - i32.rem_u - local.set $3 - br $break|1 - end - local.get $3 - i32.const 1000 - i32.div_u - local.set $6 - local.get $3 - i32.const 1000 - i32.rem_u - local.set $3 - br $break|1 - end - local.get $3 - i32.const 100 - i32.div_u - local.set $6 - local.get $3 - i32.const 100 - i32.rem_u - local.set $3 - br $break|1 - end - local.get $3 - i32.const 10 - i32.div_u - local.set $6 - local.get $3 - i32.const 10 - i32.rem_u - local.set $3 - br $break|1 - end - local.get $3 - local.set $6 - i32.const 0 - local.set $3 - br $break|1 - end - i32.const 0 - local.set $6 - end - local.get $5 - local.get $6 - i32.or + local.get $0 + local.get $2 + i32.gt_s if - local.get $0 - local.get $5 - i32.const 1 + local.get $4 + local.get $2 + i32.const 2 i32.shl i32.add - local.get $6 - i32.const 65535 - i32.and - i32.const 48 - i32.add - i32.store16 - local.get $5 - i32.const 1 - i32.add - local.set $5 + local.get $1 + local.get $0 + local.get $2 + i32.sub + i32.const 2 + i32.shl + memory.fill end - local.get $7 - i32.const 1 - i32.sub - local.set $7 - local.get $4 - local.get $3 - i64.extend_i32_u - local.get $10 - i64.extend_i32_s - local.tee $2 - i64.shl - local.get $8 - i64.add - local.tee $1 - i64.ge_u + br $__inlined_func$~lib/util/bytes/FILL$139 + end + loop $for-loop|0 + local.get $0 + local.get $2 + i32.gt_s if - global.get $~lib/util/number/_K - local.get $7 - i32.add - global.set $~lib/util/number/_K - local.get $7 + local.get $4 + local.get $2 i32.const 2 i32.shl - i32.const 13392 i32.add - i64.load32_u + local.get $1 + i32.store local.get $2 - i64.shl + i32.const 1 + i32.add local.set $2 - local.get $0 - local.get $5 + br $for-loop|0 + end + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#splice@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + 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 + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength i32.const 1 i32.sub - i32.const 1 - i32.shl - i32.add - local.tee $0 - i32.load16_u - local.set $7 - loop $while-continue|3 - local.get $1 - local.get $9 - i64.lt_u - local.get $4 - local.get $1 - i64.sub - local.get $2 - i64.ge_u - i32.and - if (result i32) - local.get $9 - local.get $1 - local.get $2 - i64.add - local.tee $8 - i64.gt_u - local.get $9 - local.get $1 - i64.sub - local.get $8 - local.get $9 - i64.sub - i64.gt_u - i32.or - else - i32.const 0 - end - if - local.get $7 - i32.const 1 - i32.sub - local.set $7 - local.get $1 - local.get $2 - i64.add - local.set $1 - br $while-continue|3 - end - end - local.get $0 - local.get $7 - i32.store16 - local.get $5 - return + br_table $0of1 $1of1 $outOfRange end - br $while-continue|0 + unreachable end + i32.const 2147483647 + local.set $2 end - loop $while-continue|4 - local.get $4 - i64.const 10 - i64.mul - local.set $4 - local.get $8 - i64.const 10 - i64.mul - local.tee $1 - local.get $10 - i64.extend_i32_s - i64.shr_u - local.tee $2 - local.get $5 - i64.extend_i32_s - i64.or - i64.const 0 - i64.ne - if - local.get $0 - local.get $5 - i32.const 1 - i32.shl - i32.add - local.get $2 - i32.wrap_i64 - i32.const 65535 - i32.and - i32.const 48 - i32.add - i32.store16 - local.get $5 - i32.const 1 - i32.add - local.set $5 - end - local.get $7 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#splice + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#slice@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 i32.const 1 - i32.sub - local.set $7 - local.get $1 - local.get $11 - i64.and - local.tee $8 - local.get $4 - i64.ge_u - br_if $while-continue|4 + i32.const 1 + call $~lib/builtins/abort + unreachable end - global.get $~lib/util/number/_K - local.get $7 - i32.add - global.set $~lib/util/number/_K - local.get $9 + global.get $~lib/memory/__stack_pointer i32.const 0 - local.get $7 - i32.sub - i32.const 2 - i32.shl - i32.const 13392 + i32.store + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + i32.const 2147483647 + local.set $2 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#slice + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - i64.load32_u - i64.mul - local.set $1 + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 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 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 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $5 + i32.store + local.get $0 + i32.load offset=12 i32.const 1 i32.sub - i32.const 1 - i32.shl - i32.add - local.tee $0 - i32.load16_u - local.set $7 - loop $while-continue|6 - local.get $1 - local.get $8 - i64.gt_u - local.get $4 - local.get $8 - i64.sub - local.get $12 - i64.ge_u - i32.and - if (result i32) - local.get $1 - local.get $8 - local.get $12 - i64.add - local.tee $2 - i64.gt_u + local.set $2 + loop $for-loop|0 + local.get $2 + i32.const 0 + i32.ge_s + if + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $8 - i64.sub + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 3 + global.set $~argumentsLength local.get $2 + local.get $0 local.get $1 - i64.sub - i64.gt_u - i32.or - else - i32.const 0 - end - if - local.get $7 + i32.load + call_indirect (type $1) + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + local.get $2 i32.const 1 i32.sub - local.set $7 - local.get $8 - local.get $12 - i64.add - local.set $8 - br $while-continue|6 + local.set $2 + br $for-loop|0 end end - local.get $0 - local.get $7 - i32.store16 - local.get $5 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const -1 ) - (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#filter (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) (local $3 i32) (local $4 i32) - local.get $2 - i32.eqz + (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 16192 + i32.lt_s if - local.get $0 - local.get $1 + i32.const 48992 + i32.const 49040 i32.const 1 - i32.shl - i32.add - i32.const 3145774 - i32.store - local.get $1 - i32.const 2 - i32.add - return + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.get $1 - local.get $2 - i32.add + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 2 + i32.const 4 + i32.const 0 + call $~lib/rt/__newArray local.tee $3 - i32.const 21 - i32.le_s - local.get $1 - local.get $3 - i32.le_s - i32.and - if (result i32) - loop $for-loop|0 - local.get $1 - local.get $3 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 48 - i32.store16 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 - end - end + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=12 + local.set $4 + loop $for-loop|0 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $3 - i32.const 1 - i32.shl - i32.add - i32.const 3145774 - i32.store - local.get $3 - i32.const 2 - i32.add - else - local.get $3 - i32.const 21 - i32.le_s - local.get $3 - i32.const 0 - i32.gt_s - i32.and - if (result i32) + i32.store offset=4 + local.get $2 + local.get $4 + local.get $0 + i32.load offset=12 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + i32.lt_s + if + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.tee $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.get $2 i32.const 2 + i32.shl i32.add + i32.load + local.set $5 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 0 + i32.store offset=4 + i32.const 3 + global.set $~argumentsLength + local.get $5 local.get $2 - i32.sub - i32.const 1 - i32.shl - memory.copy local.get $0 - i32.const 46 - i32.store16 local.get $1 - i32.const 1 - i32.add - else - local.get $3 - i32.const 0 - i32.le_s - local.get $3 - i32.const -6 - i32.gt_s - i32.and - if (result i32) - local.get $0 - i32.const 2 + i32.load + call_indirect (type $1) + if + global.get $~lib/memory/__stack_pointer local.get $3 - i32.sub - local.tee $3 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $1 - i32.const 1 - i32.shl - memory.copy - local.get $0 - i32.const 3014704 - i32.store - i32.const 2 - local.set $2 - loop $for-loop|1 - local.get $2 - local.get $3 - i32.lt_s - if - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 48 - i32.store16 - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|1 - end - end - local.get $1 + i32.store offset=4 local.get $3 - i32.add - else - local.get $1 - i32.const 1 - i32.eq - if - local.get $0 - i32.const 101 - i32.store16 offset=2 - local.get $0 - i32.const 4 - i32.add - local.tee $2 - local.get $3 - i32.const 1 - i32.sub - local.tee $0 - i32.const 0 - i32.lt_s - local.tee $3 - if - i32.const 0 - local.get $0 - i32.sub - local.set $0 - end - local.get $0 - local.get $0 - 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 - i32.const 1 - i32.add - local.tee $1 - call $~lib/util/number/utoa32_dec_lut - local.get $2 - i32.const 45 - i32.const 43 - local.get $3 - select - i32.store16 - else - local.get $0 - i32.const 4 - i32.add - local.get $0 - i32.const 2 - i32.add - local.get $1 - i32.const 1 - i32.shl - local.tee $2 - i32.const 2 - i32.sub - memory.copy - local.get $0 - i32.const 46 - i32.store16 offset=2 - local.get $0 - local.get $2 - i32.add - local.tee $0 - i32.const 101 - i32.store16 offset=2 - local.get $0 - i32.const 4 - i32.add - local.tee $4 - local.get $3 - i32.const 1 - i32.sub - local.tee $0 - i32.const 0 - i32.lt_s - local.tee $2 - if - i32.const 0 - local.get $0 - i32.sub - local.set $0 - end - local.get $0 - local.get $0 - 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 - i32.const 1 - i32.add - local.tee $0 - call $~lib/util/number/utoa32_dec_lut - local.get $4 - i32.const 45 - i32.const 43 - local.get $2 - select - i32.store16 - local.get $0 - local.get $1 - i32.add - local.set $1 - end - local.get $1 - i32.const 2 - i32.add + local.get $5 + call $~lib/array/Array#push end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 end end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 ) - (func $~lib/util/number/dtoa_core (param $0 i32) (param $1 f64) (result i32) - (local $2 i64) + (func $~lib/array/Array#concat (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) (local $3 i32) - (local $4 i64) - (local $5 i64) - (local $6 i64) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i64) - (local $11 i64) - (local $12 i64) - (local $13 i64) - (local $14 i64) - (local $15 i64) - local.get $1 - f64.const 0 - f64.lt - local.tee $3 - if (result f64) - local.get $0 - i32.const 45 - i32.store16 - local.get $1 - f64.neg - else - local.get $1 + (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 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - i64.reinterpret_f64 + 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 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=12 local.tee $2 - i64.const 9218868437227405312 - i64.and - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.tee $7 - i32.const 1 - local.get $7 - select - i32.const 1075 - i32.sub - local.tee $8 - i32.const 1 - i32.sub - local.get $2 - i64.const 4503599627370495 - i64.and - local.get $7 + local.get $3 + i32.add + local.tee $4 + i32.const 268435455 + i32.gt_u + if + i32.const 1056 + i32.const 1104 + i32.const 224 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 2 + i32.const 4 i32.const 0 - i32.ne - i64.extend_i32_u - i64.const 52 - i64.shl - i64.add - local.tee $2 - i64.const 1 - i64.shl - i64.const 1 - i64.add + call $~lib/rt/__newArray local.tee $4 - i64.clz - i32.wrap_i64 - local.tee $7 - i32.sub - local.set $9 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $4 - local.get $7 - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_plus - local.get $2 + i32.store + local.get $4 + i32.load offset=4 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $5 + local.get $0 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + local.tee $0 + memory.copy + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $0 + local.get $5 + i32.add + local.get $1 + i32.load offset=4 local.get $2 - i64.const 4503599627370496 - i64.eq - i32.const 1 + i32.const 2 + i32.shl + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.tee $7 - i64.extend_i32_s - i64.shl - i64.const 1 - i64.sub - local.get $8 - local.get $7 + global.set $~lib/memory/__stack_pointer + local.get $4 + ) + (func $~lib/array/Array#at (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - local.get $9 - i32.sub - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_minus - local.get $9 - global.set $~lib/util/number/_exp - i32.const 348 - i32.const -61 - global.get $~lib/util/number/_exp - local.tee $7 - i32.sub - f64.convert_i32_s - f64.const 0.30102999566398114 - f64.mul - f64.const 347 - f64.add + 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + local.tee $2 + i32.const 0 + local.get $1 + i32.const 0 + i32.lt_s + select + i32.add local.tee $1 - i32.trunc_sat_f64_s - local.tee $8 - local.get $8 - f64.convert_i32_s + local.get $2 + i32.ge_u + if + i32.const 1344 + i32.const 1104 + i32.const 143 + i32.const 33 + 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 - f64.ne + i32.const 2 + i32.shl i32.add - i32.const 3 - i32.shr_s - i32.const 1 + i32.load + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.tee $8 - i32.const 3 - i32.shl - local.tee $9 + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#fill@varargs (param $0 i32) (param $1 f32) (param $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - global.set $~lib/util/number/_K - local.get $9 - i32.const 12520 - i32.add - i64.load - global.set $~lib/util/number/_frc_pow - local.get $8 - i32.const 1 - i32.shl - i32.const 13216 + 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 + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $2 + end + i32.const 2147483647 + local.set $3 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $2 + local.get $3 + call $~lib/array/Array#fill + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - i32.load16_s - global.set $~lib/util/number/_exp_pow + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#fill (param $0 i32) (param $1 f32) (param $2 i32) (param $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 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 + 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 local.get $2 + local.get $0 + i32.load offset=12 + local.tee $0 + i32.add local.get $2 - i64.clz - i64.shl - local.tee $2 - i64.const 4294967295 - i64.and - local.set $5 + local.get $0 + local.get $0 local.get $2 - i64.const 32 - i64.shr_u - local.tee $4 - global.get $~lib/util/number/_frc_pow - local.tee $10 - i64.const 4294967295 - i64.and - local.tee $11 - i64.mul - local.get $5 - local.get $11 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.set $12 - global.get $~lib/util/number/_frc_plus - local.tee $2 - i64.const 4294967295 - i64.and - local.set $13 - local.get $11 + i32.gt_s + select local.get $2 - i64.const 32 - i64.shr_u - local.tee $6 - i64.mul - local.get $11 - local.get $13 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.set $14 - global.get $~lib/util/number/_frc_minus - local.tee $15 - i64.const 4294967295 - i64.and + i32.const 0 + i32.lt_s + select local.set $2 - local.get $11 - local.get $15 - i64.const 32 - i64.shr_u - local.tee $15 - i64.mul - local.get $2 - local.get $11 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.set $11 - local.get $10 - i64.const 32 - i64.shr_u - local.tee $10 - local.get $6 - i64.mul - local.get $14 - i64.const 32 - i64.shr_u - i64.add - local.get $10 - local.get $13 - i64.mul - local.get $14 - i64.const 4294967295 - i64.and - i64.add - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - i64.const 1 - i64.sub - local.set $6 local.get $0 local.get $3 - i32.const 1 - i32.shl i32.add - local.get $0 - local.get $4 - local.get $10 - i64.mul - local.get $12 - i64.const 32 - i64.shr_u - i64.add - local.get $5 - local.get $10 - i64.mul - local.get $12 - i64.const 4294967295 - i64.and - i64.add - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - local.get $6 - local.get $7 - global.get $~lib/util/number/_exp_pow - i32.add - i32.const -64 - i32.sub - local.get $6 - local.get $10 - local.get $15 - i64.mul - local.get $11 - i64.const 32 - i64.shr_u - i64.add - local.get $2 - local.get $10 - i64.mul - local.get $11 - i64.const 4294967295 - i64.and - i64.add - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - i64.const 1 - i64.add - i64.sub local.get $3 - call $~lib/util/number/genDigits + local.get $0 + local.get $0 local.get $3 - i32.sub - global.get $~lib/util/number/_K - call $~lib/util/number/prettify + i32.gt_s + select local.get $3 - i32.add - ) - (func $~lib/util/number/dtoa_buffered (param $0 i32) (param $1 f64) (result i32) - (local $2 i32) - local.get $1 - f64.const 0 - f64.eq - if - local.get $0 - i32.const 48 - i32.store16 - local.get $0 - i32.const 46 - i32.store16 offset=2 - local.get $0 - i32.const 48 - i32.store16 offset=4 - i32.const 3 - return - end - local.get $1 - local.get $1 - f64.sub - f64.const 0 - f64.ne - if - local.get $1 + i32.const 0 + i32.lt_s + select + local.set $0 + block $__inlined_func$~lib/util/bytes/FILL$148 local.get $1 - f64.ne + i32.reinterpret_f32 + i32.eqz if local.get $0 - i32.const 78 - i32.store16 - local.get $0 - i32.const 97 - i32.store16 offset=2 - local.get $0 - i32.const 78 - i32.store16 offset=4 - i32.const 3 - return - else - local.get $1 - f64.const 0 - f64.lt - local.tee $2 + local.get $2 + i32.gt_s if - local.get $0 - i32.const 45 - i32.store16 - local.get $0 + local.get $4 + local.get $2 i32.const 2 + i32.shl i32.add - local.set $0 + i32.const 0 + local.get $0 + local.get $2 + i32.sub + i32.const 2 + i32.shl + memory.fill end + br $__inlined_func$~lib/util/bytes/FILL$148 + end + loop $for-loop|0 local.get $0 - i64.const 29555310648492105 - i64.store - local.get $0 - i64.const 34058970405077102 - i64.store offset=8 local.get $2 - i32.const 8 - i32.add - return + i32.gt_s + if + local.get $4 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.get $1 + f32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end end - unreachable end - local.get $0 - local.get $1 - call $~lib/util/number/dtoa_core + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + (func $std/array/createReverseOrderedArray (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) - (local $3 i32) - local.get $1 - i32.extend8_s - local.tee $3 - i32.const 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 16192 i32.lt_s - local.tee $2 if - local.get $3 - i32.const -128 - i32.eq - if - local.get $0 - i64.const 15762813447372845 - i64.store - i32.const 4 - return - end - local.get $0 - i32.const 45 - i32.store16 - i32.const 0 - local.get $1 - i32.sub - local.set $1 + 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 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.set $0 - local.get $1 - i32.extend8_s - local.tee $3 - i32.const 10 - i32.lt_u - if + call $~lib/array/Array#constructor + local.tee $2 + i32.store + loop $for-loop|0 local.get $0 - local.get $3 - i32.const 48 - i32.or - i32.store16 - local.get $2 - i32.const 1 - i32.add - return - end - local.get $1 - i32.extend8_s - local.tee $1 - i32.const 100000 - i32.lt_u - if (result i32) local.get $1 - i32.const 100 - i32.lt_u - if (result i32) + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 local.get $1 - i32.const 10 - i32.ge_u + local.get $0 i32.const 1 - i32.add - else + i32.sub local.get $1 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add + i32.sub + call $~lib/array/Array#__set 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.const 1 i32.add + local.set $1 + br $for-loop|0 end end - local.set $3 - local.get $0 - local.get $1 - local.get $3 - call $~lib/util/number/utoa32_dec_lut - local.get $2 - local.get $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - i32.const 65535 - i32.and - local.tee $2 - i32.const 10 - i32.lt_u - if - local.get $0 - local.get $2 - i32.const 48 - i32.or - i32.store16 - i32.const 1 - return - end - local.get $1 - i32.const 65535 - i32.and - local.set $1 - 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 - local.set $2 - local.get $0 - local.get $1 - local.get $2 - call $~lib/util/number/utoa32_dec_lut + global.set $~lib/memory/__stack_pointer local.get $2 ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) local.get $1 - i32.extend16_s - local.tee $3 - i32.const 0 - i32.lt_s - local.tee $2 - if - local.get $3 - i32.const -32768 - i32.eq - if - local.get $0 - i64.const 15481338470793261 - i64.store - local.get $0 - i32.const 3670070 - i32.store offset=8 - i32.const 6 - return - end - local.get $0 - i32.const 45 - i32.store16 - i32.const 0 - local.get $1 - i32.sub - local.set $1 - end - local.get $0 + local.get $3 local.get $2 + local.get $1 + i32.sub i32.const 1 - i32.shl i32.add - local.set $0 - local.get $1 - i32.extend16_s - local.tee $3 - i32.const 10 - i32.lt_u - if - local.get $0 - local.get $3 - i32.const 48 - i32.or - i32.store16 - local.get $2 - i32.const 1 - i32.add - return - end - local.get $1 - i32.extend16_s - 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.set $3 - local.get $0 - local.get $1 + local.tee $4 local.get $3 - call $~lib/util/number/utoa32_dec_lut - local.get $2 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $4 + i32.const 1 + i32.and local.get $3 + select i32.add - ) - (func $~lib/util/number/utoa64_dec_lut (param $0 i32) (param $1 i64) (param $2 i32) - (local $3 i32) - (local $4 i32) - loop $while-continue|0 - local.get $1 - i64.const 100000000 - i64.ge_u + local.set $6 + loop $for-loop|0 + local.get $2 + local.get $6 + i32.ge_s if local.get $0 - local.get $2 - i32.const 4 - i32.sub - local.tee $2 - i32.const 1 - i32.shl - i32.add - local.get $1 - local.get $1 - i64.const 100000000 - i64.div_u - local.tee $1 - i64.const 100000000 - i64.mul - i64.sub - i32.wrap_i64 - local.tee $3 - i32.const 10000 - i32.rem_u - local.tee $4 - i32.const 100 - i32.div_u - i32.const 2 - i32.shl - i32.const 7724 - i32.add - i64.load32_u - local.get $4 - i32.const 100 - i32.rem_u + local.get $6 i32.const 2 i32.shl - i32.const 7724 - i32.add - i64.load32_u - i64.const 32 - i64.shl - i64.or - i64.store - local.get $0 - local.get $2 - i32.const 4 - i32.sub - local.tee $2 - i32.const 1 - i32.shl i32.add - local.get $3 - i32.const 10000 - i32.div_u local.tee $3 - i32.const 100 - i32.div_u - i32.const 2 - i32.shl - i32.const 7724 - i32.add - i64.load32_u + i32.load offset=4 + local.tee $5 + local.set $4 local.get $3 - i32.const 100 - i32.rem_u + i32.load + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $5 + i32.const 10848 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + if + local.get $3 + local.set $4 + local.get $5 + local.set $3 + end + local.get $6 + i32.const 1 + i32.sub + local.set $5 + loop $while-continue|1 + local.get $1 + local.get $5 + i32.le_s + if + block $while-break|1 + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.tee $8 + i32.load + local.set $7 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $3 + i32.const 10848 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $8 + local.get $7 + i32.store offset=8 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|1 + end + end + end + local.get $0 + local.get $5 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 + local.get $3 + i32.store offset=8 + loop $while-continue|2 + local.get $1 + local.get $5 + i32.le_s + if + block $while-break|2 + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.tee $3 + i32.load + local.set $7 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $4 + i32.const 10848 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $3 + local.get $7 + i32.store offset=4 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|2 + end + end + end + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.get $4 + i32.store offset=4 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $for-loop|0 end end - local.get $0 - local.get $1 - i32.wrap_i64 - local.get $2 - call $~lib/util/number/utoa32_dec_lut ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i64) (result i32) - (local $2 i32) - (local $3 i32) - local.get $0 - local.set $2 - local.get $1 - i64.const 10 - i64.lt_u + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $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 24 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s if - local.get $0 - local.get $1 - i64.const 48 - i64.or - i64.store16 + i32.const 48992 + i32.const 49040 i32.const 1 - return + i32.const 1 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill local.get $1 - i64.const 4294967295 - i64.le_u - if - local.get $1 - i32.wrap_i64 - local.tee $3 - i32.const 100000 - i32.lt_u - if (result i32) + local.get $3 + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.tee $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $5 + i32.const 1 + i32.and + local.get $3 + select + i32.add + local.set $8 + loop $for-loop|0 + local.get $2 + local.get $8 + i32.ge_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $8 + i32.const 2 + i32.shl + i32.add + local.tee $5 + i32.load + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.load offset=4 + local.tee $5 + i32.store offset=4 + local.get $5 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $3 - i32.const 100 - i32.lt_u - if (result i32) - local.get $3 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $3 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $3 - i32.const 1000 - i32.ge_u - i32.add - end - else + i32.store offset=12 + global.get $~lib/memory/__stack_pointer local.get $3 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $3 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=20 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $5 + local.get $4 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + if + global.get $~lib/memory/__stack_pointer local.get $3 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $3 - i32.const 100000000 - i32.ge_u - i32.add + local.tee $6 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + local.tee $3 + i32.store offset=12 end - end - local.set $0 - local.get $2 - local.get $3 - local.get $0 - call $~lib/util/number/utoa32_dec_lut - else - local.get $2 - local.get $1 - local.get $1 - i64.const 1000000000000000 - i64.lt_u - if (result i32) - local.get $1 - i64.const 1000000000000 - i64.lt_u - if (result i32) - local.get $1 - i64.const 100000000000 - i64.ge_u - i32.const 10 - i32.add - local.get $1 - i64.const 10000000000 - i64.ge_u - i32.add - else - local.get $1 - i64.const 100000000000000 - i64.ge_u - i32.const 13 - i32.add + local.get $8 + i32.const 1 + i32.sub + local.set $9 + loop $while-continue|1 local.get $1 - i64.const 10000000000000 - i64.ge_u - i32.add + local.get $9 + i32.le_s + if + block $while-break|1 + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.tee $5 + i32.load + local.tee $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=20 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $3 + local.get $4 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $5 + local.get $7 + i32.store offset=8 + local.get $9 + i32.const 1 + i32.sub + local.set $9 + br $while-continue|1 + end + end end - else - local.get $1 - i64.const 100000000000000000 - i64.lt_u - if (result i32) - local.get $1 - i64.const 10000000000000000 - i64.ge_u - i32.const 16 - i32.add - else - local.get $1 - i64.const -8446744073709551616 - i64.ge_u - i32.const 18 - i32.add + local.get $0 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $3 + i32.store offset=8 + loop $while-continue|2 local.get $1 - i64.const 1000000000000000000 - i64.ge_u - i32.add + local.get $9 + i32.le_s + if + block $while-break|2 + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.tee $5 + i32.load + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=20 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $6 + local.get $4 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $5 + local.get $3 + i32.store offset=4 + local.get $9 + i32.const 1 + i32.sub + local.set $9 + br $while-continue|2 + end + end end + local.get $0 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + local.get $8 + i32.const 2 + i32.add + local.set $8 + br $for-loop|0 end - local.tee $0 - call $~lib/util/number/utoa64_dec_lut end - local.get $0 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i64) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) local.get $1 - i64.const 0 - i64.lt_s - local.tee $3 - if - local.get $0 - i32.const 45 - i32.store16 - i64.const 0 - local.get $1 - i64.sub - local.set $1 - end - local.get $0 local.get $3 + local.get $2 + local.get $1 + i32.sub i32.const 1 - i32.shl i32.add - local.set $4 - local.get $1 - i64.const 10 - i64.lt_u - if - local.get $4 - local.get $1 - i64.const 48 - i64.or - i64.store16 - local.get $3 - i32.const 1 - i32.add - return - end - local.get $1 - i64.const 4294967295 - i64.le_u - if - local.get $1 - i32.wrap_i64 - local.tee $2 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $2 - i32.const 100 - i32.lt_u - if (result i32) - local.get $2 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $2 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $2 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $2 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $2 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $2 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $2 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.set $0 - local.get $4 + local.tee $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $5 + i32.const 1 + i32.and + local.get $3 + select + i32.add + local.set $7 + loop $for-loop|0 local.get $2 - local.get $0 - call $~lib/util/number/utoa32_dec_lut - else - local.get $4 - local.get $1 - local.get $1 - i64.const 1000000000000000 - i64.lt_u - if (result i32) - local.get $1 - i64.const 1000000000000 - i64.lt_u - if (result i32) - local.get $1 - i64.const 100000000000 - i64.ge_u - i32.const 10 - i32.add - local.get $1 - i64.const 10000000000 - i64.ge_u - i32.add - else - local.get $1 - i64.const 100000000000000 - i64.ge_u - i32.const 13 - i32.add - local.get $1 - i64.const 10000000000000 - i64.ge_u - i32.add + local.get $7 + i32.ge_s + if + local.get $0 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.tee $3 + i32.load offset=4 + local.tee $6 + local.set $5 + local.get $3 + i32.load + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $6 + local.get $4 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + if + local.get $3 + local.set $5 + local.get $6 + local.set $3 end - else - local.get $1 - i64.const 100000000000000000 - i64.lt_u - if (result i32) - local.get $1 - i64.const 10000000000000000 - i64.ge_u - i32.const 16 - i32.add - else + local.get $7 + i32.const 1 + i32.sub + local.set $6 + loop $while-continue|1 local.get $1 - i64.const -8446744073709551616 - i64.ge_u - i32.const 18 - i32.add + local.get $6 + i32.le_s + if + block $while-break|1 + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.tee $8 + i32.load + local.set $9 + i32.const 2 + global.set $~argumentsLength + local.get $9 + local.get $3 + local.get $4 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $8 + local.get $9 + i32.store offset=8 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|1 + end + end + end + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.get $3 + i32.store offset=8 + loop $while-continue|2 local.get $1 - i64.const 1000000000000000000 - i64.ge_u - i32.add + local.get $6 + i32.le_s + if + block $while-break|2 + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.tee $3 + i32.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $5 + local.get $4 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $3 + local.get $8 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|2 + end + end end + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.get $5 + i32.store offset=4 + local.get $7 + i32.const 2 + i32.add + local.set $7 + br $for-loop|0 end - local.tee $0 - call $~lib/util/number/utoa64_dec_lut end - local.get $0 - local.get $3 - i32.add ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - i32.const 255 - i32.and - local.tee $2 - i32.const 10 - i32.lt_u - if - local.get $0 - local.get $2 - i32.const 48 - i32.or - i32.store16 - i32.const 1 - return - end + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (local $4 f64) + (local $5 f64) + (local $6 i32) + (local $7 f64) + (local $8 i32) local.get $1 - i32.const 255 - i32.and - local.set $1 - i32.const 3 + local.get $3 + local.get $2 local.get $1 - i32.const 10 - i32.ge_u + i32.sub i32.const 1 i32.add - local.get $1 - i32.const 100 - i32.ge_u + local.tee $6 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $6 + i32.const 1 + i32.and + local.get $3 select - local.set $2 - local.get $0 - local.get $1 - local.get $2 - call $~lib/util/number/utoa32_dec_lut - local.get $2 - ) - (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 $folding-inner0 - block $invalid - block $std/array/Proxy - block $std/array/Dim - block $std/array/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-inner4 $folding-inner0 $std/array/Ref $folding-inner4 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner2 $folding-inner2 $folding-inner1 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $std/array/Dim $folding-inner1 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner1 $folding-inner2 $std/array/Proxy $folding-inner1 $folding-inner2 $folding-inner1 $folding-inner2 $folding-inner2 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner2 $invalid - end - 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 16192 - i32.lt_s - br_if $folding-inner3 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 + i32.add + local.set $6 + loop $for-loop|0 + local.get $2 + local.get $6 + i32.ge_s + if + local.get $0 + local.get $6 + i32.const 3 + i32.shl + i32.add + local.tee $3 + f64.load offset=8 + local.tee $7 + local.set $5 + local.get $3 + f64.load + local.set $4 + i32.const 2 + global.set $~argumentsLength + local.get $4 + local.get $7 + i32.const 10544 + i32.load + call_indirect (type $5) + i32.const 0 + i32.le_s + if + local.get $4 + local.set $5 + local.get $7 + local.set $4 + end + local.get $6 + i32.const 1 + i32.sub + local.set $3 + loop $while-continue|1 + local.get $1 + local.get $3 + i32.le_s + if + block $while-break|1 local.get $0 - i32.store - br $folding-inner5 - 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 16192 - i32.lt_s - br_if $folding-inner3 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $1 - local.get $2 - 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 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.tee $8 + f64.load + local.set $7 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $4 + i32.const 10544 + i32.load + call_indirect (type $5) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $8 + local.get $7 + f64.store offset=16 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|1 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - br $folding-inner5 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 16192 - i32.lt_s - br_if $folding-inner3 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store + end + local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.get $4 + f64.store offset=16 + loop $while-continue|2 local.get $1 - 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 + local.get $3 + i32.le_s + if + block $while-break|2 + local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.tee $8 + f64.load + local.set $4 + i32.const 2 + global.set $~argumentsLength + local.get $4 + local.get $5 + i32.const 10544 + i32.load + call_indirect (type $5) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $8 + local.get $4 + f64.store offset=8 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|2 + end + end end - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load - local.tee $0 - if local.get $0 - call $~lib/rt/itcms/__visit + local.get $3 + i32.const 3 + i32.shl + i32.add + local.get $5 + f64.store offset=8 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $for-loop|0 end - return - end - 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 - ) - (func $~start - global.get $~started - if - return end - i32.const 1 - global.set $~started - call $start:std/array ) - (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 + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 f32) + (local $6 f32) + (local $7 i32) + (local $8 f32) + (local $9 i32) + local.get $1 + local.get $3 + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.tee $7 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $7 + i32.const 1 + i32.and + local.get $3 + select + i32.add + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $7 + i32.ge_s + if + local.get $0 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.tee $3 + f32.load offset=4 + local.tee $8 + local.set $6 + local.get $3 + f32.load + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $5 + local.get $8 + local.get $4 + i32.load + call_indirect (type $6) + i32.const 0 + i32.le_s + if + local.get $5 + local.set $6 + local.get $8 + local.set $5 + end + local.get $7 + i32.const 1 + i32.sub + local.set $3 + loop $while-continue|1 + local.get $1 + local.get $3 + i32.le_s + if + block $while-break|1 + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.tee $9 + f32.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $5 + local.get $4 + i32.load + call_indirect (type $6) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $9 + local.get $8 + f32.store offset=8 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|1 + end + end + end + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.get $5 + f32.store offset=8 + loop $while-continue|2 + local.get $1 + local.get $3 + i32.le_s + if + block $while-break|2 + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.tee $9 + f32.load + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $5 + local.get $6 + local.get $4 + i32.load + call_indirect (type $6) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $9 + local.get $5 + f32.store offset=4 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|2 + end + end + end + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.get $6 + f32.store offset=4 + local.get $7 + i32.const 2 + i32.add + local.set $7 + br $for-loop|0 + end + end + ) + (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 @@ -6469,928 +6566,738 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - i64.const 0 - i64.store offset=8 - local.get $1 - i32.const 16 - i32.const 4 - 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 - 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 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=12 local.get $0 - i32.const 268435455 - i32.gt_u + i32.eqz if - i32.const 1056 - i32.const 1104 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable + 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 - i32.const 8 - local.get $0 - local.get $0 - i32.const 8 - i32.le_u - select - i32.const 2 - i32.shl - local.tee $1 - i32.const 1 - call $~lib/rt/itcms/__new - 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 $3 - i32.store offset=12 - local.get $2 - local.get $3 - i32.store - local.get $2 - 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 $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 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 $2 - ) - (func $std/array/Ref#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 16192 - i32.lt_s - if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + 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 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - i32.const 4 - i32.const 5 + local.tee $2 + i32.const 1 + i32.shl + i32.const 2 call $~lib/rt/itcms/__new local.tee $1 i32.store - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 - i32.store offset=4 local.get $1 local.get $0 - i32.store local.get $2 - i32.const 8 + 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/array/Array#fill (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $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 16192 - i32.lt_s + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1488 + i32.const 268 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $5 - i32.const 0 - i32.store - local.get $5 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $4 - local.get $5 - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - local.tee $0 - local.get $2 - i32.add - local.get $2 - local.get $0 - local.get $0 - local.get $2 - i32.gt_s - select - local.get $2 - i32.const 0 - i32.lt_s - select - local.tee $2 - local.get $0 - local.get $3 - i32.add local.get $3 - local.get $0 - local.get $0 - local.get $3 - i32.gt_s - select - local.get $3 - i32.const 0 - i32.lt_s - select - local.tee $0 - i32.lt_s + i32.const -4 + i32.and + local.tee $3 + i32.const 12 + i32.lt_u if - local.get $2 + 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.add - local.get $1 - local.get $0 - local.get $2 + i32.const 4 i32.sub - memory.fill + i32.shr_u + i32.const 16 + i32.xor end - 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) - (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 16192 - i32.lt_s + 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 48992 - i32.const 49040 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1488 + i32.const 284 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store local.get $1 - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - local.set $0 + i32.load offset=8 + local.set $5 local.get $1 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 + i32.load offset=4 + local.tee $4 + if + local.get $4 + local.get $5 + i32.store offset=8 end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u + local.get $5 if - i32.const 1344 - i32.const 1104 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable + local.get $5 + local.get $4 + i32.store offset=4 end - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store local.get $1 local.get $0 - i32.load offset=4 - i32.add - i32.load8_u - local.set $0 local.get $2 i32.const 4 + i32.shl + local.get $3 i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $std/array/isArraysEqual (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.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=96 + i32.eq 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 - local.tee $3 - i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store - local.get $0 - call $~lib/array/Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $folding-inner1 - block $folding-inner0 - local.get $1 - call $~lib/array/Array#get:length - local.get $3 - i32.ne - br_if $folding-inner0 + 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 - i32.eq - br_if $folding-inner1 - loop $for-loop|0 + 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 - local.get $3 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $2 - call $~lib/array/Array#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - local.get $2 - call $~lib/array/Array#__get - local.get $4 - i32.ne - br_if $folding-inner0 - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end + i32.rotl + i32.and + i32.store end - br $folding-inner1 end - 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 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 ) - (func $~lib/array/Array#fill@varargs (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $1 + i32.eqz if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1488 + i32.const 201 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $2of2 - block $1of2 - block $0of2 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of2 $1of2 $2of2 $outOfRange - end - unreachable - end - i32.const 0 - local.set $2 - end - i32.const 2147483647 - local.set $3 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 local.get $1 - local.get $2 - local.get $3 - call $~lib/array/Array#fill - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#fill (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 16192 - i32.lt_s + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1488 + i32.const 203 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $4 - i32.const 0 - i32.store - local.get $4 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $5 - local.get $4 - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.load offset=12 - local.tee $0 + local.get $1 + i32.const 4 i32.add - local.get $2 - local.get $0 - local.get $0 - local.get $2 - i32.gt_s - select - local.get $2 - i32.const 0 - i32.lt_s - select - local.set $2 - local.get $0 - local.get $3 + local.get $1 + i32.load + i32.const -4 + i32.and i32.add - local.get $3 - local.get $0 - local.get $0 - local.get $3 - i32.gt_s - select - local.get $3 - i32.const 0 - i32.lt_s - select - local.set $0 - block $__inlined_func$~lib/util/bytes/FILL$139 + 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 - i32.eqz + 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 -1 - i32.eq - i32.or - if - local.get $0 - local.get $2 - i32.gt_s - if - local.get $5 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.get $1 - local.get $0 - local.get $2 - i32.sub - i32.const 2 - i32.shl - memory.fill - end - br $__inlined_func$~lib/util/bytes/FILL$139 - end - loop $for-loop|0 - local.get $0 - local.get $2 - i32.gt_s - if - local.get $5 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.get $1 - i32.store - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end + 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 - 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) - (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 + local.get $3 + i32.const 2 + i32.and if - i32.const 48992 - i32.const 49040 - i32.const 1 + local.get $1 + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + local.tee $6 i32.const 1 - call $~lib/builtins/abort - unreachable + 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 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store + local.get $4 local.get $2 - local.get $0 + i32.const 2 + i32.or i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u + local.get $3 + i32.const -4 + i32.and + local.tee $2 + i32.const 12 + i32.lt_u if - i32.const 1344 - i32.const 1104 - i32.const 114 - i32.const 42 + i32.const 0 + i32.const 1488 + i32.const 233 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 + local.get $4 local.get $1 - i32.const 2 - i32.shl + i32.const 4 i32.add - i32.load - local.set $0 local.get $2 - i32.const 4 i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $std/array/isArraysEqual (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.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s + i32.ne if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1488 + i32.const 234 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store - local.get $0 - call $~lib/array/Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 4 + i32.sub local.get $1 i32.store - block $folding-inner1 - block $folding-inner0 - local.get $1 - call $~lib/array/Array#get:length - local.get $3 - i32.ne - br_if $folding-inner0 - local.get $0 - local.get $1 - i32.eq - br_if $folding-inner1 - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $2 - call $~lib/array/Array#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - local.get $2 - call $~lib/array/Array#__get - local.get $4 - i32.ne - br_if $folding-inner0 - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - br $folding-inner1 - end - global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 256 + i32.lt_u + if (result i32) + local.get $2 i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - return + 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 - ) - (func $~lib/array/Array#fill@varargs (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 16192 - i32.lt_s + 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 48992 - i32.const 49040 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1488 + i32.const 251 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $2of2 - block $1of2 - block $0of2 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of2 $1of2 $2of2 $outOfRange - end - unreachable - end - i32.const 0 - local.set $2 - end - i32.const 2147483647 - local.set $3 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 - local.get $1 - local.get $2 - local.get $3 - call $~lib/array/Array#fill - global.get $~lib/memory/__stack_pointer + local.get $5 i32.const 4 + i32.shl + local.get $2 i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#fill (param $0 i32) (param $1 f32) (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 16192 - i32.lt_s + 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 - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $3 + local.get $1 + i32.store offset=4 end - global.get $~lib/memory/__stack_pointer - local.tee $4 - i32.const 0 - i32.store - local.get $4 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $5 - local.get $4 local.get $0 - i32.store + local.get $5 + i32.const 4 + i32.shl local.get $2 - local.get $0 - i32.load offset=12 - local.tee $0 i32.add - local.get $2 + i32.const 2 + i32.shl + i32.add + local.get $1 + i32.store offset=96 local.get $0 local.get $0 - local.get $2 - i32.gt_s - select - local.get $2 - i32.const 0 - i32.lt_s - select - local.set $2 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or + i32.store local.get $0 - local.get $3 + local.get $5 + i32.const 2 + i32.shl i32.add - local.get $3 + 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/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) local.get $0 - local.get $3 - i32.gt_s - select - local.get $3 - i32.const 0 - i32.lt_s - select - local.set $0 - block $__inlined_func$~lib/util/bytes/FILL$148 + 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 - i32.reinterpret_f32 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$735 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 i32.eqz if local.get $0 - local.get $2 - i32.gt_s + i32.load offset=8 + i32.eqz + local.get $0 + i32.const 48960 + i32.lt_u + i32.and + i32.eqz if - local.get $5 - local.get $2 - i32.const 2 - i32.shl - i32.add i32.const 0 - local.get $0 - local.get $2 - i32.sub - i32.const 2 - i32.shl - memory.fill + i32.const 1216 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable end - br $__inlined_func$~lib/util/bytes/FILL$148 + br $__inlined_func$~lib/rt/itcms/Object#unlink$735 end - loop $for-loop|0 - local.get $0 - local.get $2 - i32.gt_s - if - local.get $5 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.get $1 - f32.store - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - 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/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 f32) - (local $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 16192 - i32.lt_s - if - i32.const 48992 - i32.const 49040 - i32.const 1 + 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 - call $~lib/builtins/abort - unreachable + else + local.get $1 + i32.const 16000 + 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 $1 + i32.const 2 + i32.shl + i32.const 16004 + i32.add + i32.load + i32.const 32 + i32.and end - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store + 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 - i32.store + local.get $1 + i32.store offset=8 local.get $1 local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1344 - i32.const 1104 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 local.get $1 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $2 - local.get $3 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + 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 $std/array/isArraysEqual (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/__visit_members (param $0 i32) + (local $1 i32) (local $2 i32) - (local $3 f32) - (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 16192 - i32.lt_s - if + (local $3 i32) + block $folding-inner4 + block $folding-inner3 + block $folding-inner2 + block $folding-inner1 + block $folding-inner0 + block $invalid + block $std/array/Proxy + block $std/array/Dim + block $~lib/typedarray/Uint8Array + block $std/array/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 $folding-inner0 $std/array/Ref $~lib/typedarray/Uint8Array $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner2 $folding-inner2 $folding-inner1 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $std/array/Dim $folding-inner1 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner1 $folding-inner2 $std/array/Proxy $folding-inner1 $folding-inner2 $folding-inner1 $folding-inner2 $folding-inner2 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner2 $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 16192 + i32.lt_s + br_if $folding-inner3 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + 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 16192 + i32.lt_s + br_if $folding-inner3 + 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 + 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 16192 + i32.lt_s + br_if $folding-inner3 + 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 48992 i32.const 49040 i32.const 1 @@ -7399,223 +7306,337 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 - i32.const 0 - i32.store - local.get $4 local.get $0 i32.store local.get $0 - call $~lib/array/Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $folding-inner1 - block $folding-inner0 - local.get $1 - call $~lib/array/Array#get:length - local.get $4 - i32.ne - br_if $folding-inner0 - local.get $0 - local.get $1 - i32.eq - br_if $folding-inner1 - loop $for-loop|0 - local.get $2 - local.get $4 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $2 - call $~lib/array/Array#__get - local.tee $3 - local.get $3 - f32.ne - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - local.get $2 - call $~lib/array/Array#__get - local.tee $3 - local.get $3 - f32.ne - else - i32.const 0 - end - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $2 - call $~lib/array/Array#__get - f64.promote_f32 - i64.reinterpret_f64 - i64.const 63 - i64.shr_u - i32.wrap_i64 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $5 - local.get $1 - local.get $2 - call $~lib/array/Array#__get - f64.promote_f32 - i64.reinterpret_f64 - i64.const 63 - i64.shr_u - i32.wrap_i64 - i32.ne - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $2 - call $~lib/array/Array#__get - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - local.get $2 - call $~lib/array/Array#__get - local.get $3 - f32.ne - br_if $folding-inner0 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - br $folding-inner1 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - return - end + i32.load + call $~lib/rt/itcms/__visit global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1 ) - (func $~lib/array/Array#fill@varargs (param $0 i32) (param $1 f32) (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 16192 - i32.lt_s + (func $~lib/math/NativeMath.random (result f64) + (local $0 i64) + (local $1 i64) + global.get $~lib/math/random_seeded + i32.eqz if - i32.const 48992 - i32.const 49040 - i32.const 1 + i64.const -7046029254386353131 + call $~lib/builtins/seed + i64.reinterpret_f64 + local.tee $0 + local.get $0 + i64.eqz + select + local.tee $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + i64.const -49064778989728563 + i64.mul + local.tee $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + i64.const -4265267296055464877 + i64.mul + local.tee $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + global.set $~lib/math/random_state0_64 + global.get $~lib/math/random_state0_64 + i64.const -1 + i64.xor + local.tee $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + i64.const -49064778989728563 + i64.mul + local.tee $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + i64.const -4265267296055464877 + i64.mul + local.tee $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + global.set $~lib/math/random_state1_64 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $2of2 - block $1of2 - block $0of2 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of2 $1of2 $2of2 $outOfRange - end - unreachable - end - i32.const 0 - local.set $2 - end - i32.const 2147483647 - local.set $3 + global.set $~lib/math/random_seeded end - global.get $~lib/memory/__stack_pointer + global.get $~lib/math/random_state0_64 + local.set $1 + global.get $~lib/math/random_state1_64 + local.tee $0 + global.set $~lib/math/random_state0_64 + local.get $1 + local.get $1 + i64.const 23 + i64.shl + i64.xor + local.tee $1 + local.get $1 + i64.const 17 + i64.shr_u + i64.xor local.get $0 - i32.store + i64.xor local.get $0 - local.get $1 - local.get $2 - local.get $3 - call $~lib/array/Array#fill - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i64.const 26 + i64.shr_u + i64.xor + global.set $~lib/math/random_state1_64 + local.get $0 + i64.const 12 + i64.shr_u + i64.const 4607182418800017408 + i64.or + f64.reinterpret_i64 + f64.const -1 + f64.add ) - (func $std/array/internalCapacity (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#toString (param $0 i32) (result i32) (local $1 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.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 - local.tee $1 - i64.const 0 - i64.store - local.get $1 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load - local.tee $0 - i32.store offset=4 - local.get $1 - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 2 - i32.shr_s - local.set $0 - local.get $1 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 16192 + 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 + global.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 + 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 $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 11856 + i32.store + block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$5 (result i32) + 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 16192 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + local.get $0 + i32.const 1 + i32.sub + local.tee $5 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 11568 + br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$5 + end + local.get $5 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.load + local.tee $0 + i32.store + local.get $0 + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/array/Array#toString + else + i32.const 11568 + end + 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>$5 + end + i32.const 11568 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 11568 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 11856 + i32.store offset=4 + i32.const 11852 + i32.load + i32.const 1 + i32.shr_u + local.set $2 + loop $for-loop|0 + local.get $1 + local.get $5 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $3 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $6 + i32.store + local.get $6 + 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 $6 + i32.store offset=16 + local.get $6 + call $~lib/array/Array#toString + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + local.get $0 + local.get $6 + call $~lib/string/String.__concat + local.tee $0 + i32.store offset=8 + end + local.get $2 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11856 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 11856 + call $~lib/string/String.__concat + local.tee $0 + i32.store offset=8 + end + 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 $3 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + 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=16 + local.get $1 + call $~lib/array/Array#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $0 + local.get $1 + call $~lib/string/String.__concat + local.tee $0 + i32.store offset=8 + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array<~lib/array/Array>#flat (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -7630,239 +7651,341 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + 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 - local.get $3 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 local.get $0 - i32.load offset=8 - local.tee $4 - i32.const 2 - i32.shr_u - i32.gt_u - if - local.get $1 - i32.const 268435455 - i32.gt_u - if - i32.const 1056 - i32.const 1104 - i32.const 19 - i32.const 48 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + i32.load offset=12 + local.set $4 + i32.const 0 + local.set $0 + loop $for-loop|0 local.get $0 - i32.load - local.set $3 - i32.const 8 - local.get $1 - local.get $1 - i32.const 8 - i32.le_u - select - i32.const 2 - i32.shl - local.set $1 - local.get $2 + local.get $4 + i32.lt_s if - i32.const 1073741820 - local.get $4 - 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$651 local.get $3 - i32.const 20 - i32.sub - local.tee $4 + local.get $0 + i32.const 2 + i32.shl + i32.add i32.load - i32.const -4 - i32.and - i32.const 16 - i32.sub - local.get $1 - i32.ge_u - if - local.get $4 - local.get $1 - i32.store offset=16 - local.get $3 - local.set $2 - br $__inlined_func$~lib/rt/itcms/__renew$651 + local.tee $5 + if (result i32) + local.get $5 + i32.load offset=12 + else + i32.const 0 end - local.get $1 - local.get $4 - i32.load offset=12 - call $~lib/rt/itcms/__new - local.tee $2 - local.get $3 - local.get $1 - local.get $4 - i32.load offset=16 - local.tee $4 - local.get $1 - local.get $4 - i32.lt_u - select - memory.copy - end - local.get $2 - local.get $3 - i32.ne - if - local.get $0 local.get $2 - i32.store - local.get $0 - local.get $2 - i32.store offset=4 + i32.add + local.set $2 local.get $0 - local.get $2 - i32.const 0 - call $~lib/rt/itcms/__link + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 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#push (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - local.tee $2 - i32.const 0 - i32.store local.get $2 - local.get $0 - i32.store - local.get $0 - local.get $0 - i32.load offset=12 - local.tee $2 - i32.const 1 - i32.add - local.tee $3 + i32.const 2 + i32.shl + local.tee $5 i32.const 1 - call $~lib/array/ensureCapacity + call $~lib/rt/itcms/__new + local.tee $6 + i32.store offset=4 global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=8 local.get $0 - i32.store - local.get $0 - i32.load offset=4 local.get $2 - i32.const 2 - i32.shl - i32.add - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer + i32.store offset=12 + local.get $0 + local.get $5 + i32.store offset=8 local.get $0 + local.get $6 + i32.store offset=4 + local.get $0 + local.get $6 i32.store local.get $0 - local.get $3 - i32.store offset=12 + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__link + i32.const 0 + local.set $2 + loop $for-loop|1 + local.get $2 + local.get $4 + i32.lt_s + if + local.get $3 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $5 + if + local.get $1 + local.get $6 + i32.add + local.get $5 + i32.load offset=4 + local.get $5 + i32.load offset=12 + i32.const 2 + i32.shl + local.tee $5 + memory.copy + local.get $1 + local.get $5 + i32.add + local.set $1 + end + 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 4 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#toString (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 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 - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1344 - i32.const 1104 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable + 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 + 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.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + 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 $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + local.set $0 + global.get $~lib/memory/__stack_pointer + 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 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$747 + local.get $0 + i32.const 1 + i32.sub + local.tee $6 + i32.const 0 + i32.lt_s + 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/util/string/joinIntegerArray$747 + end + local.get $6 + i32.eqz + if + local.get $5 + i32.load8_u + call $~lib/util/number/utoa32 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$747 + end + global.get $~lib/memory/__stack_pointer + i32.const 11856 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11852 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 10 + i32.add + local.get $6 + i32.mul + i32.const 10 + i32.add + local.tee $2 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + loop $for-loop|0 + local.get $3 + local.get $6 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $3 + local.get $5 + i32.add + i32.load8_u + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.set $1 + local.get $4 + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 11856 + local.get $4 + i32.const 1 + i32.shl + memory.copy + local.get $1 + local.get $4 + i32.add + local.set $1 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $6 + i32.add + i32.load8_u + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.tee $1 + local.get $2 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $~lib/string/String#substring + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$747 + end + 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 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 - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - local.get $2 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/array/Array#pop (param $0 i32) (result i32) + (func $~lib/array/Array#reverse (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - (local $3 i32) + (local $3 i64) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i64) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -7879,55 +8002,154 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - local.tee $2 - i32.const 0 - i32.le_s - if - i32.const 2640 - i32.const 1104 - i32.const 271 - i32.const 18 - call $~lib/builtins/abort - unreachable - end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store local.get $0 i32.load offset=4 - local.get $2 - i32.const 1 - i32.sub - local.tee $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 - local.get $1 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - local.get $2 - i32.store offset=12 - local.get $1 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer + i32.load offset=12 + local.tee $5 + i32.const 1 + i32.gt_u + if + local.get $5 + i32.const 1 + i32.shr_u + local.set $4 + local.get $5 + i32.const 8 + i32.sub + local.set $6 + loop $while-continue|0 + local.get $1 + i32.const 7 + i32.add + local.get $4 + i32.lt_u + if + local.get $1 + local.get $2 + i32.add + local.tee $7 + i64.load + local.tee $3 + i64.const 8 + i64.shr_u + i64.const 71777214294589695 + i64.and + local.get $3 + i64.const 71777214294589695 + i64.and + i64.const 8 + i64.shl + i64.or + local.set $3 + local.get $7 + local.get $2 + local.get $6 + i32.add + local.get $1 + i32.sub + local.tee $7 + i64.load + local.tee $8 + i64.const 8 + i64.shr_u + i64.const 71777214294589695 + i64.and + local.get $8 + i64.const 71777214294589695 + i64.and + i64.const 8 + i64.shl + i64.or + local.tee $8 + i64.const 16 + i64.shr_u + i64.const 281470681808895 + i64.and + local.get $8 + i64.const 281470681808895 + i64.and + i64.const 16 + i64.shl + i64.or + i64.const 32 + i64.rotr + i64.store + local.get $7 + local.get $3 + i64.const 16 + i64.shr_u + i64.const 281470681808895 + i64.and + local.get $3 + i64.const 281470681808895 + i64.and + i64.const 16 + i64.shl + i64.or + i64.const 32 + i64.rotr + i64.store + local.get $1 + i32.const 8 + i32.add + local.set $1 + br $while-continue|0 + end + end + local.get $5 + i32.const 1 + i32.sub + local.set $5 + loop $while-continue|1 + local.get $1 + local.get $4 + i32.lt_u + if + local.get $1 + local.get $2 + i32.add + local.tee $6 + i32.load8_u + local.set $7 + local.get $6 + local.get $2 + local.get $5 + local.get $1 + i32.sub + i32.add + local.tee $6 + i32.load8_u + i32.store8 + local.get $6 + local.get $7 + i32.store8 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $while-continue|1 + end + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/array/Array#fill@varargs (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 @@ -7943,64 +8165,39 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 - 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 1344 - i32.const 1104 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $2 end - local.get $0 - local.get $1 - i32.const 1 - i32.add - local.tee $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 + i32.const 2147483647 + local.set $3 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 + local.get $3 + call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array#at (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/array/Array#toString (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -8017,58 +8214,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - local.tee $2 - i32.const 0 - local.get $1 - i32.const 0 - i32.lt_s - select - i32.add - local.tee $1 - local.get $2 - i32.ge_u - if - i32.const 1344 - i32.const 1104 - i32.const 143 - i32.const 33 - call $~lib/builtins/abort - unreachable - end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - local.get $2 + i32.const 11856 + call $~lib/array/Array#join + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/array/Array#concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/array/Array#fill@varargs (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -8083,80 +8245,173 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - local.set $3 - local.get $2 - local.get $1 + i32.const 0 i32.store - local.get $1 - i32.load offset=12 - local.tee $2 + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $2 + end + i32.const 2147483647 + local.set $3 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $2 local.get $3 + call $~lib/array/Array#fill + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.tee $4 - i32.const 268435455 - i32.gt_u + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#reverse (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.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 1056 - i32.const 1104 - i32.const 224 - i32.const 60 + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 2 - i32.const 4 i32.const 0 - call $~lib/rt/__newArray - local.tee $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $4 i32.store - local.get $4 - i32.load offset=4 - local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 local.get $0 i32.load offset=4 - local.get $3 - i32.const 2 - i32.shl - local.tee $0 - memory.copy + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store local.get $0 - local.get $5 - i32.add - local.get $1 - i32.load offset=4 - local.get $2 - i32.const 2 - i32.shl - memory.copy + i32.load offset=12 + local.tee $4 + i32.const 1 + i32.gt_u + if + local.get $4 + i32.const 1 + i32.shr_u + local.set $3 + local.get $4 + i32.const 2 + i32.sub + local.set $5 + loop $while-continue|0 + local.get $1 + i32.const 1 + i32.add + local.get $3 + i32.lt_u + if + local.get $2 + local.get $5 + local.get $1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.tee $6 + i32.load + i32.const 16 + i32.rotr + local.set $7 + local.get $6 + local.get $2 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.tee $6 + i32.load + i32.const 16 + i32.rotr + i32.store + local.get $6 + local.get $7 + i32.store + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|0 + end + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + loop $while-continue|1 + local.get $1 + local.get $3 + i32.lt_u + if + local.get $2 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.tee $5 + i32.load16_u + local.set $6 + local.get $5 + local.get $2 + local.get $4 + local.get $1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.tee $5 + i32.load16_u + i32.store16 + local.get $5 + local.get $6 + i32.store16 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $while-continue|1 + end + end + end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $0 ) - (func $~lib/array/Array#copyWithin (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (local $4 i32) - (local $5 i32) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -8173,128 +8428,47 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 i32.const 0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store + local.get $1 local.get $0 - i32.load offset=4 - local.set $4 - local.get $5 + i32.load offset=12 + i32.ge_u + if + i32.const 1344 + i32.const 1104 + 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 $3 local.get $0 - i32.load offset=12 - local.tee $5 - local.get $3 - local.get $5 - i32.lt_s - select - local.set $3 - local.get $4 + i32.load offset=4 local.get $1 - i32.const 0 - i32.lt_s - if (result i32) - local.get $1 - local.get $5 - i32.add - local.tee $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - else - local.get $1 - local.get $5 - local.get $1 - local.get $5 - i32.lt_s - select - end - local.tee $1 - i32.const 2 + i32.const 1 i32.shl i32.add - local.get $4 - local.get $2 - i32.const 0 - i32.lt_s - if (result i32) - local.get $2 - local.get $5 - i32.add - local.tee $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - else - local.get $2 - local.get $5 - local.get $2 - local.get $5 - i32.lt_s - select - end - local.tee $2 - i32.const 2 - i32.shl - i32.add - local.get $3 - i32.const 0 - i32.lt_s - if (result i32) - local.get $3 - local.get $5 - i32.add - local.tee $3 - i32.const 0 - local.get $3 - i32.const 0 - i32.gt_s - select - else - local.get $3 - local.get $5 - local.get $3 - local.get $5 - i32.lt_s - select - end - local.get $2 - i32.sub - local.tee $2 - local.get $5 - local.get $1 - i32.sub - local.tee $1 - local.get $1 - local.get $2 - i32.gt_s - select - i32.const 2 - i32.shl - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/array/Array#copyWithin@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 + i32.load16_u + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#sort (param $0 i32) (param $1 i32) (result 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 16192 i32.lt_s if i32.const 48992 @@ -8305,41 +8479,37 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 2 - i32.sub - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - i32.const 2147483647 - local.set $3 - end + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=4 + local.get $0 + i32.load offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 local.get $0 + i32.load offset=12 + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $2 - local.get $3 - call $~lib/array/Array#copyWithin - local.set $0 + i32.store + local.get $1 + call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $std/array/isArraysEqual (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#map (param $0 i32) (param $1 i32) + (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -8354,142 +8524,282 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 + 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 + i32.load offset=12 + local.tee $3 + i32.const 2 + i32.const 4 i32.const 0 + call $~lib/rt/__newArray + local.tee $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store - block $folding-inner1 - block $folding-inner0 + local.get $4 + i32.load offset=4 + local.set $4 + loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 + local.get $3 + local.get $0 + i32.load offset=12 + local.tee $5 + local.get $3 + local.get $5 + i32.lt_s + select + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 local.get $2 - i32.eqz - if - local.get $4 - local.get $0 - i32.store - local.get $0 - call $~lib/array/Array#get:length - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/array/Array#get:length - local.get $2 - i32.ne - br_if $folding-inner0 - local.get $0 - local.get $1 - i32.eq - br_if $folding-inner1 - end - loop $for-loop|0 - local.get $2 - local.get $3 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $3 - call $~lib/array/Array#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - local.get $3 - call $~lib/array/Array#__get - local.get $4 - i32.ne - br_if $folding-inner0 - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - br $folding-inner1 + i32.const 2 + i32.shl + local.tee $5 + local.get $0 + i32.load offset=4 + i32.add + i32.load + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $5 + i32.add + local.get $6 + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $1) + i32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 end - 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 - i32.const 4 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1 ) - (func $~lib/array/Array#unshift (param $0 i32) (param $1 i32) + (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - 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 + 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 + 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 $6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + local.set $0 + global.get $~lib/memory/__stack_pointer + 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 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 + local.get $0 + i32.const 1 + i32.sub + local.tee $7 + i32.const 0 + i32.lt_s + 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/util/string/joinIntegerArray$742 + end + local.get $7 + i32.eqz + if + local.get $6 + i32.load + call $~lib/util/number/itoa32 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$742 + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $5 + i32.const 11 + i32.add + local.get $7 + i32.mul + i32.const 11 + i32.add + local.tee $3 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + loop $for-loop|0 + local.get $4 + local.get $7 + i32.lt_s + if + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $6 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + call $~lib/util/number/itoa_buffered + local.get $2 + i32.add + local.set $2 + local.get $5 + if + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $1 + local.get $5 + i32.const 1 + i32.shl + memory.copy + local.get $2 + local.get $5 + i32.add + local.set $2 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load + call $~lib/util/number/itoa_buffered + local.get $2 + i32.add + local.tee $1 + local.get $3 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $~lib/string/String#substring + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$742 + end + 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 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $0 - local.get $0 - i32.load offset=12 - i32.const 1 - i32.add - local.tee $2 + i32.const 48992 + i32.const 49040 i32.const 1 - call $~lib/array/ensureCapacity - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.tee $3 - i32.const 4 - i32.add - local.get $3 - local.get $2 i32.const 1 - i32.sub - i32.const 2 - i32.shl - memory.copy - local.get $3 - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $2 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + call $~lib/builtins/abort + unreachable ) - (func $~lib/array/Array#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) + (func $std/array/createRandomOrderedArray (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -8506,331 +8816,320 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 + call $~lib/array/Array#constructor + local.tee $1 i32.store - local.get $0 - i32.load offset=12 - local.set $3 - local.get $1 - i32.const 0 - i32.lt_s - if (result i32) - local.get $1 - local.get $3 - i32.add - local.tee $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - else - local.get $1 - local.get $3 - local.get $1 - local.get $3 - i32.lt_s - select - end - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 0 - i32.lt_s - if (result i32) + loop $for-loop|0 + local.get $0 local.get $2 - local.get $3 - i32.add - local.tee $2 - i32.const 0 - local.get $2 - i32.const 0 i32.gt_s - select - else - local.get $2 - local.get $3 - local.get $2 - local.get $3 - i32.lt_s - select + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/math/NativeMath.random + local.get $0 + f64.convert_i32_s + f64.mul + i32.trunc_sat_f64_s + call $~lib/array/Array#__set + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end end - local.get $1 - i32.sub - local.tee $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - local.tee $3 - i32.const 2 - i32.const 4 - i32.const 0 - call $~lib/rt/__newArray - local.tee $4 - i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $4 - i32.store - local.get $4 - i32.load offset=4 - local.set $5 - local.get $2 - local.get $0 - i32.store - local.get $5 - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $3 - i32.const 2 - i32.shl - memory.copy - local.get $2 i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $1 ) - (func $~lib/array/Array#slice@varargs (param $0 i32) (param $1 i32) (result i32) + (func $std/array/assertSorted<~lib/array/Array> (param $0 i32) (param $1 i32) (local $2 i32) + (local $3 i32) + (local $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 - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - if - i32.const 48992 - i32.const 49040 - i32.const 1 + 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 + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $0 + local.get $1 + call $~lib/array/Array#sort + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + 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 16192 + i32.lt_s + br_if $folding-inner0 + local.get $1 + local.set $0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $2of2 - block $1of2 - block $0of2 - block $outOfRange - global.get $~argumentsLength - br_table $0of2 $1of2 $2of2 $outOfRange + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $~lib/array/Array#get:length + local.set $4 + block $__inlined_func$std/array/isSorted<~lib/array/Array>$664 (result i32) + loop $for-loop|0 + local.get $1 + local.get $4 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $5 + local.get $1 + i32.const 1 + i32.sub + call $~lib/array/Array#__get + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $5 + local.get $1 + call $~lib/array/Array#__get + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + i32.const 2 + global.set $~argumentsLength + local.get $2 + local.get $3 + local.get $0 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + br $__inlined_func$std/array/isSorted<~lib/array/Array>$664 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 end - unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + end + i32.eqz + if i32.const 0 - local.set $1 + i32.const 1552 + i32.const 1080 + i32.const 3 + call $~lib/builtins/abort + unreachable end - i32.const 2147483647 - local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $2 - call $~lib/array/Array#slice - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $start:std/array~anonymous|2 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 + i32.const 100 + i32.eq ) - (func $~lib/array/Array#reverse (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i64) - (local $4 i32) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i64) - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $2 + i32.const 1 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 - local.tee $4 - i32.const 0 - i32.store - local.get $4 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $2 - local.get $4 - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - local.tee $4 + local.tee $5 + local.get $3 + i32.add + local.set $6 + local.get $5 i32.const 1 - i32.gt_u - if - local.get $4 - i32.const 1 - i32.shr_u - local.set $5 - local.get $4 - i32.const 8 - i32.sub - local.set $6 - loop $while-continue|0 - local.get $1 - i32.const 7 + i32.add + local.set $2 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 2 + i32.shl + local.tee $7 + local.get $4 i32.add + local.get $0 + local.get $7 + i32.add + i32.load + i32.store + br $for-loop|0 + end + end + loop $for-loop|1 + local.get $3 + local.get $5 + i32.gt_s + if + local.get $4 + local.get $6 local.get $5 - i32.lt_u - if - local.get $1 - local.get $2 - i32.add - local.tee $7 - i64.load - local.tee $3 - i64.const 8 - i64.shr_u - i64.const 71777214294589695 - i64.and - local.get $3 - i64.const 71777214294589695 - i64.and - i64.const 8 - i64.shl - i64.or - local.set $3 - local.get $7 - local.get $2 - local.get $6 - i32.add - local.get $1 - i32.sub - local.tee $7 - i64.load - local.tee $8 - i64.const 8 - i64.shr_u - i64.const 71777214294589695 - i64.and - local.get $8 - i64.const 71777214294589695 - i64.and - i64.const 8 - i64.shl - i64.or - local.tee $8 - i64.const 16 - i64.shr_u - i64.const 281470681808895 - i64.and - local.get $8 - i64.const 281470681808895 - i64.and - i64.const 16 - i64.shl - i64.or - i64.const 32 - i64.rotr - i64.store - local.get $7 - local.get $3 - i64.const 16 - i64.shr_u - i64.const 281470681808895 - i64.and - local.get $3 - i64.const 281470681808895 - i64.and - i64.const 16 - i64.shl - i64.or - i64.const 32 - i64.rotr - i64.store - local.get $1 - i32.const 8 - i32.add - local.set $1 - br $while-continue|0 - end + i32.sub + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 end - local.get $4 - i32.const 1 - i32.sub - local.set $4 - loop $while-continue|1 - local.get $1 + end + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + local.get $4 local.get $5 - i32.lt_u + i32.const 2 + i32.shl + i32.add + i32.load + local.set $6 + local.get $4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $7 + i32.const 2 + global.set $~argumentsLength + local.get $6 + local.get $7 + i32.const 10848 + i32.load + call_indirect (type $0) + i32.const 0 + i32.lt_s if + local.get $0 local.get $1 - local.get $2 + i32.const 2 + i32.shl i32.add - local.tee $6 - i32.load8_u - local.set $7 local.get $6 - local.get $2 - local.get $4 - local.get $1 + i32.store + local.get $5 + i32.const 1 i32.sub + local.set $5 + else + local.get $0 + local.get $1 + i32.const 2 + i32.shl i32.add - local.tee $6 - i32.load8_u - i32.store8 - local.get $6 local.get $7 - i32.store8 - local.get $1 + i32.store + local.get $2 i32.const 1 i32.add - local.set $1 - br $while-continue|1 + local.set $2 end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 end end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/array/Array#reverse (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) 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 @@ -8845,364 +9144,527 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 local.get $3 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $2 - local.get $3 - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - local.tee $3 + local.get $2 i32.const 1 - i32.gt_u - if - local.get $3 - i32.const 1 - i32.shr_u - local.set $4 + i32.sub + local.tee $2 + i32.add + local.set $7 + local.get $2 + i32.const 1 + i32.add + local.set $6 + loop $for-loop|0 + local.get $1 + local.get $6 + i32.lt_s + if + local.get $6 + i32.const 1 + i32.sub + local.tee $6 + i32.const 2 + i32.shl + local.tee $8 + local.get $4 + i32.add + local.get $0 + local.get $8 + i32.add + i32.load + i32.store + br $for-loop|0 + end + end + loop $for-loop|1 + local.get $2 local.get $3 - i32.const 2 - i32.sub - local.set $5 - loop $while-continue|0 - local.get $1 + i32.lt_s + if + local.get $4 + local.get $7 + local.get $2 + i32.sub + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.store + local.get $2 i32.const 1 i32.add + local.set $2 + br $for-loop|1 + end + end + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + global.get $~lib/memory/__stack_pointer local.get $4 - i32.lt_u + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=12 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $8 + local.get $5 + i32.load + call_indirect (type $0) + i32.const 0 + i32.lt_s if - local.get $2 - local.get $5 - local.get $1 - i32.sub - i32.const 1 - i32.shl - i32.add - local.tee $6 - i32.load - i32.const 16 - i32.rotr - local.set $7 - local.get $6 - local.get $2 + local.get $0 local.get $1 - i32.const 1 + i32.const 2 i32.shl i32.add - local.tee $6 - i32.load - i32.const 16 - i32.rotr - i32.store - local.get $6 local.get $7 i32.store - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|0 - end - end - local.get $3 - i32.const 1 - i32.sub - local.set $3 - loop $while-continue|1 - local.get $1 - local.get $4 - i32.lt_u - if local.get $2 - local.get $1 i32.const 1 - i32.shl - i32.add - local.tee $5 - i32.load16_u - local.set $6 - local.get $5 - local.get $2 - local.get $3 - local.get $1 i32.sub - i32.const 1 + local.set $2 + else + local.get $0 + local.get $1 + i32.const 2 i32.shl i32.add - local.tee $5 - i32.load16_u - i32.store16 - local.get $5 + local.get $8 + i32.store local.get $6 - i32.store16 - local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|1 + local.set $6 end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 end end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - local.tee $2 - i32.const 0 - i32.store + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) local.get $2 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1344 - i32.const 1104 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 i32.const 1 - i32.shl + i32.sub + local.tee $6 + local.get $3 i32.add - i32.load16_u - local.set $0 - local.get $2 - i32.const 4 + local.set $7 + local.get $6 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/array/Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 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 - local.tee $4 - i32.const 0 - i32.store - local.get $4 - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - local.tee $3 - i32.eqz - local.get $2 - local.get $3 - i32.ge_s - i32.or - if - local.get $4 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const -1 - return - end - local.get $2 - i32.const 0 - i32.lt_s - if + local.set $2 + loop $for-loop|0 + local.get $1 local.get $2 + i32.lt_s + if + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 2 + i32.shl + local.tee $8 + local.get $4 + i32.add + local.get $0 + local.get $8 + i32.add + i32.load + i32.store + br $for-loop|0 + end + end + loop $for-loop|1 local.get $3 - i32.add - local.tee $2 - i32.const 0 - local.get $2 - i32.const 0 + local.get $6 i32.gt_s - select - local.set $2 + if + local.get $4 + local.get $7 + local.get $6 + i32.sub + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $0 - loop $while-continue|0 - local.get $2 + loop $for-loop|2 + local.get $1 local.get $3 - i32.lt_s + i32.le_s if - local.get $0 + local.get $4 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $7 + local.get $4 local.get $2 i32.const 2 i32.shl i32.add i32.load - local.get $1 - i32.eq + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $8 + local.get $5 + i32.load + call_indirect (type $0) + i32.const 0 + i32.lt_s if - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $0 + local.get $1 + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + else + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store local.get $2 - return + i32.const 1 + i32.add + local.set $2 end - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|0 + local.set $1 + br $for-loop|2 end end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const -1 ) - (func $~lib/array/Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 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 - local.tee $4 - i32.const 0 - i32.store - local.get $4 - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - local.tee $3 - i32.eqz - if - local.get $4 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const -1 - return - end + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 f64) + (local $7 f64) + (local $8 i32) + (local $9 i32) local.get $2 - local.get $3 - i32.add - local.get $3 i32.const 1 i32.sub - local.get $2 - local.get $2 + local.tee $5 local.get $3 - i32.ge_s - select - local.get $2 - i32.const 0 - i32.lt_s - select + i32.add + local.set $8 + local.get $5 + i32.const 1 + i32.add local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $0 - loop $while-continue|0 + loop $for-loop|0 + local.get $1 local.get $2 - i32.const 0 - i32.ge_s + 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.sub - 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/array/Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.tee $2 + i32.const 3 + i32.shl + local.tee $9 + local.get $4 + i32.add + local.get $0 + local.get $9 + i32.add + f64.load + f64.store + br $for-loop|0 + end + end + loop $for-loop|1 + local.get $3 + local.get $5 + i32.gt_s + if + local.get $4 + local.get $8 + local.get $5 + i32.sub + i32.const 3 + i32.shl + i32.add + local.get $0 + local.get $5 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + f64.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + local.get $4 + local.get $5 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $6 + local.get $4 + local.get $2 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $7 + i32.const 2 + global.set $~argumentsLength + local.get $6 + local.get $7 + i32.const 10544 + i32.load + call_indirect (type $5) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $6 + f64.store + local.get $5 + i32.const 1 + i32.sub + local.set $5 + else + local.get $0 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $7 + f64.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 + end + end + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 f32) + (local $8 f32) + (local $9 i32) + (local $10 i32) + local.get $2 + i32.const 1 + i32.sub + local.tee $6 + local.get $3 + i32.add + local.set $9 + local.get $6 + i32.const 1 + i32.add + local.set $2 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 2 + i32.shl + local.tee $10 + local.get $4 + i32.add + local.get $0 + local.get $10 + i32.add + f32.load + f32.store + br $for-loop|0 + end + end + loop $for-loop|1 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $4 + local.get $9 + local.get $6 + i32.sub + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + f32.load offset=4 + f32.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + local.get $4 + local.get $6 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $7 + local.get $4 + local.get $2 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $8 + local.get $5 + i32.load + call_indirect (type $6) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $7 + f32.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + else + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $8 + f32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 + end + end + ) + (func $~lib/util/sort/extendRunRight (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 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -9217,83 +9679,170 @@ unreachable end global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange - end - unreachable - end + i32.store offset=8 + local.get $1 + local.get $2 + i32.eq + if global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - local.set $2 + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return end global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 10848 i32.store local.get $0 local.get $1 - local.get $2 - call $~lib/array/Array#lastIndexOf - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/array/Array#includes (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 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 - local.tee $3 - i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store + i32.load local.get $0 local.get $1 - local.get $2 - call $~lib/array/Array#indexOf + i32.const 1 + i32.add + local.tee $3 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + i32.const 10848 + i32.load + call_indirect (type $0) i32.const 0 - i32.ge_s - local.set $0 + i32.gt_s + if + loop $while-continue|0 + local.get $2 + local.get $3 + i32.gt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 10848 + i32.store offset=4 + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.tee $4 + i32.load offset=4 + local.get $4 + i32.load + i32.const 2 + global.set $~argumentsLength + i32.const 10848 + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $while-continue|0 + end + end + local.get $3 + local.set $2 + loop $while-continue|1 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.tee $4 + i32.load + local.set $5 + local.get $4 + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.tee $4 + i32.load + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $4 + local.get $5 + i32.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $2 + local.get $3 + i32.gt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 10848 + i32.store offset=8 + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=4 + local.get $1 + i32.load + i32.const 2 + global.set $~argumentsLength + i32.const 10848 + i32.load + call_indirect (type $0) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $while-continue|2 + end + end + end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $3 ) - (func $~lib/array/Array#splice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) (local $6 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -9308,171 +9857,194 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $2 - local.get $0 - i32.load offset=12 - local.tee $3 - local.get $1 i32.const 0 - i32.lt_s - if (result i32) - local.get $1 - local.get $3 + i32.const 24 + memory.fill + local.get $1 + local.get $2 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 24 i32.add - local.tee $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - else - local.get $1 - local.get $3 + global.set $~lib/memory/__stack_pointer local.get $1 - local.get $3 - i32.lt_s - select + return end - local.tee $1 - i32.sub - local.tee $4 - local.get $2 - local.get $4 - i32.lt_s - select - local.tee $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - local.tee $2 - i32.const 2 - i32.const 4 - i32.const 0 - call $~lib/rt/__newArray - local.tee $4 - i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $4 - i32.store - local.get $4 - i32.load offset=4 - local.set $6 - local.get $5 - local.get $0 + local.get $3 i32.store - local.get $6 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=4 - local.tee $5 local.get $1 i32.const 2 i32.shl i32.add - local.tee $6 - local.get $2 - i32.const 2 - i32.shl - memory.copy - local.get $1 - local.get $2 - i32.add - local.tee $1 - local.get $3 - i32.ne - if - local.get $6 - local.get $5 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $3 - local.get $1 - i32.sub - i32.const 2 - i32.shl - memory.copy - end + i32.load + local.tee $5 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store local.get $0 - local.get $3 - local.get $2 - i32.sub - i32.store offset=12 local.get $1 - i32.const 8 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - ) - (func $~lib/array/Array#splice@varargs (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 + local.tee $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $6 + i32.store offset=8 + i32.const 2 + global.set $~argumentsLength + local.get $5 + local.get $6 + local.get $3 + i32.load + call_indirect (type $0) i32.const 0 - i32.store - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength + i32.gt_s + if + loop $while-continue|0 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.tee $5 + i32.load offset=4 + local.tee $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.load + local.tee $5 + i32.store offset=8 + i32.const 2 + global.set $~argumentsLength + local.get $6 + local.get $5 + local.get $3 + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange + i32.add + local.set $4 + br $while-continue|0 end - unreachable end - i32.const 2147483647 + local.get $4 local.set $2 + loop $while-continue|1 + local.get $1 + local.get $2 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.tee $3 + i32.load + local.tee $5 + i32.store offset=16 + local.get $3 + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.tee $3 + i32.load + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $5 + i32.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=4 + local.tee $5 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load + local.tee $1 + i32.store offset=8 + i32.const 2 + global.set $~argumentsLength + local.get $5 + local.get $1 + local.get $3 + i32.load + call_indirect (type $0) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $2 - call $~lib/array/Array#splice - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $4 ) - (func $~lib/array/Array#splice (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) (local $6 i32) 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 @@ -9487,120 +10059,171 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $1 local.get $2 - local.get $0 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + end + global.get $~lib/memory/__stack_pointer + local.get $3 i32.store - local.get $2 + local.get $0 + local.get $1 i32.const 2 + i32.shl + i32.add + i32.load local.get $0 - i32.load offset=12 - local.tee $2 local.get $1 - i32.const 0 - i32.lt_s - if (result i32) - local.get $1 - local.get $2 - i32.add - local.tee $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - else - local.get $1 - local.get $2 - local.get $1 - local.get $2 - i32.lt_s - select - end - local.tee $3 - i32.sub - local.tee $1 - local.get $1 - i32.const 2 - i32.gt_s - select - local.tee $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - local.tee $1 - i32.const 2 - i32.const 10 - i32.const 0 - call $~lib/rt/__newArray + i32.const 1 + i32.add local.tee $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $4 - i32.store - local.get $4 - i32.load offset=4 - local.set $6 - local.get $5 - local.get $0 - i32.store - local.get $6 - local.get $0 - i32.load offset=4 - local.tee $5 - local.get $3 i32.const 2 i32.shl i32.add - local.tee $6 - local.get $1 + i32.load i32.const 2 - i32.shl - memory.copy - local.get $2 - local.get $1 + global.set $~argumentsLength local.get $3 - i32.add - local.tee $3 - i32.ne + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s if - local.get $6 - local.get $5 - local.get $3 - i32.const 2 - i32.shl - i32.add - local.get $2 - local.get $3 - i32.sub - i32.const 2 - i32.shl - memory.copy + loop $while-continue|0 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.tee $5 + i32.load offset=4 + local.get $5 + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $2 + loop $while-continue|1 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.tee $3 + i32.load + local.set $5 + local.get $3 + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.tee $3 + i32.load + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $5 + i32.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=4 + local.get $1 + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $0) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end end global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store - local.get $0 - local.get $2 - local.get $1 - i32.sub - i32.store offset=12 - local.get $3 - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer local.get $4 ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 f64) + (local $5 f64) + (local $6 i32) 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 @@ -9615,114 +10238,171 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 - local.get $0 - i32.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u + local.get $2 + i32.eq if - i32.const 1344 - i32.const 1104 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 + i32.const 10544 i32.store - local.get $2 local.get $0 - i32.load offset=4 local.get $1 - i32.const 2 + i32.const 3 i32.shl i32.add - i32.load - local.tee $0 - i32.store offset=4 + f64.load local.get $0 - i32.eqz - if - i32.const 6416 - i32.const 1104 - i32.const 118 - i32.const 40 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $1 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/array/Array#__get (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 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 - local.tee $2 - i64.const 0 - i64.store - local.get $2 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1344 - i32.const 1104 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 + local.tee $3 + i32.const 3 i32.shl i32.add + f64.load + i32.const 2 + global.set $~argumentsLength + i32.const 10544 i32.load - local.tee $0 - i32.store offset=4 - local.get $2 - i32.const 8 + call_indirect (type $5) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $2 + local.get $3 + i32.gt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 10544 + i32.store offset=4 + local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.tee $6 + f64.load offset=8 + local.get $6 + f64.load + i32.const 2 + global.set $~argumentsLength + i32.const 10544 + i32.load + call_indirect (type $5) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $while-continue|0 + end + end + local.get $3 + local.set $2 + loop $while-continue|1 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.tee $6 + f64.load + local.set $4 + local.get $6 + local.get $0 + local.get $2 + i32.const 3 + i32.shl + i32.add + local.tee $6 + f64.load + f64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $6 + local.get $4 + f64.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $2 + local.get $3 + i32.gt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 10544 + i32.store offset=8 + local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.tee $1 + f64.load offset=8 + local.get $1 + f64.load + i32.const 2 + global.set $~argumentsLength + i32.const 10544 + i32.load + call_indirect (type $5) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $while-continue|2 + end + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $3 ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 f32) + (local $6 i32) + (local $7 f32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -9737,220 +10417,170 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store + i32.store offset=8 local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u + local.get $2 + i32.eq if - local.get $1 - i32.const 0 - i32.lt_s - if - i32.const 1344 - i32.const 1104 - 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 - 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 + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return end global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 + local.get $3 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 $3 - i32.const 4 + f32.load + local.get $0 + local.get $1 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#findIndex (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 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 - local.tee $3 - i64.const 0 - i64.store + local.tee $4 + i32.const 2 + i32.shl + i32.add + f32.load + i32.const 2 + global.set $~argumentsLength local.get $3 - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - local.set $4 - loop $for-loop|0 - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store - local.get $2 - local.get $4 - local.get $0 - i32.load offset=12 - local.tee $5 - local.get $4 - local.get $5 - i32.lt_s - select - i32.lt_s - if - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 - local.get $3 - local.get $0 - i32.store - i32.const 3 - global.set $~argumentsLength - local.get $5 + i32.load + call_indirect (type $6) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 local.get $2 - local.get $0 + local.get $4 + i32.gt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.tee $6 + f32.load offset=4 + local.get $6 + f32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $6) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $2 + loop $while-continue|1 local.get $1 - i32.load - call_indirect (type $1) + local.get $2 + i32.lt_s if - global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $0 + local.get $1 + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer + local.tee $3 + f32.load + local.set $5 + local.get $3 + local.get $0 local.get $2 - return + i32.const 2 + i32.shl + i32.add + local.tee $3 + f32.load + f32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $5 + f32.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 end + end + else + loop $while-continue|2 local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 + local.get $4 + i32.gt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.tee $1 + f32.load offset=4 + local.get $1 + f32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $6) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end end end global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const -1 - ) - (func $start:std/array~anonymous|3 (param $0 i32) (param $1 i32) (param $2 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 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 - local.tee $1 - i32.const 0 - i32.store - local.get $1 - local.get $2 - i32.store - local.get $2 - i32.const 100 - call $~lib/array/Array#push - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.const 100 - i32.eq - ) - (func $start:std/array~anonymous|5 (param $0 i32) (param $1 i32) (param $2 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 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 - local.tee $1 - i32.const 0 - i32.store - local.get $1 - local.get $2 - i32.store - local.get $2 - call $~lib/array/Array#pop - drop - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - i32.const 100 - i32.eq + local.get $4 ) - (func $~lib/array/Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR<~lib/string/String|null>~anonymous|0 (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 @@ -9967,2271 +10597,1581 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.const 1 - i32.sub - local.set $2 - loop $for-loop|0 - local.get $2 - i32.const 0 - i32.ge_s - if - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $4 - local.get $3 - local.get $0 - i32.store - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $1) - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - end - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const -1 - ) - (func $~lib/array/Array#every (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 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 - local.tee $3 - i64.const 0 - i64.store - local.get $3 - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - local.set $4 - loop $for-loop|0 + block $folding-inner0 + local.get $1 + i32.eqz + local.get $0 + i32.eqz + local.get $0 + local.get $1 + i32.eq + i32.or + i32.or + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $2 - local.get $4 local.get $0 - i32.load offset=12 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + 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 + i32.const 1 + i32.shr_u local.tee $5 local.get $4 + i32.or + i32.eqz + br_if $folding-inner0 + local.get $4 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const -1 + return + end local.get $5 - i32.lt_s - select - i32.lt_s + i32.eqz if - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.get $2 - i32.const 2 - i32.shl + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - i32.load - local.set $5 - local.get $3 - local.get $0 - i32.store - i32.const 3 - global.set $~argumentsLength + global.set $~lib/memory/__stack_pointer + i32.const 1 + return + 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 + block $__inlined_func$~lib/util/string/compareImpl (result i32) + local.get $4 local.get $5 - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $1) + local.get $4 + local.get $5 + i32.lt_s + select + local.tee $2 + i32.const 4 + i32.ge_u + if (result i32) + local.get $0 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + else + i32.const 1 + end i32.eqz if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - return + loop $do-loop|0 + local.get $0 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $0 + i32.const 8 + i32.add + local.set $0 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $2 + i32.const 4 + i32.sub + local.tee $2 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 + loop $while-continue|1 + local.get $2 + local.tee $3 + i32.const 1 + i32.sub + local.set $2 + local.get $3 + if + local.get $0 + i32.load16_u + local.tee $3 + local.get $1 + i32.load16_u + local.tee $6 + i32.ne + if + local.get $3 + local.get $6 + i32.sub + br $__inlined_func$~lib/util/string/compareImpl + end + local.get $0 + i32.const 2 + i32.add + local.set $0 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end + end + i32.const 0 end + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + local.get $4 + local.get $5 + i32.sub + local.get $0 + select + return end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1 + i32.const 0 ) - (func $start:std/array~anonymous|12 (param $0 i32) (param $1 i32) (param $2 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 16192 - i32.lt_s + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 255 + i32.and + local.tee $2 + i32.const 10 + i32.lt_u if - i32.const 48992 - i32.const 49040 - i32.const 1 + local.get $0 + local.get $2 + i32.const 48 + i32.or + i32.store16 i32.const 1 - call $~lib/builtins/abort - unreachable + return end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store local.get $1 - local.get $2 - i32.store - local.get $2 - i32.const 100 - call $~lib/array/Array#push - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 255 + i32.and + local.set $1 + i32.const 3 + local.get $1 + i32.const 10 + i32.ge_u + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer + local.get $1 + i32.const 100 + i32.ge_u + select + local.set $2 local.get $0 - i32.const 10 - i32.lt_s - ) - (func $start:std/array~anonymous|14 (param $0 i32) (param $1 i32) (param $2 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 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 - local.tee $1 - i32.const 0 - i32.store local.get $1 local.get $2 - i32.store + call $~lib/util/number/utoa32_dec_lut local.get $2 - call $~lib/array/Array#pop - drop - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.const 3 - i32.lt_s ) - (func $~lib/array/Array#some (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i64) (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 16192 - i32.lt_s + local.get $1 + i64.const 10 + i64.lt_u if - i32.const 48992 - i32.const 49040 - i32.const 1 + local.get $0 + local.get $1 + i64.const 48 + i64.or + i64.store16 i32.const 1 - call $~lib/builtins/abort - unreachable + return end - global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - local.get $0 - i32.store local.get $0 - i32.load offset=12 - local.set $4 - loop $for-loop|0 - global.get $~lib/memory/__stack_pointer + local.set $2 + local.get $1 + i64.const 4294967295 + i64.le_u + if + local.get $1 + i32.wrap_i64 local.tee $3 - local.get $0 - i32.store - local.get $2 - local.get $4 - local.get $0 - i32.load offset=12 - local.tee $5 - local.get $4 - local.get $5 - i32.lt_s - select - i32.lt_s - if + i32.const 100000 + i32.lt_u + if (result i32) local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 + i32.const 100 + i32.lt_u + if (result i32) + local.get $3 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $3 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $3 + i32.const 1000 + i32.ge_u + i32.add + end + else local.get $3 - local.get $0 - i32.store - i32.const 3 - global.set $~argumentsLength - local.get $5 - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $1) - if - global.get $~lib/memory/__stack_pointer + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $3 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $3 + i32.const 1000000000 + i32.ge_u i32.const 8 i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 - return + local.get $3 + i32.const 100000000 + i32.ge_u + i32.add end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 end + local.set $0 + local.get $2 + local.get $3 + local.get $0 + call $~lib/util/number/utoa32_dec_lut + else + local.get $2 + local.get $1 + local.get $1 + i64.const 1000000000000000 + i64.lt_u + if (result i32) + local.get $1 + i64.const 1000000000000 + i64.lt_u + if (result i32) + local.get $1 + i64.const 100000000000 + i64.ge_u + i32.const 10 + i32.add + local.get $1 + i64.const 10000000000 + i64.ge_u + i32.add + else + local.get $1 + i64.const 100000000000000 + i64.ge_u + i32.const 13 + i32.add + local.get $1 + i64.const 10000000000000 + i64.ge_u + i32.add + end + else + local.get $1 + i64.const 100000000000000000 + i64.lt_u + if (result i32) + local.get $1 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 + i32.add + else + local.get $1 + i64.const -8446744073709551616 + i64.ge_u + i32.const 18 + i32.add + local.get $1 + i64.const 1000000000000000000 + i64.ge_u + i32.add + end + end + local.tee $0 + call $~lib/util/number/utoa64_dec_lut end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $start:std/array~anonymous|17 (param $0 i32) (param $1 i32) (param $2 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 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 - local.tee $1 - i32.const 0 - i32.store - local.get $1 - local.get $2 - i32.store - local.get $2 - i32.const 100 - call $~lib/array/Array#push - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.const 10 - i32.gt_s - ) - (func $start:std/array~anonymous|19 (param $0 i32) (param $1 i32) (param $2 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 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 - local.tee $1 - i32.const 0 - i32.store - local.get $1 - local.get $2 - i32.store - local.get $2 - call $~lib/array/Array#pop - drop - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer local.get $0 - i32.const 3 - i32.gt_s ) - (func $~lib/array/Array#forEach (param $0 i32) (param $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 16192 - i32.lt_s + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + local.get $1 + i32.const 10 + i32.lt_u if - i32.const 48992 - i32.const 49040 - i32.const 1 + local.get $0 + local.get $1 + i32.const 48 + i32.or + i32.store16 i32.const 1 - call $~lib/builtins/abort - unreachable + return end - global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - local.get $0 - i32.store local.get $0 - i32.load offset=12 - local.set $4 - loop $for-loop|0 - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store - local.get $2 - local.get $4 - local.get $0 - i32.load offset=12 - local.tee $5 - local.get $4 - local.get $5 - i32.lt_s - select - i32.lt_s - if - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.get $2 - i32.const 2 - i32.shl + local.get $1 + 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 - i32.load - local.set $5 - local.get $3 - local.get $0 - i32.store + else + local.get $1 + i32.const 10000 + i32.ge_u i32.const 3 - global.set $~argumentsLength - local.get $5 - local.get $2 - local.get $0 + i32.add local.get $1 - i32.load - call_indirect (type $3) - local.get $2 - i32.const 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 - local.set $2 - br $for-loop|0 end end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + local.tee $0 + call $~lib/util/number/utoa32_dec_lut + local.get $0 ) - (func $start:std/array~anonymous|21 (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 16192 - i32.lt_s + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 65535 + i32.and + local.tee $2 + i32.const 10 + i32.lt_u if - i32.const 48992 - i32.const 49040 - i32.const 1 + local.get $0 + local.get $2 + i32.const 48 + i32.or + i32.store16 i32.const 1 - call $~lib/builtins/abort - unreachable + return end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store local.get $1 - local.get $2 - i32.store - local.get $2 + i32.const 65535 + i32.and + local.set $1 + local.get $1 i32.const 100 - call $~lib/array/Array#push - global.get $std/array/i - local.get $0 - i32.add - global.set $std/array/i - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $start:std/array~anonymous|23 (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 16192 - i32.lt_s - if - i32.const 48992 - i32.const 49040 - i32.const 1 + i32.lt_u + if (result i32) + local.get $1 + i32.const 10 + i32.ge_u i32.const 1 - call $~lib/builtins/abort - unreachable + 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 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store + local.set $2 + local.get $0 local.get $1 local.get $2 - i32.store + call $~lib/util/number/utoa32_dec_lut local.get $2 - call $~lib/array/Array#pop - drop - global.get $std/array/i + ) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + i32.extend8_s + local.tee $3 + i32.const 0 + i32.lt_s + local.tee $2 + if + local.get $3 + i32.const -128 + i32.eq + if + local.get $0 + i64.const 15762813447372845 + i64.store + i32.const 4 + return + end + local.get $0 + i32.const 45 + i32.store16 + i32.const 0 + local.get $1 + i32.sub + local.set $1 + end local.get $0 + local.get $2 + i32.const 1 + i32.shl i32.add - global.set $std/array/i - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.set $0 + local.get $1 + i32.extend8_s + local.tee $3 + i32.const 10 + i32.lt_u + if + local.get $0 + local.get $3 + i32.const 48 + i32.or + i32.store16 + local.get $2 + i32.const 1 + i32.add + return + end + local.get $1 + i32.extend8_s + 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.set $3 + local.get $0 + local.get $1 + local.get $3 + call $~lib/util/number/utoa32_dec_lut + local.get $2 + local.get $3 i32.add - global.set $~lib/memory/__stack_pointer ) - (func $start:std/array~anonymous|24 (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/number/itoa_buffered (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 16192 - i32.lt_s + (local $4 i32) + local.get $1 + i64.const 0 + i64.lt_s + local.tee $3 if - i32.const 48992 - i32.const 49040 - i32.const 1 + local.get $0 + i32.const 45 + i32.store16 + i64.const 0 + local.get $1 + i64.sub + local.set $1 + end + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $4 + local.get $1 + i64.const 10 + i64.lt_u + if + local.get $4 + local.get $1 + i64.const 48 + i64.or + i64.store16 + local.get $3 i32.const 1 - call $~lib/builtins/abort - unreachable + i32.add + return end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store local.get $1 - i32.eqz + i64.const 4294967295 + i64.le_u if - loop $for-loop|0 - local.get $3 - i32.const 4 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store + local.get $1 + i32.wrap_i64 + local.tee $2 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $2 + i32.const 100 + i32.lt_u + if (result i32) local.get $2 - call $~lib/array/Array#pop - drop - local.get $3 + i32.const 10 + i32.ge_u i32.const 1 i32.add - local.set $3 - br $for-loop|0 - end - end - i32.const 0 - local.set $3 - loop $for-loop|1 - local.get $3 - i32.const 100 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store + else local.get $2 - local.get $3 - i32.const 100 + i32.const 10000 + i32.ge_u + i32.const 3 i32.add - call $~lib/array/Array#push - local.get $3 - i32.const 1 + local.get $2 + i32.const 1000 + i32.ge_u i32.add - local.set $3 - br $for-loop|1 end - end - i32.const 0 - local.set $3 - loop $for-loop|2 - local.get $3 - i32.const 100 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer + else + local.get $2 + i32.const 10000000 + i32.lt_u + if (result i32) local.get $2 - i32.store + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else local.get $2 - call $~lib/array/Array#pop - drop - local.get $3 - i32.const 1 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $2 + i32.const 100000000 + i32.ge_u i32.add - local.set $3 - br $for-loop|2 end end - i32.const 0 - local.set $3 - loop $for-loop|3 - local.get $3 - i32.const 100 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $3 - i32.const 200 + local.set $0 + local.get $4 + local.get $2 + local.get $0 + call $~lib/util/number/utoa32_dec_lut + else + local.get $4 + local.get $1 + local.get $1 + i64.const 1000000000000000 + i64.lt_u + if (result i32) + local.get $1 + i64.const 1000000000000 + i64.lt_u + if (result i32) + local.get $1 + i64.const 100000000000 + i64.ge_u + i32.const 10 i32.add - call $~lib/array/Array#push - local.get $3 - i32.const 1 + local.get $1 + i64.const 10000000000 + i64.ge_u + i32.add + else + local.get $1 + i64.const 100000000000000 + i64.ge_u + i32.const 13 + i32.add + local.get $1 + i64.const 10000000000000 + i64.ge_u + i32.add + end + else + local.get $1 + i64.const 100000000000000000 + i64.lt_u + if (result i32) + local.get $1 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 + i32.add + else + local.get $1 + i64.const -8446744073709551616 + i64.ge_u + i32.const 18 + i32.add + local.get $1 + i64.const 1000000000000000000 + i64.ge_u i32.add - local.set $3 - br $for-loop|3 end end + local.tee $0 + call $~lib/util/number/utoa64_dec_lut end - local.get $1 - i32.const 2 - i32.eq local.get $0 - i32.const 202 - i32.ne - i32.and + local.get $3 + i32.add + ) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 0 + i32.lt_s + local.tee $2 if + local.get $0 + i32.const 45 + i32.store16 i32.const 0 - i32.const 1552 - i32.const 767 - i32.const 7 - call $~lib/builtins/abort - unreachable + local.get $1 + i32.sub + local.set $1 end - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $0 + local.get $2 + i32.const 1 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $start:std/array~anonymous|27 (param $0 i32) (param $1 i32) (param $2 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 16192 - i32.lt_s + local.set $0 + local.get $1 + i32.const 10 + i32.lt_u if - i32.const 48992 - i32.const 49040 - i32.const 1 + local.get $0 + local.get $1 + i32.const 48 + i32.or + i32.store16 + local.get $2 i32.const 1 - call $~lib/builtins/abort - unreachable + i32.add + return end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store + local.get $0 local.get $1 - local.get $2 - i32.store - local.get $2 - i32.const 100 - call $~lib/array/Array#push - global.get $std/array/i + 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 $0 + call $~lib/util/number/utoa32_dec_lut local.get $0 + local.get $2 i32.add - global.set $std/array/i - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/array/Array#map (param $0 i32) (param $1 i32) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - 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 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 + local.get $1 + i32.extend16_s local.tee $3 - i64.const 0 - i64.store - local.get $3 i32.const 0 - i32.store offset=8 - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.load offset=12 - local.tee $3 - i32.const 2 - i32.const 4 - i32.const 0 - call $~lib/rt/__newArray - local.tee $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.load offset=4 - local.set $6 - loop $for-loop|0 - global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $0 - i32.store - local.get $2 - local.get $3 - local.get $0 - i32.load offset=12 - local.tee $5 + i32.lt_s + local.tee $2 + if local.get $3 - local.get $5 - i32.lt_s - select - i32.lt_s + i32.const -32768 + i32.eq if - local.get $4 - local.get $0 - i32.store offset=8 - local.get $2 - i32.const 2 - i32.shl - local.tee $5 - local.get $0 - i32.load offset=4 - i32.add - i32.load - local.set $7 - local.get $4 local.get $0 - i32.store - i32.const 3 - global.set $~argumentsLength - local.get $5 - local.get $6 - i32.add - local.get $7 - local.get $2 + i64.const 15481338470793261 + i64.store local.get $0 - local.get $1 - i32.load - call_indirect (type $1) - i32.store - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 + i32.const 3670070 + i32.store offset=8 + i32.const 6 + return end + local.get $0 + i32.const 45 + i32.store16 + i32.const 0 + local.get $1 + i32.sub + local.set $1 end - global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $0 + local.get $2 + i32.const 1 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $start:std/array~anonymous|29 (param $0 i32) (param $1 i32) (param $2 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 16192 - i32.lt_s + local.set $0 + local.get $1 + i32.extend16_s + local.tee $3 + i32.const 10 + i32.lt_u if - i32.const 48992 - i32.const 49040 - i32.const 1 + local.get $0 + local.get $3 + i32.const 48 + i32.or + i32.store16 + local.get $2 i32.const 1 - call $~lib/builtins/abort - unreachable + i32.add + return end - global.get $~lib/memory/__stack_pointer + local.get $1 + i32.extend16_s local.tee $1 - i32.const 0 - i32.store + 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.set $3 + local.get $0 local.get $1 + local.get $3 + call $~lib/util/number/utoa32_dec_lut local.get $2 - i32.store - local.get $2 - call $~lib/array/Array#pop - drop - global.get $std/array/i - local.get $0 - i32.add - global.set $std/array/i - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $3 i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/array/Array#filter (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/util/number/dtoa_core (param $0 i32) (param $1 f64) (result i32) + (local $2 i64) (local $3 i32) - (local $4 i32) + (local $4 i64) (local $5 i32) - (local $6 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 + (local $6 i64) + (local $7 i64) + (local $8 i64) + (local $9 i32) + (local $10 i32) + (local $11 i64) + (local $12 i64) + (local $13 i64) + (local $14 i64) + (local $15 i64) + local.get $1 + f64.const 0 + f64.lt local.tee $3 - i64.const 0 - i64.store - local.get $3 - i32.const 0 - i32.const 2 - i32.const 4 - i32.const 0 - call $~lib/rt/__newArray - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=12 - local.set $3 - loop $for-loop|0 - global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $0 - i32.store offset=4 - local.get $2 - local.get $3 + if (result f64) local.get $0 - i32.load offset=12 - local.tee $6 - local.get $3 - local.get $6 - i32.lt_s - select - i32.lt_s - if - local.get $4 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $6 - local.get $4 - local.get $0 - i32.store offset=4 - i32.const 3 - global.set $~argumentsLength - local.get $6 - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $1) - if - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $6 - call $~lib/array/Array#push - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end + i32.const 45 + i32.store16 + local.get $1 + f64.neg + else + local.get $1 end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + i64.reinterpret_f64 + local.tee $2 + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.tee $5 + i32.const 1 local.get $5 - ) - (func $start:std/array~anonymous|31 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 + select + i32.const 1075 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 - local.tee $1 + local.tee $9 + i32.const 1 + i32.sub + local.get $2 + i64.const 4503599627370495 + i64.and + local.get $5 i32.const 0 - i32.store - local.get $1 + i32.ne + i64.extend_i32_u + i64.const 52 + i64.shl + i64.add + local.tee $2 + i64.const 1 + i64.shl + i64.const 1 + i64.add + local.tee $4 + i64.clz + i32.wrap_i64 + local.tee $10 + i32.sub + local.set $5 + local.get $4 + local.get $10 + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_plus local.get $2 - i32.store local.get $2 - i32.const 100 - call $~lib/array/Array#push - global.get $std/array/i - local.get $0 - i32.add - global.set $std/array/i - global.get $~lib/memory/__stack_pointer - i32.const 4 + i64.const 4503599627370496 + i64.eq + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - i32.ge_s - ) - (func $start:std/array~anonymous|33 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.tee $10 + i64.extend_i32_s + i64.shl + i64.const 1 + i64.sub + local.get $9 + local.get $10 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 + local.get $5 + i32.sub + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_minus + local.get $5 + global.set $~lib/util/number/_exp + i32.const 348 + i32.const -61 + global.get $~lib/util/number/_exp + i32.sub + f64.convert_i32_s + f64.const 0.30102999566398114 + f64.mul + f64.const 347 + f64.add local.tee $1 - i32.const 0 - i32.store + i32.trunc_sat_f64_s + local.tee $5 + local.get $5 + f64.convert_i32_s local.get $1 - local.get $2 - i32.store - local.get $2 - call $~lib/array/Array#pop - drop - global.get $std/array/i - local.get $0 + f64.ne i32.add - global.set $std/array/i - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 3 + i32.shr_s + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - i32.ge_s - ) - (func $~lib/array/Array#reduce (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 + local.tee $5 + i32.const 3 + i32.shl + local.tee $9 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 + global.set $~lib/util/number/_K + local.get $9 + i32.const 12520 + i32.add + i64.load + global.set $~lib/util/number/_frc_pow + local.get $5 + i32.const 1 + i32.shl + i32.const 13216 + i32.add + i32.load16_s + global.set $~lib/util/number/_exp_pow + local.get $2 + local.get $2 + i64.clz + i64.shl + local.tee $2 + i64.const 4294967295 + i64.and + local.set $6 + global.get $~lib/util/number/_frc_pow + local.tee $11 + i64.const 4294967295 + i64.and + local.tee $12 + local.get $2 + i64.const 32 + i64.shr_u + local.tee $2 + i64.mul + local.get $6 + local.get $12 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.set $7 + global.get $~lib/util/number/_frc_plus local.tee $4 - i64.const 0 - i64.store + i64.const 4294967295 + i64.and + local.set $13 local.get $4 - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - local.set $5 - loop $for-loop|0 - global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $0 - i32.store - local.get $3 - local.get $5 - local.get $0 - i32.load offset=12 - local.tee $6 - local.get $5 - local.get $6 - i32.lt_s - select - i32.lt_s - if - local.get $4 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $6 - local.get $4 - local.get $0 - i32.store - i32.const 4 - global.set $~argumentsLength - local.get $2 - local.get $6 - local.get $3 - local.get $0 - local.get $1 - i32.load - call_indirect (type $4) - local.set $2 - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $start:std/array~anonymous|38 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 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 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 - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $3 - i32.store + i64.const 32 + i64.shr_u + local.tee $4 + local.get $12 + i64.mul + local.get $12 + local.get $13 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.set $8 + global.get $~lib/util/number/_frc_minus + local.tee $14 + i64.const 4294967295 + i64.and + local.set $15 + local.get $14 + i64.const 32 + i64.shr_u + local.tee $14 + local.get $12 + i64.mul + local.get $12 + local.get $15 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.set $12 + local.get $0 local.get $3 i32.const 1 - call $~lib/array/Array#push - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.add - ) - (func $start:std/array~anonymous|40 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 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 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 + local.get $2 + local.get $11 + i64.const 32 + i64.shr_u local.tee $2 - i32.const 0 - i32.store + i64.mul + local.get $7 + i64.const 32 + i64.shr_u + i64.add local.get $2 - local.get $3 - i32.store - local.get $3 - call $~lib/array/Array#pop - drop - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $1 + local.get $6 + i64.mul + local.get $7 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + local.get $2 + local.get $4 + i64.mul + local.get $8 + i64.const 32 + i64.shr_u + i64.add + local.get $2 + local.get $13 + i64.mul + local.get $8 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.sub + local.tee $4 + global.get $~lib/util/number/_exp_pow + global.get $~lib/util/number/_exp i32.add - ) - (func $~lib/array/Array#reduceRight (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 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 - local.tee $3 - i64.const 0 - i64.store - local.get $3 - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.const 1 + i32.const -64 i32.sub - local.set $3 - loop $for-loop|0 - local.get $3 - i32.const 0 - i32.ge_s - if - global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 - local.get $4 - local.get $0 - i32.store - i32.const 4 - global.set $~argumentsLength - local.get $2 - local.get $5 - local.get $3 - local.get $0 - local.get $1 - i32.load - call_indirect (type $4) - local.set $2 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $4 local.get $2 - ) - (func $std/array/Dim#constructor (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 - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 8 - i32.const 22 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - local.get $2 - 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 $1 - local.get $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 - 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/util/sort/SORT (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 f32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - (local $14 i64) - (local $15 i32) - (local $16 i32) - (local $17 f32) - (local $18 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 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 - block $folding-inner0 - local.get $1 - i32.const 48 - i32.le_s - if - local.get $1 - i32.const 1 - i32.le_s - br_if $folding-inner0 - block $break|0 - block $case1|0 - local.get $1 - i32.const 3 - i32.ne - if - local.get $1 - i32.const 2 - i32.eq - br_if $case1|0 - br $break|0 - end - local.get $0 - f32.load - local.set $9 - local.get $0 - f32.load offset=4 - local.set $17 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $17 - local.get $9 - local.get $9 - local.get $17 - local.get $2 - i32.load - call_indirect (type $5) - i32.const 0 - i32.gt_s - local.tee $1 - select - f32.store - local.get $0 - f32.load offset=8 - local.set $18 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $18 - local.get $9 - local.get $17 - local.get $1 - select - local.tee $9 - local.get $9 - local.get $18 - local.get $2 - i32.load - call_indirect (type $5) - i32.const 0 - i32.gt_s - local.tee $1 - select - f32.store offset=4 - local.get $0 - local.get $9 - local.get $18 - local.get $1 - select - f32.store offset=8 - end - local.get $0 - f32.load - local.set $9 - local.get $0 - f32.load offset=4 - local.set $17 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $17 - local.get $9 - local.get $9 - local.get $17 - local.get $2 - i32.load - call_indirect (type $5) - i32.const 0 - i32.gt_s - local.tee $1 - select - f32.store - local.get $0 - local.get $9 - local.get $17 - local.get $1 - select - f32.store offset=4 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - i32.const 0 - local.get $1 - i32.const 1 - i32.sub - i32.const 0 - local.get $2 - call $~lib/util/sort/insertionSort - br $folding-inner0 - end - i32.const 33 - local.get $1 - i32.clz - i32.sub - local.tee $4 - i32.const 2 - i32.shl - local.tee $5 - i32.const 1 - i32.shl - local.set $6 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - local.get $5 - global.get $~lib/rt/tlsf/ROOT - local.get $6 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $11 - i32.add - local.set $12 - loop $for-loop|1 - local.get $3 - local.get $4 - i32.lt_u - if - local.get $11 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.const -1 - i32.store - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|1 - 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 $1 - i32.const 2 - i32.shl - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.set $13 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - i32.const 0 - local.get $1 - i32.const 1 - i32.sub - local.tee $10 - local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $4 - i32.const 1 - i32.add - local.tee $1 - i32.const 32 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - i32.const 0 - i32.const 31 - local.get $10 - local.get $10 - i32.const 31 - i32.ge_s - select - local.tee $4 - local.get $1 - local.get $2 - call $~lib/util/sort/insertionSort - end - i32.const 0 - local.set $1 - i32.const 0 - local.set $3 - loop $while-continue|2 - local.get $4 - local.get $10 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $4 - i32.const 1 - i32.add - local.tee $6 - local.get $10 - local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $5 - local.get $6 - i32.sub - i32.const 1 - i32.add - local.tee $7 - i32.const 32 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $6 - local.get $10 - local.get $6 - i32.const 31 - i32.add - local.tee $5 - local.get $5 - local.get $10 - i32.gt_s - select - local.tee $5 - local.get $7 - local.get $2 - call $~lib/util/sort/insertionSort - end - local.get $3 - local.get $6 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $10 - i32.const 1 - i32.add - i64.extend_i32_u - local.tee $14 - i64.div_u - local.get $5 - local.get $6 - i32.add - i32.const 1 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $14 - i64.div_u - i64.xor - i32.wrap_i64 - i32.clz - local.set $7 - loop $for-loop|3 - local.get $1 - local.get $7 - i32.gt_u - if - local.get $1 - i32.const 2 - i32.shl - local.tee $15 - local.get $11 - i32.add - local.tee $16 - i32.load - local.tee $8 - i32.const -1 - i32.ne - if - local.get $12 - local.get $15 - i32.add - i32.load - i32.const 1 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $8 - local.get $3 - local.get $4 - local.get $13 - local.get $2 - call $~lib/util/sort/mergeRuns - local.get $16 - i32.const -1 - i32.store - local.get $8 - local.set $3 - end - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|3 - end - end - local.get $7 - i32.const 2 - i32.shl - local.tee $1 - local.get $11 - i32.add - local.get $3 - i32.store - local.get $1 - local.get $12 - i32.add - local.get $4 - i32.store - local.get $6 - local.set $3 - local.get $5 - local.set $4 - local.get $7 - local.set $1 - br $while-continue|2 - end - end - loop $for-loop|4 - local.get $1 - if - local.get $1 - i32.const 2 - i32.shl - local.tee $3 - local.get $11 - i32.add - i32.load - local.tee $4 - i32.const -1 - i32.ne - if - local.get $3 - local.get $12 - i32.add - i32.load - i32.const 1 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $4 - local.get $3 - local.get $10 - local.get $13 - local.get $2 - call $~lib/util/sort/mergeRuns - end - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|4 - end - end - local.get $13 - call $~lib/rt/tlsf/__free - local.get $11 - call $~lib/rt/tlsf/__free - 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.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#sort@varargs (param $0 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 - 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 - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i32.const 0 - i32.store offset=8 - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - i32.const 10256 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 10256 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - local.get $2 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $3 - local.get $2 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=12 - local.set $0 - local.get $2 - local.get $1 - i32.store - local.get $3 - local.get $0 - local.get $1 - call $~lib/util/sort/SORT - 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 12 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/sort/SORT (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 f64) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i64) - (local $14 i32) - (local $15 i32) - (local $16 f64) - (local $17 f64) - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $14 + i64.mul + local.get $12 + i64.const 32 + i64.shr_u + i64.add + local.get $2 + local.get $15 + i64.mul + local.get $12 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.add + i64.sub + local.get $3 + call $~lib/util/number/genDigits + local.get $3 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 - block $folding-inner0 + global.get $~lib/util/number/_K + call $~lib/util/number/prettify + local.get $3 + i32.add + ) + (func $~lib/util/number/dtoa_buffered (param $0 i32) (param $1 f64) (result i32) + (local $2 i32) + block $~lib/util/number/dtoa_buffered_impl|inlined.0 (result i32) local.get $1 - i32.const 48 - i32.le_s + f64.const 0 + f64.eq + if + local.get $0 + i32.const 48 + i32.store16 + local.get $0 + i32.const 46 + i32.store16 offset=2 + local.get $0 + i32.const 48 + i32.store16 offset=4 + i32.const 3 + br $~lib/util/number/dtoa_buffered_impl|inlined.0 + end + local.get $1 + local.get $1 + f64.sub + f64.const 0 + f64.ne if local.get $1 - i32.const 1 - i32.le_s - br_if $folding-inner0 - block $break|0 - block $case1|0 - local.get $1 - i32.const 3 - i32.ne - if - local.get $1 - i32.const 2 - i32.eq - br_if $case1|0 - br $break|0 - end - local.get $0 - f64.load - local.set $16 - local.get $0 - f64.load offset=8 - local.set $17 - i32.const 2 - global.set $~argumentsLength + local.get $1 + f64.ne + if + local.get $0 + i32.const 78 + i32.store16 + local.get $0 + i32.const 97 + i32.store16 offset=2 + local.get $0 + i32.const 78 + i32.store16 offset=4 + i32.const 3 + br $~lib/util/number/dtoa_buffered_impl|inlined.0 + else + local.get $1 + f64.const 0 + f64.lt + local.tee $2 + if local.get $0 - local.get $17 - local.get $16 - local.get $16 - local.get $17 - i32.const 10544 - i32.load - call_indirect (type $6) - i32.const 0 - i32.gt_s - local.tee $1 - select - f64.store + i32.const 45 + i32.store16 local.get $0 - f64.load offset=16 - local.set $8 i32.const 2 - global.set $~argumentsLength - local.get $16 - local.get $17 - local.get $1 - select - local.tee $16 - local.get $8 - i32.const 10544 - i32.load - call_indirect (type $6) - i32.const 0 - i32.gt_s - local.set $1 - local.get $0 - local.get $8 - local.get $16 - local.get $1 - select - f64.store offset=8 - local.get $0 - local.get $16 - local.get $8 - local.get $1 - select - f64.store offset=16 + i32.add + local.set $0 end local.get $0 - f64.load - local.set $8 - local.get $0 - f64.load offset=8 - local.set $16 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $16 - local.get $8 - local.get $8 - local.get $16 - i32.const 10544 - i32.load - call_indirect (type $6) - i32.const 0 - i32.gt_s - local.tee $1 - select - f64.store + i64.const 29555310648492105 + i64.store local.get $0 - local.get $8 - local.get $16 - local.get $1 - select - f64.store offset=8 - br $folding-inner0 + i64.const 34058970405077102 + i64.store offset=8 + local.get $2 + i32.const 8 + i32.add + br $~lib/util/number/dtoa_buffered_impl|inlined.0 end - global.get $~lib/memory/__stack_pointer - i32.const 10544 - i32.store - local.get $0 - i32.const 0 + unreachable + end + local.get $0 + local.get $1 + call $~lib/util/number/dtoa_core + end + ) + (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.const 0 - call $~lib/util/sort/insertionSort - br $folding-inner0 + i32.shl + i32.add + i32.const 1 + i32.sub + local.set $1 end - i32.const 33 + local.get $1 + i32.const 31 local.get $1 i32.clz i32.sub - local.tee $3 - i32.const 2 - i32.shl - local.tee $4 - i32.const 1 - i32.shl - local.set $5 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - local.get $4 - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/allocateBlock + local.tee $2 i32.const 4 - i32.add - local.tee $10 - i32.add - local.set $11 - loop $for-loop|1 - local.get $2 - local.get $3 - i32.lt_u - if - local.get $10 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.const -1 - i32.store - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|1 - end - end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT + 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.const 3 - i32.shl - call $~lib/rt/tlsf/allocateBlock + i32.ctz + local.get $2 i32.const 4 + i32.shl i32.add - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 10544 - i32.store + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else local.get $0 - i32.const 0 - local.get $1 - i32.const 1 - i32.sub - local.tee $9 - call $~lib/util/sort/extendRunRight - local.tee $3 + i32.load + i32.const -1 + local.get $2 i32.const 1 i32.add + i32.shl + i32.and local.tee $1 - i32.const 32 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 10544 - i32.store + if (result i32) local.get $0 - i32.const 0 - i32.const 31 - local.get $9 - local.get $9 - i32.const 31 - i32.ge_s - select - local.tee $3 - local.get $1 - call $~lib/util/sort/insertionSort - end - i32.const 0 - local.set $1 - i32.const 0 - local.set $2 - loop $while-continue|2 - local.get $3 - local.get $9 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 10544 - i32.store - local.get $0 - local.get $3 - i32.const 1 - i32.add - local.tee $5 - local.get $9 - call $~lib/util/sort/extendRunRight - local.tee $4 - local.get $5 - i32.sub - i32.const 1 - i32.add - local.tee $6 - i32.const 32 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 10544 - i32.store - local.get $0 - local.get $5 - local.get $9 - local.get $5 - i32.const 31 - i32.add - local.tee $4 - local.get $4 - local.get $9 - i32.gt_s - select - local.tee $4 - local.get $6 - call $~lib/util/sort/insertionSort - end - local.get $2 - local.get $5 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $9 - i32.const 1 - i32.add - i64.extend_i32_u - local.tee $13 - i64.div_u - local.get $4 - local.get $5 - i32.add - i32.const 1 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $13 - i64.div_u - i64.xor - i32.wrap_i64 - i32.clz - local.set $6 - loop $for-loop|3 - local.get $1 - local.get $6 - i32.gt_u - if - local.get $1 - i32.const 2 - i32.shl - local.tee $14 - local.get $10 - i32.add - local.tee $15 - i32.load - local.tee $7 - i32.const -1 - i32.ne - if - local.get $11 - local.get $14 - i32.add - i32.load - i32.const 1 - i32.add - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 10544 - i32.store - local.get $0 - local.get $7 - local.get $2 - local.get $3 - local.get $12 - call $~lib/util/sort/mergeRuns - local.get $15 - i32.const -1 - i32.store - local.get $7 - local.set $2 - end - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|3 - end - end - local.get $6 - i32.const 2 - i32.shl - local.tee $1 - local.get $10 - i32.add - local.get $2 - i32.store - local.get $1 - local.get $11 - i32.add - local.get $3 - i32.store - local.get $5 - local.set $2 - local.get $4 - local.set $3 - local.get $6 - local.set $1 - br $while-continue|2 - end - end - loop $for-loop|4 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 - local.get $1 - i32.const 2 - i32.shl - local.tee $2 - local.get $10 - i32.add - i32.load - local.tee $3 - i32.const -1 - i32.ne - if - local.get $2 - local.get $11 - i32.add - i32.load - i32.const 1 - i32.add - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 10544 - i32.store - local.get $0 - local.get $3 - local.get $2 - local.get $9 - local.get $12 - call $~lib/util/sort/mergeRuns - end - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|4 + 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 - local.get $12 - call $~lib/rt/tlsf/__free - local.get $10 - call $~lib/rt/tlsf/__free - global.get $~lib/memory/__stack_pointer + end + ) + (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 - global.set $~lib/memory/__stack_pointer + 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 - global.get $~lib/memory/__stack_pointer + 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 - global.set $~lib/memory/__stack_pointer + 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/array/Array#__get (param $0 i32) (param $1 i32) (result f64) - (local $2 f64) - (local $3 i32) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + global.get $std/array/arr + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 10032 + call $~lib/rt/itcms/__visit + global.get $std/array/inputStabArr + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/array/outputStabArr + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 1344 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + i32.const 2640 + call $~lib/rt/itcms/__visit + i32.const 6416 + call $~lib/rt/itcms/__visit + i32.const 1152 + call $~lib/rt/itcms/__visit + i32.const 8144 + call $~lib/rt/itcms/__visit + i32.const 9200 + 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/array/Array<~lib/string/String|null>#toString (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -12248,481 +12188,254 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 local.get $0 - i32.load offset=12 - i32.ge_u + i32.const 11856 + call $~lib/array/Array<~lib/string/String|null>#join + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array<~lib/string/String|null>#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s if - i32.const 1344 - i32.const 1104 - i32.const 114 - i32.const 42 + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + 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 $0 + i32.store + local.get $0 + i32.load offset=12 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $2 - local.get $3 + i32.store + local.get $1 + call $~lib/util/string/joinStringArray + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) - (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i64) - (local $14 i32) - (local $15 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 block $folding-inner0 - local.get $1 - i32.const 48 - i32.le_s - if - local.get $1 - i32.const 1 - i32.le_s - br_if $folding-inner0 - block $break|0 - block $case1|0 - local.get $1 - i32.const 3 - i32.ne - if - local.get $1 - i32.const 2 - i32.eq - br_if $case1|0 - br $break|0 - end - local.get $0 - i32.load - local.set $1 - local.get $0 - i32.load offset=4 - local.set $3 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $3 - local.get $1 - local.get $1 - local.get $3 - local.get $2 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - local.tee $4 - select - i32.store - local.get $0 - i32.load offset=8 - local.set $5 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $5 - local.get $1 - local.get $3 - local.get $4 - select - local.tee $1 - local.get $1 - local.get $5 - local.get $2 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - local.tee $3 - select - i32.store offset=4 - local.get $0 - local.get $1 - local.get $5 - local.get $3 - select - i32.store offset=8 - end - local.get $0 - i32.load - local.set $1 - local.get $0 - i32.load offset=4 - local.set $3 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $3 - local.get $1 - local.get $1 - local.get $3 - local.get $2 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - local.tee $2 - select - i32.store - local.get $0 - local.get $1 - local.get $3 - local.get $2 - select - i32.store offset=4 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - i32.const 0 - local.get $1 - i32.const 1 - i32.sub - i32.const 0 - local.get $2 - call $~lib/util/sort/insertionSort - br $folding-inner0 - end - i32.const 33 - local.get $1 - i32.clz - i32.sub - local.tee $4 - i32.const 2 - i32.shl - local.tee $5 - i32.const 1 - i32.shl + global.get $~lib/memory/__stack_pointer + i32.const 16192 + 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 $6 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - local.get $5 - global.get $~lib/rt/tlsf/ROOT - local.get $6 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $10 - i32.add - local.set $11 - loop $for-loop|1 - local.get $3 - local.get $4 - i32.lt_u - if - local.get $10 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.const -1 - i32.store - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|1 - 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 $1 - i32.const 2 - i32.shl - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.set $12 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store local.get $0 - i32.const 0 + i32.load offset=12 + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.const 1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.sub - local.tee $9 - local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $4 - i32.const 1 - i32.add - local.tee $1 - i32.const 32 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + block $__inlined_func$~lib/util/string/joinIntegerArray$743 local.get $0 + i32.const 1 + i32.sub + local.tee $7 i32.const 0 - i32.const 31 - local.get $9 - local.get $9 - i32.const 31 - i32.ge_s - select - local.tee $4 - local.get $1 - local.get $2 - call $~lib/util/sort/insertionSort - end - i32.const 0 - local.set $1 - i32.const 0 - local.set $3 - loop $while-continue|2 - local.get $4 - local.get $9 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $4 - i32.const 1 + i32.const 8 i32.add - local.tee $6 - local.get $9 - local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $5 + global.set $~lib/memory/__stack_pointer + i32.const 11568 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray$743 + end + local.get $7 + i32.eqz + if local.get $6 - i32.sub - i32.const 1 + i32.load + call $~lib/util/number/utoa32 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.tee $7 - i32.const 32 + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$743 + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $5 + i32.const 10 + i32.add + local.get $7 + i32.mul + i32.const 10 + i32.add + local.tee $3 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + loop $for-loop|0 + local.get $4 + local.get $7 i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add local.get $6 - local.get $9 - local.get $6 - i32.const 31 + local.get $4 + i32.const 2 + i32.shl i32.add - local.tee $5 - local.get $5 - local.get $9 - i32.gt_s - select - local.tee $5 - local.get $7 + i32.load + call $~lib/util/number/itoa_buffered local.get $2 - call $~lib/util/sort/insertionSort - end - local.get $3 - local.get $6 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $9 - i32.const 1 - i32.add - i64.extend_i32_u - local.tee $13 - i64.div_u - local.get $5 - local.get $6 - i32.add - i32.const 1 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $13 - i64.div_u - i64.xor - i32.wrap_i64 - i32.clz - local.set $7 - loop $for-loop|3 - local.get $1 - local.get $7 - i32.gt_u + i32.add + local.set $2 + local.get $5 if - local.get $1 - i32.const 2 + local.get $0 + local.get $2 + i32.const 1 i32.shl - local.tee $14 - local.get $10 i32.add - local.tee $15 - i32.load - local.tee $8 - i32.const -1 - i32.ne - if - local.get $11 - local.get $14 - i32.add - i32.load - i32.const 1 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $8 - local.get $3 - local.get $4 - local.get $12 - local.get $2 - call $~lib/util/sort/mergeRuns - local.get $15 - i32.const -1 - i32.store - local.get $8 - local.set $3 - end local.get $1 + local.get $5 i32.const 1 - i32.sub - local.set $1 - br $for-loop|3 + i32.shl + memory.copy + local.get $2 + local.get $5 + i32.add + local.set $2 end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 end - local.get $7 - i32.const 2 - i32.shl - local.tee $1 - local.get $10 - i32.add - local.get $3 - i32.store - local.get $1 - local.get $11 - i32.add - local.get $4 - i32.store - local.get $6 - local.set $3 - local.get $5 - local.set $4 - local.get $7 - local.set $1 - br $while-continue|2 end - end - loop $for-loop|4 - local.get $1 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load + call $~lib/util/number/itoa_buffered + local.get $2 + i32.add + local.tee $1 + local.get $3 + i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 local.get $1 - i32.const 2 - i32.shl - local.tee $3 - local.get $10 + call $~lib/string/String#substring + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - i32.load - local.tee $4 - i32.const -1 - i32.ne - if - local.get $3 - local.get $11 - i32.add - i32.load - i32.const 1 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $4 - local.get $3 - local.get $9 - local.get $12 - local.get $2 - call $~lib/util/sort/mergeRuns - end - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|4 + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$743 end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer end - local.get $12 - call $~lib/rt/tlsf/__free - local.get $10 - call $~lib/rt/tlsf/__free global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 return end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/array/Array#sort (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -12737,464 +12450,240 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $3 - local.get $2 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store + local.get $1 local.get $0 i32.load offset=12 - local.set $4 - local.get $2 - local.get $1 + i32.ge_u + if + i32.const 1344 + i32.const 1104 + 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 $3 - local.get $4 + local.get $0 + i32.load offset=4 local.get $1 - call $~lib/util/sort/SORT + i32.const 2 + i32.shl + i32.add + i32.load global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) + (func $~lib/array/Array#join (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i64) - (local $13 i32) - (local $14 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 block $folding-inner0 - local.get $1 - i32.const 48 - i32.le_s - if - local.get $1 - i32.const 1 - i32.le_s - br_if $folding-inner0 - block $break|0 - block $case1|0 - local.get $1 - i32.const 3 - i32.ne - if - local.get $1 - i32.const 2 - i32.eq - br_if $case1|0 - br $break|0 - end - local.get $0 - i32.load - local.set $1 - local.get $0 - i32.load offset=4 - local.set $2 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $2 - local.get $1 - local.get $1 - local.get $2 - i32.const 10848 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - local.tee $3 - select - i32.store - local.get $0 - i32.load offset=8 - local.set $4 - i32.const 2 - global.set $~argumentsLength - local.get $1 - local.get $2 - local.get $3 - select - local.tee $1 - local.get $4 - i32.const 10848 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - local.set $2 - local.get $0 - local.get $4 - local.get $1 - local.get $2 - select - i32.store offset=4 - local.get $0 - local.get $1 - local.get $4 - local.get $2 - select - i32.store offset=8 - end - local.get $0 - i32.load - local.set $1 - local.get $0 - i32.load offset=4 - local.set $2 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $2 - local.get $1 - local.get $1 - local.get $2 - i32.const 10848 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - local.tee $3 - select - i32.store - local.get $0 - local.get $1 - local.get $2 - local.get $3 - select - i32.store offset=4 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - i32.const 10848 - i32.store - local.get $0 - i32.const 0 - local.get $1 - i32.const 1 - i32.sub - i32.const 0 - call $~lib/util/sort/insertionSort - br $folding-inner0 - end - i32.const 33 - local.get $1 - i32.clz - i32.sub - local.tee $3 - i32.const 2 - i32.shl - local.tee $4 - i32.const 1 - i32.shl - local.set $5 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - local.get $4 - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $9 - i32.add - local.set $10 - loop $for-loop|1 - local.get $2 - local.get $3 - i32.lt_u - if - local.get $9 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.const -1 - i32.store - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|1 - 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 $1 - i32.const 2 - i32.shl - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 10848 + i32.const 16192 + 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.const 0 - local.get $1 - i32.const 1 - i32.sub - local.tee $8 - call $~lib/util/sort/extendRunRight - local.tee $4 - i32.const 1 - i32.add - local.tee $1 - i32.const 32 - i32.lt_s - if + i32.load offset=4 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 11856 + i32.store + block $__inlined_func$~lib/util/string/joinReferenceArray$4 (result i32) global.get $~lib/memory/__stack_pointer - i32.const 10848 - i32.store + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill local.get $0 + i32.const 1 + i32.sub + local.tee $2 i32.const 0 - i32.const 31 - local.get $8 - local.get $8 - i32.const 31 - i32.ge_s - select - local.tee $4 - local.get $1 - call $~lib/util/sort/insertionSort - end - i32.const 0 - local.set $1 - i32.const 0 - local.set $2 - loop $while-continue|2 - local.get $4 - local.get $8 i32.lt_s if global.get $~lib/memory/__stack_pointer - i32.const 10848 - i32.store - local.get $0 - local.get $4 - i32.const 1 + i32.const 20 i32.add - local.tee $5 - local.get $8 - call $~lib/util/sort/extendRunRight - local.tee $3 + global.set $~lib/memory/__stack_pointer + i32.const 11568 + br $__inlined_func$~lib/util/string/joinReferenceArray$4 + end + local.get $2 + i32.eqz + if + global.get $~lib/memory/__stack_pointer local.get $5 - i32.sub - i32.const 1 + i32.load + local.tee $0 + i32.store + local.get $0 + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 13632 + else + i32.const 11568 + end + global.get $~lib/memory/__stack_pointer + i32.const 20 i32.add - local.tee $6 - i32.const 32 + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinReferenceArray$4 + end + i32.const 11568 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 11568 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 11856 + i32.store offset=4 + i32.const 11852 + i32.load + i32.const 1 + i32.shr_u + local.set $4 + loop $for-loop|0 + local.get $1 + local.get $2 i32.lt_s if global.get $~lib/memory/__stack_pointer - i32.const 10848 - i32.store - local.get $0 - local.get $5 - local.get $8 local.get $5 - i32.const 31 + local.get $1 + i32.const 2 + i32.shl i32.add + i32.load local.tee $3 + i32.store local.get $3 - local.get $8 - i32.gt_s - select - local.tee $3 - local.get $6 - call $~lib/util/sort/insertionSort - end - local.get $2 - local.get $5 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $8 - i32.const 1 - i32.add - i64.extend_i32_u - local.tee $12 - i64.div_u - local.get $3 - local.get $5 - i32.add - i32.const 1 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $12 - i64.div_u - i64.xor - i32.wrap_i64 - i32.clz - local.set $6 - loop $for-loop|3 - local.get $1 - local.get $6 - i32.gt_u if - local.get $1 - i32.const 2 - i32.shl - local.tee $13 - local.get $9 - i32.add - local.tee $14 - i32.load - local.tee $7 - i32.const -1 - i32.ne - if - local.get $10 - local.get $13 - i32.add - i32.load - i32.const 1 - i32.add - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 10848 - i32.store - local.get $0 - local.get $7 - local.get $2 - local.get $4 - local.get $11 - call $~lib/util/sort/mergeRuns - local.get $14 - i32.const -1 - i32.store - local.get $7 - local.set $2 - end - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 13632 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 13632 + call $~lib/string/String.__concat + local.tee $0 + i32.store offset=8 end - end - local.get $6 - i32.const 2 - i32.shl - local.tee $1 - local.get $9 - i32.add - local.get $2 - i32.store - local.get $1 - local.get $10 - i32.add - local.get $4 - i32.store - local.get $5 - local.set $2 - local.get $3 - local.set $4 - local.get $6 - local.set $1 - br $while-continue|2 - end - end - loop $for-loop|4 - local.get $1 - if - local.get $1 - i32.const 2 - i32.shl - local.tee $2 - local.get $9 - i32.add - i32.load - local.tee $3 - i32.const -1 - i32.ne - if - local.get $2 - local.get $10 - i32.add - i32.load + local.get $4 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11856 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 11856 + call $~lib/string/String.__concat + local.tee $0 + i32.store offset=8 + end + local.get $1 i32.const 1 i32.add - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 10848 - i32.store - local.get $0 - local.get $3 - local.get $2 - local.get $8 - local.get $11 - call $~lib/util/sort/mergeRuns + local.set $1 + br $for-loop|0 end + end + global.get $~lib/memory/__stack_pointer + local.get $5 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + 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 local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 13632 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 13632 + call $~lib/string/String.__concat + local.tee $0 + i32.store offset=8 end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 end - local.get $11 - call $~lib/rt/tlsf/__free - local.get $9 - call $~lib/rt/tlsf/__free 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.add - global.set $~lib/memory/__stack_pointer + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $std/array/createReverseOrderedArray (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/array/Array#splice (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 @@ -13211,106 +12700,120 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 - call $~lib/array/Array#constructor - local.tee $2 i32.store - loop $for-loop|0 - local.get $0 + global.get $~lib/memory/__stack_pointer + i32.const 2 + local.get $0 + i32.load offset=12 + local.tee $2 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $2 + i32.add + local.tee $1 + i32.const 0 local.get $1 + i32.const 0 i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $1 - local.get $0 - i32.const 1 - i32.sub - local.get $1 - i32.sub - call $~lib/array/Array#__set - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 - end + select + else + local.get $1 + local.get $2 + local.get $1 + local.get $2 + i32.lt_s + select end + local.tee $4 + i32.sub + local.tee $1 + local.get $1 + i32.const 2 + i32.gt_s + select + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + local.tee $1 + i32.const 2 + i32.const 10 + i32.const 0 + call $~lib/rt/__newArray + local.tee $5 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $5 + i32.store + local.get $5 + i32.load offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.tee $3 + local.get $4 + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer + local.tee $6 + local.get $1 + i32.const 2 + i32.shl + memory.copy local.get $2 - ) - (func $std/array/createRandomOrderedArray (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 16192 - i32.lt_s + local.get $1 + local.get $4 + i32.add + local.tee $4 + i32.ne if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $6 + local.get $3 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.get $2 + local.get $4 + i32.sub + i32.const 2 + i32.shl + memory.copy end global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 local.get $0 - call $~lib/array/Array#constructor - local.tee $2 i32.store - loop $for-loop|0 - local.get $0 - local.get $1 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $1 - call $~lib/math/NativeMath.random - local.get $0 - f64.convert_i32_s - f64.mul - i32.trunc_sat_f64_s - call $~lib/array/Array#__set - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 - end - end + local.get $0 + local.get $2 + local.get $1 + i32.sub + i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $5 ) - (func $std/array/assertSorted (param $0 i32) (param $1 i32) + (func $~lib/array/Array#toString (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -13319,113 +12822,184 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + 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.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + 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 $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + local.set $0 + global.get $~lib/memory/__stack_pointer + 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 16192 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $2 - i64.const 0 - i64.store offset=8 - block $__inlined_func$std/array/isSorted$656 (result i32) - local.get $2 - local.get $0 - i32.store offset=8 - local.get $2 - local.get $1 - i32.store offset=12 + block $__inlined_func$~lib/util/string/joinIntegerArray$744 local.get $0 - local.get $1 - call $~lib/array/Array#sort - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 1 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 + local.tee $6 + i32.const 0 i32.lt_s - br_if $folding-inner0 + 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/util/string/joinIntegerArray$744 + end + local.get $6 + i32.eqz + if + local.get $5 + i32.load8_s + call $~lib/util/number/itoa32 + local.set $0 + 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 + end global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 + i32.const 11856 i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11852 + i32.load i32.const 1 - local.set $0 - local.get $2 - local.get $3 - i32.store - local.get $3 - call $~lib/array/Array#get:length - local.set $4 + i32.shr_u + local.tee $4 + i32.const 11 + i32.add + local.get $6 + i32.mul + i32.const 11 + i32.add + local.tee $2 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 loop $for-loop|0 - local.get $0 - local.get $4 + local.get $3 + local.get $6 i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 local.get $0 + local.get $1 i32.const 1 - i32.sub - call $~lib/array/Array#__get - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store + i32.shl + i32.add local.get $3 - local.get $0 - call $~lib/array/Array#__get - local.set $2 - i32.const 2 - global.set $~argumentsLength local.get $5 - local.get $2 + i32.add + i32.load8_s + call $~lib/util/number/itoa_buffered local.get $1 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s + i32.add + local.set $1 + local.get $4 if - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $0 + local.get $1 + i32.const 1 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - br $__inlined_func$std/array/isSorted$656 + i32.const 11856 + local.get $4 + i32.const 1 + i32.shl + memory.copy + local.get $1 + local.get $4 + i32.add + local.set $1 end - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 br $for-loop|0 end end + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $6 + i32.add + i32.load8_s + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.tee $1 + local.get $2 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $~lib/string/String#substring + local.set $0 + 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 + end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1 - end - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 1080 - i32.const 3 - call $~lib/builtins/abort - unreachable end global.get $~lib/memory/__stack_pointer - i32.const 16 + 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 48992 @@ -13435,10 +13009,11 @@ call $~lib/builtins/abort unreachable ) - (func $std/array/assertSortedDefault (param $0 i32) - (local $1 i32) + (func $~lib/array/Array#unshift (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -13453,27 +13028,53 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.add + local.tee $2 + i32.const 1 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer local.get $0 i32.store + local.get $0 + i32.load offset=4 + local.tee $3 + i32.const 4 + i32.add + local.get $3 + local.get $2 + i32.const 1 + i32.sub + i32.const 2 + i32.shl + memory.copy + local.get $3 local.get $1 - i32.const 11120 - i32.store offset=4 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 11120 - call $std/array/assertSorted + i32.store + local.get $0 + local.get $2 + i32.store offset=12 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/array/assertStableSortedForComplexObjects~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (param $0 i32) (param $1 i32) (result 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 @@ -13488,38 +13089,33 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=4 local.get $0 - i32.load - local.set $0 - local.get $2 + i32.load offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=12 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $0 local.get $1 - i32.load - i32.sub - local.set $0 - local.get $2 - i32.const 4 + call $~lib/util/sort/SORT + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) + (func $~lib/array/Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -13535,207 +13131,120 @@ end global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 24 - memory.fill + i32.store + 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 $0 + i32.store + local.get $0 + i32.load offset=12 + local.set $2 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 local.get $1 - local.get $3 local.get $2 - local.get $1 - i32.sub - i32.const 1 + call $~lib/array/Array#lastIndexOf + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.tee $5 - local.get $3 - i32.sub - i32.const 1 - i32.and + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#sort@varargs (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.sub - local.get $5 - i32.const 1 - i32.and - local.get $3 - select - i32.add - local.set $9 - loop $for-loop|0 - local.get $2 - local.get $9 - i32.ge_s - if - global.get $~lib/memory/__stack_pointer - local.tee $7 - local.get $0 - local.get $9 - i32.const 2 - i32.shl - i32.add - local.tee $5 - i32.load - local.tee $3 - i32.store - local.get $7 - local.get $5 - i32.load offset=4 - local.tee $5 - i32.store offset=4 - local.get $5 - local.set $6 - local.get $7 - local.get $5 - i32.store offset=8 - local.get $7 - local.get $3 - i32.store offset=12 - local.get $7 - local.get $3 - i32.store offset=16 - local.get $7 - local.get $5 - i32.store offset=20 - i32.const 2 - global.set $~argumentsLength - local.get $3 - local.get $5 - local.get $4 - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - if - global.get $~lib/memory/__stack_pointer - local.get $3 - local.tee $6 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - local.tee $3 - i32.store offset=12 - end - local.get $9 - i32.const 1 - i32.sub - local.set $10 - loop $while-continue|1 - local.get $1 - local.get $10 - i32.le_s - if - block $while-break|1 - global.get $~lib/memory/__stack_pointer - local.tee $7 - local.get $0 - local.get $10 - i32.const 2 - i32.shl - i32.add - local.tee $5 - i32.load - local.tee $8 - i32.store - local.get $7 - local.get $8 - i32.store offset=16 - local.get $7 - local.get $3 - i32.store offset=20 - i32.const 2 - global.set $~argumentsLength - local.get $8 - local.get $3 - local.get $4 - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - br_if $while-break|1 - local.get $5 - local.get $8 - i32.store offset=8 - local.get $10 - i32.const 1 - i32.sub - local.set $10 - br $while-continue|1 - end - end - end - local.get $0 - local.get $10 - i32.const 2 - i32.shl - i32.add - local.get $3 - i32.store offset=8 - loop $while-continue|2 - local.get $1 - local.get $10 - i32.le_s - if - block $while-break|2 - global.get $~lib/memory/__stack_pointer - local.tee $7 - local.get $0 - local.get $10 - i32.const 2 - i32.shl - i32.add - local.tee $5 - i32.load - local.tee $3 - i32.store - local.get $7 - local.get $3 - i32.store offset=16 - local.get $7 - local.get $6 - i32.store offset=20 - i32.const 2 - global.set $~argumentsLength - local.get $3 - local.get $6 - local.get $4 - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - br_if $while-break|2 - local.get $5 - local.get $3 - i32.store offset=4 - local.get $10 - i32.const 1 - i32.sub - local.set $10 - br $while-continue|2 - end + global.set $~lib/memory/__stack_pointer + 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 + i32.const 0 + i32.store offset=8 + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange end + unreachable end - local.get $0 - local.get $10 - i32.const 2 - i32.shl - i32.add - local.get $6 - i32.store offset=4 - local.get $9 - i32.const 2 - i32.add - local.set $9 - br $for-loop|0 + i32.const 10256 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 10256 + 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 + global.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 + br_if $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 offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/util/sort/SORT + 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 12 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) + (func $std/array/assertStableSortedForComplexObjects~anonymous|0 (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -13750,190 +13259,174 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store - local.get $4 i32.const 0 - i32.store offset=8 - local.get $1 - local.get $2 - i32.eq - if - local.get $4 - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - return - end + i32.store global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $5 i32.store - local.get $4 local.get $0 - local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 2 - i32.shl - i32.add i32.load - local.tee $6 - i32.store offset=4 - i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $6 - local.get $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - if - loop $while-continue|0 - local.get $2 - local.get $4 - i32.gt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.tee $6 - local.get $0 - local.get $4 - i32.const 2 - i32.shl - i32.add - local.tee $7 - i32.load offset=4 - local.tee $5 - i32.store - local.get $6 - local.get $7 - i32.load - local.tee $6 - i32.store offset=4 - i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $6 - local.get $3 - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $while-continue|0 - end - end - local.get $4 - local.set $2 - loop $while-continue|1 - local.get $1 - local.get $2 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.tee $3 - i32.load - local.tee $5 - i32.store offset=8 - local.get $3 - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $3 - i32.load - i32.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - local.get $3 - local.get $5 - i32.store - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|1 - end - end - else - loop $while-continue|2 - local.get $2 - local.get $4 - i32.gt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - local.get $4 - i32.const 2 - i32.shl - i32.add - local.tee $5 - i32.load offset=4 - local.tee $6 - i32.store - local.get $1 - local.get $5 - i32.load - local.tee $1 - i32.store offset=4 - i32.const 2 - global.set $~argumentsLength - local.get $6 - local.get $1 - local.get $3 - i32.load - call_indirect (type $0) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $while-continue|2 - end - end + i32.sub + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $start:std/array~anonymous|5 (param $0 i32) (param $1 i32) (param $2 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 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 12 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/array/Array#pop + drop + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $0 + i32.const 100 + i32.eq ) - (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (func $start:std/array~anonymous|49 (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.sub + ) + (func $start:std/array~anonymous|40 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 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 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 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array#pop + drop + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.add + ) + (func $start:std/array~anonymous|38 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 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 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 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + i32.const 1 + call $~lib/array/Array#push + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.add + ) + (func $start:std/array~anonymous|37 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + i32.const 1 + local.get $1 + i32.const 100 + i32.gt_s + local.get $0 + select + ) + (func $start:std/array~anonymous|36 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + i32.const 1 + local.get $1 + i32.const 2 + i32.gt_s + local.get $0 + select + ) + (func $start:std/array~anonymous|20 (param $0 i32) (param $1 i32) (param $2 i32) + global.get $std/array/i + local.get $0 + i32.add + global.set $std/array/i + ) + (func $start:std/array~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 1 + i32.eq + ) + (func $start:std/array~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.eqz + ) + (func $~start + global.get $~started + if + return + end + i32.const 1 + global.set $~started + call $start:std/array + ) + (func $~lib/util/string/joinStringArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -13950,664 +13443,741 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 i64.const 0 i64.store - local.get $6 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $3 - local.get $2 + local.get $1 i32.const 1 i32.sub - local.tee $2 - i32.add - local.set $7 - local.get $2 - i32.const 1 - i32.add - local.set $6 + local.tee $5 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 11568 + return + end + local.get $5 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.const 11568 + local.get $0 + select + return + end loop $for-loop|0 local.get $1 - local.get $6 - i32.lt_s + local.get $4 + i32.gt_s if - local.get $6 - i32.const 1 - i32.sub - local.tee $6 - i32.const 2 - i32.shl - local.tee $8 - local.get $4 - i32.add + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $8 - i32.add - i32.load - i32.store - br $for-loop|0 - end - end - loop $for-loop|1 - local.get $2 - local.get $3 - i32.lt_s - if local.get $4 - local.get $7 - local.get $2 - i32.sub - i32.const 2 - i32.shl - i32.add - local.get $0 - local.get $2 i32.const 2 i32.shl i32.add - i32.load offset=4 - i32.store - local.get $2 + i32.load + local.tee $6 + i32.store offset=4 + local.get $6 + if + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + local.get $3 + local.get $6 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.add + local.set $3 + end + local.get $4 i32.const 1 i32.add - local.set $2 - br $for-loop|1 + local.set $4 + br $for-loop|0 end end - loop $for-loop|2 - local.get $1 + i32.const 0 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $1 + local.get $5 + i32.mul + i32.add + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store offset=12 + i32.const 0 + local.set $3 + loop $for-loop|1 local.get $3 - i32.le_s + local.get $5 + i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $8 - local.get $4 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $9 - i32.store - local.get $8 - local.get $4 - local.get $6 + local.get $0 + local.get $3 i32.const 2 i32.shl i32.add i32.load local.tee $7 i32.store offset=4 - local.get $8 - local.get $9 - i32.store offset=8 - local.get $8 - local.get $7 - i32.store offset=12 - i32.const 2 - global.set $~argumentsLength - local.get $9 local.get $7 - local.get $5 - i32.load - call_indirect (type $0) - i32.const 0 - i32.lt_s if - local.get $0 - local.get $1 - i32.const 2 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $6 + local.get $4 + i32.const 1 i32.shl i32.add - local.get $9 - i32.store - local.get $2 - i32.const 1 + local.get $7 + local.get $7 + i32.const 20 i32.sub - local.set $2 - else - local.get $0 - local.get $1 - i32.const 2 + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $7 + i32.const 1 i32.shl - i32.add + memory.copy + local.get $4 local.get $7 - i32.store + i32.add + local.set $4 + end + local.get $1 + if local.get $6 + local.get $4 i32.const 1 + i32.shl i32.add - local.set $6 + local.get $2 + local.get $1 + i32.const 1 + i32.shl + memory.copy + local.get $1 + local.get $4 + i32.add + local.set $4 end - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 - br $for-loop|2 + local.set $3 + br $for-loop|1 end end global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $0 + i32.store offset=4 + local.get $0 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $6 + local.get $4 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 + i32.and + memory.copy + end + global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer + local.get $6 ) - (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (result 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) - (local $11 i32) - (local $12 i32) - (local $13 i64) - (local $14 i32) - (local $15 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + 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 - i32.const 0 - i32.const 24 - memory.fill - block $folding-inner0 - local.get $1 - i32.const 48 - i32.le_s - if + block $folding-inner1 + 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 local.get $1 i32.const 1 - i32.le_s - br_if $folding-inner0 - block $break|0 - block $case1|0 - local.get $1 - i32.const 3 - i32.ne + i32.sub + local.tee $7 + i32.const 0 + i32.lt_s + 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 $7 + i32.eqz + if + local.get $0 + i64.load + local.set $3 + global.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 + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/utoa64$485 + local.get $3 + i64.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 7712 + local.set $1 + br $__inlined_func$~lib/util/number/utoa64$485 + end + local.get $3 + i64.const 4294967295 + i64.le_u if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.wrap_i64 + local.tee $0 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 100 + i32.lt_u + if (result i32) + local.get $0 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $0 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $0 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.tee $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 + else + global.get $~lib/memory/__stack_pointer + local.get $3 + i64.const 1000000000000000 + i64.lt_u + if (result i32) + local.get $3 + i64.const 1000000000000 + i64.lt_u + if (result i32) + local.get $3 + i64.const 100000000000 + i64.ge_u + i32.const 10 + i32.add + local.get $3 + i64.const 10000000000 + i64.ge_u + i32.add + else + local.get $3 + i64.const 100000000000000 + i64.ge_u + i32.const 13 + i32.add + local.get $3 + i64.const 10000000000000 + i64.ge_u + i32.add + end + else + local.get $3 + i64.const 100000000000000000 + i64.lt_u + if (result i32) + local.get $3 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 + i32.add + else + local.get $3 + i64.const -8446744073709551616 + i64.ge_u + i32.const 18 + i32.add + local.get $3 + i64.const 1000000000000000000 + i64.ge_u + i32.add + end + end + local.tee $0 + i32.const 1 + i32.shl i32.const 2 - i32.eq - br_if $case1|0 - br $break|0 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $1 + local.get $3 + local.get $0 + call $~lib/util/number/utoa64_dec_lut end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.load - local.tee $3 - i32.store - local.get $1 - local.get $0 - i32.load offset=4 - local.tee $4 - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $1 - local.get $4 - i32.store offset=12 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $4 - local.get $3 - local.get $3 - local.get $4 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + end + br $folding-inner1 + end + global.get $~lib/memory/__stack_pointer + i32.const 11856 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11852 + i32.load + i32.const 1 + i32.shr_u + local.tee $1 + i32.const 20 + i32.add + local.get $7 + i32.mul + i32.const 20 + i32.add + local.tee $5 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store offset=4 + loop $for-loop|0 + local.get $4 + local.get $7 + i32.lt_s + if + local.get $6 local.get $2 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - local.tee $1 - select - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - local.get $4 - local.get $1 - select - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - i32.const 2 - global.set $~argumentsLength + i32.const 1 + i32.shl + i32.add local.get $0 - local.get $3 - local.get $1 - local.get $1 - local.get $3 + local.get $4 + i32.const 3 + i32.shl + i32.add + i64.load + call $~lib/util/number/itoa_buffered local.get $2 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - local.tee $4 - select - i32.store offset=4 - local.get $0 + i32.add + local.set $2 local.get $1 - local.get $3 - local.get $4 - select - i32.store offset=8 - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.load - local.tee $3 - i32.store offset=16 - local.get $1 - local.get $0 - i32.load offset=4 - local.tee $4 - i32.store offset=20 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $1 - local.get $4 - i32.store offset=12 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $4 - local.get $3 - local.get $3 - local.get $4 - local.get $2 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - local.tee $1 - select - i32.store - local.get $0 - local.get $3 - local.get $4 - local.get $1 - select - i32.store offset=4 - br $folding-inner0 + if + local.get $6 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 11856 + local.get $1 + i32.const 1 + i32.shl + memory.copy + local.get $1 + local.get $2 + i32.add + local.set $2 + 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 $6 local.get $2 - i32.store offset=8 - local.get $0 - i32.const 0 - local.get $1 i32.const 1 - i32.sub - i32.const 0 + i32.shl + i32.add + local.get $0 + local.get $7 + i32.const 3 + i32.shl + i32.add + i64.load + call $~lib/util/number/itoa_buffered local.get $2 - call $~lib/util/sort/insertionSort - br $folding-inner0 - end - i32.const 33 - local.get $1 - i32.clz - i32.sub - local.tee $3 - i32.const 2 - i32.shl - local.tee $5 - i32.const 1 - i32.shl - local.set $6 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - local.get $5 - global.get $~lib/rt/tlsf/ROOT - local.get $6 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $10 - i32.add - local.set $11 - loop $for-loop|1 - local.get $3 - local.get $4 - i32.gt_u + i32.add + local.tee $0 + local.get $5 + i32.lt_s if - local.get $10 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.const -1 + global.get $~lib/memory/__stack_pointer + local.get $6 i32.store - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|1 + local.get $6 + local.get $0 + call $~lib/string/String#substring + local.set $1 + br $folding-inner1 end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + 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 $1 - i32.const 2 - i32.shl - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $0 - i32.const 0 - local.get $1 + i32.const 48992 + i32.const 49040 i32.const 1 - i32.sub - local.tee $9 - local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $5 i32.const 1 - i32.add - local.tee $1 - i32.const 32 - i32.lt_s - if + 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 $1 + ) + (func $~lib/util/string/joinFloatArray (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 f64) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.const 31 - local.get $9 - local.get $9 - i32.const 31 - i32.ge_s - select - local.tee $5 + i32.const 16192 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store local.get $1 - local.get $2 - call $~lib/util/sort/insertionSort - end - i32.const 0 - local.set $4 - i32.const 0 - local.set $1 - loop $while-continue|2 - local.get $5 - local.get $9 + i32.const 1 + i32.sub + local.tee $7 + i32.const 0 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $0 - local.get $5 - i32.const 1 + i32.const 8 i32.add - local.tee $6 - local.get $9 - local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $3 - local.get $6 + global.set $~lib/memory/__stack_pointer + i32.const 11568 + return + end + local.get $7 + i32.eqz + if + local.get $0 + f64.load + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - i32.const 1 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 12320 + local.set $0 + block $~lib/util/number/dtoa_impl|inlined.0 + local.get $3 + f64.const 0 + f64.eq + br_if $~lib/util/number/dtoa_impl|inlined.0 + local.get $3 + local.get $3 + f64.sub + f64.const 0 + f64.ne + if + 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 12384 + i32.const 12432 + local.get $3 + f64.const 0 + f64.lt + select + local.set $0 + br $~lib/util/number/dtoa_impl|inlined.0 + end + global.get $~lib/memory/__stack_pointer + i32.const 12464 + local.get $3 + call $~lib/util/number/dtoa_core + i32.const 1 + i32.shl + local.tee $1 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + i32.const 12464 + local.get $1 + memory.copy + end + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.tee $7 - i32.const 32 + global.set $~lib/memory/__stack_pointer + br $folding-inner1 + end + global.get $~lib/memory/__stack_pointer + i32.const 12288 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 12284 + i32.load + i32.const 1 + i32.shr_u + local.tee $1 + i32.const 28 + i32.add + local.get $7 + i32.mul + i32.const 28 + i32.add + local.tee $5 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store offset=4 + loop $for-loop|0 + local.get $4 + local.get $7 i32.lt_s if - global.get $~lib/memory/__stack_pointer + local.get $6 local.get $2 - i32.store offset=8 + i32.const 1 + i32.shl + i32.add local.get $0 - local.get $6 - local.get $9 - local.get $6 - i32.const 31 + local.get $4 + i32.const 3 + i32.shl i32.add - local.tee $3 - local.get $3 - local.get $9 - i32.gt_s - select - local.tee $3 - local.get $7 + f64.load + call $~lib/util/number/dtoa_buffered local.get $2 - call $~lib/util/sort/insertionSort - end - local.get $1 - local.get $6 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $9 - i32.const 1 - i32.add - i64.extend_i32_u - local.tee $13 - i64.div_u - local.get $3 - local.get $6 - i32.add - i32.const 1 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $13 - i64.div_u - i64.xor - i32.wrap_i64 - i32.clz - local.set $7 - loop $for-loop|3 - local.get $4 - local.get $7 - i32.gt_u + i32.add + local.set $2 + local.get $1 if - local.get $4 - i32.const 2 + local.get $6 + local.get $2 + i32.const 1 i32.shl - local.tee $14 - local.get $10 i32.add - local.tee $15 - i32.load - local.tee $8 - i32.const -1 - i32.ne - if - local.get $11 - local.get $14 - i32.add - i32.load - i32.const 1 - i32.add - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $0 - local.get $8 - local.get $1 - local.get $5 - local.get $12 - local.get $2 - call $~lib/util/sort/mergeRuns - local.get $15 - i32.const -1 - i32.store - local.get $8 - local.set $1 - end - local.get $4 + i32.const 12288 + local.get $1 i32.const 1 - i32.sub - local.set $4 - br $for-loop|3 + i32.shl + memory.copy + local.get $1 + local.get $2 + i32.add + local.set $2 end - end - local.get $7 - i32.const 2 - i32.shl - local.tee $4 - local.get $10 - i32.add - local.get $1 - i32.store - local.get $4 - local.get $11 - i32.add - local.get $5 - i32.store - local.get $6 - local.set $1 - local.get $3 - local.set $5 - local.get $7 - local.set $4 - br $while-continue|2 - end - end - loop $for-loop|4 - local.get $4 - if - local.get $4 - i32.const 2 - i32.shl - local.tee $1 - local.get $10 - i32.add - i32.load - local.tee $3 - i32.const -1 - i32.ne - if - local.get $1 - local.get $11 - i32.add - i32.load + local.get $4 i32.const 1 i32.add - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $0 - local.get $3 - local.get $1 - local.get $9 - local.get $12 - local.get $2 - call $~lib/util/sort/mergeRuns + local.set $4 + br $for-loop|0 end - local.get $4 - i32.const 1 - i32.sub - local.set $4 - br $for-loop|4 end - end - local.get $12 - call $~lib/rt/tlsf/__free - local.get $10 - call $~lib/rt/tlsf/__free - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#sort (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 - local.tee $2 - i64.const 0 - i64.store - local.get $2 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $3 - local.get $2 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=12 - local.set $4 - local.get $2 - local.get $1 - i32.store - local.get $3 - local.get $4 - local.get $1 - call $~lib/util/sort/SORT + local.get $6 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $7 + i32.const 3 + i32.shl + i32.add + f64.load + call $~lib/util/number/dtoa_buffered + local.get $2 + i32.add + local.tee $0 + local.get $5 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $0 + call $~lib/string/String#substring + local.set $0 + br $folding-inner1 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return + end + 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 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $start:std/array~anonymous|52 (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i64) + (local $13 i32) + (local $14 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -14624,181 +14194,419 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $0 i32.const 0 - call $~lib/array/Array#__get - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $1 i32.store - local.get $0 - local.get $1 - i32.const 0 - call $~lib/array/Array#__get - i32.sub - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $std/array/assertSorted<~lib/array/Array> (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 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 16192 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i64.const 0 - i64.store offset=8 - block $__inlined_func$std/array/isSorted<~lib/array/Array>$658 (result i32) - local.get $2 - local.get $0 - i32.store offset=8 - local.get $2 + local.get $1 + i32.const 48 + i32.le_s + if local.get $1 - i32.store offset=12 + i32.const 1 + i32.le_s + br_if $folding-inner0 + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load + local.set $1 + local.get $0 + i32.load offset=4 + local.set $2 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $2 + local.get $1 + local.get $1 + local.get $2 + i32.const 10848 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.tee $3 + select + i32.store + local.get $0 + i32.load offset=8 + local.set $4 + i32.const 2 + global.set $~argumentsLength + local.get $1 + local.get $2 + local.get $3 + select + local.tee $1 + local.get $4 + i32.const 10848 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.set $2 + local.get $0 + local.get $4 + local.get $1 + local.get $2 + select + i32.store offset=4 + local.get $0 + local.get $1 + local.get $4 + local.get $2 + select + i32.store offset=8 + end + local.get $0 + i32.load + local.set $1 + local.get $0 + i32.load offset=4 + local.set $2 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $2 + local.get $1 + local.get $1 + local.get $2 + i32.const 10848 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.tee $3 + select + i32.store + local.get $0 + local.get $1 + local.get $2 + local.get $3 + select + i32.store offset=4 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + i32.const 10848 + i32.store local.get $0 + i32.const 0 local.get $1 - call $~lib/array/Array#sort - local.set $3 + i32.const 1 + i32.sub + i32.const 0 + call $~lib/util/sort/insertionSort + br $folding-inner0 + end + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $3 + i32.const 2 + i32.shl + local.tee $4 + i32.const 1 + i32.shl + local.set $5 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + local.get $4 + global.get $~lib/rt/tlsf/ROOT + local.get $5 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $9 + i32.add + local.set $10 + loop $for-loop|1 + local.get $2 + local.get $3 + i32.lt_u + if + local.get $9 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 + 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 $1 + i32.const 2 + i32.shl + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 10848 + i32.store + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + local.tee $8 + call $~lib/util/sort/extendRunRight + local.tee $4 + i32.const 1 + i32.add + local.tee $1 + i32.const 32 + i32.lt_s + if global.get $~lib/memory/__stack_pointer - local.get $3 + i32.const 10848 i32.store - global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + i32.const 31 + local.get $8 + local.get $8 + i32.const 31 + i32.ge_s + select + local.tee $4 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 16192 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.set $1 + i32.const 0 + local.set $2 + loop $while-continue|2 + local.get $4 + local.get $8 i32.lt_s - br_if $folding-inner0 - local.get $1 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i32.const 0 - i32.store offset=8 - i32.const 1 - local.set $1 - local.get $2 - local.get $3 - i32.store - local.get $3 - call $~lib/array/Array#get:length - local.set $2 - loop $for-loop|0 - local.get $1 - local.get $2 + if + global.get $~lib/memory/__stack_pointer + i32.const 10848 + i32.store + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $5 + local.get $8 + call $~lib/util/sort/extendRunRight + local.tee $3 + local.get $5 + i32.sub + i32.const 1 + i32.add + local.tee $6 + i32.const 32 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - local.get $1 - i32.const 1 - i32.sub - call $~lib/array/Array#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 + i32.const 10848 i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - local.get $1 - call $~lib/array/Array#__get - local.set $5 - global.get $~lib/memory/__stack_pointer + local.get $0 local.get $5 - i32.store offset=4 - i32.const 2 - global.set $~argumentsLength - local.get $4 + local.get $8 local.get $5 - local.get $0 - i32.load - call_indirect (type $0) - i32.const 0 + i32.const 31 + i32.add + local.tee $3 + local.get $3 + local.get $8 i32.gt_s + select + local.tee $3 + local.get $6 + call $~lib/util/sort/insertionSort + end + local.get $2 + local.get $5 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $8 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $12 + i64.div_u + local.get $3 + local.get $5 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $12 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $6 + loop $for-loop|3 + local.get $1 + local.get $6 + i32.gt_u if - global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + i32.const 2 + i32.shl + local.tee $13 + local.get $9 i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - br $__inlined_func$std/array/isSorted<~lib/array/Array>$658 + local.tee $14 + i32.load + local.tee $7 + i32.const -1 + i32.ne + if + local.get $10 + local.get $13 + i32.add + i32.load + i32.const 1 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 10848 + i32.store + local.get $0 + local.get $7 + local.get $2 + local.get $4 + local.get $11 + call $~lib/util/sort/mergeRuns + local.get $14 + i32.const -1 + i32.store + local.get $7 + local.set $2 + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|3 end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 end + local.get $6 + i32.const 2 + i32.shl + local.tee $1 + local.get $9 + i32.add + local.get $2 + i32.store + local.get $1 + local.get $10 + i32.add + local.get $4 + i32.store + local.get $5 + local.set $2 + local.get $3 + local.set $4 + local.get $6 + local.set $1 + br $while-continue|2 end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 end - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 1080 - i32.const 3 - call $~lib/builtins/abort - unreachable + loop $for-loop|4 + local.get $1 + if + local.get $1 + i32.const 2 + i32.shl + local.tee $2 + local.get $9 + i32.add + i32.load + local.tee $3 + i32.const -1 + i32.ne + if + local.get $2 + local.get $10 + i32.add + i32.load + i32.const 1 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 10848 + i32.store + local.get $0 + local.get $3 + local.get $2 + local.get $8 + local.get $11 + call $~lib/util/sort/mergeRuns + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|4 + end end + local.get $11 + call $~lib/rt/tlsf/__free + local.get $9 + call $~lib/rt/tlsf/__free global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer return end - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/sort/COMPARATOR<~lib/string/String|null>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/util/sort/SORT (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 i64) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -14813,446 +14621,457 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store + i32.const 0 + i32.const 24 + memory.fill block $folding-inner0 local.get $1 - i32.eqz - local.get $0 - i32.eqz - local.get $0 - local.get $1 - i32.eq - i32.or - i32.or - br_if $folding-inner0 - local.get $2 - 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 $4 - local.get $2 - local.get $1 - i32.store + i32.const 48 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + br_if $folding-inner0 + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $4 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $4 + local.get $4 + local.get $3 + local.get $2 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.tee $1 + select + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + local.get $3 + local.get $1 + select + local.tee $4 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $4 + local.get $4 + local.get $3 + local.get $2 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.tee $1 + select + i32.store offset=4 + local.get $0 + local.get $4 + local.get $3 + local.get $1 + select + i32.store offset=8 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.tee $3 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $4 + local.get $4 + local.get $3 + local.get $2 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.tee $1 + select + i32.store + local.get $0 + local.get $4 + local.get $3 + local.get $1 + select + i32.store offset=4 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + br $folding-inner0 + end + i32.const 33 local.get $1 - i32.const 20 + i32.clz i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u local.tee $5 - local.get $4 - i32.or - i32.eqz - br_if $folding-inner0 - local.get $4 + i32.const 2 + i32.shl + local.tee $4 + i32.const 1 + i32.shl + local.set $3 + global.get $~lib/rt/tlsf/ROOT i32.eqz if - local.get $2 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const -1 - return + call $~lib/rt/tlsf/initialize end - local.get $5 + local.get $4 + global.get $~lib/rt/tlsf/ROOT + local.get $3 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $13 + i32.add + local.set $12 + loop $for-loop|1 + local.get $5 + local.get $7 + i32.gt_u + if + local.get $13 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|1 + end + end + global.get $~lib/rt/tlsf/ROOT i32.eqz if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 - return + call $~lib/rt/tlsf/initialize end + global.get $~lib/rt/tlsf/ROOT + local.get $1 + i32.const 2 + i32.shl + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $11 global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store local.get $2 + i32.store offset=8 + local.get $0 + i32.const 0 local.get $1 - i32.store offset=4 - block $__inlined_func$~lib/util/string/compareImpl (result i32) - local.get $4 - local.get $5 - local.get $4 + i32.const 1 + i32.sub + local.tee $14 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $5 + i32.const 1 + i32.add + local.tee $1 + i32.const 32 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $0 + i32.const 0 + i32.const 31 + local.get $14 + local.get $14 + i32.const 31 + i32.ge_s + select + local.tee $5 + local.get $1 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.set $7 + i32.const 0 + local.set $1 + loop $while-continue|2 local.get $5 + local.get $14 i32.lt_s - select - local.tee $2 - i32.const 4 - i32.ge_u - if (result i32) - local.get $0 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - else - i32.const 1 - end - i32.eqz if - loop $do-loop|0 - local.get $0 - i64.load - local.get $1 - i64.load - i64.eq - if - local.get $0 - i32.const 8 - i32.add - local.set $0 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $2 - i32.const 4 - i32.sub - local.tee $2 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end - end - end - loop $while-continue|1 + global.get $~lib/memory/__stack_pointer local.get $2 - local.tee $3 + i32.store offset=8 + local.get $0 + local.get $5 i32.const 1 + i32.add + local.tee $4 + local.get $14 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $6 + local.get $4 i32.sub - local.set $2 - local.get $3 + i32.const 1 + i32.add + local.tee $8 + i32.const 32 + i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 local.get $0 - i32.load16_u + local.get $4 + local.get $14 + local.get $4 + i32.const 31 + i32.add local.tee $3 - local.get $1 - i32.load16_u + local.get $3 + local.get $14 + i32.gt_s + select local.tee $6 - i32.ne - if - local.get $3 - local.get $6 - i32.sub - br $__inlined_func$~lib/util/string/compareImpl - end - local.get $0 - i32.const 2 - i32.add - local.set $0 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 + local.get $8 + local.get $2 + call $~lib/util/sort/insertionSort end - end - i32.const 0 - end - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $4 - local.get $5 - i32.sub - local.get $0 - select - return - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $~lib/string/String.__eq (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 - local.tee $2 - i64.const 0 - i64.store - local.get $0 - local.get $1 - i32.eq - if - local.get $2 - 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.tee $3 - 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 $2 - local.get $3 - local.get $1 - i32.store - local.get $2 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.ne - br_if $folding-inner0 - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $1 - i32.store offset=4 - block $__inlined_func$~lib/util/string/compareImpl$1 (result i32) - local.get $2 - i32.const 4 - i32.ge_u - if (result i32) - local.get $0 - i32.const 7 - i32.and local.get $1 - i32.const 7 - i32.and - i32.or - else + local.get $4 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $14 i32.const 1 - end - i32.eqz - if - loop $do-loop|0 - local.get $0 - i64.load - local.get $1 - i64.load - i64.eq + i32.add + i64.extend_i32_u + local.tee $10 + i64.div_u + local.get $4 + local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $10 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $3 + loop $for-loop|3 + local.get $3 + local.get $7 + i32.lt_u if - local.get $0 - i32.const 8 - i32.add - local.set $0 - local.get $1 - i32.const 8 + local.get $7 + i32.const 2 + i32.shl + local.tee $9 + local.get $13 i32.add - local.set $1 - local.get $2 - i32.const 4 + local.tee $8 + i32.load + local.tee $15 + i32.const -1 + i32.ne + if + local.get $9 + local.get $12 + i32.add + i32.load + i32.const 1 + i32.add + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $0 + local.get $15 + local.get $1 + local.get $5 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $8 + i32.const -1 + i32.store + local.get $15 + local.set $1 + end + local.get $7 + i32.const 1 i32.sub - local.tee $2 - i32.const 4 - i32.ge_u - br_if $do-loop|0 + local.set $7 + br $for-loop|3 end end + local.get $3 + i32.const 2 + i32.shl + local.tee $7 + local.get $13 + i32.add + local.get $1 + i32.store + local.get $7 + local.get $12 + i32.add + local.get $5 + i32.store + local.get $4 + local.set $1 + local.get $6 + local.set $5 + local.get $3 + local.set $7 + br $while-continue|2 end - loop $while-continue|1 - local.get $2 + end + loop $for-loop|4 + local.get $7 + if + local.get $7 + i32.const 2 + i32.shl + local.tee $1 + local.get $13 + i32.add + i32.load local.tee $3 - i32.const 1 - i32.sub - local.set $2 - local.get $3 + i32.const -1 + i32.ne if - local.get $0 - i32.load16_u - local.tee $3 local.get $1 - i32.load16_u - local.tee $4 - i32.ne - if - local.get $3 - local.get $4 - i32.sub - br $__inlined_func$~lib/util/string/compareImpl$1 - end - local.get $0 - i32.const 2 + local.get $12 i32.add - local.set $0 - local.get $1 - i32.const 2 + i32.load + i32.const 1 i32.add local.set $1 - br $while-continue|1 - end - end - i32.const 0 - end - i32.eqz - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - 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) - (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 16192 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - block $__inlined_func$~lib/string/String#concat$734 (result i32) - local.get $2 - local.get $0 - i32.store - local.get $2 - local.get $1 - i32.store offset=4 - local.get $2 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $5 - i64.const 0 - i64.store - local.get $5 - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $2 - local.get $5 - local.get $1 - i32.store - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $3 - local.get $2 - i32.add - local.tee $4 - i32.eqz - if - local.get $5 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 11568 - br $__inlined_func$~lib/string/String#concat$734 - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store offset=4 - local.get $4 - local.get $0 - local.get $2 - memory.copy - local.get $2 - local.get $4 - i32.add - local.get $1 - local.get $3 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $0 + local.get $3 + local.get $1 + local.get $14 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $7 + i32.const 1 + i32.sub + local.set $7 + br $for-loop|4 + end end - local.set $0 + local.get $11 + call $~lib/rt/tlsf/__free + local.get $13 + call $~lib/rt/tlsf/__free global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 24 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 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/string/String#substring (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/util/sort/SORT (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) + (local $12 i32) + (local $13 i64) + (local $14 i32) + (local $15 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -15267,727 +15086,858 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - 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 $4 - local.get $2 - i32.const 0 - local.get $2 i32.const 0 - i32.ge_s - select - i32.const 1 - i32.shl - local.tee $5 - local.get $4 - i32.sub - local.tee $2 - i32.eqz - if - local.get $3 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 11568 - return - end - local.get $4 - i32.eqz - local.get $5 - local.get $1 - i32.const 1 - i32.shl - i32.eq - i32.and - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=4 - local.get $1 - local.get $0 - local.get $4 - i32.add - local.get $2 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer + i32.store + block $folding-inner0 + local.get $1 + i32.const 48 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + br_if $folding-inner0 + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load + local.set $1 + local.get $0 + i32.load offset=4 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $1 + local.get $1 + local.get $3 + local.get $2 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.tee $4 + select + i32.store + local.get $0 + i32.load offset=8 + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $5 + local.get $1 + local.get $3 + local.get $4 + select + local.tee $1 + local.get $1 + local.get $5 + local.get $2 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.tee $3 + select + i32.store offset=4 + local.get $0 + local.get $1 + local.get $5 + local.get $3 + select + i32.store offset=8 + end + local.get $0 + i32.load + local.set $1 + local.get $0 + i32.load offset=4 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $1 + local.get $1 + local.get $3 + local.get $2 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.tee $2 + select + i32.store + local.get $0 + local.get $1 + local.get $3 + local.get $2 + select + i32.store offset=4 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + br $folding-inner0 + end + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $4 + i32.const 2 + i32.shl local.tee $5 - i32.const 0 - i32.store - local.get $5 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $4 + i32.const 1 + i32.shl + local.set $6 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end local.get $5 - local.get $0 + global.get $~lib/rt/tlsf/ROOT + local.get $6 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $10 + i32.add + local.set $11 + loop $for-loop|1 + local.get $3 + local.get $4 + i32.lt_u + if + local.get $10 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 + 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 $1 + i32.const 2 + i32.shl + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $2 i32.store local.get $0 - i32.load offset=12 - local.set $0 - local.get $5 + i32.const 0 local.get $1 - i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray$6 (result i32) - local.get $5 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner1 + i32.const 1 + i32.sub + local.tee $9 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $4 + i32.const 1 + i32.add + local.tee $1 + i32.const 32 + i32.lt_s + if global.get $~lib/memory/__stack_pointer - local.tee $5 - i64.const 0 - i64.store + local.get $2 + i32.store local.get $0 - i32.const 1 - i32.sub - local.tee $6 i32.const 0 + i32.const 31 + local.get $9 + local.get $9 + i32.const 31 + i32.ge_s + select + local.tee $4 + local.get $1 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.set $1 + i32.const 0 + local.set $3 + loop $while-continue|2 + local.get $4 + local.get $9 i32.lt_s if - local.get $5 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 11568 - br $__inlined_func$~lib/util/string/joinIntegerArray$6 - end - block $folding-inner0 - local.get $6 - i32.eqz - if - local.get $4 - i32.load - call $~lib/util/number/itoa32 - local.set $1 - br $folding-inner0 - end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.get $2 i32.store local.get $0 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 + local.get $4 i32.const 1 - i32.shr_u - local.tee $5 - i32.const 11 i32.add + local.tee $6 + local.get $9 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $5 local.get $6 - i32.mul - i32.const 11 - i32.add - local.tee $0 + i32.sub i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new + i32.add local.tee $7 - i32.store offset=4 - loop $for-loop|0 - local.get $3 + i32.const 32 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 local.get $6 - i32.lt_s + local.get $9 + local.get $6 + i32.const 31 + i32.add + local.tee $5 + local.get $5 + local.get $9 + i32.gt_s + select + local.tee $5 + local.get $7 + local.get $2 + call $~lib/util/sort/insertionSort + end + local.get $3 + local.get $6 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $9 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $13 + i64.div_u + local.get $5 + local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $13 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $7 + loop $for-loop|3 + local.get $1 + local.get $7 + i32.gt_u if - local.get $7 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $4 - local.get $3 + local.get $1 i32.const 2 i32.shl + local.tee $14 + local.get $10 i32.add + local.tee $15 i32.load - call $~lib/util/number/itoa_buffered - local.get $2 - i32.add - local.set $2 - local.get $5 + local.tee $8 + i32.const -1 + i32.ne if - local.get $7 - local.get $2 - i32.const 1 - i32.shl + local.get $11 + local.get $14 i32.add - local.get $1 - local.get $5 + i32.load i32.const 1 - i32.shl - memory.copy - local.get $2 - local.get $5 i32.add - local.set $2 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $8 + local.get $3 + local.get $4 + local.get $12 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $15 + i32.const -1 + i32.store + local.get $8 + local.set $3 end - local.get $3 + local.get $1 i32.const 1 - i32.add - local.set $3 - br $for-loop|0 + i32.sub + local.set $1 + br $for-loop|3 end end local.get $7 - local.get $2 - i32.const 1 + i32.const 2 i32.shl + local.tee $1 + local.get $10 + i32.add + local.get $3 + i32.store + local.get $1 + local.get $11 i32.add local.get $4 + i32.store local.get $6 + local.set $3 + local.get $5 + local.set $4 + local.get $7 + local.set $1 + br $while-continue|2 + end + end + loop $for-loop|4 + local.get $1 + if + local.get $1 i32.const 2 i32.shl + local.tee $3 + local.get $10 i32.add i32.load - call $~lib/util/number/itoa_buffered - local.get $2 - i32.add - local.tee $1 - local.get $0 - i32.lt_s + local.tee $4 + i32.const -1 + i32.ne if + local.get $3 + local.get $11 + i32.add + i32.load + i32.const 1 + i32.add + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $2 i32.store - local.get $7 - local.get $1 - call $~lib/string/String#substring - local.set $1 - br $folding-inner0 + local.get $0 + local.get $4 + local.get $3 + local.get $9 + local.get $12 + local.get $2 + call $~lib/util/sort/mergeRuns end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - br $__inlined_func$~lib/util/string/joinIntegerArray$6 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|4 end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 end - local.set $0 + local.get $12 + call $~lib/rt/tlsf/__free + local.get $10 + call $~lib/rt/tlsf/__free global.get $~lib/memory/__stack_pointer i32.const 4 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 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/SORT (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 f64) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i64) + (local $14 i32) + (local $15 i32) + (local $16 f64) + (local $17 f64) 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 16192 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $5 - i32.const 0 - i32.store - local.get $5 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $4 - local.get $5 - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - local.set $0 - local.get $5 + 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 + block $folding-inner0 local.get $1 - i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray$7 (result i32) - local.get $5 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner1 + i32.const 48 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + br_if $folding-inner0 + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + f64.load + local.set $16 + local.get $0 + f64.load offset=8 + local.set $17 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $17 + local.get $16 + local.get $16 + local.get $17 + i32.const 10544 + i32.load + call_indirect (type $5) + i32.const 0 + i32.gt_s + local.tee $1 + select + f64.store + local.get $0 + f64.load offset=16 + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $16 + local.get $17 + local.get $1 + select + local.tee $16 + local.get $8 + i32.const 10544 + i32.load + call_indirect (type $5) + i32.const 0 + i32.gt_s + local.set $1 + local.get $0 + local.get $8 + local.get $16 + local.get $1 + select + f64.store offset=8 + local.get $0 + local.get $16 + local.get $8 + local.get $1 + select + f64.store offset=16 + end + local.get $0 + f64.load + local.set $8 + local.get $0 + f64.load offset=8 + local.set $16 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $16 + local.get $8 + local.get $8 + local.get $16 + i32.const 10544 + i32.load + call_indirect (type $5) + i32.const 0 + i32.gt_s + local.tee $1 + select + f64.store + local.get $0 + local.get $8 + local.get $16 + local.get $1 + select + f64.store offset=8 + br $folding-inner0 + end global.get $~lib/memory/__stack_pointer - local.tee $5 - i64.const 0 - i64.store + i32.const 10544 + i32.store local.get $0 + i32.const 0 + local.get $1 i32.const 1 i32.sub - local.tee $6 i32.const 0 - i32.lt_s + call $~lib/util/sort/insertionSort + br $folding-inner0 + end + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $3 + i32.const 2 + i32.shl + local.tee $4 + i32.const 1 + i32.shl + local.set $5 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + local.get $4 + global.get $~lib/rt/tlsf/ROOT + local.get $5 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $10 + i32.add + local.set $11 + loop $for-loop|1 + local.get $2 + local.get $3 + i32.lt_u if - local.get $5 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 11568 - br $__inlined_func$~lib/util/string/joinIntegerArray$7 - end - block $folding-inner0 - local.get $6 - i32.eqz - if - local.get $4 - i32.load - call $~lib/util/number/utoa32 - local.set $1 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $5 - i32.const 10 - i32.add - local.get $6 - i32.mul - i32.const 10 - i32.add - local.tee $0 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=4 - loop $for-loop|0 - local.get $3 - local.get $6 - i32.lt_s - if - local.get $7 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $4 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.load - call $~lib/util/number/itoa_buffered - local.get $2 - i32.add - local.set $2 - local.get $5 - if - local.get $7 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $1 - local.get $5 - i32.const 1 - i32.shl - memory.copy - local.get $2 - local.get $5 - i32.add - local.set $2 - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - local.get $7 + local.get $10 local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $4 - local.get $6 i32.const 2 i32.shl i32.add - i32.load - call $~lib/util/number/itoa_buffered + i32.const -1 + i32.store local.get $2 + i32.const 1 i32.add - local.tee $1 - local.get $0 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $1 - call $~lib/string/String#substring - local.set $1 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - br $__inlined_func$~lib/util/string/joinIntegerArray$7 + local.set $2 + br $for-loop|1 end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 end - local.set $0 - global.get $~lib/memory/__stack_pointer + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $1 + i32.const 3 + i32.shl + call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add - global.set $~lib/memory/__stack_pointer + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 10544 + i32.store local.get $0 - return - end - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/string/joinFloatArray (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 f64) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - 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 16192 - i32.lt_s - br_if $folding-inner0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + local.tee $9 + call $~lib/util/sort/extendRunRight + local.tee $3 + i32.const 1 + i32.add + local.tee $1 + i32.const 32 + i32.lt_s + if global.get $~lib/memory/__stack_pointer - local.tee $5 - i64.const 0 - i64.store - local.get $1 - i32.const 1 - i32.sub - local.tee $6 + i32.const 10544 + i32.store + local.get $0 i32.const 0 + i32.const 31 + local.get $9 + local.get $9 + i32.const 31 + i32.ge_s + select + local.tee $3 + local.get $1 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.set $1 + i32.const 0 + local.set $2 + loop $while-continue|2 + local.get $3 + local.get $9 i32.lt_s if - local.get $5 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 11568 - return - end - local.get $6 - i32.eqz - if - local.get $0 - f64.load - local.set $3 - global.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 - br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 + i32.const 10544 i32.store + local.get $0 local.get $3 - f64.const 0 - f64.eq + i32.const 1 + i32.add + local.tee $5 + local.get $9 + call $~lib/util/sort/extendRunRight + local.tee $4 + local.get $5 + i32.sub + i32.const 1 + i32.add + local.tee $6 + i32.const 32 + i32.lt_s if + global.get $~lib/memory/__stack_pointer + i32.const 10544 + i32.store local.get $0 - i32.const 4 + local.get $5 + local.get $9 + local.get $5 + i32.const 31 i32.add - global.set $~lib/memory/__stack_pointer - i32.const 12320 - local.set $0 - br $folding-inner1 + local.tee $4 + local.get $4 + local.get $9 + i32.gt_s + select + local.tee $4 + local.get $6 + call $~lib/util/sort/insertionSort end - local.get $3 - local.get $3 - f64.sub - f64.const 0 - f64.ne - if - local.get $3 - local.get $3 - f64.ne + local.get $2 + local.get $5 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $9 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $13 + i64.div_u + local.get $4 + local.get $5 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $13 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $6 + loop $for-loop|3 + local.get $1 + local.get $6 + i32.gt_u if - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $1 + i32.const 2 + i32.shl + local.tee $14 + local.get $10 i32.add - global.set $~lib/memory/__stack_pointer - i32.const 12352 - local.set $0 - br $folding-inner1 + local.tee $15 + i32.load + local.tee $7 + i32.const -1 + i32.ne + if + local.get $11 + local.get $14 + i32.add + i32.load + i32.const 1 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 10544 + i32.store + local.get $0 + local.get $7 + local.get $2 + local.get $3 + local.get $12 + call $~lib/util/sort/mergeRuns + local.get $15 + i32.const -1 + i32.store + local.get $7 + local.set $2 + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|3 end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 12384 - i32.const 12432 - local.get $3 - f64.const 0 - f64.lt - select - local.set $0 - br $folding-inner1 end - i32.const 12464 - local.get $3 - call $~lib/util/number/dtoa_core - i32.const 1 - i32.shl - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $6 i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 + i32.shl + local.tee $1 + local.get $10 + i32.add + local.get $2 i32.store - local.get $0 - i32.const 12464 local.get $1 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $11 i32.add - global.set $~lib/memory/__stack_pointer - br $folding-inner1 - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 12288 - i32.store - local.get $1 - i32.const 12284 - i32.load - i32.const 1 - i32.shr_u - local.tee $1 - i32.const 28 - i32.add - local.get $6 - i32.mul - i32.const 28 - i32.add - local.tee $7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=4 - loop $for-loop|0 + local.get $3 + i32.store + local.get $5 + local.set $2 local.get $4 + local.set $3 local.get $6 - i32.lt_s + local.set $1 + br $while-continue|2 + end + end + loop $for-loop|4 + local.get $1 + if + local.get $1 + i32.const 2 + i32.shl + local.tee $2 + local.get $10 + i32.add + i32.load + local.tee $3 + i32.const -1 + i32.ne if - local.get $5 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $4 - i32.const 3 - i32.shl - i32.add - f64.load - call $~lib/util/number/dtoa_buffered local.get $2 + local.get $11 i32.add - local.set $2 - local.get $1 - if - local.get $5 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 12288 - local.get $1 - i32.const 1 - i32.shl - memory.copy - local.get $1 - local.get $2 - i32.add - local.set $2 - end - local.get $4 + i32.load i32.const 1 i32.add - local.set $4 - br $for-loop|0 - end - end - local.get $5 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $6 - i32.const 3 - i32.shl - i32.add - f64.load - call $~lib/util/number/dtoa_buffered - local.get $2 - i32.add - local.tee $0 - local.get $7 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - local.get $0 - call $~lib/string/String#substring - local.set $0 - br $folding-inner1 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 10544 + i32.store + local.get $0 + local.get $3 + local.get $2 + local.get $9 + local.get $12 + call $~lib/util/sort/mergeRuns + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|4 end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return end - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $12 + call $~lib/rt/tlsf/__free + local.get $10 + call $~lib/rt/tlsf/__free + 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 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/util/string/joinStringArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/sort/SORT (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 f32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i64) + (local $15 i32) + (local $16 i32) + (local $17 f32) + (local $18 f32) 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 @@ -16002,1013 +15952,1238 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 - i64.const 0 - i64.store - local.get $6 - i64.const 0 - i64.store offset=8 - local.get $1 - i32.const 1 - i32.sub - local.tee $5 i32.const 0 - i32.lt_s - if - local.get $6 - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 11568 - return - end - local.get $5 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.load - local.tee $0 - i32.store - local.get $1 - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.const 11568 - local.get $0 - select - return - end - loop $for-loop|0 + i32.store + block $folding-inner0 local.get $1 - local.get $4 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.tee $6 - local.get $0 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $7 - i32.store offset=4 - local.get $7 - if - local.get $6 - local.get $7 - i32.store offset=8 - local.get $3 - local.get $7 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.add - local.set $3 - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - i32.const 0 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $2 - i32.store offset=8 - local.get $1 - local.get $3 - local.get $2 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $6 - local.get $5 - i32.mul - i32.add - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=12 - i32.const 0 - local.set $3 - loop $for-loop|1 - local.get $3 - local.get $5 - i32.lt_s + i32.const 48 + i32.le_s if - global.get $~lib/memory/__stack_pointer - local.tee $8 - local.get $0 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $1 - i32.store offset=4 local.get $1 - if - local.get $8 - local.get $1 - i32.store offset=8 - local.get $7 - local.get $4 - i32.const 1 - i32.shl - i32.add - local.get $1 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u + i32.const 1 + i32.le_s + br_if $folding-inner0 + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + f32.load + local.set $9 + local.get $0 + f32.load offset=4 + local.set $17 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $17 + local.get $9 + local.get $9 + local.get $17 + local.get $2 + i32.load + call_indirect (type $6) + i32.const 0 + i32.gt_s + local.tee $1 + select + f32.store + local.get $0 + f32.load offset=8 + local.set $18 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $18 + local.get $9 + local.get $17 + local.get $1 + select + local.tee $9 + local.get $9 + local.get $18 + local.get $2 + i32.load + call_indirect (type $6) + i32.const 0 + i32.gt_s + local.tee $1 + select + f32.store offset=4 + local.get $0 + local.get $9 + local.get $18 + local.get $1 + select + f32.store offset=8 + end + local.get $0 + f32.load + local.set $9 + local.get $0 + f32.load offset=4 + local.set $17 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $17 + local.get $9 + local.get $9 + local.get $17 + local.get $2 + i32.load + call_indirect (type $6) + i32.const 0 + i32.gt_s local.tee $1 - i32.const 1 - i32.shl - memory.copy + select + f32.store + local.get $0 + local.get $9 + local.get $17 local.get $1 - local.get $4 - i32.add - local.set $4 + select + f32.store offset=4 + br $folding-inner0 end - local.get $6 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + br $folding-inner0 + end + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $4 + i32.const 2 + i32.shl + local.tee $5 + i32.const 1 + i32.shl + local.set $6 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + local.get $5 + global.get $~lib/rt/tlsf/ROOT + local.get $6 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $11 + i32.add + local.set $12 + loop $for-loop|1 + local.get $3 + local.get $4 + i32.lt_u if - local.get $7 - local.get $4 - i32.const 1 + local.get $11 + local.get $3 + i32.const 2 i32.shl i32.add - local.get $2 - local.get $6 + i32.const -1 + i32.store + local.get $3 i32.const 1 - i32.shl - memory.copy - local.get $4 - local.get $6 i32.add - local.set $4 + local.set $3 + br $for-loop|1 end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|1 end - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $0 - i32.store offset=4 - local.get $0 - if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $1 - local.get $0 - i32.store offset=8 - local.get $7 - local.get $4 - i32.const 1 + i32.const 2 i32.shl + call $~lib/rt/tlsf/allocateBlock + i32.const 4 i32.add - local.get $0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - memory.copy - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - ) - (func $~lib/array/Array<~lib/string/String|null>#join (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 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 - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $3 - local.get $2 - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - local.set $0 - local.get $2 - local.get $1 - i32.store - local.get $3 - local.get $0 - local.get $1 - call $~lib/util/string/joinStringArray - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/array/Array#join (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner0 + local.set $13 global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $3 local.get $2 - local.get $0 i32.store local.get $0 - i32.load offset=12 - local.set $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + local.tee $10 local.get $2 - i32.const 11856 - i32.store - block $__inlined_func$~lib/util/string/joinReferenceArray$8 (result i32) - local.get $2 - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner0 + call $~lib/util/sort/extendRunRight + local.tee $4 + i32.const 1 + i32.add + local.tee $1 + i32.const 32 + i32.lt_s + if global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.const 20 - memory.fill + local.get $2 + i32.store local.get $0 - i32.const 1 - i32.sub - local.tee $5 i32.const 0 + i32.const 31 + local.get $10 + local.get $10 + i32.const 31 + i32.ge_s + select + local.tee $4 + local.get $1 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.set $1 + i32.const 0 + local.set $3 + loop $while-continue|2 + local.get $4 + local.get $10 i32.lt_s - if - local.get $2 - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 11568 - br $__inlined_func$~lib/util/string/joinReferenceArray$8 - end - local.get $5 - i32.eqz if global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $3 - i32.load - local.tee $1 + local.get $2 i32.store - local.get $1 - if (result i32) - local.get $0 - local.get $1 - i32.store offset=4 - i32.const 13632 - else - i32.const 11568 - end - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer local.get $0 - br $__inlined_func$~lib/util/string/joinReferenceArray$8 - end - i32.const 11568 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 11568 - i32.store offset=8 - local.get $2 - i32.const 11856 - i32.store offset=4 - i32.const 11852 - i32.load - i32.const 1 - i32.shr_u - local.set $2 - loop $for-loop|0 - local.get $1 - local.get $5 + local.get $4 + i32.const 1 + i32.add + local.tee $6 + local.get $10 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $5 + local.get $6 + i32.sub + i32.const 1 + i32.add + local.tee $7 + i32.const 32 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $3 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $6 + local.get $2 i32.store + local.get $0 local.get $6 - if - local.get $4 - local.get $0 - i32.store offset=4 - local.get $4 - local.get $6 - i32.store offset=16 - local.get $4 - i32.const 13632 - i32.store offset=12 - local.get $4 - local.get $0 - i32.const 13632 - call $~lib/string/String.__concat - local.tee $0 - i32.store offset=8 - end + local.get $10 + local.get $6 + i32.const 31 + i32.add + local.tee $5 + local.get $5 + local.get $10 + i32.gt_s + select + local.tee $5 + local.get $7 local.get $2 + call $~lib/util/sort/insertionSort + end + local.get $3 + local.get $6 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $10 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $14 + i64.div_u + local.get $5 + local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $14 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $7 + loop $for-loop|3 + local.get $1 + local.get $7 + i32.gt_u if - global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $0 - i32.store offset=4 - local.get $4 - i32.const 11856 - i32.store offset=12 - local.get $4 - local.get $0 - i32.const 11856 - call $~lib/string/String.__concat - local.tee $0 - i32.store offset=8 + local.get $1 + i32.const 2 + i32.shl + local.tee $15 + local.get $11 + i32.add + local.tee $16 + i32.load + local.tee $8 + i32.const -1 + i32.ne + if + local.get $12 + local.get $15 + i32.add + i32.load + i32.const 1 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $8 + local.get $3 + local.get $4 + local.get $13 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $16 + i32.const -1 + i32.store + local.get $8 + local.set $3 + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|3 end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 end + local.get $7 + i32.const 2 + i32.shl + local.tee $1 + local.get $11 + i32.add + local.get $3 + i32.store + local.get $1 + local.get $12 + i32.add + local.get $4 + i32.store + local.get $6 + local.set $3 + local.get $5 + local.set $4 + local.get $7 + local.set $1 + br $while-continue|2 end - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $3 - local.get $5 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $2 - i32.store - local.get $2 + end + loop $for-loop|4 + local.get $1 if local.get $1 - local.get $0 - i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=16 - local.get $1 - i32.const 13632 - i32.store offset=12 + i32.const 2 + i32.shl + local.tee $3 + local.get $11 + i32.add + i32.load + local.tee $4 + i32.const -1 + i32.ne + if + local.get $3 + local.get $12 + i32.add + i32.load + i32.const 1 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $4 + local.get $3 + local.get $10 + local.get $13 + local.get $2 + call $~lib/util/sort/mergeRuns + end local.get $1 - local.get $0 - i32.const 13632 - call $~lib/string/String.__concat - local.tee $0 - i32.store offset=8 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|4 end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 end - local.set $0 + local.get $13 + call $~lib/rt/tlsf/__free + local.get $11 + call $~lib/rt/tlsf/__free global.get $~lib/memory/__stack_pointer i32.const 4 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/array/Array#toString (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub + i32.const 4 + i32.add 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 - local.tee $1 - i64.const 0 - i64.store - local.get $1 + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) local.get $0 - i32.store local.get $1 - i32.const 11856 - i32.store offset=4 + i32.gt_u local.get $0 - i32.const 11856 - call $~lib/array/Array#join - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $1 + i32.lt_u + i32.sub + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f64) (param $1 f64) (result i32) + (local $2 i64) + (local $3 i64) local.get $0 + i64.reinterpret_f64 + local.tee $2 + i64.const 63 + i64.shr_s + i64.const 1 + i64.shr_u + local.get $2 + i64.xor + local.tee $2 + local.get $1 + i64.reinterpret_f64 + local.tee $3 + i64.const 63 + i64.shr_s + i64.const 1 + i64.shr_u + local.get $3 + i64.xor + local.tee $3 + i64.gt_s + local.get $2 + local.get $3 + i64.lt_s + i32.sub ) - (func $~lib/array/Array#toString (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f32) (param $1 f32) (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 + local.get $0 + i32.reinterpret_f32 + local.tee $2 + i32.const 31 + i32.shr_s + i32.const 1 + i32.shr_u + local.get $2 + i32.xor + local.tee $2 + local.get $1 + i32.reinterpret_f32 + local.tee $3 + i32.const 31 + i32.shr_s + i32.const 1 + i32.shr_u + local.get $3 + i32.xor + local.tee $3 + i32.gt_s + local.get $2 + local.get $3 + i32.lt_s i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 + ) + (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + local.get $2 + i32.eqz + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 3145774 + i32.store + local.get $1 + i32.const 2 + i32.add + return + end + local.get $1 + local.get $2 + i32.add + local.tee $3 + i32.const 21 + i32.le_s + local.get $1 + local.get $3 + i32.le_s + i32.and + if (result i32) + loop $for-loop|0 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 48 + i32.store16 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.const 3145774 i32.store local.get $3 - i32.const 11856 - i32.store offset=4 + i32.const 2 + i32.add + else + local.get $3 + i32.const 21 + i32.le_s local.get $3 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $4 i32.const 0 - i32.store - local.get $4 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $3 - local.get $4 - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - local.set $0 - local.get $4 - i32.const 11856 - i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray$9 (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 16192 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store + i32.gt_s + i32.and + if (result i32) + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.tee $0 + i32.const 2 + i32.add + local.get $0 + i32.const 0 + local.get $2 + i32.sub + i32.const 1 + i32.shl + memory.copy local.get $0 + i32.const 46 + i32.store16 + local.get $1 i32.const 1 - i32.sub - local.tee $5 + i32.add + else + local.get $3 i32.const 0 - i32.lt_s - if - local.get $4 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 11568 - br $__inlined_func$~lib/util/string/joinIntegerArray$9 - end - block $folding-inner00 - local.get $5 - i32.eqz - if - local.get $3 - i32.load8_s - call $~lib/util/number/itoa32 - local.set $0 - br $folding-inner00 - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 11856 - i32.store + i32.le_s + local.get $3 + i32.const -6 + i32.gt_s + i32.and + if (result i32) local.get $0 - i32.const 11852 - i32.load + i32.const 2 + local.get $3 + i32.sub + local.tee $3 i32.const 1 - i32.shr_u - local.tee $4 - i32.const 11 - i32.add - local.get $5 - i32.mul - i32.const 11 + i32.shl i32.add - local.tee $0 + local.get $0 + local.get $1 i32.const 1 i32.shl + memory.copy + local.get $0 + i32.const 3014704 + i32.store i32.const 2 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store offset=4 - loop $for-loop|0 + local.set $2 + loop $for-loop|1 local.get $2 - local.get $5 + local.get $3 i32.lt_s if - local.get $6 - local.get $1 + local.get $0 + local.get $2 i32.const 1 i32.shl i32.add + i32.const 48 + i32.store16 local.get $2 - local.get $3 - i32.add - i32.load8_s - call $~lib/util/number/itoa_buffered - local.get $1 + i32.const 1 i32.add - local.set $1 - local.get $4 - if - local.get $6 - local.get $1 + local.set $2 + br $for-loop|1 + end + end + local.get $1 + local.get $3 + i32.add + else + local.get $1 + i32.const 1 + i32.eq + if + local.get $0 + i32.const 101 + i32.store16 offset=2 + local.get $0 + i32.const 4 + i32.add + local.tee $2 + local.get $3 + i32.const 1 + i32.sub + local.tee $0 + i32.const 0 + i32.lt_s + local.tee $3 + if + i32.const 0 + local.get $0 + i32.sub + local.set $0 + end + local.get $0 + local.get $0 + 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.shl i32.add - i32.const 11856 - local.get $4 + 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 + i32.const 1 + i32.add + local.tee $1 + call $~lib/util/number/utoa32_dec_lut + local.get $2 + i32.const 45 + i32.const 43 + local.get $3 + select + i32.store16 + else + local.get $0 + i32.const 4 + i32.add + local.get $0 + i32.const 2 + i32.add + local.get $1 + i32.const 1 + i32.shl + local.tee $2 + i32.const 2 + i32.sub + memory.copy + local.get $0 + i32.const 46 + i32.store16 offset=2 + local.get $0 + local.get $2 + i32.add + local.tee $0 + i32.const 101 + i32.store16 offset=2 + local.get $0 + i32.const 4 + i32.add + local.tee $4 + local.get $3 + i32.const 1 + i32.sub + local.tee $0 + i32.const 0 + i32.lt_s + local.tee $2 + if + i32.const 0 + local.get $0 + i32.sub + local.set $0 + end + local.get $0 + local.get $0 + 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.shl - memory.copy - local.get $1 - local.get $4 i32.add - local.set $1 + 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 - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 end - end - local.get $6 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $3 - local.get $5 - i32.add - i32.load8_s - call $~lib/util/number/itoa_buffered - local.get $1 - i32.add - local.tee $1 - local.get $0 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 + i32.const 1 + i32.add + local.tee $0 + call $~lib/util/number/utoa32_dec_lut + local.get $4 + i32.const 45 + i32.const 43 + local.get $2 + select + i32.store16 + local.get $0 local.get $1 - call $~lib/string/String#substring - local.set $0 - br $folding-inner00 + i32.add + local.set $1 end - global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $1 + i32.const 2 i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - br $__inlined_func$~lib/util/string/joinIntegerArray$9 end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 end - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - 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/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i64) - (local $4 i32) - (local $5 i32) + (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) (local $6 i32) (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 + (local $8 i64) + (local $9 i64) + (local $10 i32) + (local $11 i64) + (local $12 i64) + local.get $2 + local.get $1 + i64.sub + local.set $9 + i64.const 1 + i32.const 0 + local.get $3 i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - 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 - local.tee $5 - i64.const 0 - i64.store - local.get $1 + local.tee $10 + i64.extend_i32_s + local.tee $1 + i64.shl + local.tee $12 + i64.const 1 + i64.sub + local.tee $11 + local.get $2 + i64.and + local.set $8 + local.get $2 + local.get $1 + i64.shr_u + i32.wrap_i64 + local.tee $3 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $3 + i32.const 100 + i32.lt_u + if (result i32) + local.get $3 + i32.const 10 + i32.ge_u i32.const 1 - i32.sub - local.tee $6 - i32.const 0 - i32.lt_s - if - local.get $5 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 11568 - return - end - local.get $6 - i32.eqz - if - local.get $0 - i64.load - local.set $3 - global.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 - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa64$485 - local.get $3 - i64.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 7712 - local.set $1 - br $__inlined_func$~lib/util/number/utoa64$485 - end - local.get $3 - i64.const 4294967295 - i64.le_u - if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.wrap_i64 - local.tee $0 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 100 - i32.lt_u - if (result i32) - local.get $0 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $0 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $0 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $0 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $0 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $0 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.tee $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 - else - global.get $~lib/memory/__stack_pointer - local.get $3 - i64.const 1000000000000000 - i64.lt_u - if (result i32) - local.get $3 - i64.const 1000000000000 - i64.lt_u - if (result i32) - local.get $3 - i64.const 100000000000 - i64.ge_u - i32.const 10 - i32.add - local.get $3 - i64.const 10000000000 - i64.ge_u - i32.add - else + i32.add + else + local.get $3 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $3 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $3 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $3 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $3 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $3 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.set $7 + loop $while-continue|0 + local.get $7 + i32.const 0 + i32.gt_s + if + block $break|1 + block $case10|1 + block $case9|1 + block $case8|1 + block $case7|1 + block $case6|1 + block $case5|1 + block $case4|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + local.get $7 + i32.const 1 + i32.sub + br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $case0|1 $case10|1 + end + local.get $3 + i32.const 1000000000 + i32.div_u + local.set $6 + local.get $3 + i32.const 1000000000 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 100000000 + i32.div_u + local.set $6 + local.get $3 + i32.const 100000000 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 10000000 + i32.div_u + local.set $6 + local.get $3 + i32.const 10000000 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 1000000 + i32.div_u + local.set $6 + local.get $3 + i32.const 1000000 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 100000 + i32.div_u + local.set $6 + local.get $3 + i32.const 100000 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 10000 + i32.div_u + local.set $6 + local.get $3 + i32.const 10000 + i32.rem_u + local.set $3 + br $break|1 + end local.get $3 - i64.const 100000000000000 - i64.ge_u - i32.const 13 - i32.add + i32.const 1000 + i32.div_u + local.set $6 local.get $3 - i64.const 10000000000000 - i64.ge_u - i32.add + i32.const 1000 + i32.rem_u + local.set $3 + br $break|1 end - else local.get $3 - i64.const 100000000000000000 - i64.lt_u - if (result i32) - local.get $3 - i64.const 10000000000000000 - i64.ge_u - i32.const 16 - i32.add - else - local.get $3 - i64.const -8446744073709551616 - i64.ge_u - i32.const 18 - i32.add - local.get $3 - i64.const 1000000000000000000 - i64.ge_u - i32.add - end + i32.const 100 + i32.div_u + local.set $6 + local.get $3 + i32.const 100 + i32.rem_u + local.set $3 + br $break|1 end - local.tee $0 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - local.get $1 local.get $3 - local.get $0 - call $~lib/util/number/utoa64_dec_lut + i32.const 10 + i32.div_u + local.set $6 + local.get $3 + i32.const 10 + i32.rem_u + local.set $3 + br $break|1 end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $3 + local.set $6 + i32.const 0 + local.set $3 + br $break|1 end - br $folding-inner1 + i32.const 0 + local.set $6 end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 11856 - i32.store - local.get $1 - i32.const 11852 - i32.load - i32.const 1 - i32.shr_u - local.tee $1 - i32.const 20 - i32.add + local.get $5 local.get $6 - i32.mul - i32.const 20 - i32.add - local.tee $7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=4 - loop $for-loop|0 - local.get $4 + i32.or + if + local.get $0 + local.get $5 + i32.const 1 + i32.shl + i32.add local.get $6 - i32.lt_s - if - local.get $5 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $0 + i32.const 65535 + i32.and + i32.const 48 + i32.add + i32.store16 + local.get $5 + i32.const 1 + i32.add + local.set $5 + end + local.get $7 + i32.const 1 + i32.sub + local.set $7 + local.get $4 + local.get $3 + i64.extend_i32_u + local.get $10 + i64.extend_i32_s + local.tee $2 + i64.shl + local.get $8 + i64.add + local.tee $1 + i64.ge_u + if + global.get $~lib/util/number/_K + local.get $7 + i32.add + global.set $~lib/util/number/_K + local.get $7 + i32.const 2 + i32.shl + i32.const 13392 + i32.add + i64.load32_u + local.get $2 + i64.shl + local.set $2 + local.get $0 + local.get $5 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.tee $0 + i32.load16_u + local.set $7 + loop $while-continue|3 + local.get $1 + local.get $9 + i64.lt_u local.get $4 - i32.const 3 - i32.shl - i32.add - i64.load - call $~lib/util/number/itoa_buffered - local.get $2 - i32.add - local.set $2 local.get $1 - if - local.get $5 + i64.sub + local.get $2 + i64.ge_u + i32.and + if (result i32) + local.get $9 + local.get $1 local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 11856 + i64.add + local.tee $8 + i64.gt_u + local.get $9 local.get $1 + i64.sub + local.get $8 + local.get $9 + i64.sub + i64.gt_u + i32.or + else + i32.const 0 + end + if + local.get $7 i32.const 1 - i32.shl - memory.copy + i32.sub + local.set $7 local.get $1 local.get $2 - i32.add - local.set $2 + i64.add + local.set $1 + br $while-continue|3 end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 end + local.get $0 + local.get $7 + i32.store16 + local.get $5 + return end + br $while-continue|0 + end + end + loop $while-continue|4 + local.get $4 + i64.const 10 + i64.mul + local.set $4 + local.get $8 + i64.const 10 + i64.mul + local.tee $1 + local.get $10 + i64.extend_i32_s + i64.shr_u + local.tee $2 + local.get $5 + i64.extend_i32_s + i64.or + i64.const 0 + i64.ne + if + local.get $0 local.get $5 - local.get $2 i32.const 1 i32.shl i32.add - local.get $0 - local.get $6 - i32.const 3 - i32.shl - i32.add - i64.load - call $~lib/util/number/itoa_buffered local.get $2 + i32.wrap_i64 + i32.const 65535 + i32.and + i32.const 48 i32.add - local.tee $0 - local.get $7 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - local.get $0 - call $~lib/string/String#substring - local.set $1 - br $folding-inner1 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + i32.store16 local.get $5 - return + i32.const 1 + i32.add + local.set $5 + end + local.get $7 + i32.const 1 + i32.sub + local.set $7 + local.get $1 + local.get $11 + i64.and + local.tee $8 + local.get $4 + i64.ge_u + br_if $while-continue|4 + end + global.get $~lib/util/number/_K + local.get $7 + i32.add + global.set $~lib/util/number/_K + local.get $9 + i32.const 0 + local.get $7 + i32.sub + i32.const 2 + i32.shl + i32.const 13392 + i32.add + i64.load32_u + i64.mul + local.set $1 + local.get $0 + local.get $5 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.tee $0 + i32.load16_u + local.set $7 + loop $while-continue|6 + local.get $1 + local.get $8 + i64.gt_u + local.get $4 + local.get $8 + i64.sub + local.get $12 + i64.ge_u + i32.and + if (result i32) + local.get $1 + local.get $8 + local.get $12 + i64.add + local.tee $2 + i64.gt_u + local.get $1 + local.get $8 + i64.sub + local.get $2 + local.get $1 + i64.sub + i64.gt_u + i32.or + else + i32.const 0 + end + if + local.get $7 + i32.const 1 + i32.sub + local.set $7 + local.get $8 + local.get $12 + i64.add + local.set $8 + br $while-continue|6 end + end + local.get $0 + local.get $7 + i32.store16 + local.get $5 + ) + (func $start:std/array~anonymous|54 (param $0 i32) (param $1 i32) (param $2 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 16192 + i32.lt_s + if i32.const 48992 i32.const 49040 i32.const 1 @@ -17017,15 +17192,53 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 1267 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 3 + call $~lib/array/Array#push + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 1269 + i32.const 5 + call $~lib/builtins/abort + unreachable + 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/array/Array<~lib/string/String|null>#toString (param $0 i32) (result i32) - (local $1 i32) + (func $start:std/array~anonymous|52 (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -17040,241 +17253,117 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 - i32.const 11856 - i32.store offset=4 local.get $0 - i32.const 11856 - call $~lib/array/Array<~lib/string/String|null>#join - local.set $0 + i32.const 0 + call $~lib/array/Array#__get global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#__get + i32.sub + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/array/Array#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) + (func $start:std/array~anonymous|33 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - local.get $0 - i32.store - local.get $3 - i32.const 11856 - i32.store offset=4 - local.get $3 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $4 - i32.const 0 - i32.store - local.get $4 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $3 - local.get $4 - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - local.set $0 - local.get $4 - i32.const 11856 - i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray$10 (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 16192 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store - local.get $0 - i32.const 1 - i32.sub - local.tee $5 - i32.const 0 - i32.lt_s - if - local.get $4 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 11568 - br $__inlined_func$~lib/util/string/joinIntegerArray$10 - end - block $folding-inner00 - local.get $5 - i32.eqz - if - local.get $3 - i32.load8_u - call $~lib/util/number/utoa32 - local.set $0 - br $folding-inner00 - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 11856 - i32.store - local.get $0 - i32.const 11852 - i32.load - i32.const 1 - i32.shr_u - local.tee $4 - i32.const 10 - i32.add - local.get $5 - i32.mul - i32.const 10 - i32.add - local.tee $0 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store offset=4 - loop $for-loop|0 - local.get $2 - local.get $5 - i32.lt_s - if - local.get $6 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $3 - i32.add - i32.load8_u - call $~lib/util/number/itoa_buffered - local.get $1 - i32.add - local.set $1 - local.get $4 - if - local.get $6 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 11856 - local.get $4 - i32.const 1 - i32.shl - memory.copy - local.get $1 - local.get $4 - i32.add - local.set $1 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - local.get $6 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $3 - local.get $5 - i32.add - i32.load8_u - call $~lib/util/number/itoa_buffered - local.get $1 - i32.add - local.tee $1 - local.get $0 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $1 - call $~lib/string/String#substring - local.set $0 - br $folding-inner00 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - br $__inlined_func$~lib/util/string/joinIntegerArray$10 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - end - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - 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 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 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/array/Array#pop + drop + global.get $std/array/i + local.get $0 + i32.add + global.set $std/array/i + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.const 2 + i32.ge_s + ) + (func $start:std/array~anonymous|32 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + global.get $std/array/i + local.get $0 + i32.add + global.set $std/array/i + local.get $0 + i32.const 2 + i32.ge_s + ) + (func $start:std/array~anonymous|31 (param $0 i32) (param $1 i32) (param $2 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 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 100 + call $~lib/array/Array#push + global.get $std/array/i + local.get $0 + i32.add + global.set $std/array/i + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.const 2 + i32.ge_s ) - (func $~lib/array/Array#toString (param $0 i32) (result i32) - (local $1 i32) + (func $start:std/array~anonymous|30 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 2 + i32.ge_s + ) + (func $start:std/array~anonymous|3 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -17289,271 +17378,270 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 100 + call $~lib/array/Array#push + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 + i32.const 100 + i32.eq + ) + (func $start:std/array~anonymous|29 (param $0 i32) (param $1 i32) (param $2 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 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 $1 - i32.const 11856 - i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/array/Array#pop + drop + global.get $std/array/i local.get $0 - i32.const 11856 - call $~lib/array/Array#join - local.set $0 + i32.add + global.set $std/array/i global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/array/Array<~lib/array/Array>#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) + (func $start:std/array~anonymous|28 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + global.get $std/array/i + local.get $0 + i32.add + global.set $std/array/i + local.get $0 + ) + (func $start:std/array~anonymous|27 (param $0 i32) (param $1 i32) (param $2 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 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 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 100 + call $~lib/array/Array#push + global.get $std/array/i + local.get $0 + i32.add + global.set $std/array/i + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $start:std/array~anonymous|26 (param $0 i32) (param $1 i32) (param $2 i32) (result f32) + local.get $0 + f32.convert_i32_s + ) + (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 + ) + (func $start:std/array~anonymous|24 (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - local.get $0 - i32.store - local.get $2 - i32.const 11856 - i32.store offset=4 - local.get $2 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $2 - local.get $3 - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - local.set $0 - local.get $3 - i32.const 11856 - i32.store - block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$11 (result i32) - 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 16192 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.const 20 - memory.fill - local.get $0 - i32.const 1 - i32.sub - local.tee $4 - i32.const 0 + 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 $1 + i32.eqz + if + loop $for-loop|0 + local.get $3 + i32.const 4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/array/Array#pop + drop local.get $3 - i32.const 20 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - i32.const 11568 - br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$11 + local.set $3 + br $for-loop|0 end - local.get $4 - i32.eqz + end + i32.const 0 + local.set $3 + loop $for-loop|1 + local.get $3 + i32.const 100 + i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $2 - i32.load - local.tee $1 i32.store - local.get $1 - if (result i32) - local.get $0 - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/array/Array#toString - else - i32.const 11568 - end - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 20 + local.get $2 + local.get $3 + i32.const 100 i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$11 + call $~lib/array/Array#push + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 end - i32.const 11568 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 11568 - i32.store offset=8 + end + i32.const 0 + local.set $3 + loop $for-loop|2 local.get $3 - i32.const 11856 - i32.store offset=4 - i32.const 11852 - i32.load - i32.const 1 - i32.shr_u - local.set $3 - loop $for-loop|0 - local.get $1 - local.get $4 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $2 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $6 - i32.store - local.get $6 - if - local.get $5 - local.get $0 - i32.store offset=4 - local.get $5 - local.get $6 - i32.store offset=16 - local.get $6 - call $~lib/array/Array#toString - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=12 - local.get $5 - local.get $0 - local.get $6 - call $~lib/string/String.__concat - local.tee $0 - i32.store offset=8 - end - local.get $3 - if - global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $0 - i32.store offset=4 - local.get $5 - i32.const 11856 - i32.store offset=12 - local.get $5 - local.get $0 - i32.const 11856 - call $~lib/string/String.__concat - local.tee $0 - i32.store offset=8 - end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $2 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $2 - i32.store - local.get $2 + i32.const 100 + i32.lt_s if - local.get $1 - local.get $0 - i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=16 + i32.store local.get $2 - call $~lib/array/Array#toString - local.set $2 + call $~lib/array/Array#pop + drop + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|2 + end + end + i32.const 0 + local.set $3 + loop $for-loop|3 + local.get $3 + i32.const 100 + i32.lt_s + if global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=12 - local.get $1 - local.get $0 + i32.store local.get $2 - call $~lib/string/String.__concat - local.tee $0 - i32.store offset=8 + local.get $3 + i32.const 200 + i32.add + call $~lib/array/Array#push + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|3 end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 end - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - 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 + local.get $1 + i32.const 2 + i32.eq + local.get $0 + i32.const 202 + i32.ne + i32.and + if + i32.const 0 + i32.const 1552 + i32.const 767 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $start:std/array~anonymous|23 (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 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 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/array/Array#pop + drop + global.get $std/array/i + local.get $0 + i32.add + global.set $std/array/i + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array<~lib/array/Array>#flat (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) + (func $start:std/array~anonymous|21 (param $0 i32) (param $1 i32) (param $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -17568,130 +17656,62 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store - local.get $4 i32.const 0 - i32.store offset=8 - local.get $4 - local.get $0 i32.store - local.get $0 - i32.load offset=4 - local.set $3 - local.get $4 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $2 i32.store + local.get $2 + i32.const 100 + call $~lib/array/Array#push + global.get $std/array/i local.get $0 - i32.load offset=12 - local.set $4 - i32.const 0 - local.set $0 - loop $for-loop|0 - local.get $0 - local.get $4 - i32.lt_s - if - local.get $3 - local.get $0 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $5 - if (result i32) - local.get $5 - i32.load offset=12 - else - i32.const 0 - end - local.get $2 - i32.add - local.set $2 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end + i32.add + global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 2 - i32.shl - local.tee $5 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store offset=4 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $start:std/array~anonymous|19 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) global.get $~lib/memory/__stack_pointer - i32.const 16 i32.const 4 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=8 - local.get $0 + 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 + global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=12 - local.get $0 - local.get $5 - i32.store offset=8 - local.get $0 - local.get $6 - i32.store offset=4 - local.get $0 - local.get $6 i32.store - local.get $0 - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__link - i32.const 0 - local.set $2 - loop $for-loop|1 - local.get $2 - local.get $4 - i32.lt_s - if - local.get $3 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $5 - if - local.get $1 - local.get $6 - i32.add - local.get $5 - i32.load offset=4 - local.get $5 - i32.load offset=12 - i32.const 2 - i32.shl - local.tee $5 - memory.copy - local.get $1 - local.get $5 - i32.add - local.set $1 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|1 - end - end + local.get $2 + call $~lib/array/Array#pop + drop global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $0 + i32.const 3 + i32.gt_s ) - (func $start:std/array~anonymous|54 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|18 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 10 + i32.gt_s + ) + (func $start:std/array~anonymous|17 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -17708,67 +17728,132 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $2 i32.store + local.get $2 + i32.const 100 + call $~lib/array/Array#push + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 - call $~lib/array/Array#get:length - i32.const 1 - i32.ne + i32.const 10 + i32.gt_s + ) + (func $start:std/array~anonymous|16 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 0 + i32.lt_s + ) + (func $start:std/array~anonymous|15 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 3 + i32.ge_s + ) + (func $start:std/array~anonymous|14 (param $0 i32) (param $1 i32) (param $2 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 16192 + i32.lt_s if - i32.const 0 - i32.const 1552 - i32.const 1267 - i32.const 5 + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 i32.store - local.get $0 - i32.const 3 - call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store + local.get $2 + call $~lib/array/Array#pop + drop + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 - call $~lib/array/Array#get:length - i32.const 2 - i32.ne + i32.const 3 + i32.lt_s + ) + (func $start:std/array~anonymous|13 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 10 + i32.lt_s + ) + (func $start:std/array~anonymous|12 (param $0 i32) (param $1 i32) (param $2 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 16192 + i32.lt_s if - i32.const 0 - i32.const 1552 - i32.const 1269 - i32.const 5 + 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 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 100 + call $~lib/array/Array#push + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $0 + i32.const 10 + i32.lt_s + ) + (func $start:std/array~anonymous|11 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 0 + i32.le_s + ) + (func $start:std/array~anonymous|10 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 0 + i32.ge_s ) (func $start:std/array (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i64) - (local $5 f64) - (local $6 f32) - (local $7 i32) - (local $8 i32) + (local $4 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) + (local $15 i32) global.get $~lib/memory/__stack_pointer - i32.const 508 + i32.const 444 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner2 @@ -17778,7 +17863,7 @@ br_if $folding-inner2 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 508 + i32.const 444 memory.fill memory.size i32.const 16 @@ -17817,9 +17902,9 @@ 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 @@ -17830,20 +17915,19 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer 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 - local.tee $7 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=4 - local.get $7 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer @@ -17852,98 +17936,92 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $8 i64.const 0 i64.store - local.get $8 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $2 + local.get $0 i32.eqz if - local.get $8 + 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 i32.const 1 i32.const 1 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $10 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 $8 + local.get $10 i32.store offset=12 - local.get $2 - local.get $8 + local.get $0 + local.get $10 i32.store - local.get $2 - local.get $8 + local.get $0 + local.get $10 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 $8 + local.get $0 + local.get $10 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 $7 - 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.tee $7 - local.get $2 - i32.store - local.get $7 - i32.const 1664 + local.get $0 i32.store - local.get $7 + 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 @@ -17959,30 +18037,30 @@ i32.const 7 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 1728 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $2 - local.get $7 + local.get $0 + local.get $9 call $std/array/isArraysEqual i32.eqz if @@ -17994,28 +18072,28 @@ 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 1760 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $2 - local.get $7 + local.get $0 + local.get $9 call $std/array/isArraysEqual i32.eqz if @@ -18027,27 +18105,27 @@ 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 1792 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $2 - local.get $7 + local.get $0 + local.get $9 call $std/array/isArraysEqual i32.eqz if @@ -18059,28 +18137,28 @@ 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 1824 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $2 - local.get $7 + local.get $0 + local.get $9 call $std/array/isArraysEqual i32.eqz if @@ -18092,27 +18170,27 @@ 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 1856 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $2 - local.get $7 + local.get $0 + local.get $9 call $std/array/isArraysEqual i32.eqz if @@ -18124,28 +18202,28 @@ 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 1888 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $2 - local.get $7 + local.get $0 + local.get $9 call $std/array/isArraysEqual i32.eqz if @@ -18162,30 +18240,30 @@ i32.const 8 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 1968 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $2 - local.get $7 + local.get $0 + local.get $9 call $std/array/isArraysEqual i32.eqz if @@ -18197,28 +18275,28 @@ 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 2016 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $2 - local.get $7 + local.get $0 + local.get $9 call $std/array/isArraysEqual i32.eqz if @@ -18230,27 +18308,27 @@ 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 2064 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $2 - local.get $7 + local.get $0 + local.get $9 call $std/array/isArraysEqual i32.eqz if @@ -18262,28 +18340,28 @@ 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 2112 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $2 - local.get $7 + local.get $0 + local.get $9 call $std/array/isArraysEqual i32.eqz if @@ -18295,27 +18373,27 @@ 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 2160 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $2 - local.get $7 + local.get $0 + local.get $9 call $std/array/isArraysEqual i32.eqz if @@ -18327,28 +18405,28 @@ 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 2208 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $2 - local.get $7 + local.get $0 + local.get $9 call $std/array/isArraysEqual i32.eqz if @@ -18365,30 +18443,30 @@ i32.const 9 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 2304 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $2 - local.get $7 + local.get $0 + local.get $9 call $std/array/isArraysEqual i32.eqz if @@ -18400,28 +18478,28 @@ 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 2352 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $2 - local.get $7 + local.get $0 + local.get $9 call $std/array/isArraysEqual i32.eqz if @@ -18433,27 +18511,27 @@ 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 2400 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $2 - local.get $7 + local.get $0 + local.get $9 call $std/array/isArraysEqual i32.eqz if @@ -18465,28 +18543,28 @@ 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 2448 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $2 - local.get $7 + local.get $0 + local.get $9 call $std/array/isArraysEqual i32.eqz if @@ -18498,27 +18576,27 @@ 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 2496 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $2 - local.get $7 + local.get $0 + local.get $9 call $std/array/isArraysEqual i32.eqz if @@ -18530,28 +18608,28 @@ 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 2544 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $2 - local.get $7 + local.get $0 + local.get $9 call $std/array/isArraysEqual i32.eqz if @@ -18563,28 +18641,28 @@ 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 2592 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $2 - local.get $7 + local.get $0 + local.get $9 call $std/array/isArraysEqual i32.eqz if @@ -18597,9 +18675,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#get:length if i32.const 0 @@ -18611,9 +18689,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 $std/array/internalCapacity i32.const 8 i32.ne @@ -18627,16 +18705,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 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 @@ -18651,9 +18729,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#get:length i32.const 1 i32.ne @@ -18667,9 +18745,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 $std/array/internalCapacity i32.const 8 i32.ne @@ -18683,9 +18761,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 i32.const 42 i32.ne @@ -18699,9 +18777,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#get:length if i32.const 0 @@ -18713,9 +18791,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 $std/array/internalCapacity i32.const 8 i32.ne @@ -18729,16 +18807,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 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 @@ -18752,9 +18830,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 $std/array/internalCapacity i32.const 8 i32.ne @@ -18768,9 +18846,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 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -18785,16 +18863,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 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 @@ -18808,9 +18886,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 $std/array/internalCapacity i32.const 8 i32.ne @@ -18824,9 +18902,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 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -18841,9 +18919,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 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -18858,16 +18936,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 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 @@ -18881,9 +18959,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 $std/array/internalCapacity i32.const 8 i32.ne @@ -18897,9 +18975,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 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -18914,9 +18992,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 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -18931,9 +19009,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 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -18947,33 +19025,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 i32.const 10 i32.const 0 call $~lib/rt/__newArray - local.tee $7 + local.tee $9 i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.load offset=4 - i32.store offset=24 - local.get $7 + local.get $9 i32.const 0 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $7 + local.get $9 i32.const 1 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $2 - local.get $7 - i32.store offset=28 + local.get $9 + i32.store offset=24 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 @@ -18986,14 +19059,14 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $7 + local.get $9 i32.const 0 i32.const 0 call $~lib/array/ensureCapacity global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store - local.get $7 + local.get $9 i32.const 0 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -19001,9 +19074,9 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store - local.get $7 + local.get $9 call $~lib/array/Array#get:length if i32.const 0 @@ -19019,12 +19092,12 @@ i32.const 4 i32.const 2688 call $~lib/rt/__newArray - local.tee $2 - i32.store offset=32 + 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 @@ -19038,9 +19111,9 @@ 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 @@ -19054,9 +19127,9 @@ 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 @@ -19070,9 +19143,9 @@ 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 @@ -19088,26 +19161,26 @@ global.get $~lib/memory/__stack_pointer i32.const 0 call $~lib/array/Array#constructor - local.tee $2 - i32.store offset=36 + local.tee $0 + i32.store offset=32 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $7 + local.tee $9 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 $7 - local.get $2 + local.get $9 + local.get $0 call $~lib/array/Array#concat - local.tee $7 - i32.store offset=40 + local.tee $9 + i32.store offset=36 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $8 + local.tee $10 i32.store - local.get $8 + local.get $10 call $std/array/internalCapacity i32.const 8 i32.ne @@ -19121,9 +19194,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $8 + local.tee $10 i32.store - local.get $8 + local.get $10 call $~lib/array/Array#get:length i32.const 3 i32.ne @@ -19136,9 +19209,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store - local.get $7 + local.get $9 call $~lib/array/Array#get:length i32.const 3 i32.ne @@ -19151,26 +19224,26 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store i32.const 0 i32.const 2 i32.const 4 i32.const 2736 call $~lib/rt/__newArray - local.set $8 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store offset=8 - local.get $7 - local.get $8 + local.get $9 + local.get $10 call $~lib/array/Array#concat drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $8 + local.tee $10 i32.store - local.get $8 + local.get $10 call $std/array/internalCapacity i32.const 8 i32.ne @@ -19183,9 +19256,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store - local.get $7 + local.get $9 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -19199,9 +19272,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store - local.get $7 + local.get $9 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -19215,9 +19288,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store - local.get $7 + local.get $9 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -19231,35 +19304,35 @@ 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 $7 + local.tee $9 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 $7 - local.get $2 + local.get $9 + local.get $0 call $~lib/array/Array#concat - local.tee $7 - i32.store offset=40 + local.tee $9 + i32.store offset=36 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $8 + local.tee $10 i32.store - local.get $8 + local.get $10 call $std/array/internalCapacity i32.const 8 i32.ne @@ -19272,9 +19345,9 @@ 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 @@ -19287,9 +19360,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store - local.get $7 + local.get $9 call $~lib/array/Array#get:length i32.const 5 i32.ne @@ -19302,9 +19375,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store - local.get $7 + local.get $9 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -19318,9 +19391,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store - local.get $7 + local.get $9 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -19334,9 +19407,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store - local.get $7 + local.get $9 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -19350,9 +19423,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store - local.get $7 + local.get $9 i32.const 3 call $~lib/array/Array#__get i32.const 46 @@ -19366,9 +19439,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store - local.get $7 + local.get $9 i32.const 4 call $~lib/array/Array#__get i32.const 47 @@ -19382,15 +19455,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store - local.get $7 + local.get $9 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store - local.get $7 + local.get $9 call $~lib/array/Array#get:length i32.const 4 i32.ne @@ -19408,12 +19481,12 @@ i32.const 4 i32.const 2768 call $~lib/rt/__newArray - local.tee $2 - i32.store offset=44 + 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 @@ -19424,23 +19497,22 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $7 - local.get $2 + local.get $0 i32.store - local.get $7 + global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $8 + local.tee $9 i32.store offset=8 - local.get $7 - local.get $2 - local.get $8 + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $9 call $~lib/array/Array#concat - local.tee $7 - i32.store offset=40 + local.tee $9 + i32.store offset=36 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store - local.get $7 + local.get $9 call $~lib/array/Array#get:length i32.const 3 i32.ne @@ -19453,9 +19525,9 @@ 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 @@ -19471,32 +19543,32 @@ i32.const 4 i32.const 2800 call $~lib/rt/__newArray - local.tee $2 - i32.store offset=48 + local.tee $0 + i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=52 + 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 2848 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $2 - local.get $7 + local.get $0 + local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19514,32 +19586,32 @@ i32.const 4 i32.const 2896 call $~lib/rt/__newArray - local.tee $2 - i32.store offset=48 + local.tee $0 + i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=52 + 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 2944 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $2 - local.get $7 + local.get $0 + local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19557,32 +19629,32 @@ i32.const 4 i32.const 2992 call $~lib/rt/__newArray - local.tee $2 - i32.store offset=48 + local.tee $0 + i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=52 + 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 3040 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $2 - local.get $7 + local.get $0 + local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19600,32 +19672,32 @@ i32.const 4 i32.const 3088 call $~lib/rt/__newArray - local.tee $2 - i32.store offset=48 + local.tee $0 + i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=52 + 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 3136 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $2 - local.get $7 + local.get $0 + local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19643,31 +19715,31 @@ i32.const 4 i32.const 3184 call $~lib/rt/__newArray - local.tee $2 - i32.store offset=48 + local.tee $0 + i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=52 - local.get $2 + local.get $0 + i32.store offset=48 + 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 3232 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $2 - local.get $7 + local.get $0 + local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19685,31 +19757,31 @@ i32.const 4 i32.const 3280 call $~lib/rt/__newArray - local.tee $2 - i32.store offset=48 + local.tee $0 + i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=52 - local.get $2 + local.get $0 + i32.store offset=48 + 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 3328 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $2 - local.get $7 + local.get $0 + local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19727,31 +19799,31 @@ i32.const 4 i32.const 3376 call $~lib/rt/__newArray - local.tee $2 - i32.store offset=48 + local.tee $0 + i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=52 - local.get $2 + local.get $0 + i32.store offset=48 + 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 3424 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $2 - local.get $7 + local.get $0 + local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19769,32 +19841,32 @@ i32.const 4 i32.const 3472 call $~lib/rt/__newArray - local.tee $2 - i32.store offset=48 + local.tee $0 + i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=52 + 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 3520 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $2 - local.get $7 + local.get $0 + local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19812,31 +19884,31 @@ i32.const 4 i32.const 3568 call $~lib/rt/__newArray - local.tee $2 - i32.store offset=48 + local.tee $0 + i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=52 - local.get $2 + local.get $0 + i32.store offset=48 + 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 3616 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $2 - local.get $7 + local.get $0 + local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19854,31 +19926,31 @@ i32.const 4 i32.const 3664 call $~lib/rt/__newArray - local.tee $2 - i32.store offset=48 + local.tee $0 + i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=52 - local.get $2 + local.get $0 + i32.store offset=48 + 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 3712 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $2 - local.get $7 + local.get $0 + local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19896,31 +19968,31 @@ i32.const 4 i32.const 3760 call $~lib/rt/__newArray - local.tee $2 - i32.store offset=48 + local.tee $0 + i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=52 - local.get $2 + local.get $0 + i32.store offset=48 + 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 3808 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $2 - local.get $7 + local.get $0 + local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19938,32 +20010,32 @@ i32.const 4 i32.const 3856 call $~lib/rt/__newArray - local.tee $2 - i32.store offset=48 + local.tee $0 + i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=52 + 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 3904 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $2 - local.get $7 + local.get $0 + local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19977,16 +20049,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 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 @@ -20000,9 +20072,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 $std/array/internalCapacity i32.const 8 i32.ne @@ -20016,9 +20088,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 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -20033,9 +20105,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 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -20050,9 +20122,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 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -20067,9 +20139,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 i32.const 3 call $~lib/array/Array#__get i32.const 45 @@ -20084,16 +20156,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 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 @@ -20107,9 +20179,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 $std/array/internalCapacity i32.const 8 i32.ne @@ -20123,9 +20195,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 i32.const 0 call $~lib/array/Array#__get i32.const 41 @@ -20140,9 +20212,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 i32.const 1 call $~lib/array/Array#__get i32.const 42 @@ -20157,9 +20229,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 i32.const 2 call $~lib/array/Array#__get i32.const 43 @@ -20174,9 +20246,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 i32.const 3 call $~lib/array/Array#__get i32.const 44 @@ -20191,9 +20263,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 i32.const 4 call $~lib/array/Array#__get i32.const 45 @@ -20207,11 +20279,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 global.get $std/array/arr - local.tee $7 + local.tee $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -20220,15 +20291,14 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 - local.get $7 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $7 + local.get $0 i32.load offset=12 - local.tee $2 + local.tee $9 i32.const 0 i32.le_s if @@ -20240,42 +20310,39 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $8 - local.get $7 + local.get $0 i32.store - local.get $7 + local.get $0 i32.load offset=4 - local.tee $9 + local.tee $10 i32.load - local.set $10 - local.get $9 - local.get $9 + local.get $10 + local.get $10 i32.const 4 i32.add - local.get $2 + local.get $9 i32.const 1 i32.sub - local.tee $2 + local.tee $9 i32.const 2 i32.shl - local.tee $11 + local.tee $12 memory.copy - local.get $9 - local.get $11 + local.get $10 + local.get $12 i32.add i32.const 0 i32.store - local.get $8 - local.get $7 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $7 - local.get $2 + local.get $0 + local.get $9 i32.store offset=12 - local.get $8 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 global.set $std/array/i global.get $std/array/i i32.const 41 @@ -20290,9 +20357,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#get:length i32.const 4 i32.ne @@ -20306,9 +20373,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 $std/array/internalCapacity i32.const 8 i32.ne @@ -20322,9 +20389,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 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -20339,9 +20406,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 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -20356,9 +20423,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 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -20373,9 +20440,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 i32.const 3 call $~lib/array/Array#__get i32.const 45 @@ -20390,9 +20457,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 @@ -20408,9 +20475,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#get:length i32.const 3 i32.ne @@ -20424,9 +20491,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 $std/array/internalCapacity i32.const 8 i32.ne @@ -20440,9 +20507,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 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -20457,9 +20524,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 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -20474,9 +20541,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 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -20495,33 +20562,33 @@ i32.const 4 i32.const 3952 call $~lib/rt/__newArray - local.tee $2 - i32.store offset=56 + 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 $7 - i32.store offset=60 + local.tee $9 + i32.store offset=56 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store i32.const 3 i32.const 2 i32.const 4 i32.const 4000 call $~lib/rt/__newArray - local.set $8 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store offset=8 - local.get $7 - local.get $8 + local.get $9 + local.get $10 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20534,30 +20601,29 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $7 - local.get $2 + local.get $0 i32.store - local.get $7 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 2 i32.const 4 call $~lib/array/Array#slice - local.tee $7 - i32.store offset=60 + local.tee $9 + i32.store offset=56 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store i32.const 2 i32.const 2 i32.const 4 i32.const 4032 call $~lib/rt/__newArray - local.set $8 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store offset=8 - local.get $7 - local.get $8 + local.get $9 + local.get $10 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20570,30 +20636,29 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $7 - local.get $2 + local.get $0 i32.store - local.get $7 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 1 i32.const 5 call $~lib/array/Array#slice - local.tee $7 - i32.store offset=60 + local.tee $9 + i32.store offset=56 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store i32.const 4 i32.const 2 i32.const 4 i32.const 4064 call $~lib/rt/__newArray - local.set $8 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store offset=8 - local.get $7 - local.get $8 + local.get $9 + local.get $10 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20606,25 +20671,24 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $7 - local.get $2 + local.get $0 i32.store i32.const 0 global.set $~argumentsLength - local.get $7 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 0 call $~lib/array/Array#slice@varargs - local.tee $7 - i32.store offset=60 + local.tee $9 + i32.store offset=56 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=8 - local.get $7 - local.get $2 + local.get $9 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20637,31 +20701,30 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $7 - local.get $2 + local.get $0 i32.store i32.const 1 global.set $~argumentsLength - local.get $7 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.const -2 call $~lib/array/Array#slice@varargs - local.tee $7 - i32.store offset=60 + local.tee $9 + i32.store offset=56 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store i32.const 2 i32.const 2 i32.const 4 i32.const 4112 call $~lib/rt/__newArray - local.set $8 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store offset=8 - local.get $7 - local.get $8 + local.get $9 + local.get $10 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20674,30 +20737,29 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $7 - local.get $2 + local.get $0 i32.store - local.get $7 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 2 i32.const -1 call $~lib/array/Array#slice - local.tee $7 - i32.store offset=60 + local.tee $9 + i32.store offset=56 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store i32.const 2 i32.const 2 i32.const 4 i32.const 4144 call $~lib/rt/__newArray - local.set $8 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store offset=8 - local.get $7 - local.get $8 + local.get $9 + local.get $10 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20710,30 +20772,29 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $7 - local.get $2 + local.get $0 i32.store - local.get $7 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.const -3 i32.const -1 call $~lib/array/Array#slice - local.tee $7 - i32.store offset=60 + local.tee $9 + i32.store offset=56 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store i32.const 2 i32.const 2 i32.const 4 i32.const 4176 call $~lib/rt/__newArray - local.set $8 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store offset=8 - local.get $7 - local.get $8 + local.get $9 + local.get $10 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20746,17 +20807,17 @@ 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 $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store - local.get $7 + local.get $9 call $~lib/array/Array#get:length if i32.const 0 @@ -20767,18 +20828,18 @@ 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 @@ -20789,11 +20850,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 global.get $std/array/arr - local.tee $7 + local.tee $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -20802,63 +20862,62 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 - local.get $7 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $7 + local.get $0 i32.load offset=4 - local.set $8 - local.get $2 - local.get $7 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $7 + 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 $7 - local.get $2 + local.set $10 + local.get $0 i32.const 1 i32.sub - local.set $2 + local.set $0 loop $while-continue|0 - local.get $3 - local.get $7 + local.get $2 + local.get $10 i32.lt_u if - local.get $8 - local.get $3 + local.get $9 + local.get $2 i32.const 2 i32.shl i32.add - local.tee $9 + local.tee $11 i32.load - local.set $10 + local.set $12 + local.get $11 local.get $9 - local.get $8 + local.get $0 local.get $2 - local.get $3 i32.sub i32.const 2 i32.shl i32.add - local.tee $9 + local.tee $11 i32.load i32.store - local.get $9 - local.get $10 + local.get $11 + local.get $12 i32.store - local.get $3 + local.get $2 i32.const 1 i32.add - local.set $3 + local.set $2 br $while-continue|0 end end @@ -20869,9 +20928,9 @@ 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 @@ -20885,9 +20944,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 $std/array/internalCapacity i32.const 8 i32.ne @@ -20901,9 +20960,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 i32.const 0 call $~lib/array/Array#__get i32.const 44 @@ -20918,9 +20977,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 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -20935,9 +20994,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 i32.const 2 call $~lib/array/Array#__get i32.const 42 @@ -20952,59 +21011,55 @@ 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 - local.set $2 i32.const 4 i32.const 0 i32.const 7 i32.const 4208 call $~lib/rt/__newArray - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store local.get $2 - local.get $3 call $~lib/array/Array#reverse - local.tee $2 - i32.store offset=64 + 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 $3 + local.set $2 loop $for-loop|0 - local.get $0 + local.get $2 local.get $3 - i32.lt_s + i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 local.get $0 + local.get $3 call $~lib/array/Array#__get - local.set $7 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $7 - local.get $2 - call $~lib/array/Array#get:length local.get $0 + call $~lib/array/Array#get:length + local.get $3 i32.sub i32.const 1 i32.sub @@ -21017,15 +21072,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 br $for-loop|0 end end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 8 i32.const 0 i32.const 7 @@ -21035,38 +21089,35 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.store - local.get $0 local.get $2 call $~lib/array/Array#reverse - local.tee $2 - i32.store offset=68 + local.tee $0 + i32.store offset=64 i32.const 0 - local.set $0 + local.set $3 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 $3 + local.set $2 loop $for-loop|1 - local.get $0 + local.get $2 local.get $3 - i32.lt_s + i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 local.get $0 + local.get $3 call $~lib/array/Array#__get - local.set $7 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $7 - local.get $2 - call $~lib/array/Array#get:length local.get $0 + call $~lib/array/Array#get:length + local.get $3 i32.sub i32.const 1 i32.sub @@ -21079,15 +21130,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 br $for-loop|1 end end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 17 i32.const 0 i32.const 7 @@ -21097,38 +21147,35 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.store - local.get $0 local.get $2 call $~lib/array/Array#reverse - local.tee $2 - i32.store offset=72 + local.tee $0 + i32.store offset=68 i32.const 0 - local.set $0 + local.set $3 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 $3 + local.set $2 loop $for-loop|2 - local.get $0 + local.get $2 local.get $3 - i32.lt_s + i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 local.get $0 + local.get $3 call $~lib/array/Array#__get - local.set $7 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $7 - local.get $2 - call $~lib/array/Array#get:length local.get $0 + call $~lib/array/Array#get:length + local.get $3 i32.sub i32.const 1 i32.sub @@ -21141,15 +21188,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 br $for-loop|2 end end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 7 i32.const 1 i32.const 11 @@ -21159,38 +21205,35 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.store - local.get $0 local.get $2 call $~lib/array/Array#reverse - local.tee $2 - i32.store offset=76 + local.tee $0 + i32.store offset=72 i32.const 0 - local.set $0 + local.set $3 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 $3 + local.set $2 loop $for-loop|3 - local.get $0 + local.get $2 local.get $3 - i32.lt_s + i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 local.get $0 + local.get $3 call $~lib/array/Array#__get - local.set $7 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $7 - local.get $2 - call $~lib/array/Array#get:length local.get $0 + call $~lib/array/Array#get:length + local.get $3 i32.sub i32.const 1 i32.sub @@ -21203,15 +21246,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 br $for-loop|3 end end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 8 i32.const 1 i32.const 11 @@ -21221,38 +21263,35 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.store - local.get $0 local.get $2 call $~lib/array/Array#reverse - local.tee $2 - i32.store offset=80 + local.tee $0 + i32.store offset=76 i32.const 0 - local.set $0 + local.set $3 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 $3 + local.set $2 loop $for-loop|4 - local.get $0 + local.get $2 local.get $3 - i32.lt_s + i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 local.get $0 + local.get $3 call $~lib/array/Array#__get - local.set $7 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $7 - local.get $2 - call $~lib/array/Array#get:length local.get $0 + call $~lib/array/Array#get:length + local.get $3 i32.sub i32.const 1 i32.sub @@ -21265,15 +21304,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 br $for-loop|4 end end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 9 i32.const 1 i32.const 11 @@ -21283,38 +21321,35 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.store - local.get $0 local.get $2 call $~lib/array/Array#reverse - local.tee $2 - i32.store offset=84 + local.tee $0 + i32.store offset=80 i32.const 0 - local.set $0 + local.set $3 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 $3 + local.set $2 loop $for-loop|5 - local.get $0 + local.get $2 local.get $3 - i32.lt_s + i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 local.get $0 + local.get $3 call $~lib/array/Array#__get - local.set $7 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $7 - local.get $2 - call $~lib/array/Array#get:length local.get $0 + call $~lib/array/Array#get:length + local.get $3 i32.sub i32.const 1 i32.sub @@ -21327,10 +21362,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 br $for-loop|5 end end @@ -21539,12 +21574,11 @@ call $~lib/rt/__newArray local.set $2 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $2 i32.store i32.const 0 local.set $0 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -21553,29 +21587,28 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store - block $__inlined_func$~lib/array/Array#indexOf$712 + block $__inlined_func$~lib/array/Array#indexOf$718 local.get $2 i32.load offset=12 - local.tee $7 + local.tee $3 i32.eqz - local.get $7 + local.get $3 i32.const 0 i32.le_s i32.or if - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer i32.const -1 local.set $0 - br $__inlined_func$~lib/array/Array#indexOf$712 + br $__inlined_func$~lib/array/Array#indexOf$718 end global.get $~lib/memory/__stack_pointer local.get $2 @@ -21583,9 +21616,9 @@ local.get $2 i32.load offset=4 local.set $2 - loop $while-continue|01 + loop $while-continue|05 local.get $0 - local.get $7 + local.get $3 i32.lt_s if local.get $2 @@ -21601,13 +21634,13 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/array/Array#indexOf$712 + br $__inlined_func$~lib/array/Array#indexOf$718 end local.get $0 i32.const 1 i32.add local.set $0 - br $while-continue|01 + br $while-continue|05 end end global.get $~lib/memory/__stack_pointer @@ -21635,12 +21668,11 @@ call $~lib/rt/__newArray local.set $2 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $2 i32.store i32.const 0 local.set $0 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -21649,29 +21681,28 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store - block $__inlined_func$~lib/array/Array#indexOf$713 + block $__inlined_func$~lib/array/Array#indexOf$719 local.get $2 i32.load offset=12 - local.tee $7 + local.tee $3 i32.eqz - local.get $7 + local.get $3 i32.const 0 i32.le_s i32.or if - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer i32.const -1 local.set $0 - br $__inlined_func$~lib/array/Array#indexOf$713 + br $__inlined_func$~lib/array/Array#indexOf$719 end global.get $~lib/memory/__stack_pointer local.get $2 @@ -21679,9 +21710,9 @@ local.get $2 i32.load offset=4 local.set $2 - loop $while-continue|02 + loop $while-continue|07 local.get $0 - local.get $7 + local.get $3 i32.lt_s if local.get $2 @@ -21697,13 +21728,13 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/array/Array#indexOf$713 + br $__inlined_func$~lib/array/Array#indexOf$719 end local.get $0 i32.const 1 i32.add local.set $0 - br $while-continue|02 + br $while-continue|07 end end global.get $~lib/memory/__stack_pointer @@ -21731,7 +21762,7 @@ i32.const 4528 call $~lib/rt/__newArray local.tee $0 - i32.store offset=88 + i32.store offset=84 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -22008,49 +22039,47 @@ call $~lib/builtins/abort unreachable end - block $__inlined_func$~lib/array/Array#includes$714 (result i32) - i32.const 1 - i32.const 2 - i32.const 9 - i32.const 4576 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $2 - i32.store - i32.const 0 - local.set $0 - local.get $3 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $3 - local.get $2 - i32.store + i32.const 1 + i32.const 2 + i32.const 9 + i32.const 4576 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + i32.const 0 + local.set $0 + global.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 + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + block $__inlined_func$~lib/array/Array#includes$720 (result i32) local.get $2 i32.load offset=12 - local.tee $7 + local.tee $3 i32.eqz - local.get $7 + local.get $3 i32.const 0 i32.le_s i32.or if - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - br $__inlined_func$~lib/array/Array#includes$714 + br $__inlined_func$~lib/array/Array#includes$720 end global.get $~lib/memory/__stack_pointer local.get $2 @@ -22058,9 +22087,9 @@ local.get $2 i32.load offset=4 local.set $2 - loop $while-continue|03 + loop $while-continue|09 local.get $0 - local.get $7 + local.get $3 i32.lt_s if local.get $2 @@ -22069,8 +22098,8 @@ i32.shl i32.add f32.load - local.tee $6 - local.get $6 + local.tee $8 + local.get $8 f32.ne if global.get $~lib/memory/__stack_pointer @@ -22078,13 +22107,13 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1 - br $__inlined_func$~lib/array/Array#includes$714 + br $__inlined_func$~lib/array/Array#includes$720 end local.get $0 i32.const 1 i32.add local.set $0 - br $while-continue|03 + br $while-continue|09 end end global.get $~lib/memory/__stack_pointer @@ -22102,49 +22131,47 @@ call $~lib/builtins/abort unreachable end - block $__inlined_func$~lib/array/Array#includes$715 (result i32) - i32.const 1 - i32.const 3 - i32.const 12 - i32.const 4608 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $2 - i32.store - i32.const 0 - local.set $0 - local.get $3 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $3 - local.get $2 - i32.store + i32.const 1 + i32.const 3 + i32.const 12 + i32.const 4608 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + i32.const 0 + local.set $0 + global.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 + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + block $__inlined_func$~lib/array/Array#includes$721 (result i32) local.get $2 i32.load offset=12 - local.tee $7 + local.tee $3 i32.eqz - local.get $7 + local.get $3 i32.const 0 i32.le_s i32.or if - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - br $__inlined_func$~lib/array/Array#includes$715 + br $__inlined_func$~lib/array/Array#includes$721 end global.get $~lib/memory/__stack_pointer local.get $2 @@ -22152,9 +22179,9 @@ local.get $2 i32.load offset=4 local.set $2 - loop $while-continue|04 + loop $while-continue|011 local.get $0 - local.get $7 + local.get $3 i32.lt_s if local.get $2 @@ -22163,8 +22190,8 @@ i32.shl i32.add f64.load - local.tee $5 - local.get $5 + local.tee $7 + local.get $7 f64.ne if global.get $~lib/memory/__stack_pointer @@ -22172,13 +22199,13 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1 - br $__inlined_func$~lib/array/Array#includes$715 + br $__inlined_func$~lib/array/Array#includes$721 end local.get $0 i32.const 1 i32.add local.set $0 - br $while-continue|04 + br $while-continue|011 end end global.get $~lib/memory/__stack_pointer @@ -22278,10 +22305,10 @@ i32.const 4640 call $~lib/rt/__newArray local.tee $0 - i32.store offset=92 + i32.store offset=88 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=52 + i32.store offset=48 i32.const 1 global.set $~argumentsLength local.get $0 @@ -22345,10 +22372,10 @@ i32.const 4768 call $~lib/rt/__newArray local.tee $0 - i32.store offset=92 + i32.store offset=88 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=52 + i32.store offset=48 local.get $0 i32.const 0 i32.const 0 @@ -22411,10 +22438,10 @@ i32.const 4896 call $~lib/rt/__newArray local.tee $0 - i32.store offset=92 + i32.store offset=88 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=52 + i32.store offset=48 i32.const 1 global.set $~argumentsLength local.get $0 @@ -22478,10 +22505,10 @@ i32.const 5008 call $~lib/rt/__newArray local.tee $0 - i32.store offset=92 + i32.store offset=88 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=52 + i32.store offset=48 local.get $0 i32.const 2 i32.const 2 @@ -22544,10 +22571,10 @@ i32.const 5120 call $~lib/rt/__newArray local.tee $0 - i32.store offset=92 + i32.store offset=88 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=52 + i32.store offset=48 local.get $0 i32.const 0 i32.const 1 @@ -22610,10 +22637,10 @@ i32.const 5248 call $~lib/rt/__newArray local.tee $0 - i32.store offset=92 + i32.store offset=88 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=52 + i32.store offset=48 i32.const 1 global.set $~argumentsLength local.get $0 @@ -22677,10 +22704,10 @@ i32.const 5376 call $~lib/rt/__newArray local.tee $0 - i32.store offset=92 + i32.store offset=88 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=52 + i32.store offset=48 i32.const 1 global.set $~argumentsLength local.get $0 @@ -22744,10 +22771,10 @@ i32.const 5488 call $~lib/rt/__newArray local.tee $0 - i32.store offset=92 + i32.store offset=88 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=52 + i32.store offset=48 local.get $0 i32.const -2 i32.const 1 @@ -22810,10 +22837,10 @@ i32.const 5616 call $~lib/rt/__newArray local.tee $0 - i32.store offset=92 + i32.store offset=88 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=52 + i32.store offset=48 local.get $0 i32.const -7 i32.const 1 @@ -22876,10 +22903,10 @@ i32.const 5744 call $~lib/rt/__newArray local.tee $0 - i32.store offset=92 + i32.store offset=88 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=52 + i32.store offset=48 local.get $0 i32.const -2 i32.const -1 @@ -22942,10 +22969,10 @@ i32.const 5872 call $~lib/rt/__newArray local.tee $0 - i32.store offset=92 + i32.store offset=88 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=52 + i32.store offset=48 local.get $0 i32.const 1 i32.const -2 @@ -23008,10 +23035,10 @@ i32.const 6000 call $~lib/rt/__newArray local.tee $0 - i32.store offset=92 + i32.store offset=88 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=52 + i32.store offset=48 local.get $0 i32.const 4 i32.const 0 @@ -23074,10 +23101,10 @@ i32.const 6128 call $~lib/rt/__newArray local.tee $0 - i32.store offset=92 + i32.store offset=88 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=52 + i32.store offset=48 local.get $0 i32.const 7 i32.const 0 @@ -23140,10 +23167,10 @@ i32.const 6256 call $~lib/rt/__newArray local.tee $0 - i32.store offset=92 + i32.store offset=88 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=52 + i32.store offset=48 local.get $0 i32.const 7 i32.const 5 @@ -23206,7 +23233,7 @@ i32.const 6384 call $~lib/rt/__newArray local.tee $0 - i32.store offset=96 + i32.store offset=92 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -23215,7 +23242,7 @@ i32.const 1 call $~lib/array/Array#splice local.tee $2 - i32.store offset=100 + i32.store offset=96 global.get $~lib/memory/__stack_pointer local.get $2 i32.store @@ -23243,18 +23270,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer i32.const 5 i32.const 2 i32.const 10 i32.const 0 call $~lib/rt/__newArray local.tee $2 - i32.store offset=104 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.load offset=4 - i32.store offset=108 + i32.store offset=100 local.get $2 i32.const 0 i32.const 1 @@ -23280,9 +23303,8 @@ i32.const 5 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $0 local.get $2 - i32.store offset=96 + i32.store offset=92 global.get $~lib/memory/__stack_pointer local.get $2 i32.store @@ -23291,7 +23313,7 @@ i32.const 2 call $~lib/array/Array#splice local.tee $0 - i32.store offset=100 + i32.store offset=96 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -23433,18 +23455,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer i32.const 3 i32.const 2 i32.const 13 i32.const 0 call $~lib/rt/__newArray local.tee $2 - i32.store offset=112 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.load offset=4 - i32.store offset=116 + i32.store offset=104 local.get $2 i32.const 0 i32.const 1 @@ -23459,11 +23477,9 @@ i32.const 2 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $0 local.get $2 - i32.store offset=120 + i32.store offset=108 global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer local.get $2 i32.store @@ -23476,107 +23492,101 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store local.get $2 i32.load offset=12 - local.tee $7 + local.tee $3 i32.const 0 - local.get $7 + local.get $3 i32.const 0 i32.le_s select - local.set $8 - local.get $3 + local.set $9 + global.get $~lib/memory/__stack_pointer i32.const 1 - local.get $7 - local.get $8 - i32.sub - local.tee $3 local.get $3 + local.get $9 + i32.sub + local.tee $10 + local.get $10 i32.const 1 i32.gt_s select - local.tee $3 + local.tee $10 i32.const 0 - local.get $3 + local.get $10 i32.const 0 i32.gt_s select - local.tee $3 + local.tee $10 i32.const 2 i32.const 13 i32.const 0 call $~lib/rt/__newArray - local.tee $9 + local.tee $11 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.tee $10 - local.get $9 + local.get $11 i32.store - local.get $9 + local.get $11 i32.load offset=4 - local.set $11 - local.get $10 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store - local.get $11 local.get $2 i32.load offset=4 - local.tee $10 - local.get $8 + local.tee $12 + local.get $9 i32.const 2 i32.shl i32.add - local.tee $11 - local.get $3 + local.tee $13 + local.get $10 i32.const 2 i32.shl memory.copy - local.get $3 - local.get $8 + local.get $9 + local.get $10 i32.add - local.tee $8 - local.get $7 + local.tee $9 + local.get $3 i32.ne if - local.get $11 - local.get $10 - local.get $8 + local.get $13 + local.get $12 + local.get $9 i32.const 2 i32.shl i32.add - local.get $7 - local.get $8 + local.get $3 + local.get $9 i32.sub i32.const 2 i32.shl memory.copy end global.get $~lib/memory/__stack_pointer - local.tee $8 local.get $2 i32.store local.get $2 - local.get $7 local.get $3 + local.get $10 i32.sub i32.store offset=12 - local.get $8 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $9 - i32.store offset=124 + local.get $11 + i32.store offset=112 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $11 i32.store - local.get $9 + local.get $11 call $~lib/array/Array#get:length i32.const 1 i32.ne @@ -23589,15 +23599,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $9 + local.get $11 i32.store offset=8 - local.get $0 - local.get $9 + global.get $~lib/memory/__stack_pointer + local.get $11 i32.const 0 call $~lib/array/Array#__get local.tee $0 - i32.store offset=128 + i32.store offset=116 local.get $0 i32.eqz if @@ -23653,15 +23662,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $2 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $2 i32.const 1 call $~lib/array/Array#__get local.tee $0 - i32.store offset=132 + i32.store offset=120 local.get $0 i32.eqz if @@ -23740,14 +23748,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 6704 i32.store offset=8 - local.get $2 + local.get $0 i32.const 6704 call $~lib/array/Array#findIndex global.set $std/array/i @@ -23763,14 +23770,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 6736 i32.store offset=8 - local.get $2 + local.get $0 i32.const 6736 call $~lib/array/Array#findIndex global.set $std/array/i @@ -23786,14 +23792,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 6768 i32.store offset=8 - local.get $2 + local.get $0 i32.const 6768 call $~lib/array/Array#findIndex global.set $std/array/i @@ -23825,14 +23830,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 6800 i32.store offset=8 - local.get $2 + local.get $0 i32.const 6800 call $~lib/array/Array#findIndex global.set $std/array/i @@ -23934,7 +23938,7 @@ i32.const 6864 call $~lib/rt/__newArray local.tee $0 - i32.store offset=136 + i32.store offset=124 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -23955,10 +23959,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 6944 i32.store offset=8 local.get $0 @@ -23977,10 +23980,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 6976 i32.store offset=8 local.get $0 @@ -23999,10 +24001,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 7008 i32.store offset=8 local.get $0 @@ -24021,14 +24022,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 7040 i32.store offset=8 - local.get $2 + local.get $0 i32.const 7040 call $~lib/array/Array#every i32.const 1 @@ -24042,14 +24042,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 7072 i32.store offset=8 - local.get $2 + local.get $0 i32.const 7072 call $~lib/array/Array#every if @@ -24061,14 +24060,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 7104 i32.store offset=8 - local.get $2 + local.get $0 i32.const 7104 call $~lib/array/Array#every i32.const 1 @@ -24098,14 +24096,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 7136 i32.store offset=8 - local.get $2 + local.get $0 i32.const 7136 call $~lib/array/Array#every if @@ -24215,14 +24212,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 7232 i32.store offset=8 - local.get $2 + local.get $0 i32.const 7232 call $~lib/array/Array#some if @@ -24234,14 +24230,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 7264 i32.store offset=8 - local.get $2 + local.get $0 i32.const 7264 call $~lib/array/Array#some if @@ -24269,14 +24264,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 7296 i32.store offset=8 - local.get $2 + local.get $0 i32.const 7296 call $~lib/array/Array#some i32.const 1 @@ -24391,14 +24385,13 @@ i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 7392 i32.store offset=8 - local.get $2 + local.get $0 i32.const 7392 call $~lib/array/Array#forEach global.get $std/array/i @@ -24431,14 +24424,13 @@ i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 7424 i32.store offset=8 - local.get $2 + local.get $0 i32.const 7424 call $~lib/array/Array#forEach global.get $std/array/i @@ -24609,16 +24601,15 @@ i32.const 3 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $3 i32.store global.get $~lib/memory/__stack_pointer i32.const 9296 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -24626,107 +24617,106 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - i64.const 0 - i64.store offset=8 + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer local.get $3 - local.get $2 i32.store + global.get $~lib/memory/__stack_pointer local.get $3 - local.get $2 i32.load offset=12 - local.tee $3 + local.tee $9 i32.const 2 i32.const 16 i32.const 0 call $~lib/rt/__newArray - local.tee $7 + local.tee $10 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $10 i32.store - local.get $7 + local.get $10 i32.load offset=4 - local.set $8 - loop $for-loop|00 + local.set $11 + i32.const 0 + local.set $2 + loop $for-loop|012 global.get $~lib/memory/__stack_pointer - local.tee $9 - local.get $2 - i32.store - local.get $1 local.get $3 + i32.store local.get $2 - i32.load offset=12 - local.tee $10 + local.get $9 local.get $3 - local.get $10 + i32.load offset=12 + local.tee $12 + local.get $9 + local.get $12 i32.lt_s select i32.lt_s if - local.get $9 - local.get $2 + global.get $~lib/memory/__stack_pointer + i32.const 9296 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $2 i32.const 2 i32.shl - local.tee $10 - local.get $2 + local.tee $12 + local.get $3 i32.load offset=4 i32.add i32.load - local.set $11 - local.get $9 - local.get $2 + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $3 i32.store i32.const 3 global.set $~argumentsLength - local.get $9 - local.get $11 - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $13 local.get $2 + local.get $3 i32.const 9296 i32.load call_indirect (type $1) - local.tee $9 - i32.store offset=12 - local.get $8 - local.get $10 + local.tee $13 + i32.store offset=16 + local.get $11 + local.get $12 i32.add - local.get $9 + local.get $13 i32.store - local.get $7 - local.get $9 + local.get $10 + local.get $13 i32.const 1 call $~lib/rt/itcms/__link - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 - br $for-loop|00 + local.set $2 + br $for-loop|012 end end global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $7 - i32.store offset=140 + local.get $10 + i32.store offset=128 global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $3 i32.store global.get $~lib/memory/__stack_pointer i32.const 9328 i32.store offset=8 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 @@ -24734,94 +24724,94 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 - local.get $2 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 i32.store - local.get $1 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $3 i32.load offset=12 - local.tee $3 + local.tee $9 i32.const 2 i32.const 9 i32.const 0 call $~lib/rt/__newArray - local.tee $7 + local.tee $10 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $10 i32.store - local.get $7 + local.get $10 i32.load offset=4 - local.set $8 + local.set $11 i32.const 0 - local.set $1 - loop $for-loop|01 + local.set $2 + loop $for-loop|013 global.get $~lib/memory/__stack_pointer - local.tee $9 - local.get $2 - i32.store - local.get $1 local.get $3 + i32.store local.get $2 - i32.load offset=12 - local.tee $10 + local.get $9 local.get $3 - local.get $10 + i32.load offset=12 + local.tee $12 + local.get $9 + local.get $12 i32.lt_s select i32.lt_s if - local.get $9 - local.get $2 + global.get $~lib/memory/__stack_pointer + i32.const 9328 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $2 i32.const 2 i32.shl - local.tee $10 - local.get $2 + local.tee $12 + local.get $3 i32.load offset=4 i32.add i32.load - local.set $11 - local.get $9 - local.get $2 + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $3 i32.store i32.const 3 global.set $~argumentsLength - local.get $8 - local.get $10 - i32.add local.get $11 - local.get $1 + local.get $12 + i32.add + local.get $13 local.get $2 + local.get $3 i32.const 9328 i32.load - call_indirect (type $15) + call_indirect (type $17) f32.store - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 - br $for-loop|01 + local.set $2 + br $for-loop|013 end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $7 - i32.store offset=144 + local.get $10 + i32.store offset=132 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $10 i32.store - local.get $7 + local.get $10 call $~lib/array/Array#get:length i32.const 4 i32.ne @@ -24834,17 +24824,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $10 i32.store - local.get $7 + local.get $10 i32.const 0 call $~lib/array/Array#__get - local.set $6 global.get $~lib/memory/__stack_pointer global.get $std/array/arr local.tee $0 i32.store - local.get $6 local.get $0 i32.const 0 call $~lib/array/Array#__get @@ -24861,14 +24849,13 @@ i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 9360 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9360 call $~lib/array/Array#map global.get $std/array/i @@ -24901,14 +24888,13 @@ i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 9392 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9392 call $~lib/array/Array#map global.get $std/array/i @@ -25015,7 +25001,7 @@ i32.const 9456 call $~lib/array/Array#filter local.tee $0 - i32.store offset=148 + i32.store offset=136 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -25034,14 +25020,13 @@ i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 9488 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9488 call $~lib/array/Array#filter drop @@ -25075,14 +25060,13 @@ i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 9520 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9520 call $~lib/array/Array#filter drop @@ -25203,14 +25187,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 9616 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9616 i32.const 4 call $~lib/array/Array#reduce @@ -25227,14 +25210,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 9648 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9648 i32.const 0 call $~lib/array/Array#reduce @@ -25248,14 +25230,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 9680 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9680 i32.const 0 call $~lib/array/Array#reduce @@ -25268,14 +25249,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 9712 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9712 i32.const 0 call $~lib/array/Array#reduce @@ -25308,14 +25288,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 9744 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9744 i32.const 0 call $~lib/array/Array#reduce @@ -25436,14 +25415,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 9840 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9840 i32.const 4 call $~lib/array/Array#reduceRight @@ -25460,14 +25438,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 9872 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9872 i32.const 0 call $~lib/array/Array#reduceRight @@ -25481,14 +25458,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 9904 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9904 i32.const 0 call $~lib/array/Array#reduceRight @@ -25501,14 +25477,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 9936 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9936 i32.const 0 call $~lib/array/Array#reduceRight @@ -25541,14 +25516,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 9968 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9968 i32.const 0 call $~lib/array/Array#reduceRight @@ -25660,26 +25634,26 @@ i64.const -7046029254386353131 call $~lib/bindings/dom/Math.random i64.reinterpret_f64 - local.tee $4 - local.get $4 + local.tee $6 + local.get $6 i64.eqz select - local.tee $4 - local.get $4 + local.tee $6 + local.get $6 i64.const 33 i64.shr_u i64.xor i64.const -49064778989728563 i64.mul - local.tee $4 - local.get $4 + local.tee $6 + local.get $6 i64.const 33 i64.shr_u i64.xor i64.const -4265267296055464877 i64.mul - local.tee $4 - local.get $4 + local.tee $6 + local.get $6 i64.const 33 i64.shr_u i64.xor @@ -25687,22 +25661,22 @@ global.get $~lib/math/random_state0_64 i64.const -1 i64.xor - local.tee $4 - local.get $4 + local.tee $6 + local.get $6 i64.const 33 i64.shr_u i64.xor i64.const -49064778989728563 i64.mul - local.tee $4 - local.get $4 + local.tee $6 + local.get $6 i64.const 33 i64.shr_u i64.xor i64.const -4265267296055464877 i64.mul - local.tee $4 - local.get $4 + local.tee $6 + local.get $6 i64.const 33 i64.shr_u i64.xor @@ -25716,250 +25690,246 @@ i32.const 0 call $~lib/rt/__newArray local.tee $0 - i32.store offset=152 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=4 - i32.store offset=156 + i32.store offset=140 global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 - i32.store offset=160 + local.tee $2 + i32.store offset=144 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 100 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 80 i32.store offset=4 local.get $0 i32.const 0 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 - i32.store offset=164 + local.tee $2 + i32.store offset=148 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 90 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 90 i32.store offset=4 local.get $0 i32.const 1 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 - i32.store offset=168 + local.tee $2 + i32.store offset=152 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 70 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 95 i32.store offset=4 local.get $0 i32.const 2 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 - i32.store offset=172 + local.tee $2 + i32.store offset=156 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 100 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 100 i32.store offset=4 local.get $0 i32.const 3 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 - i32.store offset=176 + local.tee $2 + i32.store offset=160 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 80 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 110 i32.store offset=4 local.get $0 i32.const 4 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 - i32.store offset=180 + local.tee $2 + i32.store offset=164 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 110 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 115 i32.store offset=4 local.get $0 i32.const 5 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 - i32.store offset=184 + local.tee $2 + i32.store offset=168 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 100 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 120 i32.store offset=4 local.get $0 i32.const 6 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 - i32.store offset=188 + local.tee $2 + i32.store offset=172 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 70 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 125 i32.store offset=4 local.get $0 i32.const 7 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 - i32.store offset=192 + local.tee $2 + i32.store offset=176 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 70 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 130 i32.store offset=4 local.get $0 i32.const 8 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 - i32.store offset=196 + local.tee $2 + i32.store offset=180 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 100 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 135 i32.store offset=4 local.get $0 i32.const 9 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 - i32.store offset=200 + local.tee $2 + i32.store offset=184 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 75 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 140 i32.store offset=4 local.get $0 i32.const 10 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 - i32.store offset=204 + local.tee $2 + i32.store offset=188 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 70 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 140 i32.store offset=4 local.get $0 i32.const 11 - local.get $1 + local.get $2 call $~lib/array/Array#__set local.get $0 global.set $std/array/inputStabArr @@ -25970,250 +25940,246 @@ i32.const 0 call $~lib/rt/__newArray local.tee $0 - i32.store offset=208 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=4 - i32.store offset=212 + i32.store offset=192 global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 - i32.store offset=216 + local.tee $2 + i32.store offset=196 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 70 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 95 i32.store offset=4 local.get $0 i32.const 0 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 - i32.store offset=220 + local.tee $2 + i32.store offset=200 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 70 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 125 i32.store offset=4 local.get $0 i32.const 1 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 - i32.store offset=224 + local.tee $2 + i32.store offset=204 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 70 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 130 i32.store offset=4 local.get $0 i32.const 2 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 - i32.store offset=228 + local.tee $2 + i32.store offset=208 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 70 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 140 i32.store offset=4 local.get $0 i32.const 3 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 - i32.store offset=232 + local.tee $2 + i32.store offset=212 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 75 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 140 i32.store offset=4 local.get $0 i32.const 4 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 - i32.store offset=236 + local.tee $2 + i32.store offset=216 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 80 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 110 i32.store offset=4 local.get $0 i32.const 5 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 - i32.store offset=240 + local.tee $2 + i32.store offset=220 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 90 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 90 i32.store offset=4 local.get $0 i32.const 6 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 - i32.store offset=244 + local.tee $2 + i32.store offset=224 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 100 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 80 i32.store offset=4 local.get $0 i32.const 7 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 - i32.store offset=248 + local.tee $2 + i32.store offset=228 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 100 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 100 i32.store offset=4 local.get $0 i32.const 8 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 - i32.store offset=252 + local.tee $2 + i32.store offset=232 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 100 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 120 i32.store offset=4 local.get $0 i32.const 9 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 - i32.store offset=256 + local.tee $2 + i32.store offset=236 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 100 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 135 i32.store offset=4 local.get $0 i32.const 10 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 - i32.store offset=260 + local.tee $2 + i32.store offset=240 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 110 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 115 i32.store offset=4 local.get $0 i32.const 11 - local.get $1 + local.get $2 call $~lib/array/Array#__set local.get $0 global.set $std/array/outputStabArr @@ -26224,7 +26190,7 @@ i32.const 10224 call $~lib/rt/__newArray local.tee $0 - i32.store offset=264 + i32.store offset=244 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -26240,12 +26206,12 @@ i32.const 9 i32.const 10288 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 local.get $0 - local.get $1 + local.get $2 call $std/array/isArraysEqual i32.eqz if @@ -26263,7 +26229,7 @@ i32.const 10320 call $~lib/rt/__newArray local.tee $0 - i32.store offset=268 + i32.store offset=248 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -26279,12 +26245,12 @@ i32.const 9 i32.const 10384 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 local.get $0 - local.get $1 + local.get $2 call $std/array/isArraysEqual i32.eqz if @@ -26302,7 +26268,7 @@ i32.const 10448 call $~lib/rt/__newArray local.tee $0 - i32.store offset=272 + i32.store offset=252 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -26317,23 +26283,21 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 10544 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 10544 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -26342,26 +26306,21 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=4 - local.set $2 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=12 - local.set $3 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 10544 i32.store - local.get $2 - local.get $3 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 8 @@ -26379,11 +26338,11 @@ i32.const 12 i32.const 10576 call $~lib/rt/__newArray - local.set $1 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=8 - block $__inlined_func$std/array/isArraysEqual$13 (result i32) + block $__inlined_func$std/array/isArraysEqual$7 (result i32) i32.const 0 local.set $2 global.get $~lib/memory/__stack_pointer @@ -26395,32 +26354,31 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 call $~lib/array/Array#get:length - local.set $3 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store block $folding-inner1 block $folding-inner01 - local.get $1 - call $~lib/array/Array#get:length local.get $3 + call $~lib/array/Array#get:length + local.get $9 i32.ne br_if $folding-inner01 local.get $0 - local.get $1 + local.get $3 i32.eq br_if $folding-inner1 loop $for-loop|02 local.get $2 - local.get $3 + local.get $9 i32.lt_s if global.get $~lib/memory/__stack_pointer @@ -26429,18 +26387,18 @@ local.get $0 local.get $2 call $~lib/array/Array#__get - local.tee $5 - local.get $5 + local.tee $7 + local.get $7 f64.ne if (result i32) global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store - local.get $1 + local.get $3 local.get $2 call $~lib/array/Array#__get - local.tee $5 - local.get $5 + local.tee $7 + local.get $7 f64.ne else i32.const 0 @@ -26457,12 +26415,10 @@ i64.const 63 i64.shr_u i32.wrap_i64 - local.set $7 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store - local.get $7 - local.get $1 + local.get $3 local.get $2 call $~lib/array/Array#__get i64.reinterpret_f64 @@ -26477,14 +26433,14 @@ local.get $0 local.get $2 call $~lib/array/Array#__get - local.set $5 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store - local.get $1 + local.get $3 local.get $2 call $~lib/array/Array#__get - local.get $5 + local.get $7 f64.ne br_if $folding-inner01 end @@ -26502,7 +26458,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - br $__inlined_func$std/array/isArraysEqual$13 + br $__inlined_func$std/array/isArraysEqual$7 end global.get $~lib/memory/__stack_pointer i32.const 4 @@ -26526,7 +26482,7 @@ i32.const 10672 call $~lib/rt/__newArray local.tee $0 - i32.store offset=276 + i32.store offset=256 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -26541,20 +26497,18 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 10720 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 10720 i32.store offset=8 local.get $0 @@ -26573,12 +26527,12 @@ i32.const 4 i32.const 10752 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 local.get $0 - local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -26597,7 +26551,7 @@ i32.const 10800 call $~lib/rt/__newArray local.tee $0 - i32.store offset=280 + i32.store offset=260 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -26612,23 +26566,21 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 10848 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 10848 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -26637,26 +26589,21 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=4 - local.set $2 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=12 - local.set $3 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 10848 i32.store - local.get $2 - local.get $3 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 8 @@ -26674,12 +26621,12 @@ i32.const 8 i32.const 10880 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 local.get $0 - local.get $1 + local.get $2 call $std/array/isArraysEqual i32.eqz if @@ -26696,89 +26643,89 @@ i32.const 4 i32.const 10928 call $~lib/rt/__newArray - local.tee $1 - i32.store offset=284 + local.tee $3 + i32.store offset=264 global.get $~lib/memory/__stack_pointer i32.const 1 i32.const 2 i32.const 4 i32.const 10960 call $~lib/rt/__newArray - local.tee $2 - i32.store offset=288 + local.tee $9 + i32.store offset=268 global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 i32.const 4 i32.const 10992 call $~lib/rt/__newArray - local.tee $3 - i32.store offset=292 + local.tee $10 + i32.store offset=272 global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 2 i32.const 4 i32.const 11024 call $~lib/rt/__newArray - local.tee $7 - i32.store offset=296 + local.tee $11 + i32.store offset=276 global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 2 i32.const 4 i32.const 11072 call $~lib/rt/__newArray - local.tee $8 - i32.store offset=300 + local.tee $12 + i32.store offset=280 global.get $~lib/memory/__stack_pointer i32.const 64 call $std/array/createReverseOrderedArray - local.tee $9 - i32.store offset=304 + local.tee $13 + i32.store offset=284 global.get $~lib/memory/__stack_pointer i32.const 128 call $std/array/createReverseOrderedArray - local.tee $10 - i32.store offset=308 + local.tee $14 + i32.store offset=288 global.get $~lib/memory/__stack_pointer i32.const 1024 call $std/array/createReverseOrderedArray - local.tee $11 - i32.store offset=312 + local.tee $15 + i32.store offset=292 global.get $~lib/memory/__stack_pointer i32.const 10000 call $std/array/createReverseOrderedArray local.tee $0 - i32.store offset=316 + i32.store offset=296 global.get $~lib/memory/__stack_pointer i32.const 512 call $std/array/createRandomOrderedArray - local.tee $12 - i32.store offset=320 + local.tee $2 + i32.store offset=300 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store - local.get $1 + local.get $3 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $9 i32.store - local.get $2 + local.get $9 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $9 i32.store i32.const 1 i32.const 2 i32.const 4 i32.const 11152 call $~lib/rt/__newArray - local.set $1 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=8 - local.get $2 - local.get $1 + local.get $9 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -26791,24 +26738,24 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $10 i32.store - local.get $3 + local.get $10 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $10 i32.store i32.const 2 i32.const 2 i32.const 4 i32.const 11184 call $~lib/rt/__newArray - local.set $1 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=8 + local.get $10 local.get $3 - local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -26821,18 +26768,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $11 i32.store - local.get $7 + local.get $11 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $11 i32.store global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $12 i32.store offset=8 - local.get $7 - local.get $8 + local.get $11 + local.get $12 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -26845,18 +26792,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $13 i32.store - local.get $9 + local.get $13 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $13 i32.store global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $12 i32.store offset=8 - local.get $9 - local.get $8 + local.get $13 + local.get $12 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -26869,18 +26816,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $14 i32.store - local.get $10 + local.get $14 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $14 i32.store global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $12 i32.store offset=8 - local.get $10 - local.get $8 + local.get $14 + local.get $12 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -26893,18 +26840,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $15 i32.store - local.get $11 + local.get $15 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $15 i32.store global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $12 i32.store offset=8 - local.get $11 - local.get $8 + local.get $15 + local.get $12 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -26925,10 +26872,10 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $12 i32.store offset=8 local.get $0 - local.get $8 + local.get $12 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -26941,9 +26888,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $2 i32.store - local.get $12 + local.get $2 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer i32.const 24 @@ -26954,11 +26901,11 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 24 memory.fill - local.get $1 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer global.get $std/array/inputStabArr local.tee $0 i32.store offset=8 @@ -26976,10 +26923,9 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -26988,84 +26934,82 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=12 - local.tee $2 + local.tee $3 i32.const 0 - local.get $2 + local.get $3 i32.const 0 i32.le_s select - local.set $3 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $2 local.get $3 + local.get $9 i32.sub - local.tee $2 + local.tee $3 i32.const 0 - local.get $2 + local.get $3 i32.const 0 i32.gt_s select - local.tee $2 + local.tee $3 i32.const 2 i32.const 23 i32.const 0 call $~lib/rt/__newArray - local.tee $7 + local.tee $10 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.tee $8 - local.get $7 + local.get $10 i32.store - local.get $7 + local.get $10 i32.load offset=4 - local.set $9 - local.get $8 + local.set $11 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 - local.get $3 + local.get $9 i32.const 2 i32.shl i32.add - local.set $3 + local.set $9 i32.const 0 local.set $0 - local.get $2 + local.get $3 i32.const 2 i32.shl - local.set $2 - loop $while-continue|05 + local.set $3 + loop $while-continue|06 local.get $0 - local.get $2 + local.get $3 i32.lt_u if local.get $0 - local.get $9 + local.get $11 i32.add local.get $0 - local.get $3 + local.get $9 i32.add i32.load - local.tee $8 + local.tee $12 i32.store - local.get $7 - local.get $8 + local.get $10 + local.get $12 i32.const 1 call $~lib/rt/itcms/__link local.get $0 i32.const 4 i32.add local.set $0 - br $while-continue|05 + br $while-continue|06 end end global.get $~lib/memory/__stack_pointer @@ -27077,100 +27021,90 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $7 + local.get $10 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11216 i32.store offset=4 - local.get $1 - local.get $7 + local.get $10 i32.const 11216 call $~lib/array/Array#sort local.tee $0 i32.store offset=12 i32.const 1 - local.set $3 - i32.const 0 - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer global.get $std/array/inputStabArr - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 call $~lib/array/Array#get:length - local.set $2 - loop $for-loop|023 - local.get $1 - local.get $2 - i32.lt_s + local.set $3 + loop $for-loop|014 + local.get $3 + local.get $4 + i32.gt_s if block $for-break0 global.get $~lib/memory/__stack_pointer - local.tee $7 local.get $0 i32.store - local.get $7 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 + local.get $4 call $~lib/array/Array#__get - local.tee $7 + local.tee $9 i32.store offset=16 global.get $~lib/memory/__stack_pointer global.get $std/array/outputStabArr - local.tee $8 + local.tee $10 i32.store global.get $~lib/memory/__stack_pointer - local.get $8 - local.get $1 + local.get $10 + local.get $4 call $~lib/array/Array#__get - local.tee $8 + local.tee $10 i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store - local.get $7 + local.get $9 i32.load - local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store - local.get $9 - local.get $8 + local.get $10 i32.load i32.ne if (result i32) i32.const 1 else global.get $~lib/memory/__stack_pointer - local.tee $9 - local.get $7 + local.get $9 i32.store - local.get $7 - i32.load offset=4 - local.set $7 local.get $9 - local.get $8 + i32.load offset=4 + global.get $~lib/memory/__stack_pointer + local.get $10 i32.store - local.get $7 - local.get $8 + local.get $10 i32.load offset=4 i32.ne end if i32.const 0 - local.set $3 + local.set $2 br $for-break0 end - local.get $1 + local.get $4 i32.const 1 i32.add - local.set $1 - br $for-loop|023 + local.set $4 + br $for-loop|014 end end end - local.get $3 + local.get $2 i32.eqz if i32.const 0 @@ -27188,12 +27122,12 @@ i32.const 64 call $std/array/createRandomOrderedArray local.tee $0 - i32.store offset=324 + i32.store offset=304 global.get $~lib/memory/__stack_pointer i32.const 257 call $std/array/createRandomOrderedArray - local.tee $1 - i32.store offset=328 + local.tee $2 + i32.store offset=308 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -27213,25 +27147,24 @@ i32.const 11280 call $std/array/assertSorted global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer i32.const 11312 i32.store offset=8 - local.get $1 + local.get $2 i32.const 11312 call $std/array/assertSorted global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer i32.const 11344 i32.store offset=8 - local.get $1 + local.get $2 i32.const 11344 call $std/array/assertSorted global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -27241,13 +27174,13 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + 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 16 i32.sub global.set $~lib/memory/__stack_pointer @@ -27256,93 +27189,91 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 29 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 0 i32.store - local.get $2 + local.get $3 i32.const 0 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 32 i32.const 1 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=12 - local.get $2 local.get $3 + local.get $4 i32.store - local.get $2 local.get $3 + local.get $4 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 local.get $3 + local.get $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 32 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 2 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $2 + local.get $3 i32.store i32.const 0 local.set $0 - loop $for-loop|03 + loop $for-loop|015 local.get $0 i32.const 2 i32.lt_s @@ -27350,52 +27281,50 @@ global.get $~lib/memory/__stack_pointer i32.const 1 call $~lib/array/Array#constructor - local.tee $3 + local.tee $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 - local.get $3 + local.get $4 i32.const 0 i32.const 1 local.get $0 i32.sub call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=12 - local.get $2 - local.get $0 local.get $3 + local.get $0 + local.get $4 call $~lib/array/Array#__set local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|03 + br $for-loop|015 end end global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $2 - i32.store offset=332 + local.get $3 + i32.store offset=312 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store global.get $~lib/memory/__stack_pointer i32.const 11376 i32.store offset=8 - local.get $2 + local.get $3 i32.const 11376 call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -27405,13 +27334,13 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + 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 16 i32.sub global.set $~lib/memory/__stack_pointer @@ -27420,102 +27349,99 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 32 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 0 i32.store - local.get $2 + local.get $3 i32.const 0 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 2048 i32.const 1 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=12 - local.get $2 local.get $3 + local.get $4 i32.store - local.get $2 local.get $3 + local.get $4 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 local.get $3 + local.get $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 2048 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 512 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $2 + local.get $3 i32.store i32.const 0 - local.set $1 - loop $for-loop|04 - local.get $1 + local.set $2 + loop $for-loop|06 + local.get $2 i32.const 512 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $2 - i32.store offset=4 local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -27524,56 +27450,53 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 31 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $4 i32.store global.get $~lib/memory/__stack_pointer - local.tee $7 - local.get $3 + local.get $4 i32.store offset=4 - local.get $3 + local.get $4 i32.const 511 - local.get $1 + local.get $2 i32.sub i32.store - local.get $7 + 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 $3 + local.get $4 i32.store offset=8 - local.get $2 - local.get $1 local.get $3 + local.get $2 + local.get $4 call $~lib/array/Array#__set - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 - br $for-loop|04 + local.set $2 + br $for-loop|06 end end global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $2 - i32.store offset=336 + local.get $3 + i32.store offset=316 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store global.get $~lib/memory/__stack_pointer i32.const 11408 i32.store offset=8 - local.get $2 + local.get $3 i32.const 11408 call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer @@ -27583,7 +27506,7 @@ i32.const 11600 call $~lib/rt/__newArray local.tee $0 - i32.store offset=340 + i32.store offset=320 global.get $~lib/memory/__stack_pointer i32.const 7 i32.const 2 @@ -27591,7 +27514,7 @@ i32.const 11648 call $~lib/rt/__newArray local.tee $2 - i32.store offset=344 + i32.store offset=324 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -27606,23 +27529,21 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 11696 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 11696 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer @@ -27631,83 +27552,84 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - block $__inlined_func$std/array/isSorted<~lib/string/String|null>$660 (result i32) - local.get $1 - local.get $0 - i32.store offset=8 - local.get $1 - i32.const 11696 - i32.store offset=12 - local.get $0 - i32.const 11696 - call $~lib/array/Array#sort - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - global.get $~lib/memory/__stack_pointer - 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 16192 - i32.lt_s - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - local.tee $7 - i64.const 0 - i64.store - local.get $7 - i32.const 0 - i32.store offset=8 - i32.const 1 - local.set $1 - local.get $7 - local.get $3 - i32.store - local.get $3 - call $~lib/array/Array#get:length - local.set $7 - loop $for-loop|05 - local.get $1 - local.get $7 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 11696 + i32.store offset=12 + local.get $0 + i32.const 11696 + call $~lib/array/Array#sort + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11696 + 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 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 + i64.const 0 + i64.store offset=8 + i32.const 1 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array#get:length + local.set $9 + block $__inlined_func$std/array/isSorted<~lib/string/String|null>$666 (result i32) + loop $for-loop|07 + local.get $4 + local.get $9 i32.lt_s if + global.get $~lib/memory/__stack_pointer + i32.const 11696 + i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $3 - i32.store offset=8 + i32.store offset=12 local.get $3 - local.get $1 + local.get $4 i32.const 1 i32.sub call $~lib/array/Array#__get - local.set $8 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store global.get $~lib/memory/__stack_pointer local.get $3 - i32.store offset=8 + i32.store offset=12 local.get $3 - local.get $1 + local.get $4 call $~lib/array/Array#__get - local.set $9 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 + local.get $11 + i32.store offset=8 i32.const 2 global.set $~argumentsLength - local.get $8 - local.get $9 + local.get $10 + local.get $11 i32.const 11696 i32.load call_indirect (type $0) @@ -27715,21 +27637,21 @@ i32.gt_s if global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - br $__inlined_func$std/array/isSorted<~lib/string/String|null>$660 + br $__inlined_func$std/array/isSorted<~lib/string/String|null>$666 end - local.get $1 + local.get $4 i32.const 1 i32.add - local.set $1 - br $for-loop|05 + local.set $4 + br $for-loop|07 end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer i32.const 1 @@ -27751,37 +27673,36 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - block $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$740 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - 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 16192 - i32.lt_s - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 - local.get $0 - i32.store - local.get $0 - call $~lib/array/Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + 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 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 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + block $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$752 (result i32) local.get $2 call $~lib/array/Array#get:length local.get $3 @@ -27792,7 +27713,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$740 + br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$752 end local.get $0 local.get $2 @@ -27803,34 +27724,34 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1 - br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$740 + br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$752 end i32.const 0 - local.set $1 - loop $for-loop|06 - local.get $1 + local.set $4 + loop $for-loop|08 local.get $3 - i32.lt_s + local.get $4 + 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 $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=8 local.get $2 - local.get $1 + local.get $4 call $~lib/array/Array#__get - local.set $8 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -27841,38 +27762,35 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $9 i64.const 0 i64.store + global.get $~lib/memory/__stack_pointer local.get $9 - local.get $7 i32.store - local.get $9 - local.get $8 + global.get $~lib/memory/__stack_pointer + local.get $10 i32.store offset=4 - local.get $7 - local.get $8 + local.get $9 + local.get $10 call $~lib/string/String.__eq i32.eqz - local.set $7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 if global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$740 + br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$752 end - local.get $1 + local.get $4 i32.const 1 i32.add - local.set $1 - br $for-loop|06 + local.set $4 + br $for-loop|08 end end global.get $~lib/memory/__stack_pointer @@ -27891,7 +27809,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $7 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -27900,13 +27818,13 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + 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 16 i32.sub global.set $~lib/memory/__stack_pointer @@ -27915,109 +27833,105 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 16 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $10 i32.store global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store offset=4 - local.get $8 + local.get $10 i32.const 0 i32.store - local.get $8 + local.get $10 i32.const 0 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store offset=4 - local.get $8 + local.get $10 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store offset=4 - local.get $8 + local.get $10 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store offset=4 - local.get $8 + local.get $10 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 $8 + local.get $10 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=12 - local.get $8 - local.get $1 + local.get $10 + local.get $2 i32.store - local.get $8 - local.get $1 + local.get $10 + local.get $2 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store offset=4 - local.get $8 - local.get $1 + local.get $10 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store offset=4 - local.get $8 + local.get $10 i32.const 1600 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store offset=4 - local.get $8 + local.get $10 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 $0 - local.get $8 + local.get $10 i32.store i32.const 0 - local.set $1 - loop $for-loop|045 - local.get $1 + local.set $2 + loop $for-loop|019 + local.get $2 i32.const 400 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store offset=4 call $~lib/math/NativeMath.random f64.const 32 f64.mul i32.trunc_sat_f64_s - local.set $9 - i32.const 0 - local.set $2 + local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -28025,33 +27939,28 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $0 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 - memory.fill + i32.store offset=8 i32.const 11568 - local.set $3 - local.get $0 + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 11568 i32.store - loop $for-loop|07 - local.get $2 - local.get $9 + i32.const 0 + local.set $4 + loop $for-loop|00 + local.get $4 + local.get $11 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $10 - local.get $3 + local.get $0 i32.store offset=4 - local.get $10 - i32.const 10032 - i32.store offset=12 - call $~lib/math/NativeMath.random - local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 10032 - i32.store offset=16 - local.get $5 + call $~lib/math/NativeMath.random i32.const 10028 i32.load i32.const 1 @@ -28060,7 +27969,7 @@ f64.mul f64.floor i32.trunc_sat_f64_s - local.set $11 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -28070,36 +27979,35 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 10032 i32.store - block $__inlined_func$~lib/string/String#charAt$735 - local.get $11 + block $__inlined_func$~lib/string/String#charAt$741 + local.get $13 i32.const 10028 i32.load i32.const 1 i32.shr_u i32.ge_u if - local.get $0 + 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#charAt$735 + local.set $3 + br $__inlined_func$~lib/string/String#charAt$741 end global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $3 i32.store offset=4 - local.get $0 - local.get $11 + local.get $3 + local.get $13 i32.const 1 i32.shl i32.const 10032 @@ -28112,48 +28020,46 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $10 local.get $3 + i32.store offset=8 local.get $0 + local.get $3 call $~lib/string/String.__concat - local.tee $3 + local.tee $0 i32.store - local.get $2 + local.get $4 i32.const 1 i32.add - local.set $2 - br $for-loop|07 + local.set $4 + br $for-loop|00 end end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 - local.get $8 - local.get $1 - local.get $3 + local.get $10 + local.get $2 + local.get $0 call $~lib/array/Array#__set - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 - br $for-loop|045 + local.set $2 + br $for-loop|019 end end global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 - local.get $8 - i32.store offset=348 + local.get $10 + i32.store offset=328 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store i32.const 1 global.set $~argumentsLength @@ -28166,23 +28072,21 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 11728 i32.store global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $8 + local.get $10 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11728 i32.store offset=8 - local.get $8 + local.get $10 i32.const 11728 call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer @@ -28197,10 +28101,7 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=52 - global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store offset=352 + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -28210,28 +28111,27 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 local.set $3 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=12 local.set $0 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store i32.const 0 - local.set $1 - i32.const 0 local.set $2 + i32.const 0 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -28241,27 +28141,26 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $7 i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinBooleanArray$19 + block $__inlined_func$~lib/util/string/joinBooleanArray$12 local.get $0 i32.const 1 i32.sub - local.tee $8 + local.tee $9 i32.const 0 i32.lt_s if - local.get $7 + 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/util/string/joinBooleanArray$19 + br $__inlined_func$~lib/util/string/joinBooleanArray$12 end - block $folding-inner04 - local.get $8 + block $folding-inner07 + local.get $9 i32.eqz if i32.const 11792 @@ -28270,129 +28169,128 @@ i32.load8_u select local.set $0 - br $folding-inner04 + br $folding-inner07 end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 11856 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11852 i32.load i32.const 1 i32.shr_u - local.tee $7 + local.tee $10 i32.const 5 i32.add - local.get $8 + local.get $9 i32.mul i32.const 5 i32.add - local.tee $9 + local.tee $11 i32.const 1 i32.shl i32.const 2 call $~lib/rt/itcms/__new local.tee $0 i32.store offset=4 - loop $for-loop|15 - local.get $2 - local.get $8 + loop $for-loop|18 + local.get $4 + local.get $9 i32.lt_s if - local.get $2 local.get $3 + local.get $4 i32.add i32.load8_u - local.tee $10 + local.tee $12 i32.eqz i32.const 4 i32.add - local.set $11 + local.set $13 local.get $0 - local.get $1 + local.get $2 i32.const 1 i32.shl i32.add i32.const 11792 i32.const 11824 - local.get $10 + local.get $12 select - local.get $11 + local.get $13 i32.const 1 i32.shl memory.copy - local.get $1 - local.get $11 + local.get $2 + local.get $13 i32.add - local.set $1 - local.get $7 + local.set $2 + local.get $10 if local.get $0 - local.get $1 + local.get $2 i32.const 1 i32.shl i32.add i32.const 11856 - local.get $7 + local.get $10 i32.const 1 i32.shl memory.copy - local.get $1 - local.get $7 + local.get $2 + local.get $10 i32.add - local.set $1 + local.set $2 end - local.get $2 + local.get $4 i32.const 1 i32.add - local.set $2 - br $for-loop|15 + local.set $4 + br $for-loop|18 end end local.get $3 - local.get $8 + local.get $9 i32.add i32.load8_u - local.tee $2 + local.tee $3 i32.eqz i32.const 4 i32.add - local.set $3 + local.set $4 local.get $0 - local.get $1 + local.get $2 i32.const 1 i32.shl i32.add i32.const 11792 i32.const 11824 - local.get $2 - select local.get $3 + select + local.get $4 i32.const 1 i32.shl memory.copy - local.get $1 - local.get $3 - i32.add - local.tee $1 - local.get $9 + local.get $2 + local.get $4 + i32.add + local.tee $2 + local.get $11 i32.lt_s if global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - local.get $1 + local.get $2 call $~lib/string/String#substring local.set $0 - br $folding-inner04 + br $folding-inner07 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinBooleanArray$19 + br $__inlined_func$~lib/util/string/joinBooleanArray$12 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -28406,9 +28304,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11888 - i32.store offset=8 local.get $0 i32.const 11888 call $~lib/string/String.__eq @@ -28428,12 +28323,8 @@ call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 - i32.store offset=52 - local.get $1 - i32.const 11568 - i32.store offset=352 + i32.store offset=8 local.get $0 i32.const 11568 call $~lib/array/Array#join @@ -28441,9 +28332,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11968 - i32.store offset=8 local.get $0 i32.const 11968 call $~lib/string/String.__eq @@ -28463,12 +28351,8 @@ call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 - i32.store offset=52 - local.get $1 - i32.const 12032 - i32.store offset=352 + i32.store offset=8 local.get $0 i32.const 12032 call $~lib/array/Array#join @@ -28476,9 +28360,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11968 - i32.store offset=8 local.get $0 i32.const 11968 call $~lib/string/String.__eq @@ -28498,12 +28379,8 @@ call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 - i32.store offset=52 - local.get $1 - i32.const 12096 - i32.store offset=352 + i32.store offset=8 local.get $0 i32.const 12096 call $~lib/array/Array#join @@ -28511,9 +28388,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 12128 - i32.store offset=8 local.get $0 i32.const 12128 call $~lib/string/String.__eq @@ -28533,13 +28407,9 @@ call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 - i32.store offset=52 - local.get $1 - i32.const 12288 - i32.store offset=352 - local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -28548,26 +28418,21 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 - local.set $2 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=12 - local.set $0 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 12288 i32.store - local.get $2 - local.get $0 call $~lib/util/string/joinFloatArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -28577,9 +28442,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13456 - i32.store offset=8 local.get $0 i32.const 13456 call $~lib/string/String.__eq @@ -28599,12 +28461,8 @@ call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 - i32.store offset=52 - local.get $1 - i32.const 11568 - i32.store offset=352 + i32.store offset=8 local.get $0 i32.const 11568 call $~lib/array/Array<~lib/string/String|null>#join @@ -28612,9 +28470,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13568 - i32.store offset=8 local.get $0 i32.const 13568 call $~lib/string/String.__eq @@ -28628,50 +28483,39 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer i32.const 3 i32.const 2 i32.const 13 i32.const 0 call $~lib/rt/__newArray - local.tee $1 - i32.store offset=356 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=4 - i32.store offset=360 - local.get $1 + local.tee $2 + i32.store offset=332 + local.get $2 i32.const 0 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $1 + local.get $2 i32.const 1 i32.const 0 call $~lib/array/Array#__set - local.get $1 + local.get $2 i32.const 2 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $0 - local.get $1 - i32.store offset=364 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=52 + local.get $2 + i32.store offset=336 global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store offset=352 - local.get $1 + local.get $2 + i32.store offset=8 + local.get $2 call $~lib/array/Array#join local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13696 - i32.store offset=8 local.get $0 i32.const 13696 call $~lib/string/String.__eq @@ -28685,46 +28529,35 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 i32.const 10 i32.const 0 call $~lib/rt/__newArray - local.tee $1 - i32.store offset=368 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=4 - i32.store offset=372 - local.get $1 + local.tee $2 + i32.store offset=340 + local.get $2 i32.const 0 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $1 + local.get $2 i32.const 1 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $0 - local.get $1 - i32.store offset=376 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=52 + local.get $2 + i32.store offset=344 global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store offset=352 - local.get $1 + local.get $2 + i32.store offset=8 + local.get $2 call $~lib/array/Array#join local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13792 - i32.store offset=8 local.get $0 i32.const 13792 call $~lib/string/String.__eq @@ -28744,43 +28577,40 @@ i32.const 13888 call $~lib/rt/__newArray local.tee $0 - i32.store offset=380 + i32.store offset=348 global.get $~lib/memory/__stack_pointer i32.const 1 i32.const 2 i32.const 4 i32.const 13920 call $~lib/rt/__newArray - local.tee $1 - i32.store offset=384 + local.tee $2 + i32.store offset=352 global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 i32.const 4 i32.const 13952 call $~lib/rt/__newArray - local.tee $2 - i32.store offset=388 + local.tee $3 + i32.store offset=356 global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 2 i32.const 4 i32.const 13984 call $~lib/rt/__newArray - local.tee $3 - i32.store offset=392 + local.tee $4 + i32.store offset=360 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=52 + i32.store offset=8 local.get $0 call $~lib/array/Array#toString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11568 - i32.store offset=8 local.get $0 i32.const 11568 call $~lib/string/String.__eq @@ -28794,17 +28624,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=52 - local.get $1 + local.get $2 + i32.store offset=8 + local.get $2 call $~lib/array/Array#toString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13568 - i32.store offset=8 local.get $0 i32.const 13568 call $~lib/string/String.__eq @@ -28818,17 +28645,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=52 - local.get $2 + local.get $3 + i32.store offset=8 + local.get $3 call $~lib/array/Array#toString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14032 - i32.store offset=8 local.get $0 i32.const 14032 call $~lib/string/String.__eq @@ -28842,17 +28666,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=52 - local.get $3 + local.get $4 + i32.store offset=8 + local.get $4 call $~lib/array/Array#toString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14064 - i32.store offset=8 local.get $0 i32.const 14064 call $~lib/string/String.__eq @@ -28873,16 +28694,13 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=52 + i32.store offset=8 local.get $0 call $~lib/array/Array#toString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14144 - i32.store offset=8 local.get $0 i32.const 14144 call $~lib/string/String.__eq @@ -28903,16 +28721,13 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=52 + i32.store offset=8 local.get $0 call $~lib/array/Array#toString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14208 - i32.store offset=8 local.get $0 i32.const 14208 call $~lib/string/String.__eq @@ -28932,11 +28747,10 @@ call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 - i32.store offset=52 - local.get $1 - i32.const 8 + 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 @@ -28944,16 +28758,12 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 - i32.const 11856 - i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -28962,28 +28772,23 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 local.set $2 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=12 - local.set $7 - local.get $1 + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store - i32.const 0 - local.set $0 - i32.const 0 - local.set $3 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -28993,136 +28798,133 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$20 - local.get $7 + block $__inlined_func$~lib/util/string/joinIntegerArray$745 + local.get $0 i32.const 1 i32.sub - local.tee $7 + local.tee $3 i32.const 0 i32.lt_s if - local.get $1 + 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/util/string/joinIntegerArray$20 + br $__inlined_func$~lib/util/string/joinIntegerArray$745 end - block $folding-inner05 - local.get $7 - i32.eqz + local.get $3 + i32.eqz + if + local.get $2 + i32.load16_u + call $~lib/util/number/utoa32 + local.set $0 + 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 + end + global.get $~lib/memory/__stack_pointer + i32.const 11856 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11852 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 10 + i32.add + local.get $3 + i32.mul + i32.const 10 + i32.add + local.tee $9 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + loop $for-loop|03 + local.get $3 + local.get $5 + i32.gt_s if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add local.get $2 + local.get $5 + i32.const 1 + i32.shl + i32.add i32.load16_u - call $~lib/util/number/utoa32 - local.set $0 - br $folding-inner05 - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 11856 - i32.store - local.get $1 - i32.const 11852 - i32.load - i32.const 1 - i32.shr_u - local.tee $8 - i32.const 10 - i32.add - local.get $7 - i32.mul - i32.const 10 - i32.add - local.tee $9 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=4 - loop $for-loop|08 - local.get $3 - local.get $7 - i32.lt_s + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.set $1 + local.get $4 if - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add - local.get $2 - local.get $3 + i32.const 11856 + local.get $4 i32.const 1 i32.shl + memory.copy + local.get $1 + local.get $4 i32.add - i32.load16_u - call $~lib/util/number/itoa_buffered - local.get $0 - i32.add - local.set $0 - local.get $8 - if - local.get $1 - local.get $0 - i32.const 1 - i32.shl - i32.add - i32.const 11856 - local.get $8 - i32.const 1 - i32.shl - memory.copy - local.get $0 - local.get $8 - i32.add - local.set $0 - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|08 + local.set $1 end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|03 end - local.get $1 + end + local.get $9 + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.load16_u + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.tee $1 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $7 - i32.const 1 - i32.shl - i32.add - i32.load16_u - call $~lib/util/number/itoa_buffered + i32.store local.get $0 - i32.add - local.tee $0 - local.get $9 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - local.get $0 - call $~lib/string/String#substring - local.set $0 - br $folding-inner05 - end + local.get $1 + call $~lib/string/String#substring + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$20 + br $__inlined_func$~lib/util/string/joinIntegerArray$745 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -29134,15 +28936,12 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14288 - i32.store offset=8 local.get $0 i32.const 14288 call $~lib/string/String.__eq @@ -29162,11 +28961,14 @@ call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 - i32.store offset=52 - local.get $1 - i32.const 8 + i32.store offset=8 + i32.const 0 + local.set $1 + i32.const 0 + 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 @@ -29174,16 +28976,12 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 - i32.const 11856 - i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -29192,28 +28990,23 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 local.set $2 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=12 - local.set $7 - local.get $1 + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store - i32.const 0 - local.set $0 - i32.const 0 - local.set $3 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -29223,136 +29016,133 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$21 - local.get $7 + block $__inlined_func$~lib/util/string/joinIntegerArray$746 + local.get $0 i32.const 1 i32.sub - local.tee $7 + local.tee $3 i32.const 0 i32.lt_s if - local.get $1 + 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/util/string/joinIntegerArray$21 + br $__inlined_func$~lib/util/string/joinIntegerArray$746 end - block $folding-inner06 - local.get $7 - i32.eqz + local.get $3 + i32.eqz + if + local.get $2 + i32.load16_s + call $~lib/util/number/itoa32 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$746 + end + global.get $~lib/memory/__stack_pointer + i32.const 11856 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11852 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 11 + i32.add + local.get $3 + i32.mul + i32.const 11 + i32.add + local.tee $9 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + loop $for-loop|05 + local.get $3 + local.get $5 + i32.gt_s if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add local.get $2 + local.get $5 + i32.const 1 + i32.shl + i32.add i32.load16_s - call $~lib/util/number/itoa32 - local.set $0 - br $folding-inner06 - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 11856 - i32.store - local.get $1 - i32.const 11852 - i32.load - i32.const 1 - i32.shr_u - local.tee $8 - i32.const 11 - i32.add - local.get $7 - i32.mul - i32.const 11 - i32.add - local.tee $9 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=4 - loop $for-loop|09 - local.get $3 - local.get $7 - i32.lt_s + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.set $1 + local.get $4 if - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add - local.get $2 - local.get $3 + i32.const 11856 + local.get $4 i32.const 1 i32.shl + memory.copy + local.get $1 + local.get $4 i32.add - i32.load16_s - call $~lib/util/number/itoa_buffered - local.get $0 - i32.add - local.set $0 - local.get $8 - if - local.get $1 - local.get $0 - i32.const 1 - i32.shl - i32.add - i32.const 11856 - local.get $8 - i32.const 1 - i32.shl - memory.copy - local.get $0 - local.get $8 - i32.add - local.set $0 - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|09 + local.set $1 end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|05 end - local.get $1 + end + local.get $9 + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.load16_s + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.tee $1 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $7 - i32.const 1 - i32.shl - i32.add - i32.load16_s - call $~lib/util/number/itoa_buffered + i32.store local.get $0 - i32.add - local.tee $0 - local.get $9 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - local.get $0 - call $~lib/string/String#substring - local.set $0 - br $folding-inner06 - end + local.get $1 + call $~lib/string/String#substring + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$21 + br $__inlined_func$~lib/util/string/joinIntegerArray$746 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -29364,15 +29154,12 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14368 - i32.store offset=8 local.get $0 i32.const 14368 call $~lib/string/String.__eq @@ -29393,16 +29180,13 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=52 + i32.store offset=8 local.get $0 call $~lib/array/Array#toString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14448 - i32.store offset=8 local.get $0 i32.const 14448 call $~lib/string/String.__eq @@ -29422,11 +29206,10 @@ call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 - i32.store offset=52 - local.get $1 - i32.const 8 + 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 @@ -29434,16 +29217,12 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 - i32.const 11856 - i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -29452,26 +29231,21 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 - local.set $2 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=12 - local.set $0 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store - local.get $2 - local.get $0 call $~lib/util/string/joinIntegerArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -29479,15 +29253,12 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14560 - i32.store offset=8 local.get $0 i32.const 14560 call $~lib/string/String.__eq @@ -29507,11 +29278,10 @@ call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 - i32.store offset=52 - local.get $1 - i32.const 8 + 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 @@ -29519,16 +29289,12 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 - i32.const 11856 - i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -29537,28 +29303,27 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 - local.set $2 - local.get $1 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=12 - local.set $7 - local.get $1 + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store i32.const 0 - local.set $0 + local.set $2 i32.const 0 - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -29568,34 +29333,33 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$22 - local.get $7 + block $__inlined_func$~lib/util/string/joinIntegerArray$13 + local.get $0 i32.const 1 i32.sub - local.tee $7 + local.tee $3 i32.const 0 i32.lt_s if - local.get $1 + 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/util/string/joinIntegerArray$22 + br $__inlined_func$~lib/util/string/joinIntegerArray$13 end - block $folding-inner07 - local.get $7 + block $folding-inner09 + local.get $3 i32.eqz if - block $__inlined_func$~lib/util/number/itoa64$2 (result i32) - local.get $2 + block $__inlined_func$~lib/util/number/itoa64$4 (result i32) + local.get $1 i64.load i64.extend32_s - local.set $4 + local.set $6 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -29605,24 +29369,23 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $4 + local.get $6 i64.eqz if - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer i32.const 7712 - br $__inlined_func$~lib/util/number/itoa64$2 + br $__inlined_func$~lib/util/number/itoa64$4 end i64.const 0 - local.get $4 + local.get $6 i64.sub - local.get $4 - local.get $4 + local.get $6 + local.get $6 i64.const 63 i64.shr_u i32.wrap_i64 @@ -29630,12 +29393,12 @@ i32.shl local.tee $0 select - local.tee $4 + local.tee $6 i64.const 4294967295 i64.le_u if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $6 i32.wrap_i64 local.tee $1 i32.const 100000 @@ -29683,68 +29446,68 @@ i32.add end end - local.tee $3 + local.tee $2 i32.const 1 i32.shl local.get $0 i32.add i32.const 2 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store local.get $0 - local.get $2 + local.get $3 i32.add local.get $1 - local.get $3 + local.get $2 call $~lib/util/number/utoa32_dec_lut else global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $6 i64.const 1000000000000000 i64.lt_u if (result i32) - local.get $4 + local.get $6 i64.const 1000000000000 i64.lt_u if (result i32) - local.get $4 + local.get $6 i64.const 100000000000 i64.ge_u i32.const 10 i32.add - local.get $4 + local.get $6 i64.const 10000000000 i64.ge_u i32.add else - local.get $4 + local.get $6 i64.const 100000000000000 i64.ge_u i32.const 13 i32.add - local.get $4 + local.get $6 i64.const 10000000000000 i64.ge_u i32.add end else - local.get $4 + local.get $6 i64.const 100000000000000000 i64.lt_u if (result i32) - local.get $4 + local.get $6 i64.const 10000000000000000 i64.ge_u i32.const 16 i32.add else - local.get $4 + local.get $6 i64.const -8446744073709551616 i64.ge_u i32.const 18 i32.add - local.get $4 + local.get $6 i64.const 1000000000000000000 i64.ge_u i32.add @@ -29757,18 +29520,18 @@ i32.add i32.const 2 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store local.get $0 - local.get $2 + local.get $3 i32.add - local.get $4 + local.get $6 local.get $1 call $~lib/util/number/utoa64_dec_lut end local.get $0 if - local.get $2 + local.get $3 i32.const 45 i32.store16 end @@ -29776,24 +29539,23 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $3 end local.set $0 - br $folding-inner07 + br $folding-inner09 end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 11856 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 11852 i32.load i32.const 1 i32.shr_u - local.tee $8 + local.tee $5 i32.const 21 i32.add - local.get $7 + local.get $3 i32.mul i32.const 21 i32.add @@ -29802,86 +29564,84 @@ i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store offset=4 loop $for-loop|010 local.get $3 - local.get $7 - i32.lt_s + local.get $4 + i32.gt_s if - local.get $1 local.get $0 + local.get $2 i32.const 1 i32.shl i32.add - local.get $2 - local.get $3 + local.get $1 + local.get $4 i32.const 3 i32.shl i32.add i64.load call $~lib/util/number/itoa_buffered - local.get $0 + local.get $2 i32.add - local.set $0 - local.get $8 + local.set $2 + local.get $5 if - local.get $1 local.get $0 + local.get $2 i32.const 1 i32.shl i32.add i32.const 11856 - local.get $8 + local.get $5 i32.const 1 i32.shl memory.copy - local.get $0 - local.get $8 + local.get $2 + local.get $5 i32.add - local.set $0 + local.set $2 end - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 + local.set $4 br $for-loop|010 end end - local.get $1 + local.get $9 local.get $0 + local.get $2 i32.const 1 i32.shl i32.add - local.get $2 - local.get $7 + local.get $1 + local.get $3 i32.const 3 i32.shl i32.add i64.load call $~lib/util/number/itoa_buffered - local.get $0 + local.get $2 i32.add - local.tee $0 - local.get $9 - i32.lt_s + local.tee $1 + i32.gt_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/string/String#substring local.set $0 - br $folding-inner07 + br $folding-inner09 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$22 + br $__inlined_func$~lib/util/string/joinIntegerArray$13 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -29893,15 +29653,12 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14704 - i32.store offset=8 local.get $0 i32.const 14704 call $~lib/string/String.__eq @@ -29921,19 +29678,16 @@ i32.const 14864 call $~lib/rt/__newArray local.tee $0 - i32.store offset=396 + i32.store offset=364 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=52 + i32.store offset=8 local.get $0 call $~lib/array/Array<~lib/string/String|null>#toString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14912 - i32.store offset=8 local.get $0 i32.const 14912 call $~lib/string/String.__eq @@ -29954,16 +29708,13 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=52 + i32.store offset=8 local.get $0 call $~lib/array/Array<~lib/string/String|null>#toString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15072 - i32.store offset=8 local.get $0 i32.const 15072 call $~lib/string/String.__eq @@ -29977,18 +29728,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 i32.const 29 i32.const 0 call $~lib/rt/__newArray local.tee $1 - i32.store offset=400 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=4 - i32.store offset=404 + i32.store offset=368 local.get $1 i32.const 0 i32.const 2 @@ -30005,14 +29752,13 @@ i32.const 15136 call $~lib/rt/__newArray call $~lib/array/Array#__set - local.get $0 local.get $1 - i32.store offset=408 + i32.store offset=372 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=52 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -30020,16 +29766,12 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $0 - i32.const 11856 - i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -30038,26 +29780,25 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 i32.load offset=4 - local.set $2 - local.get $0 + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 i32.load offset=12 local.set $1 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store i32.const 0 - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -30067,11 +29808,10 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.const 20 memory.fill - block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$23 + block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$14 local.get $1 i32.const 1 i32.sub @@ -30079,142 +29819,137 @@ i32.const 0 i32.lt_s if - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - local.set $0 - br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$23 + local.set $3 + br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$14 end local.get $1 i32.eqz if global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $2 + local.get $0 i32.load - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 if (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=4 - local.get $1 + local.get $0 call $~lib/array/Array#toString else i32.const 11568 end - local.set $0 + 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>$23 + br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$14 end i32.const 11568 - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.tee $7 i32.const 11568 i32.store offset=8 - local.get $7 + global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store offset=4 i32.const 11852 i32.load i32.const 1 i32.shr_u - local.set $7 + local.set $2 loop $for-loop|011 local.get $1 - local.get $3 + local.get $4 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.tee $8 - local.get $2 - local.get $3 + local.get $0 + local.get $4 i32.const 2 i32.shl i32.add i32.load - local.tee $9 + local.tee $5 i32.store - local.get $9 + local.get $5 if - local.get $8 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $3 i32.store offset=4 - local.get $8 - local.get $9 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $5 i32.store offset=16 - local.get $9 + local.get $5 call $~lib/array/Array#toString - local.set $9 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $5 i32.store offset=12 - local.get $8 - local.get $0 - local.get $9 + local.get $3 + local.get $5 call $~lib/string/String.__concat - local.tee $0 + local.tee $3 i32.store offset=8 end - local.get $7 + local.get $2 if global.get $~lib/memory/__stack_pointer - local.tee $8 - local.get $0 + local.get $3 i32.store offset=4 - local.get $8 + global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store offset=12 - local.get $8 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $3 i32.const 11856 call $~lib/string/String.__concat - local.tee $0 + local.tee $3 i32.store offset=8 end - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 + local.set $4 br $for-loop|011 end end global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $2 + local.get $0 local.get $1 i32.const 2 i32.shl i32.add i32.load - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 if + global.get $~lib/memory/__stack_pointer local.get $3 - local.get $0 i32.store offset=4 - local.get $3 - local.get $1 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=16 - local.get $1 + local.get $0 call $~lib/array/Array#toString - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=12 local.get $3 local.get $0 - local.get $1 call $~lib/string/String.__concat - local.tee $0 + local.tee $3 i32.store offset=8 end global.get $~lib/memory/__stack_pointer @@ -30227,16 +29962,13 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15168 - i32.store offset=8 - local.get $0 + local.get $3 i32.const 15168 call $~lib/string/String.__eq i32.eqz @@ -30249,18 +29981,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 i32.const 42 i32.const 0 call $~lib/rt/__newArray local.tee $1 - i32.store offset=412 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=4 - i32.store offset=416 + i32.store offset=376 local.get $1 i32.const 0 i32.const 2 @@ -30277,14 +30005,13 @@ i32.const 15248 call $~lib/rt/__newArray call $~lib/array/Array#__set - local.get $0 local.get $1 - i32.store offset=420 + i32.store offset=380 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=52 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -30292,16 +30019,12 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $0 - i32.const 11856 - i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -30310,26 +30033,25 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 i32.load offset=4 - local.set $2 - local.get $0 + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 i32.load offset=12 local.set $1 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store i32.const 0 - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -30339,11 +30061,10 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.const 20 memory.fill - block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$24 + block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$15 local.get $1 i32.const 1 i32.sub @@ -30351,142 +30072,137 @@ i32.const 0 i32.lt_s if - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - local.set $0 - br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$24 + local.set $3 + br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$15 end local.get $1 i32.eqz if global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $2 + local.get $0 i32.load - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 if (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=4 - local.get $1 + local.get $0 call $~lib/array/Array#toString else i32.const 11568 end - local.set $0 + 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>$24 + br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$15 end i32.const 11568 - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.tee $7 i32.const 11568 i32.store offset=8 - local.get $7 + global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store offset=4 i32.const 11852 i32.load i32.const 1 i32.shr_u - local.set $7 - loop $for-loop|012 + local.set $2 + loop $for-loop|016 local.get $1 - local.get $3 + local.get $4 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.tee $8 - local.get $2 - local.get $3 + local.get $0 + local.get $4 i32.const 2 i32.shl i32.add i32.load - local.tee $9 + local.tee $5 i32.store - local.get $9 + local.get $5 if - local.get $8 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $3 i32.store offset=4 - local.get $8 - local.get $9 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $5 i32.store offset=16 - local.get $9 + local.get $5 call $~lib/array/Array#toString - local.set $9 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $5 i32.store offset=12 - local.get $8 - local.get $0 - local.get $9 + local.get $3 + local.get $5 call $~lib/string/String.__concat - local.tee $0 + local.tee $3 i32.store offset=8 end - local.get $7 + local.get $2 if global.get $~lib/memory/__stack_pointer - local.tee $8 - local.get $0 + local.get $3 i32.store offset=4 - local.get $8 + global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store offset=12 - local.get $8 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $3 i32.const 11856 call $~lib/string/String.__concat - local.tee $0 + local.tee $3 i32.store offset=8 end - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 - br $for-loop|012 + local.set $4 + br $for-loop|016 end end global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $2 + local.get $0 local.get $1 i32.const 2 i32.shl i32.add i32.load - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 if + global.get $~lib/memory/__stack_pointer local.get $3 - local.get $0 i32.store offset=4 - local.get $3 - local.get $1 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=16 - local.get $1 + local.get $0 call $~lib/array/Array#toString - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=12 local.get $3 local.get $0 - local.get $1 call $~lib/string/String.__concat - local.tee $0 + local.tee $3 i32.store offset=8 end global.get $~lib/memory/__stack_pointer @@ -30499,16 +30215,13 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15168 - i32.store offset=8 - local.get $0 + local.get $3 i32.const 15168 call $~lib/string/String.__eq i32.eqz @@ -30521,18 +30234,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer i32.const 1 i32.const 2 i32.const 44 i32.const 0 call $~lib/rt/__newArray local.tee $1 - i32.store offset=424 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=4 - i32.store offset=428 + i32.store offset=384 global.get $~lib/memory/__stack_pointer i32.const 1 i32.const 2 @@ -30540,11 +30249,7 @@ i32.const 0 call $~lib/rt/__newArray local.tee $2 - i32.store offset=432 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.load offset=4 - i32.store offset=436 + i32.store offset=388 local.get $2 i32.const 0 i32.const 1 @@ -30557,14 +30262,13 @@ i32.const 0 local.get $2 call $~lib/array/Array#__set - local.get $0 local.get $1 - i32.store offset=440 + i32.store offset=392 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=52 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -30572,16 +30276,12 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $0 - i32.const 11856 - i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -30590,26 +30290,25 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 i32.load offset=4 - local.set $2 - local.get $0 + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 i32.load offset=12 local.set $1 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store i32.const 0 - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -30619,11 +30318,10 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.const 20 memory.fill - block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>>$25 + block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>>$16 local.get $1 i32.const 1 i32.sub @@ -30631,142 +30329,137 @@ i32.const 0 i32.lt_s if - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - local.set $0 - br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>>$25 + local.set $3 + br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>>$16 end local.get $1 i32.eqz if global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $2 + local.get $0 i32.load - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 if (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=4 - local.get $1 + local.get $0 call $~lib/array/Array<~lib/array/Array>#toString else i32.const 11568 end - local.set $0 + 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>>$25 + br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>>$16 end i32.const 11568 - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.tee $7 i32.const 11568 i32.store offset=8 - local.get $7 + global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store offset=4 i32.const 11852 i32.load i32.const 1 i32.shr_u - local.set $7 - loop $for-loop|013 + local.set $2 + loop $for-loop|017 local.get $1 - local.get $3 + local.get $4 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.tee $8 - local.get $2 - local.get $3 + local.get $0 + local.get $4 i32.const 2 i32.shl i32.add i32.load - local.tee $9 + local.tee $5 i32.store - local.get $9 + local.get $5 if - local.get $8 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $3 i32.store offset=4 - local.get $8 - local.get $9 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $5 i32.store offset=16 - local.get $9 + local.get $5 call $~lib/array/Array<~lib/array/Array>#toString - local.set $9 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $5 i32.store offset=12 - local.get $8 - local.get $0 - local.get $9 + local.get $3 + local.get $5 call $~lib/string/String.__concat - local.tee $0 + local.tee $3 i32.store offset=8 end - local.get $7 + local.get $2 if global.get $~lib/memory/__stack_pointer - local.tee $8 - local.get $0 + local.get $3 i32.store offset=4 - local.get $8 + global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store offset=12 - local.get $8 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $3 i32.const 11856 call $~lib/string/String.__concat - local.tee $0 + local.tee $3 i32.store offset=8 end - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 - br $for-loop|013 + local.set $4 + br $for-loop|017 end end global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $2 + local.get $0 local.get $1 i32.const 2 i32.shl i32.add i32.load - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 if + global.get $~lib/memory/__stack_pointer local.get $3 - local.get $0 i32.store offset=4 - local.get $3 - local.get $1 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=16 - local.get $1 + local.get $0 call $~lib/array/Array<~lib/array/Array>#toString - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=12 local.get $3 local.get $0 - local.get $1 call $~lib/string/String.__concat - local.tee $0 + local.tee $3 i32.store offset=8 end global.get $~lib/memory/__stack_pointer @@ -30779,16 +30472,13 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13568 - i32.store offset=8 - local.get $0 + local.get $3 i32.const 13568 call $~lib/string/String.__eq i32.eqz @@ -30801,18 +30491,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 2 i32.const 29 i32.const 0 call $~lib/rt/__newArray local.tee $1 - i32.store offset=444 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=4 - i32.store offset=448 + i32.store offset=396 local.get $1 i32.const 0 i32.const 1 @@ -30845,9 +30531,8 @@ i32.const 15408 call $~lib/rt/__newArray call $~lib/array/Array#__set - local.get $0 local.get $1 - i32.store offset=452 + i32.store offset=400 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -30855,7 +30540,7 @@ local.get $1 call $~lib/array/Array<~lib/array/Array>#flat local.tee $1 - i32.store offset=456 + i32.store offset=404 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -30902,18 +30587,14 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 2 i32.const 45 i32.const 0 call $~lib/rt/__newArray local.tee $1 - i32.store offset=460 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=4 - i32.store offset=464 + i32.store offset=408 local.get $1 i32.const 0 i32.const 1 @@ -30946,11 +30627,9 @@ i32.const 15760 call $~lib/rt/__newArray call $~lib/array/Array#__set - local.get $0 local.get $1 - i32.store offset=468 + i32.store offset=412 global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -30963,58 +30642,57 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 i32.load offset=4 - local.set $7 - local.get $0 + local.set $5 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 i32.load offset=12 - local.set $8 - i32.const 0 local.set $1 i32.const 0 + local.set $4 + i32.const 0 local.set $0 - loop $for-loop|056 + loop $for-loop|023 local.get $0 - local.get $8 + local.get $1 i32.lt_s if - local.get $7 + local.get $5 local.get $0 i32.const 2 i32.shl i32.add i32.load - local.tee $3 + local.tee $2 if (result i32) - local.get $3 + local.get $2 i32.load offset=12 else i32.const 0 end - local.get $1 + local.get $4 i32.add - local.set $1 + local.set $4 local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|056 + br $for-loop|023 end end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.const 2 i32.shl local.tee $0 @@ -31029,7 +30707,7 @@ local.tee $10 i32.store offset=8 local.get $10 - local.get $1 + local.get $4 i32.store offset=12 local.get $10 local.get $0 @@ -31047,14 +30725,14 @@ i32.const 0 local.set $0 i32.const 0 - local.set $3 - loop $for-loop|16 - local.get $3 - local.get $8 - i32.lt_s + local.set $2 + loop $for-loop|124 + local.get $1 + local.get $2 + i32.gt_s if - local.get $7 - local.get $3 + local.get $5 + local.get $2 i32.const 2 i32.shl i32.add @@ -31077,18 +30755,18 @@ i32.add local.set $0 end - local.get $3 + local.get $2 i32.const 1 i32.add - local.set $3 - br $for-loop|16 + local.set $2 + br $for-loop|124 end end i32.const 0 local.set $0 - loop $for-loop|27 + loop $for-loop|225 local.get $0 - local.get $1 + local.get $4 i32.lt_s if local.get $9 @@ -31104,16 +30782,15 @@ i32.const 1 i32.add local.set $0 - br $for-loop|27 + br $for-loop|225 end end global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $10 - i32.store offset=472 + i32.store offset=416 global.get $~lib/memory/__stack_pointer i32.const 8 i32.const 2 @@ -31121,7 +30798,7 @@ i32.const 15792 call $~lib/rt/__newArray local.tee $0 - i32.store offset=476 + i32.store offset=420 global.get $~lib/memory/__stack_pointer local.get $10 i32.store @@ -31138,37 +30815,37 @@ unreachable end i32.const 0 - local.set $1 + local.set $2 loop $for-loop|8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 call $~lib/array/Array#get:length - local.get $1 + local.get $2 i32.gt_s if global.get $~lib/memory/__stack_pointer local.get $10 - i32.store offset=52 + i32.store offset=48 local.get $10 - local.get $1 + local.get $2 call $~lib/array/Array#__get - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=52 + i32.store offset=48 local.get $0 - local.get $1 + local.get $2 call $~lib/array/Array#__get local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 i32.store offset=8 - local.get $2 + local.get $1 local.get $3 call $~lib/string/String.__eq i32.eqz @@ -31180,26 +30857,22 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|8 end end global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 i32.const 29 i32.const 0 call $~lib/rt/__newArray local.tee $1 - i32.store offset=480 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=4 - i32.store offset=484 + i32.store offset=424 local.get $1 i32.const 0 i32.const 0 @@ -31216,9 +30889,8 @@ i32.const 15888 call $~lib/rt/__newArray call $~lib/array/Array#__set - local.get $0 local.get $1 - i32.store offset=488 + i32.store offset=428 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 @@ -31239,19 +30911,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 i32.const 29 i32.const 0 call $~lib/rt/__newArray - local.tee $2 - i32.store offset=492 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.load offset=4 - i32.store offset=496 - local.get $2 + local.tee $1 + i32.store offset=432 + local.get $1 i32.const 0 i32.const 1 i32.const 2 @@ -31259,7 +30927,7 @@ i32.const 15920 call $~lib/rt/__newArray call $~lib/array/Array#__set - local.get $2 + local.get $1 i32.const 1 i32.const 1 i32.const 2 @@ -31267,532 +30935,252 @@ i32.const 15952 call $~lib/rt/__newArray call $~lib/array/Array#__set - local.get $0 - local.get $2 - i32.store offset=500 + local.get $1 + i32.store offset=436 global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 15984 - i32.store offset=52 + i32.store offset=48 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.const 20 - memory.fill - local.get $1 - local.get $2 - i32.store - local.get $1 - local.get $2 - i32.load offset=12 - local.tee $3 - i32.const 2 - i32.const 29 - i32.const 0 - call $~lib/rt/__newArray - local.tee $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - i32.load offset=4 - local.set $8 - i32.const 0 - local.set $1 - loop $for-loop|067 - global.get $~lib/memory/__stack_pointer - local.tee $9 - local.get $2 - i32.store - local.get $1 - local.get $3 - local.get $2 - i32.load offset=12 - local.tee $10 - local.get $3 - local.get $10 - i32.lt_s - select - i32.lt_s - if - local.get $9 - local.get $2 - i32.store offset=12 - local.get $9 - local.get $1 - i32.const 2 - i32.shl - local.tee $10 - local.get $2 - i32.load offset=4 - i32.add - i32.load - local.tee $11 - i32.store - local.get $9 - local.get $2 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $9 - local.get $11 - local.get $1 - local.get $2 - i32.const 15984 - i32.load - call_indirect (type $1) - local.tee $9 - i32.store offset=16 - local.get $8 - local.get $10 - i32.add - local.get $9 - i32.store - local.get $7 - local.get $9 - i32.const 1 - call $~lib/rt/itcms/__link - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|067 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $0 - local.get $7 - call $~lib/array/Array<~lib/array/Array>#flat - local.tee $0 - i32.store offset=504 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/array/Array#get:length - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1552 - i32.const 1272 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 0 - call $~lib/array/Array#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1552 - i32.const 1273 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 1 - call $~lib/array/Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1552 - i32.const 1274 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 2 - call $~lib/array/Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1552 - i32.const 1275 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 3 - call $~lib/array/Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1552 - i32.const 1276 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - global.set $std/array/arr + i32.const 16192 + i32.lt_s + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer i32.const 0 - global.set $std/array/inputStabArr + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=12 + local.tee $3 + i32.const 2 + i32.const 29 i32.const 0 - global.set $std/array/outputStabArr - i32.const 48960 - global.set $~lib/memory/__stack_pointer - global.get $~lib/rt/itcms/state + call $~lib/rt/__newArray + local.tee $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.load offset=4 + local.set $5 i32.const 0 - i32.gt_s - if - loop $while-continue|013 - global.get $~lib/rt/itcms/state - if - call $~lib/rt/itcms/step - drop - br $while-continue|013 - end - end - end - call $~lib/rt/itcms/step - drop - loop $while-continue|1 - global.get $~lib/rt/itcms/state + local.set $2 + loop $for-loop|026 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $2 + local.get $3 + local.get $1 + i32.load offset=12 + local.tee $9 + local.get $3 + local.get $9 + i32.lt_s + select + i32.lt_s if - call $~lib/rt/itcms/step - drop - br $while-continue|1 + global.get $~lib/memory/__stack_pointer + i32.const 15984 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 2 + i32.shl + local.tee $9 + local.get $1 + i32.load offset=4 + i32.add + i32.load + local.tee $10 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + i32.const 3 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $10 + local.get $2 + local.get $1 + i32.const 15984 + i32.load + call_indirect (type $1) + local.tee $10 + i32.store offset=20 + local.get $5 + local.get $9 + i32.add + local.get $10 + i32.store + local.get $4 + local.get $10 + i32.const 1 + call $~lib/rt/itcms/__link + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|026 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 global.get $~lib/memory/__stack_pointer - i32.const 508 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result 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 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 - local.tee $4 - i32.const 0 - i32.store - local.get $0 - local.get $1 - i32.shl - local.tee $5 - i32.const 1 - call $~lib/rt/itcms/__new - local.set $1 - local.get $3 - if - local.get $1 - local.get $3 - local.get $5 - memory.copy - end - local.get $4 - local.get $1 - i32.store - i32.const 16 - local.get $2 - call $~lib/rt/itcms/__new - local.tee $2 - local.get $1 - i32.store - local.get $2 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $2 - local.get $1 - i32.store offset=4 - local.get $2 - local.get $5 - i32.store offset=8 - local.get $2 - 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 $2 - ) - (func $~lib/util/number/itoa32 (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 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 - local.tee $1 - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - local.get $1 - i32.const 4 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - i32.const 7712 - return - 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 $2 - select - local.tee $0 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 100 - i32.lt_u - if (result i32) - local.get $0 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $0 - i32.const 10000 - i32.ge_u + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/array/Array<~lib/array/Array>#flat + local.tee $0 + i32.store offset=440 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 1272 i32.const 3 - i32.add - local.get $0 - i32.const 1000 - i32.ge_u - i32.add + call $~lib/builtins/abort + unreachable end - else + global.get $~lib/memory/__stack_pointer 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 $1 - i32.const 1 - i32.shl - local.get $2 - i32.add - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - local.get $2 - local.get $3 - i32.add - local.get $0 - local.get $1 - call $~lib/util/number/utoa32_dec_lut - local.get $2 - if - local.get $3 - 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 $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.store + local.get $0 + i32.const 0 + call $~lib/array/Array#__get i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 1273 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - local.get $1 - 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) + call $~lib/array/Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 1274 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer 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.store + local.get $0 + i32.const 2 + call $~lib/array/Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 1275 i32.const 3 - i32.add - local.get $0 - i32.const 1000 - i32.ge_u - i32.add + call $~lib/builtins/abort + unreachable end - else + global.get $~lib/memory/__stack_pointer 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 + i32.store + local.get $0 + i32.const 3 + call $~lib/array/Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 1276 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $std/array/arr + i32.const 0 + global.set $std/array/inputStabArr + i32.const 0 + global.set $std/array/outputStabArr + 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 + global.get $~lib/rt/itcms/state + if + call $~lib/rt/itcms/step + drop + br $while-continue|028 + 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 + global.get $~lib/memory/__stack_pointer + i32.const 444 + i32.add + global.set $~lib/memory/__stack_pointer + return end - local.tee $1 + i32.const 48992 + i32.const 49040 i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - local.get $0 - local.get $1 - call $~lib/util/number/utoa32_dec_lut - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 + i32.const 1 + call $~lib/builtins/abort + unreachable ) ) diff --git a/tests/compiler/std/arraybuffer.debug.wat b/tests/compiler/std/arraybuffer.debug.wat index 4c4d8cdc3e..62e83133db 100644 --- a/tests/compiler/std/arraybuffer.debug.wat +++ b/tests/compiler/std/arraybuffer.debug.wat @@ -1629,14 +1629,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 @@ -2686,12 +2689,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -2769,12 +2768,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid @@ -3372,7 +3367,6 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub @@ -3406,11 +3400,11 @@ local.tee $0 i32.store local.get $0 - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 call $~lib/arraybuffer/ArrayBuffer#get:byteLength i32.const 8 i32.eq @@ -3425,22 +3419,22 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 i32.const 0 i32.const 1073741820 call $~lib/arraybuffer/ArrayBuffer#slice local.tee $1 i32.store offset=8 local.get $1 - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 call $~lib/arraybuffer/ArrayBuffer#get:byteLength i32.const 8 i32.eq @@ -3467,22 +3461,22 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 i32.const 1 i32.const 1073741820 call $~lib/arraybuffer/ArrayBuffer#slice local.tee $1 i32.store offset=8 local.get $1 - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 call $~lib/arraybuffer/ArrayBuffer#get:byteLength i32.const 7 i32.eq @@ -3497,22 +3491,22 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 i32.const -1 i32.const 1073741820 call $~lib/arraybuffer/ArrayBuffer#slice local.tee $1 i32.store offset=8 local.get $1 - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 call $~lib/arraybuffer/ArrayBuffer#get:byteLength i32.const 1 i32.eq @@ -3527,22 +3521,22 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 i32.const 1 i32.const 3 call $~lib/arraybuffer/ArrayBuffer#slice local.tee $1 i32.store offset=8 local.get $1 - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 call $~lib/arraybuffer/ArrayBuffer#get:byteLength i32.const 2 i32.eq @@ -3557,22 +3551,22 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 i32.const 1 i32.const -1 call $~lib/arraybuffer/ArrayBuffer#slice local.tee $1 i32.store offset=8 local.get $1 - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 call $~lib/arraybuffer/ArrayBuffer#get:byteLength i32.const 6 i32.eq @@ -3587,22 +3581,22 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 i32.const -3 i32.const -1 call $~lib/arraybuffer/ArrayBuffer#slice local.tee $1 i32.store offset=8 local.get $1 - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 call $~lib/arraybuffer/ArrayBuffer#get:byteLength i32.const 2 i32.eq @@ -3617,22 +3611,22 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 i32.const -4 i32.const 42 call $~lib/arraybuffer/ArrayBuffer#slice local.tee $1 i32.store offset=8 local.get $1 - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 call $~lib/arraybuffer/ArrayBuffer#get:byteLength i32.const 4 i32.eq @@ -3647,22 +3641,22 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 i32.const 42 i32.const 1073741820 call $~lib/arraybuffer/ArrayBuffer#slice local.tee $1 i32.store offset=8 local.get $1 - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 call $~lib/arraybuffer/ArrayBuffer#get:byteLength i32.const 0 i32.eq @@ -3770,11 +3764,11 @@ i32.const 4 i32.const 608 call $~lib/rt/__newArray - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 call $~lib/arraybuffer/ArrayBuffer.isView<~lib/array/Array> i32.eqz i32.eqz @@ -3787,11 +3781,11 @@ unreachable end local.get $2 - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 call $~lib/arraybuffer/ArrayBuffer.isView<~lib/typedarray/Uint8Array> i32.eqz if @@ -3805,11 +3799,11 @@ i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#constructor - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 call $~lib/arraybuffer/ArrayBuffer.isView<~lib/typedarray/Int32Array> i32.eqz if @@ -3822,27 +3816,27 @@ end i32.const 0 local.get $2 - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=20 - local.get $5 + local.get $4 call $~lib/arraybuffer/ArrayBufferView#get:buffer - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=16 - local.get $5 + local.get $4 i32.const 0 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/dataview/DataView#constructor@varargs - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 call $~lib/arraybuffer/ArrayBuffer.isView<~lib/dataview/DataView> i32.eqz if diff --git a/tests/compiler/std/arraybuffer.release.wat b/tests/compiler/std/arraybuffer.release.wat index 94378e232a..5e80739f7e 100644 --- a/tests/compiler/std/arraybuffer.release.wat +++ b/tests/compiler/std/arraybuffer.release.wat @@ -1,12 +1,12 @@ (module (type $0 (func)) - (type $1 (func (param i32))) - (type $2 (func (param i32 i32))) - (type $3 (func (param i32 i32) (result i32))) + (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 i32 i32))) - (type $5 (func (param i32 i32 i64))) + (type $5 (func (param i32 i32 i32) (result i32))) (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32) (result i32))) + (type $7 (func (param i32 i32 i64))) (import "env" "abort" (func $~lib/builtins/abort (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)) @@ -43,184 +43,416 @@ (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 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 + (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.const 1232 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.gt_s + br_if $do-loop|0 end - local.get $0 - i32.const 20 + 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 - call $~lib/rt/__visit_members - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 + global.set $~lib/rt/itcms/threshold end end - ) - (func $~lib/rt/itcms/Object#makeGray (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) + 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 - global.get $~lib/rt/itcms/iter - i32.eq + i32.const 16 + i32.add + local.tee $2 + i32.const 1073741820 + i32.gt_u 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 + i32.const 1168 + i32.const 1504 + i32.const 461 + i32.const 29 + call $~lib/builtins/abort + unreachable end - block $__inlined_func$~lib/rt/itcms/Object#unlink$172 - local.get $0 - i32.load offset=4 - i32.const -4 + 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 - local.tee $1 - i32.eqz - if - local.get $0 - i32.load offset=8 - i32.eqz - local.get $0 - i32.const 34552 + i32.const 4 + i32.sub + end + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + local.get $5 + i32.const 256 + i32.ge_u + if (result i32) + local.get $5 + i32.const 536870910 i32.lt_u - i32.and - i32.eqz + 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 + memory.size + local.tee $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.set $3 + local.get $2 + local.get $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 - 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$172 end - local.get $0 - i32.load 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 1232 - i32.const 132 + i32.const 1504 + i32.const 499 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) + 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 $1 - i32.const 1712 + 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.gt_u - if - i32.const 1360 - i32.const 1424 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.const 1716 + i32.const -4 + i32.and i32.add + local.tee $3 + local.get $3 i32.load - i32.const 32 + i32.const -3 i32.and + i32.store end - local.set $3 local.get $2 - i32.load offset=8 - local.set $1 + 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.eqz - i32.const 2 + i32.or + i32.store offset=4 + local.get $2 + local.get $3 + i32.store offset=8 local.get $3 - select local.get $2 + local.get $3 + 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 + 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/arraybuffer/ArrayBuffer#slice (param $0 i32) (param $1 i32) (param $2 i32) (result 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 1784 + i32.lt_s + if + 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 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + local.set $3 local.get $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $3 + i32.add + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $3 + local.get $1 + local.get $3 + i32.lt_s + select + end + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $2 + local.get $3 + i32.add + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + else + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.lt_s + select + end + local.get $1 + i32.sub + local.tee $2 + i32.const 0 local.get $2 + i32.const 0 + i32.gt_s + select + local.tee $2 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=4 + local.get $3 local.get $0 - i32.store offset=8 + local.get $1 + i32.add + local.get $2 + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 ) (func $~lib/rt/itcms/__visit (param $0 i32) local.get $0 @@ -246,591 +478,59 @@ 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) + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and + i32.eqz + if + return + end + local.get $0 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 1232 + i32.const 295 i32.const 14 call $~lib/builtins/abort unreachable end + global.get $~lib/rt/itcms/white 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 + i32.const 20 + i32.sub 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.load offset=4 + i32.const 3 i32.and + i32.eq 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.const 20 i32.sub - i32.load - local.tee $1 - i32.load - local.tee $6 - i32.const 1 + i32.load offset=4 + i32.const 3 i32.and + local.tee $0 + global.get $~lib/rt/itcms/white i32.eqz + i32.eq 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 34560 - i32.const 0 - i32.store - i32.const 36128 - 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 34560 - i32.add - i32.const 0 - i32.store offset=4 - i32.const 0 - local.set $1 - loop $for-loop|1 + 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 - 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 34560 - 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 + call $~lib/rt/itcms/Object#makeGray end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 end end - i32.const 34560 - i32.const 36132 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34560 - global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) (local $0 i32) @@ -1042,7 +742,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1075,7 +774,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1083,66 +781,341 @@ i32.const 10 return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 + 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/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 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 + 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 - global.set $~lib/rt/itcms/state + i32.const 1504 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + 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 - local.get $1 + if (result i32) + local.get $2 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.const 1073741820 + local.get $2 + local.get $2 + i32.const 1073741820 + i32.ge_u + select + local.tee $2 i32.clz i32.sub - local.tee $2 + 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 - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 end - local.get $1 + local.tee $2 i32.const 16 i32.lt_u - local.get $2 + local.get $5 i32.const 23 i32.lt_u i32.and @@ -1150,614 +1123,622 @@ if i32.const 0 i32.const 1504 - i32.const 334 + 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 - i32.load offset=4 - i32.const -1 local.get $1 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $5 i32.shl - i32.and - local.tee $1 - if (result i32) + 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/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 - i32.ctz - local.get $2 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$185 local.get $0 - i32.load - i32.const -1 - local.get $2 - i32.const 1 - i32.add - i32.shl + i32.load offset=4 + i32.const -4 i32.and local.tee $1 - if (result i32) + i32.eqz + if 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.load offset=8 + i32.eqz + local.get $0 + i32.const 34552 + i32.lt_u + i32.and i32.eqz if i32.const 0 - i32.const 1504 - i32.const 347 + i32.const 1232 + i32.const 128 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 + br $__inlined_func$~lib/rt/itcms/Object#unlink$185 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 - 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 $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 - 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 + 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/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.set $4 + global.get $~lib/rt/itcms/toSpace + local.set $2 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.load offset=12 + local.tee $1 + i32.const 2 i32.le_u if (result i32) - i32.const 12 + i32.const 1 else - local.get $2 - i32.const 19 + local.get $1 + i32.const 1712 + i32.load + i32.gt_u + if + i32.const 1360 + i32.const 1424 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1716 i32.add - i32.const -16 + i32.load + i32.const 32 i32.and - i32.const 4 - i32.sub end - local.tee $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.set $3 + local.get $2 + i32.load offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white 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 + 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/__visit_members (param $0 i32) + block $folding-inner0 + block $invalid + block $~lib/array/Array + 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-inner0 $~lib/array/Array $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $invalid + end + return + end + return + end + return 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 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1784 i32.lt_s if + i32.const 34576 + i32.const 34624 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort 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 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1504 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable + 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 + unreachable end - local.get $5 - local.get $2 + local.get $0 i32.load - i32.const -4 - i32.and - i32.gt_u + call $~lib/rt/itcms/__visit + ) + (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 - i32.const 0 - i32.const 1504 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable + 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 $4 - local.get $2 - call $~lib/rt/tlsf/removeBlock + local.get $1 + i32.const 16 + i32.lt_u local.get $2 - i32.load - local.set $6 - local.get $5 - i32.const 4 - i32.add - i32.const 15 + i32.const 23 + i32.lt_u i32.and + i32.eqz if i32.const 0 i32.const 1504 - i32.const 361 + i32.const 334 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $6 - i32.const -4 + 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.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.tee $1 + if (result i32) + local.get $0 + local.get $1 + i32.ctz local.get $2 i32.const 4 + i32.shl i32.add - local.get $5 + i32.const 2 + i32.shl 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 + i32.load offset=96 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 + local.get $0 i32.load - i32.const -4 - i32.and + i32.const -1 + local.get $2 + i32.const 1 i32.add - local.tee $3 - local.get $3 - i32.load - i32.const -3 + i32.shl i32.and - i32.store + 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 - 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 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size 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 $2 i32) - local.get $1 - i32.eqz - if - return + 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 - 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.tee $2 - local.get $1 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if + i32.const 34560 + i32.const 0 + i32.store + i32.const 36128 + i32.const 0 + i32.store + loop $for-loop|0 local.get $0 - i32.const 20 - i32.sub - i32.load offset=4 - i32.const 3 - i32.and - local.tee $0 - local.get $2 - i32.eqz - i32.eq + i32.const 23 + i32.lt_u 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 + i32.const 2 + i32.shl + i32.const 34560 + i32.add + i32.const 0 + i32.store offset=4 + i32.const 0 + local.set $1 + loop $for-loop|1 local.get $1 - call $~lib/rt/itcms/Object#makeGray - end - end - end - ) - (func $~lib/rt/__visit_members (param $0 i32) - (local $1 i32) - block $folding-inner0 - block $invalid - block $~lib/array/Array - 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-inner0 $~lib/array/Array $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $invalid - end - return - end - return + 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 34560 + 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 - 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 1784 - i32.lt_s - if - i32.const 34576 - i32.const 34624 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - 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.const 1 i32.add - global.set $~lib/memory/__stack_pointer - return + local.set $0 + br $for-loop|0 end - unreachable - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit end + i32.const 34560 + i32.const 36132 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34560 + global.set $~lib/rt/tlsf/ROOT ) - (func $~start - call $start:std/arraybuffer - ) - (func $~lib/arraybuffer/ArrayBuffer#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) (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 1784 - i32.lt_s + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u if - i32.const 34576 - i32.const 34624 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1504 + i32.const 382 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - local.set $3 local.get $1 - i32.const 0 - i32.lt_s - if (result i32) - 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.tee $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - else 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 - local.get $3 - i32.lt_s - select + 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.set $1 - global.get $~lib/memory/__stack_pointer local.get $2 - i32.const 0 - i32.lt_s - if (result i32) - local.get $2 - local.get $3 - i32.add - local.tee $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - else - local.get $2 - local.get $3 - local.get $2 - local.get $3 - i32.lt_s - select + 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 $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - local.tee $2 - i32.const 1 - call $~lib/rt/itcms/__new local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 i32.store offset=4 - local.get $3 - local.get $0 local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 i32.add - local.get $2 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $3 i32.add - global.set $~lib/memory/__stack_pointer + 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/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 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/arraybuffer/ArrayBufferView#constructor (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1777,16 +1758,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 local.get $0 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 3 call $~lib/rt/itcms/__new @@ -1830,34 +1810,34 @@ i32.const 1 local.get $1 i32.shl - local.tee $1 + local.tee $2 i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=12 local.get $0 - local.get $2 + local.get $1 i32.store local.get $0 - local.get $2 + local.get $1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 16 @@ -1865,11 +1845,13 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) + (func $~start + call $start:std/arraybuffer + ) (func $start:std/arraybuffer (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub @@ -1880,7 +1862,6 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.const 24 memory.fill @@ -1916,7 +1897,8 @@ i32.store i32.const 1456 global.set $~lib/rt/itcms/fromSpace - local.get $0 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1925,10 +1907,9 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.const 1 call $~lib/rt/itcms/__new @@ -1938,7 +1919,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store global.get $~lib/memory/__stack_pointer @@ -1959,10 +1939,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.const 0 i32.const 1073741820 @@ -1998,10 +1977,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.const 1 i32.const 1073741820 @@ -2026,10 +2004,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.const -1 i32.const 1073741820 @@ -2054,10 +2031,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.const 1 i32.const 3 @@ -2082,10 +2058,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.const 1 i32.const -1 @@ -2110,10 +2085,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.const -3 i32.const -1 @@ -2138,10 +2112,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.const -4 i32.const 42 @@ -2166,10 +2139,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.const 42 i32.const 1073741820 @@ -2202,7 +2174,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2211,20 +2183,18 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 6 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.const 0 call $~lib/arraybuffer/ArrayBufferView#constructor @@ -2234,7 +2204,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -2246,9 +2215,9 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer i32.const 8 i32.const 1 call $~lib/rt/itcms/__new @@ -2256,7 +2225,6 @@ i32.const 1632 i64.load align=1 i64.store align=1 - local.get $0 local.get $2 i32.store i32.const 16 @@ -2296,20 +2264,18 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 10 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.const 2 call $~lib/arraybuffer/ArrayBufferView#constructor @@ -2328,9 +2294,9 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.load - local.tee $1 + local.tee $0 i32.store offset=16 - block $__inlined_func$~lib/dataview/DataView#constructor@varargs$1 (result i32) + block $__inlined_func$~lib/dataview/DataView#constructor@varargs (result i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2344,21 +2310,20 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 20 i32.sub i32.load offset=16 - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -2367,49 +2332,48 @@ i32.lt_s br_if $folding-inner00 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 16 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 i32.store - local.get $0 + local.get $2 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 20 i32.sub i32.load offset=16 - local.get $2 + local.get $1 i32.lt_u - local.get $2 + local.get $1 i32.const 1073741820 i32.gt_u i32.or @@ -2422,29 +2386,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 + local.get $2 i32.store offset=4 - local.get $3 - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=8 + local.get $2 local.get $0 - local.get $1 i32.store + local.get $2 local.get $0 - local.get $1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 + local.get $2 local.get $0 - local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 local.get $2 + local.get $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 12 @@ -2454,8 +2417,8 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - br $__inlined_func$~lib/dataview/DataView#constructor@varargs$1 + local.get $2 + br $__inlined_func$~lib/dataview/DataView#constructor@varargs end br $folding-inner1 end diff --git a/tests/compiler/std/console.debug.wat b/tests/compiler/std/console.debug.wat index 7cb71cc16f..2bd7371986 100644 --- a/tests/compiler/std/console.debug.wat +++ b/tests/compiler/std/console.debug.wat @@ -35,6 +35,46 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) + (func $start:std/console + i32.const 0 + i32.const 32 + call $~lib/console/console.assert + i32.const 1 + i32.const 64 + call $~lib/console/console.assert + i32.const 96 + call $~lib/console/console.log + i32.const 144 + call $~lib/console/console.debug + i32.const 192 + call $~lib/console/console.info + i32.const 240 + call $~lib/console/console.warn + i32.const 288 + call $~lib/console/console.error + i32.const 336 + call $~lib/console/console.time + i32.const 336 + call $~lib/console/console.timeLog + i32.const 336 + call $~lib/console/console.timeEnd + i32.const 384 + call $~lib/console/console.timeLog + i32.const 384 + call $~lib/console/console.timeEnd + i32.const 432 + call $~lib/console/console.time + i32.const 432 + call $~lib/console/console.time + i32.const 480 + call $~lib/console/console.log + i32.const 512 + call $~lib/console/console.log + i32.const 544 + call $~lib/console/console.log + i32.const 576 + call $~lib/console/console.log + ) (func $~start call $start:std/console ) @@ -252,147 +292,4 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $start:std/console - (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 0 - i32.const 32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/console/console.assert - i32.const 1 - i32.const 64 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/console/console.assert - i32.const 96 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/console/console.log - i32.const 144 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/console/console.debug - i32.const 192 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/console/console.info - i32.const 240 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/console/console.warn - i32.const 288 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/console/console.error - i32.const 336 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/console/console.time - i32.const 336 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/console/console.timeLog - i32.const 336 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/console/console.timeEnd - i32.const 384 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/console/console.timeLog - i32.const 384 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/console/console.timeEnd - i32.const 432 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/console/console.time - i32.const 432 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/console/console.time - i32.const 480 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/console/console.log - i32.const 512 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/console/console.log - i32.const 544 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/console/console.log - i32.const 576 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/console/console.log - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) ) diff --git a/tests/compiler/std/console.release.wat b/tests/compiler/std/console.release.wat index 199c9d3419..e8c683571e 100644 --- a/tests/compiler/std/console.release.wat +++ b/tests/compiler/std/console.release.wat @@ -1,18 +1,18 @@ (module (type $0 (func (param i32))) (type $1 (func (param i32 i32))) - (type $2 (func)) - (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))) - (import "env" "console.info" (func $~lib/bindings/dom/console.info (param i32))) + (type $2 (func (param i32 i32 i32 i32))) + (type $3 (func)) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (import "env" "console.warn" (func $~lib/bindings/dom/console.warn (param i32))) - (import "env" "console.error" (func $~lib/bindings/dom/console.error (param i32))) - (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 (param i32 i32 i32 i32))) + (import "env" "console.time" (func $~lib/bindings/dom/console.time (param i32))) + (import "env" "console.log" (func $~lib/bindings/dom/console.log (param i32))) + (import "env" "console.info" (func $~lib/bindings/dom/console.info (param i32))) + (import "env" "console.error" (func $~lib/bindings/dom/console.error (param i32))) + (import "env" "console.debug" (func $~lib/bindings/dom/console.debug (param i32))) + (import "env" "console.assert" (func $~lib/bindings/dom/console.assert (param i32 i32))) (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34380)) (memory $0 1) (data $0 (i32.const 1036) "\1c") @@ -45,204 +45,7 @@ (data $13.1 (i32.const 1592) "\02\00\00\00\08\00\00\001\002\003\004") (export "memory" (memory $0)) (start $~start) - (func $~start - (local $0 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 1612 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 1056 - i32.store - i32.const 0 - i32.const 1056 - call $~lib/console/console.assert - global.get $~lib/memory/__stack_pointer - i32.const 1088 - i32.store - i32.const 1 - i32.const 1088 - call $~lib/console/console.assert - global.get $~lib/memory/__stack_pointer - i32.const 1120 - i32.store - i32.const 1120 - call $~lib/console/console.log - global.get $~lib/memory/__stack_pointer - i32.const 1168 - 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 1612 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 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 1216 - 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 1612 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 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 1264 - 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 1612 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 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 1312 - 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 1612 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 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 - global.get $~lib/memory/__stack_pointer - i32.const 1360 - i32.store - i32.const 1360 - call $~lib/console/console.time - global.get $~lib/memory/__stack_pointer - i32.const 1360 - i32.store - i32.const 1360 - call $~lib/console/console.timeLog - global.get $~lib/memory/__stack_pointer - i32.const 1360 - i32.store - i32.const 1360 - call $~lib/console/console.timeEnd - global.get $~lib/memory/__stack_pointer - i32.const 1408 - i32.store - i32.const 1408 - call $~lib/console/console.timeLog - global.get $~lib/memory/__stack_pointer - i32.const 1408 - i32.store - i32.const 1408 - call $~lib/console/console.timeEnd - global.get $~lib/memory/__stack_pointer - i32.const 1456 - i32.store - i32.const 1456 - call $~lib/console/console.time - global.get $~lib/memory/__stack_pointer - i32.const 1456 - i32.store - i32.const 1456 - call $~lib/console/console.time - global.get $~lib/memory/__stack_pointer - i32.const 1504 - i32.store - i32.const 1504 - call $~lib/console/console.log - global.get $~lib/memory/__stack_pointer - i32.const 1536 - i32.store - i32.const 1536 - call $~lib/console/console.log - global.get $~lib/memory/__stack_pointer - i32.const 1568 - i32.store - i32.const 1568 - call $~lib/console/console.log - global.get $~lib/memory/__stack_pointer - i32.const 1600 - i32.store - i32.const 1600 - call $~lib/console/console.log - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 34400 - i32.const 34448 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/console/console.assert (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/console/console.log (param $0 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -259,24 +62,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store local.get $0 - i32.const 0 - i32.ne - local.get $1 - call $~lib/bindings/dom/console.assert + call $~lib/bindings/dom/console.log global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/console/console.log (param $0 i32) - (local $1 i32) + (func $~lib/console/console.time (param $0 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -293,21 +91,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - call $~lib/bindings/dom/console.log + call $~lib/bindings/dom/console.time global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/console/console.time (param $0 i32) - (local $1 i32) + (func $~lib/console/console.timeLog (param $0 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -324,21 +120,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - call $~lib/bindings/dom/console.time + call $~lib/bindings/dom/console.timeLog global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/console/console.timeLog (param $0 i32) - (local $1 i32) + (func $~lib/console/console.timeEnd (param $0 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -355,21 +149,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - call $~lib/bindings/dom/console.timeLog + call $~lib/bindings/dom/console.timeEnd global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/console/console.timeEnd (param $0 i32) - (local $1 i32) + (func $~lib/console/console.assert (param $0 i32) (param $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -386,17 +178,140 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $0 i32.store local.get $0 - call $~lib/bindings/dom/console.timeEnd + i32.const 0 + i32.ne + local.get $1 + call $~lib/bindings/dom/console.assert global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) + (func $~start + i32.const 0 + i32.const 1056 + call $~lib/console/console.assert + i32.const 1 + i32.const 1088 + call $~lib/console/console.assert + i32.const 1120 + call $~lib/console/console.log + 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 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 34448 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) ) diff --git a/tests/compiler/std/dataview.debug.wat b/tests/compiler/std/dataview.debug.wat index d2e17e744a..ad44b4a321 100644 --- a/tests/compiler/std/dataview.debug.wat +++ b/tests/compiler/std/dataview.debug.wat @@ -1636,14 +1636,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 @@ -2574,12 +2577,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -2595,12 +2594,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/std/dataview.release.wat b/tests/compiler/std/dataview.release.wat index cc6eb07c78..f02332e163 100644 --- a/tests/compiler/std/dataview.release.wat +++ b/tests/compiler/std/dataview.release.wat @@ -1,20 +1,20 @@ (module - (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 $0 (func (param i32 i32 i32) (result i32))) + (type $1 (func (param i32 i32 i32))) + (type $2 (func (param i32 i32) (result i32))) + (type $3 (func)) (type $4 (func (param i32))) (type $5 (func (param i32 i32))) (type $6 (func (param i32 i32) (result i64))) (type $7 (func (param i32 i64 i32))) (type $8 (func (param i32 i32 i32 i32))) - (type $9 (func (param i32 i32 i64))) + (type $9 (func (param i32 i32 i32) (result f32))) (type $10 (func (result 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 $11 (func (param i32 i32) (result f64))) + (type $12 (func (param i32 i32 i64))) + (type $13 (func (param i32 f64 i32))) (type $14 (func (param i32 f32 i32))) - (type $15 (func (param i32 f64 i32))) + (type $15 (func (param i32) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (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)) @@ -51,794 +51,523 @@ (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 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/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 + (func $~lib/dataview/DataView#getUint16 (param $0 i32) (param $1 i32) (param $2 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 - 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$218 - 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$218 - 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 34560 + i32.const 34608 i32.const 1 - else - local.get $1 - i32.const 1744 - i32.load - i32.gt_u - if - i32.const 1360 - i32.const 1424 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.const 1748 - i32.add - i32.load - i32.const 32 - i32.and + i32.const 1 + call $~lib/builtins/abort + unreachable 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 + 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.store offset=8 - local.get $1 + i32.const 31 + i32.shr_u local.get $0 + i32.load offset=8 local.get $1 - i32.load offset=4 - i32.const 3 - i32.and + i32.const 2 + i32.add + i32.lt_s 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 + i32.const 1360 + i32.const 1632 + i32.const 79 + i32.const 7 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const 256 - i32.lt_u + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=4 + i32.add + i32.load16_u + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 if (result i32) - local.get $3 - i32.const 4 - i32.shr_u + local.get $0 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 + local.get $0 + i32.const 8 + i32.shl + local.get $0 + i32.const 8 i32.shr_u - i32.const 16 - i32.xor + i32.or end - local.tee $3 - i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u - i32.and - i32.eqz + ) + (func $~lib/dataview/DataView#getInt16 (param $0 i32) (param $1 i32) (param $2 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 0 - i32.const 1504 - i32.const 284 - i32.const 14 + 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 + i32.const 31 + i32.shr_u + local.get $0 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 + i32.const 2 + i32.add + i32.lt_s + i32.or if - local.get $5 - local.get $4 - i32.store offset=4 + i32.const 1360 + i32.const 1632 + i32.const 58 + i32.const 7 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $1 local.get $0 - local.get $2 - i32.const 4 - i32.shl - local.get $3 + i32.load offset=4 i32.add - i32.const 2 - i32.shl + i32.load16_s + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 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 + global.set $~lib/memory/__stack_pointer + local.get $2 + if (result i32) + local.get $0 + else + local.get $0 + i32.const 8 + i32.shl + local.get $0 + i32.const 65535 + i32.and + i32.const 8 + i32.shr_u + i32.or 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 + (func $~lib/dataview/DataView#getUint32 (param $0 i32) (param $1 i32) (param $2 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 0 - i32.const 1504 - i32.const 201 - i32.const 14 + 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 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + i32.const 31 + i32.shr_u + local.get $0 + i32.load offset=8 + local.get $1 + i32.const 4 + i32.add + i32.lt_s + i32.or if - i32.const 0 - i32.const 1504 - i32.const 203 - i32.const 14 + i32.const 1360 + i32.const 1632 + i32.const 87 + i32.const 7 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $1 - i32.const 4 + local.get $0 + i32.load offset=4 i32.add - local.get $1 i32.load - i32.const -4 - i32.and + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.tee $4 - i32.load - local.tee $2 - i32.const 1 - i32.and - if + global.set $~lib/memory/__stack_pointer + local.get $2 + if (result i32) 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 + else + local.get $0 + i32.const -16711936 i32.and - i32.eqz - if - i32.const 0 - i32.const 1504 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end + i32.const 8 + i32.rotl 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.const 16711935 i32.and - i32.add - local.tee $3 - i32.store + i32.const 8 + i32.rotr + i32.or 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 + ) + (func $~lib/dataview/DataView#getInt32 (param $0 i32) (param $1 i32) (param $2 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 0 - i32.const 1504 - i32.const 233 - i32.const 14 + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $4 + 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 31 + i32.shr_u + local.get $0 + i32.load offset=8 local.get $1 i32.const 4 i32.add - local.get $2 - i32.add - i32.ne + i32.lt_s + i32.or if - i32.const 0 - i32.const 1504 - i32.const 234 - i32.const 14 + i32.const 1360 + i32.const 1632 + i32.const 66 + i32.const 7 call $~lib/builtins/abort unreachable end - local.get $4 - i32.const 4 - i32.sub - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store + local.get $1 + local.get $0 + i32.load offset=4 + i32.add + i32.load + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $2 - i32.const 256 - i32.lt_u if (result i32) - local.get $2 - i32.const 4 - i32.shr_u + local.get $0 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 + local.get $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 end - local.tee $2 - i32.const 16 - i32.lt_u - local.get $5 - i32.const 23 - i32.lt_u - i32.and - i32.eqz + ) + (func $~lib/dataview/DataView#getFloat32 (param $0 i32) (param $1 i32) (param $2 i32) (result f32) + (local $3 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 0 - i32.const 1504 - i32.const 251 - i32.const 14 + 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 + i32.const 31 + i32.shr_u + local.get $0 + i32.load offset=8 + local.get $1 + i32.const 4 + i32.add + i32.lt_s + i32.or + if + i32.const 1360 + i32.const 1632 + i32.const 35 + i32.const 7 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 + if (result f32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $1 - i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.add + f32.load + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=4 + i32.add + 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 + f32.reinterpret_i32 end - local.get $0 - local.get $5 + global.get $~lib/memory/__stack_pointer 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 + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/dataview/DataView#getUint8 (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 - 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 + i32.store local.get $1 - i64.extend_i32_u - i64.lt_u + local.get $0 + i32.load offset=8 + i32.ge_u if - i32.const 0 - i32.const 1504 - i32.const 382 - i32.const 14 + i32.const 1360 + i32.const 1632 + i32.const 72 + i32.const 50 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $1 - i32.const 19 + local.get $0 + i32.load offset=4 i32.add - i32.const -16 - i32.and + i32.load8_u + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/dataview/DataView#getInt8 (param $0 i32) (param $1 i32) (result i32) + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub - local.set $1 - local.get $0 - i32.load offset=1568 - local.tee $3 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1772 + i32.lt_s 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 + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and + 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.sub - local.tee $3 - i32.const 20 - i32.lt_u + local.get $0 + i32.load offset=8 + i32.ge_u if - return + i32.const 1360 + i32.const 1632 + i32.const 51 + i32.const 50 + call $~lib/builtins/abort + unreachable 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 + local.get $0 i32.store local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 - i32.const 4 + local.get $0 + i32.load offset=4 i32.add - local.get $3 + i32.load8_s + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.tee $3 - i32.const 2 + 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 + 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 - local.get $3 - i32.store offset=1568 - local.get $0 + i32.store 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 + local.get $0 + i32.load offset=8 + i32.ge_u if + i32.const 1360 + i32.const 1568 + i32.const 178 + i32.const 45 + call $~lib/builtins/abort unreachable end - i32.const 34544 - i32.const 0 - i32.store - i32.const 36112 - i32.const 0 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - loop $for-loop|0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.add + local.get $2 + i32.store8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (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 - 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 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount 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) @@ -1050,7 +779,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1083,153 +811,23 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.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 + 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) (param $1 i32) (result i32) (local $2 i32) @@ -1264,12 +862,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 @@ -1281,8 +875,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1334,8 +927,6 @@ local.tee $2 i32.eqz if - memory.size - local.tee $2 local.get $5 i32.const 256 i32.ge_u @@ -1363,7 +954,8 @@ i32.const 4 local.get $4 i32.load offset=1568 - local.get $2 + memory.size + local.tee $2 i32.const 16 i32.shl i32.const 4 @@ -1377,7 +969,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.set $3 + local.get $2 + local.get $3 local.get $2 local.get $3 i32.gt_s @@ -1538,19 +1132,252 @@ 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 + 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/dataview/DataView#getUint64 (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 $0 + i32.load offset=8 + i32.const 8 + i32.lt_s + if + i32.const 1360 + i32.const 1632 + i32.const 159 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i64.load + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + if (result i64) + local.get $2 + else + local.get $2 + i64.const 8 + i64.shr_u + i64.const 71777214294589695 + i64.and + local.get $2 + i64.const 71777214294589695 + i64.and + i64.const 8 + i64.shl + i64.or + local.tee $2 + i64.const 16 + i64.shr_u + i64.const 281470681808895 + i64.and + local.get $2 + i64.const 281470681808895 + i64.and + i64.const 16 + i64.shl + i64.or + i64.const 32 + i64.rotr + end + ) + (func $~lib/dataview/DataView#getInt64 (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 $0 + i32.load offset=8 + i32.const 8 + i32.lt_s + if + i32.const 1360 + i32.const 1632 + i32.const 151 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i64.load + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + if (result i64) + local.get $2 + else + local.get $2 + i64.const 8 + i64.shr_u + i64.const 71777214294589695 + i64.and + local.get $2 + i64.const 71777214294589695 + i64.and + i64.const 8 + i64.shl + i64.or + local.tee $2 + i64.const 16 + i64.shr_u + i64.const 281470681808895 + i64.and + local.get $2 + i64.const 281470681808895 + i64.and + i64.const 16 + i64.shl + i64.or + i64.const 32 + i64.rotr + end + ) + (func $~lib/dataview/DataView#getFloat64 (param $0 i32) (param $1 i32) (result f64) + (local $2 i64) + (local $3 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 $0 + i32.load offset=8 + i32.const 8 + i32.lt_s + if + i32.const 1360 + i32.const 1632 + i32.const 44 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $1 + if (result f64) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + f64.load + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i64.load + local.tee $2 + i64.const 8 + i64.shr_u + i64.const 71777214294589695 + i64.and + local.get $2 + i64.const 71777214294589695 + i64.and + i64.const 8 + i64.shl + i64.or + local.tee $2 + i64.const 16 + i64.shr_u + i64.const 281470681808895 + i64.and + local.get $2 + i64.const 281470681808895 + i64.and + i64.const 16 + i64.shl + i64.or + i64.const 32 + i64.rotr + f64.reinterpret_i64 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/arraybuffer/ArrayBufferView#set:buffer (param $0 i32) (param $1 i32) - (local $2 i32) local.get $0 local.get $1 i32.store @@ -1567,7 +1394,6 @@ unreachable end global.get $~lib/rt/itcms/white - local.tee $2 local.get $1 i32.const 20 i32.sub @@ -1584,7 +1410,7 @@ i32.const 3 i32.and local.tee $0 - local.get $2 + global.get $~lib/rt/itcms/white i32.eqz i32.eq if @@ -1606,872 +1432,924 @@ end end ) - (func $~lib/rt/__visit_members (param $0 i32) - block $folding-inner0 - block $invalid - 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-inner0 $folding-inner0 $folding-inner0 $invalid - end - return - end - return - end - return - end - unreachable - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - ) - (func $~start - call $start:std/dataview - ) - (func $~lib/typedarray/Uint8Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - local.tee $3 - i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store + (local $4 i32) + (local $5 i32) local.get $1 - local.get $0 - i32.load offset=8 - i32.ge_u - if - i32.const 1360 - i32.const 1568 - i32.const 178 - i32.const 45 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + i32.load local.tee $3 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=4 - i32.add - local.get $2 - i32.store8 - local.get $3 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/dataview/DataView#constructor (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1772 - i32.lt_s + i32.const 1 + i32.and + i32.eqz if - i32.const 34560 - i32.const 34608 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1504 + i32.const 268 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - i32.const 0 - i32.store offset=8 local.get $3 - i32.const 12 - i32.const 5 - call $~lib/rt/itcms/__new + i32.const -4 + i32.and local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:buffer - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - 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 20 - i32.sub - i32.load offset=16 - local.get $1 - local.get $2 - i32.add + i32.const 12 i32.lt_u - local.get $2 - i32.const 1073741820 - i32.gt_u - i32.or if - i32.const 1056 - i32.const 1632 - i32.const 25 - i32.const 7 + i32.const 0 + i32.const 1504 + i32.const 270 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $3 - i32.store offset=4 - local.get $4 - local.get $0 - i32.store offset=8 - local.get $3 - local.get $0 - call $~lib/arraybuffer/ArrayBufferView#set:buffer - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - local.get $1 - i32.add - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer local.get $3 - ) - (func $~lib/arraybuffer/ArrayBufferView#get:byteOffset (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 1772 - i32.lt_s + 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 34560 - i32.const 34608 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1504 + i32.const 284 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store local.get $1 - local.get $0 - i32.store - local.get $0 + i32.load offset=8 + local.set $5 + local.get $1 i32.load offset=4 - local.set $2 + 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 - i32.store local.get $2 - local.get $0 - i32.load - i32.sub - local.set $0 - local.get $1 i32.const 4 + i32.shl + local.get $3 i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + 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/dataview/DataView#getFloat32 (param $0 i32) (param $1 i32) (param $2 i32) (result f32) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) (local $3 i32) - (local $4 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 + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $1 + i32.eqz if - i32.const 34560 - i32.const 34608 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1504 + i32.const 201 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store - local.get $1 - i32.const 31 - i32.shr_u - local.get $0 - i32.load offset=8 local.get $1 - i32.const 4 - i32.add - i32.lt_s - i32.or + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz if - i32.const 1360 - i32.const 1632 - i32.const 35 - i32.const 7 + i32.const 0 + i32.const 1504 + i32.const 203 + i32.const 14 call $~lib/builtins/abort unreachable end - local.get $2 - if (result f32) - global.get $~lib/memory/__stack_pointer + 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 - i32.store + local.get $4 + call $~lib/rt/tlsf/removeBlock local.get $1 - local.get $0 - i32.load offset=4 + local.get $3 + i32.const 4 i32.add - f32.load - else - global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 + i32.const -4 + i32.and + i32.add + local.tee $3 i32.store local.get $1 - local.get $0 - i32.load offset=4 + i32.const 4 i32.add + local.get $1 i32.load - local.tee $0 - i32.const -16711936 - i32.and - i32.const 8 - i32.rotl - local.get $0 - i32.const 16711935 + i32.const -4 i32.and - i32.const 8 - i32.rotr - i32.or - f32.reinterpret_i32 + i32.add + local.tee $4 + i32.load + local.set $2 end - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - ) - (func $~lib/dataview/DataView#getFloat64 (param $0 i32) (param $1 i32) (result f64) - (local $2 i64) - (local $3 i32) - (local $4 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 + local.get $3 + i32.const 2 + i32.and if - i32.const 34560 - i32.const 34608 - i32.const 1 + local.get $1 + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + local.tee $6 i32.const 1 - call $~lib/builtins/abort - unreachable + 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 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 + local.get $4 + local.get $2 + i32.const 2 + i32.or i32.store local.get $3 - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - i32.const 8 - i32.lt_s + i32.const -4 + i32.and + local.tee $2 + i32.const 12 + i32.lt_u if - i32.const 1360 - i32.const 1632 - i32.const 44 - i32.const 7 + i32.const 0 + i32.const 1504 + i32.const 233 + i32.const 14 call $~lib/builtins/abort unreachable end + local.get $4 local.get $1 - if (result f64) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - f64.load - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - i64.load - local.tee $2 - i64.const 8 - i64.shr_u - i64.const 71777214294589695 - i64.and - local.get $2 - i64.const 71777214294589695 - i64.and - i64.const 8 - i64.shl - i64.or - local.tee $2 - i64.const 16 - i64.shr_u - i64.const 281470681808895 - i64.and - local.get $2 - i64.const 281470681808895 - i64.and - i64.const 16 - i64.shl - i64.or - i64.const 32 - i64.rotr - f64.reinterpret_i64 - end - local.set $4 - global.get $~lib/memory/__stack_pointer i32.const 4 i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - ) - (func $~lib/dataview/DataView#getInt8 (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1772 - i32.lt_s + local.get $2 + i32.add + i32.ne if - i32.const 34560 - i32.const 34608 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1504 + i32.const 234 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 + local.get $4 + i32.const 4 + i32.sub + local.get $1 i32.store local.get $2 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=8 - i32.ge_u + 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 1360 - i32.const 1632 - i32.const 51 - i32.const 50 + i32.const 0 + i32.const 1504 + i32.const 251 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 - i32.store + 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 - i32.load offset=4 - i32.add - i32.load8_s - local.set $0 - local.get $2 + local.get $5 i32.const 4 + i32.shl + local.get $2 i32.add - global.set $~lib/memory/__stack_pointer + i32.const 2 + i32.shl + i32.add + local.get $1 + i32.store offset=96 local.get $0 - ) - (func $~lib/dataview/DataView#getInt16 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 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 - local.tee $3 - i32.const 0 - i32.store - local.get $3 local.get $0 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or i32.store - local.get $1 - i32.const 31 - i32.shr_u local.get $0 - i32.load offset=8 - local.get $1 + local.get $5 i32.const 2 + i32.shl i32.add - i32.lt_s - i32.or - if - i32.const 1360 - i32.const 1632 - i32.const 58 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store - local.get $1 + local.tee $0 local.get $0 i32.load offset=4 - i32.add - i32.load16_s - local.set $0 - local.get $3 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 1 local.get $2 - if (result i32) + i32.shl + i32.or + i32.store offset=4 + ) + (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 - else + 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$221 local.get $0 - i32.const 8 - i32.shl + 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$221 + end local.get $0 - i32.const 65535 + 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.const 8 - i32.shr_u i32.or + i32.store offset=4 end - ) - (func $~lib/dataview/DataView#getInt32 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1772 - i32.lt_s - if - i32.const 34560 - i32.const 34608 - i32.const 1 + 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 - call $~lib/builtins/abort - unreachable + else + local.get $1 + i32.const 1744 + i32.load + i32.gt_u + if + i32.const 1360 + i32.const 1424 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1748 + i32.add + i32.load + i32.const 32 + i32.and end - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store + 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 - i32.store local.get $1 - i32.const 31 - i32.shr_u + i32.store offset=8 + local.get $1 local.get $0 - i32.load offset=8 local.get $1 - i32.const 4 - i32.add - i32.lt_s + i32.load offset=4 + i32.const 3 + i32.and i32.or - if - i32.const 1360 - i32.const 1632 - i32.const 66 - i32.const 7 - call $~lib/builtins/abort + i32.store offset=4 + local.get $2 + local.get $0 + i32.store offset=8 + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $folding-inner0 + block $invalid + 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-inner0 $folding-inner0 $folding-inner0 $invalid + end + return + end + return + end + return + end unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store - local.get $1 local.get $0 - i32.load offset=4 - i32.add i32.load - local.set $0 - local.get $3 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - if (result i32) - local.get $0 - else - local.get $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 - end + call $~lib/rt/itcms/__visit ) - (func $~lib/dataview/DataView#getInt64 (param $0 i32) (param $1 i32) (result i64) - (local $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 1772 - i32.lt_s + (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 - i32.const 34560 - i32.const 34608 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + 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 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - i32.const 8 - i32.lt_s + 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 1360 - i32.const 1632 - i32.const 151 - i32.const 7 + i32.const 0 + i32.const 1504 + i32.const 334 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store local.get $0 - i32.load offset=4 - i64.load - local.set $2 - local.get $3 - i32.const 4 + local.get $2 + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer + i32.load offset=4 + i32.const -1 local.get $1 - if (result i64) + 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 - i64.const 8 - i64.shr_u - i64.const 71777214294589695 - i64.and - local.get $2 - i64.const 71777214294589695 - i64.and - i64.const 8 - i64.shl - i64.or - local.tee $2 - i64.const 16 - i64.shr_u - i64.const 281470681808895 - i64.and - local.get $2 - i64.const 281470681808895 - i64.and - i64.const 16 - i64.shl - i64.or - i64.const 32 - i64.rotr - end - ) - (func $~lib/dataview/DataView#getUint8 (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 + 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 - global.get $~lib/memory/__stack_pointer - local.tee $2 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=8 - i32.ge_u - if - i32.const 1360 - i32.const 1632 - i32.const 72 - i32.const 50 - call $~lib/builtins/abort - unreachable + 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 - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=4 - i32.add - i32.load8_u - local.set $0 - local.get $2 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/dataview/DataView#getUint16 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 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 - local.tee $3 + i32.const 34544 i32.const 0 i32.store - local.get $3 - local.get $0 + 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/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 - i32.const 31 - i32.shr_u - local.get $0 - i32.load offset=8 - local.get $1 - i32.const 2 - i32.add - i32.lt_s - i32.or + i64.extend_i32_u + i64.lt_u if - i32.const 1360 - i32.const 1632 - i32.const 79 - i32.const 7 + i32.const 0 + i32.const 1504 + i32.const 382 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store local.get $1 - local.get $0 - i32.load offset=4 + i32.const 19 i32.add - i32.load16_u - local.set $0 - local.get $3 + i32.const -16 + i32.and i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - if (result i32) - local.get $0 + 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 8 - i32.shl - local.get $0 - i32.const 8 - i32.shr_u - i32.or + 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 - ) - (func $~lib/dataview/DataView#getUint32 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1772 - i32.lt_s + local.tee $3 + i32.const 20 + i32.lt_u if - i32.const 34560 - i32.const 34608 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + return end - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store + local.get $1 + local.get $4 + i32.const 2 + i32.and local.get $3 - local.get $0 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or i32.store local.get $1 - i32.const 31 - i32.shr_u - local.get $0 - i32.load offset=8 + 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 - i32.lt_s - i32.or - if - i32.const 1360 - i32.const 1632 - i32.const 87 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + local.get $3 + i32.add local.tee $3 - local.get $0 + i32.const 2 i32.store - local.get $1 local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (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 1168 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 i32.load offset=4 - i32.add - i32.load + i32.const -4 + i32.and local.set $0 - local.get $3 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - if (result i32) - local.get $0 - else - local.get $0 - i32.const -16711936 - i32.and - i32.const 8 - i32.rotl + loop $while-continue|0 local.get $0 - i32.const 16711935 - i32.and - i32.const 8 - i32.rotr - i32.or + 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/dataview/DataView#getUint64 (param $0 i32) (param $1 i32) (result i64) - (local $2 i64) - (local $3 i32) + (func $~lib/dataview/DataView#setUint64 (param $0 i32) (param $1 i64) (param $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2488,10 +2366,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -2501,44 +2378,37 @@ if i32.const 1360 i32.const 1632 - i32.const 159 + i32.const 174 i32.const 7 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 i32.load offset=4 - i64.load - local.set $2 - local.get $3 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 if (result i64) - local.get $2 + local.get $1 else - local.get $2 + local.get $1 i64.const 8 i64.shr_u i64.const 71777214294589695 i64.and - local.get $2 + local.get $1 i64.const 71777214294589695 i64.and i64.const 8 i64.shl i64.or - local.tee $2 + local.tee $1 i64.const 16 i64.shr_u i64.const 281470681808895 i64.and - local.get $2 + local.get $1 i64.const 281470681808895 i64.and i64.const 16 @@ -2547,9 +2417,13 @@ i64.const 32 i64.rotr end + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/dataview/DataView#setFloat32 (param $0 i32) (param $1 f32) (param $2 i32) - (local $3 i32) + (func $~lib/dataview/DataView#setUint32 (param $0 i32) (param $1 i32) (param $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2566,10 +2440,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -2579,49 +2452,39 @@ if i32.const 1360 i32.const 1632 - i32.const 95 + i32.const 142 i32.const 7 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 $2 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 + if (result i32) local.get $1 - f32.store else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 local.get $1 - i32.reinterpret_f32 - local.tee $0 i32.const -16711936 i32.and i32.const 8 i32.rotl - local.get $0 + local.get $1 i32.const 16711935 i32.and i32.const 8 i32.rotr i32.or - i32.store end + i32.store global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/dataview/DataView#setFloat64 (param $0 i32) (param $1 f64) (param $2 i32) - (local $3 i64) - (local $4 i32) + (func $~lib/dataview/DataView#setUint16 (param $0 i32) (param $1 i32) (param $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2638,74 +2501,49 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i32.const 0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=8 - i32.const 8 + i32.const 2 i32.lt_s if i32.const 1360 i32.const 1632 - i32.const 103 + i32.const 135 i32.const 7 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 $2 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 + if (result i32) local.get $1 - f64.store else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 local.get $1 - i64.reinterpret_f64 - local.tee $3 - i64.const 8 - i64.shr_u - i64.const 71777214294589695 - i64.and - local.get $3 - i64.const 71777214294589695 - i64.and - i64.const 8 - i64.shl - i64.or - local.tee $3 - i64.const 16 - i64.shr_u - i64.const 281470681808895 - i64.and - local.get $3 - i64.const 281470681808895 - i64.and - i64.const 16 - i64.shl - i64.or - i64.const 32 - i64.rotr - i64.store + i32.const 8 + i32.shl + local.get $1 + i32.const 65535 + i32.and + i32.const 8 + i32.shr_u + i32.or end + i32.store16 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/dataview/DataView#setInt16 (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $~lib/dataview/DataView#setInt64 (param $0 i32) (param $1 i64) (param $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2722,20 +2560,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=8 - i32.const 2 + i32.const 8 i32.lt_s if i32.const 1360 i32.const 1632 - i32.const 116 + i32.const 167 i32.const 7 call $~lib/builtins/abort unreachable @@ -2746,27 +2583,41 @@ local.get $0 i32.load offset=4 local.get $2 - if (result i32) + if (result i64) local.get $1 else local.get $1 - i32.const 8 - i32.shl + i64.const 8 + i64.shr_u + i64.const 71777214294589695 + i64.and local.get $1 - i32.const 65535 - i32.and - i32.const 8 - i32.shr_u - i32.or + 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 end - i32.store16 + i64.store global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) (func $~lib/dataview/DataView#setInt32 (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2783,10 +2634,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -2828,8 +2678,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/dataview/DataView#setInt64 (param $0 i32) (param $1 i64) (param $2 i32) - (local $3 i32) + (func $~lib/dataview/DataView#setInt16 (param $0 i32) (param $1 i32) (param $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2846,20 +2695,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=8 - i32.const 8 + i32.const 2 i32.lt_s if i32.const 1360 i32.const 1632 - i32.const 167 + i32.const 116 i32.const 7 call $~lib/builtins/abort unreachable @@ -2870,42 +2718,27 @@ local.get $0 i32.load offset=4 local.get $2 - if (result i64) + if (result i32) local.get $1 else local.get $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 + i32.const 8 + i32.shl local.get $1 - i64.const 281470681808895 - i64.and - i64.const 16 - i64.shl - i64.or - i64.const 32 - i64.rotr + i32.const 65535 + i32.and + i32.const 8 + i32.shr_u + i32.or end - i64.store + i32.store16 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/dataview/DataView#setUint16 (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $~lib/dataview/DataView#setFloat64 (param $0 i32) (param $1 f64) (param $2 i32) + (local $3 i64) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2922,51 +2755,72 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=8 - i32.const 2 + i32.const 8 i32.lt_s if i32.const 1360 i32.const 1632 - i32.const 135 + i32.const 103 i32.const 7 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 $2 - if (result i32) + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 local.get $1 + f64.store else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 local.get $1 - i32.const 8 - i32.shl - local.get $1 - i32.const 65535 - i32.and - i32.const 8 - i32.shr_u - i32.or + i64.reinterpret_f64 + local.tee $3 + i64.const 8 + i64.shr_u + i64.const 71777214294589695 + i64.and + local.get $3 + i64.const 71777214294589695 + i64.and + i64.const 8 + i64.shl + i64.or + local.tee $3 + i64.const 16 + i64.shr_u + i64.const 281470681808895 + i64.and + local.get $3 + i64.const 281470681808895 + i64.and + i64.const 16 + i64.shl + i64.or + i64.const 32 + i64.rotr + i64.store end - i32.store16 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/dataview/DataView#setUint32 (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $~lib/dataview/DataView#setFloat32 (param $0 i32) (param $1 f32) (param $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2983,10 +2837,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -2996,42 +2849,50 @@ if i32.const 1360 i32.const 1632 - i32.const 142 + i32.const 95 i32.const 7 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 $2 - if (result i32) + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 local.get $1 + f32.store else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 local.get $1 + i32.reinterpret_f32 + local.tee $0 i32.const -16711936 i32.and i32.const 8 i32.rotl - local.get $1 + local.get $0 i32.const 16711935 i32.and i32.const 8 i32.rotr i32.or + i32.store end - i32.store global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/dataview/DataView#setUint64 (param $0 i32) (param $1 i64) (param $2 i32) + (func $~lib/dataview/DataView#constructor (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -3046,64 +2907,126 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + 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 12 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $3 i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:buffer + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 local.get $3 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=4 local.get $0 - i32.load offset=8 - i32.const 8 - i32.lt_s + i32.const 20 + i32.sub + i32.load offset=16 + local.get $1 + local.get $2 + i32.add + i32.lt_u + local.get $2 + i32.const 1073741820 + i32.gt_u + i32.or if - i32.const 1360 + i32.const 1056 i32.const 1632 - i32.const 174 + i32.const 25 i32.const 7 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=8 + local.get $3 local.get $0 - i32.load offset=4 + call $~lib/arraybuffer/ArrayBufferView#set:buffer + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $0 + local.get $1 + i32.add + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 local.get $2 - if (result i64) - local.get $1 - else - local.get $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 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/arraybuffer/ArrayBufferView#get:byteOffset (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1772 + i32.lt_s + if + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - i64.store + 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 $0 + i32.store + local.get $0 + i32.load + i32.sub global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) + (func $~start + call $start:std/dataview + ) (func $start:std/dataview (local $0 i32) (local $1 i32) @@ -3119,10 +3042,9 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 memory.size @@ -3157,8 +3079,8 @@ i32.store i32.const 1456 global.set $~lib/rt/itcms/fromSpace - local.get $0 - block $__inlined_func$~lib/typedarray/Uint8Array#constructor$3 (result i32) + global.get $~lib/memory/__stack_pointer + block $__inlined_func$~lib/typedarray/Uint8Array#constructor (result i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3169,20 +3091,19 @@ i32.lt_s br_if $folding-inner00 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer @@ -3191,16 +3112,15 @@ i32.lt_s br_if $folding-inner00 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 local.get $0 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 3 call $~lib/rt/itcms/__new @@ -3256,7 +3176,6 @@ i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -3264,99 +3183,97 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $0 - br $__inlined_func$~lib/typedarray/Uint8Array#constructor$3 + br $__inlined_func$~lib/typedarray/Uint8Array#constructor end br $folding-inner1 end - local.tee $0 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 0 i32.const 246 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1 i32.const 224 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 2 i32.const 88 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 3 i32.const 159 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 4 i32.const 130 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 5 i32.const 101 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 6 i32.const 67 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 7 i32.const 95 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.load - local.tee $1 + local.tee $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.set $2 - local.get $0 + local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 local.get $2 - local.get $1 local.get $3 - local.get $0 + local.get $1 i32.load offset=8 call $~lib/dataview/DataView#constructor - local.tee $1 + local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.const 1 call $~lib/dataview/DataView#getFloat32 @@ -3371,9 +3288,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1 i32.const 1 call $~lib/dataview/DataView#getFloat32 @@ -3388,9 +3305,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 2 i32.const 1 call $~lib/dataview/DataView#getFloat32 @@ -3405,9 +3322,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 3 i32.const 1 call $~lib/dataview/DataView#getFloat32 @@ -3422,9 +3339,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 4 i32.const 1 call $~lib/dataview/DataView#getFloat32 @@ -3439,9 +3356,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.const 0 call $~lib/dataview/DataView#getFloat32 @@ -3456,9 +3373,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1 i32.const 0 call $~lib/dataview/DataView#getFloat32 @@ -3473,9 +3390,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 2 i32.const 0 call $~lib/dataview/DataView#getFloat32 @@ -3490,9 +3407,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 3 i32.const 0 call $~lib/dataview/DataView#getFloat32 @@ -3507,9 +3424,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 4 i32.const 0 call $~lib/dataview/DataView#getFloat32 @@ -3524,9 +3441,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1 call $~lib/dataview/DataView#getFloat64 f64.const 7936550095674706383278551e126 @@ -3540,9 +3457,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 call $~lib/dataview/DataView#getFloat64 f64.const -411777475818852546741639e241 @@ -3556,9 +3473,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 call $~lib/dataview/DataView#getInt8 i32.const -10 @@ -3572,9 +3489,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1 call $~lib/dataview/DataView#getInt8 i32.const -32 @@ -3588,9 +3505,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 2 call $~lib/dataview/DataView#getInt8 i32.const 88 @@ -3604,9 +3521,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 3 call $~lib/dataview/DataView#getInt8 i32.const -97 @@ -3620,9 +3537,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 4 call $~lib/dataview/DataView#getInt8 i32.const -126 @@ -3636,9 +3553,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 5 call $~lib/dataview/DataView#getInt8 i32.const 101 @@ -3652,9 +3569,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 6 call $~lib/dataview/DataView#getInt8 i32.const 67 @@ -3668,9 +3585,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 7 call $~lib/dataview/DataView#getInt8 i32.const 95 @@ -3684,9 +3601,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.const 1 call $~lib/dataview/DataView#getInt16 @@ -3703,9 +3620,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1 i32.const 1 call $~lib/dataview/DataView#getInt16 @@ -3722,9 +3639,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 2 i32.const 1 call $~lib/dataview/DataView#getInt16 @@ -3741,9 +3658,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 3 i32.const 1 call $~lib/dataview/DataView#getInt16 @@ -3760,9 +3677,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 4 i32.const 1 call $~lib/dataview/DataView#getInt16 @@ -3779,9 +3696,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 5 i32.const 1 call $~lib/dataview/DataView#getInt16 @@ -3798,9 +3715,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 6 i32.const 1 call $~lib/dataview/DataView#getInt16 @@ -3817,9 +3734,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.const 0 call $~lib/dataview/DataView#getInt16 @@ -3836,9 +3753,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1 i32.const 0 call $~lib/dataview/DataView#getInt16 @@ -3855,9 +3772,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 2 i32.const 0 call $~lib/dataview/DataView#getInt16 @@ -3874,9 +3791,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 3 i32.const 0 call $~lib/dataview/DataView#getInt16 @@ -3893,9 +3810,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 4 i32.const 0 call $~lib/dataview/DataView#getInt16 @@ -3912,9 +3829,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 5 i32.const 0 call $~lib/dataview/DataView#getInt16 @@ -3931,9 +3848,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 6 i32.const 0 call $~lib/dataview/DataView#getInt16 @@ -3950,9 +3867,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.const 1 call $~lib/dataview/DataView#getInt32 @@ -3967,9 +3884,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1 i32.const 1 call $~lib/dataview/DataView#getInt32 @@ -3984,9 +3901,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 2 i32.const 1 call $~lib/dataview/DataView#getInt32 @@ -4001,9 +3918,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 3 i32.const 1 call $~lib/dataview/DataView#getInt32 @@ -4018,9 +3935,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 4 i32.const 1 call $~lib/dataview/DataView#getInt32 @@ -4035,9 +3952,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.const 0 call $~lib/dataview/DataView#getInt32 @@ -4052,9 +3969,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1 i32.const 0 call $~lib/dataview/DataView#getInt32 @@ -4069,9 +3986,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 2 i32.const 0 call $~lib/dataview/DataView#getInt32 @@ -4086,9 +4003,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 3 i32.const 0 call $~lib/dataview/DataView#getInt32 @@ -4103,9 +4020,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 4 i32.const 0 call $~lib/dataview/DataView#getInt32 @@ -4120,9 +4037,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1 call $~lib/dataview/DataView#getInt64 i64.const 6864441868736323830 @@ -4136,9 +4053,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 call $~lib/dataview/DataView#getInt64 i64.const -657428103485373601 @@ -4152,9 +4069,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 call $~lib/dataview/DataView#getUint8 i32.const 246 @@ -4168,9 +4085,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1 call $~lib/dataview/DataView#getUint8 i32.const 224 @@ -4184,9 +4101,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 2 call $~lib/dataview/DataView#getUint8 i32.const 88 @@ -4200,9 +4117,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 3 call $~lib/dataview/DataView#getUint8 i32.const 159 @@ -4216,9 +4133,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 4 call $~lib/dataview/DataView#getUint8 i32.const 130 @@ -4232,9 +4149,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 5 call $~lib/dataview/DataView#getUint8 i32.const 101 @@ -4248,9 +4165,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 6 call $~lib/dataview/DataView#getUint8 i32.const 67 @@ -4264,9 +4181,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 7 call $~lib/dataview/DataView#getUint8 i32.const 95 @@ -4280,9 +4197,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.const 1 call $~lib/dataview/DataView#getUint16 @@ -4299,9 +4216,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1 i32.const 1 call $~lib/dataview/DataView#getUint16 @@ -4318,9 +4235,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 2 i32.const 1 call $~lib/dataview/DataView#getUint16 @@ -4337,9 +4254,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 3 i32.const 1 call $~lib/dataview/DataView#getUint16 @@ -4356,9 +4273,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 4 i32.const 1 call $~lib/dataview/DataView#getUint16 @@ -4375,9 +4292,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 5 i32.const 1 call $~lib/dataview/DataView#getUint16 @@ -4394,9 +4311,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 6 i32.const 1 call $~lib/dataview/DataView#getUint16 @@ -4413,9 +4330,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.const 0 call $~lib/dataview/DataView#getUint16 @@ -4432,9 +4349,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1 i32.const 0 call $~lib/dataview/DataView#getUint16 @@ -4451,9 +4368,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 2 i32.const 0 call $~lib/dataview/DataView#getUint16 @@ -4470,9 +4387,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 3 i32.const 0 call $~lib/dataview/DataView#getUint16 @@ -4489,9 +4406,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 4 i32.const 0 call $~lib/dataview/DataView#getUint16 @@ -4508,9 +4425,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 5 i32.const 0 call $~lib/dataview/DataView#getUint16 @@ -4527,9 +4444,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 6 i32.const 0 call $~lib/dataview/DataView#getUint16 @@ -4546,9 +4463,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.const 1 call $~lib/dataview/DataView#getUint32 @@ -4563,9 +4480,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1 i32.const 1 call $~lib/dataview/DataView#getUint32 @@ -4580,9 +4497,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 2 i32.const 1 call $~lib/dataview/DataView#getUint32 @@ -4597,9 +4514,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 3 i32.const 1 call $~lib/dataview/DataView#getUint32 @@ -4614,9 +4531,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 4 i32.const 1 call $~lib/dataview/DataView#getUint32 @@ -4631,9 +4548,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.const 0 call $~lib/dataview/DataView#getUint32 @@ -4648,9 +4565,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1 i32.const 0 call $~lib/dataview/DataView#getUint32 @@ -4665,9 +4582,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 2 i32.const 0 call $~lib/dataview/DataView#getUint32 @@ -4682,9 +4599,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 3 i32.const 0 call $~lib/dataview/DataView#getUint32 @@ -4699,9 +4616,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 4 i32.const 0 call $~lib/dataview/DataView#getUint32 @@ -4716,9 +4633,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1 call $~lib/dataview/DataView#getUint64 i64.const 6864441868736323830 @@ -4732,9 +4649,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 call $~lib/dataview/DataView#getUint64 i64.const -657428103485373601 @@ -4748,16 +4665,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 f32.const 1.5976661625240943e-18 i32.const 1 call $~lib/dataview/DataView#setFloat32 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.const 1 call $~lib/dataview/DataView#getFloat32 @@ -4772,16 +4689,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 f32.const 1976281973381696323584 i32.const 0 call $~lib/dataview/DataView#setFloat32 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.const 0 call $~lib/dataview/DataView#getFloat32 @@ -4796,16 +4713,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 f64.const -1094252199637739024055454e124 i32.const 1 call $~lib/dataview/DataView#setFloat64 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1 call $~lib/dataview/DataView#getFloat64 f64.const -1094252199637739024055454e124 @@ -4819,16 +4736,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 f64.const 6.022586634778589e-103 i32.const 0 call $~lib/dataview/DataView#setFloat64 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 call $~lib/dataview/DataView#getFloat64 f64.const 6.022586634778589e-103 @@ -4842,10 +4759,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 + local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -4854,13 +4770,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $1 + local.get $0 i32.load offset=8 i32.eqz if @@ -4872,21 +4787,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.load offset=4 i32.const 108 i32.store8 - local.get $2 + 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 $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 call $~lib/dataview/DataView#getInt8 i32.const 108 @@ -4900,16 +4814,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const -13360 i32.const 1 call $~lib/dataview/DataView#setInt16 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.const 1 call $~lib/dataview/DataView#getInt16 @@ -4926,16 +4840,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 14689 i32.const 0 call $~lib/dataview/DataView#setInt16 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.const 0 call $~lib/dataview/DataView#getInt16 @@ -4952,16 +4866,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1204680201 i32.const 1 call $~lib/dataview/DataView#setInt32 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.const 1 call $~lib/dataview/DataView#getInt32 @@ -4976,16 +4890,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 660673230 i32.const 0 call $~lib/dataview/DataView#setInt32 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.const 0 call $~lib/dataview/DataView#getInt32 @@ -5000,16 +4914,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i64.const -3290739641816099749 i32.const 1 call $~lib/dataview/DataView#setInt64 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1 call $~lib/dataview/DataView#getInt64 i64.const -3290739641816099749 @@ -5023,16 +4937,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i64.const 8178932412950708047 i32.const 0 call $~lib/dataview/DataView#setInt64 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 call $~lib/dataview/DataView#getInt64 i64.const 8178932412950708047 @@ -5046,10 +4960,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 + local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -5058,13 +4971,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $1 + local.get $0 i32.load offset=8 i32.eqz if @@ -5076,21 +4988,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.load offset=4 i32.const 238 i32.store8 - local.get $2 + 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 $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 call $~lib/dataview/DataView#getUint8 i32.const 238 @@ -5104,16 +5015,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 58856 i32.const 1 call $~lib/dataview/DataView#setUint16 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.const 1 call $~lib/dataview/DataView#getUint16 @@ -5130,16 +5041,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 60400 i32.const 0 call $~lib/dataview/DataView#setUint16 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.const 0 call $~lib/dataview/DataView#getUint16 @@ -5156,16 +5067,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const -846805744 i32.const 1 call $~lib/dataview/DataView#setUint32 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.const 1 call $~lib/dataview/DataView#getUint32 @@ -5180,16 +5091,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const -1510791631 i32.const 0 call $~lib/dataview/DataView#setUint32 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.const 0 call $~lib/dataview/DataView#getUint32 @@ -5204,16 +5115,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i64.const 2334704782995986958 i32.const 1 call $~lib/dataview/DataView#setUint64 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1 call $~lib/dataview/DataView#getUint64 i64.const 2334704782995986958 @@ -5227,16 +5138,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i64.const -7123186897289856329 i32.const 0 call $~lib/dataview/DataView#setUint64 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 call $~lib/dataview/DataView#getUint64 i64.const -7123186897289856329 @@ -5250,15 +5161,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $0 i32.load - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -5270,36 +5181,34 @@ 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.const 20 i32.sub i32.load offset=16 local.set $2 global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 0 local.get $2 call $~lib/dataview/DataView#constructor - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $1 - local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if i32.const 0 @@ -5310,9 +5219,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.load offset=8 i32.const 8 i32.ne diff --git a/tests/compiler/std/date.debug.wat b/tests/compiler/std/date.debug.wat index 38f16b3ed2..f0af4387e1 100644 --- a/tests/compiler/std/date.debug.wat +++ b/tests/compiler/std/date.debug.wat @@ -43,10 +43,10 @@ (global $~lib/native/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $~lib/builtins/i32.MAX_VALUE i32 (i32.const 2147483647)) (global $~lib/native/ASC_RUNTIME i32 (i32.const 2)) - (global $~lib/rt/__rtti_base i32 (i32.const 6768)) - (global $~lib/memory/__data_end i32 (i32.const 6804)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 39572)) - (global $~lib/memory/__heap_base i32 (i32.const 39572)) + (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) ",\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") @@ -149,35 +149,43 @@ (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) "\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 $101 (i32.const 6268) "\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 $102 (i32.const 6300) "\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 $103 (i32.const 6332) ",\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 $104 (i32.const 6380) "<\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 $105 (i32.const 6444) "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 $106 (i32.const 6524) "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 $107 (i32.const 6604) "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 $108 (i32.const 6684) "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 $109 (i32.const 6768) "\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 $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)) (export "_start" (func $~start)) - (func $~lib/date/daysSinceEpoch (param $y i32) (param $m i32) (param $d i32) (result i64) + (func $~lib/date/daysSinceEpoch (param $year i32) (param $month i32) (param $day i32) (result i64) (local $a i32) (local $b i32) (local $era i32) (local $yoe i32) (local $doy i32) (local $doe i32) - local.get $y - local.get $m + local.get $year + local.get $month i32.const 2 i32.le_s i32.sub - local.set $y + local.set $year block $~lib/date/floorDiv|inlined.0 (result i32) - local.get $y + local.get $year local.set $a i32.const 400 local.set $b @@ -198,15 +206,15 @@ br $~lib/date/floorDiv|inlined.0 end local.set $era - local.get $y + local.get $year local.get $era i32.const 400 i32.mul i32.sub local.set $yoe i32.const 153 - local.get $m - local.get $m + local.get $month + local.get $month i32.const 2 i32.gt_s if (result i32) @@ -220,7 +228,7 @@ i32.add i32.const 5 i32.div_u - local.get $d + local.get $day i32.add i32.const 1 i32.sub @@ -301,7 +309,6 @@ (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 @@ -390,10 +397,6 @@ 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 @@ -401,22 +404,29 @@ i32.const 1 i32.add global.set $~lib/date/_day + local.get $n1 + i32.const 16 + i32.shr_u local.get $dm1 i32.const 306 i32.ge_u - if - local.get $mo + if (result i32) i32.const 12 - i32.sub - local.set $mo - local.get $year - i32.const 1 - i32.add - local.set $year + else + i32.const 0 end - local.get $mo + i32.sub global.set $~lib/date/_month local.get $year + local.get $dm1 + i32.const 306 + i32.ge_u + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.add return ) (func $~lib/date/Date#set:year (param $this i32) (param $year i32) @@ -2013,14 +2023,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 @@ -2694,24 +2707,24 @@ (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 $cent i32) + (local $a|6 i32) + (local $b|7 i32) (local $m i32) local.get $year local.get $month - i32.const 3 - i32.lt_s + i32.const 2 + i32.le_s i32.sub local.set $year - local.get $year block $~lib/date/floorDiv|inlined.2 (result i32) local.get $year + i32.const 2 + i32.shr_s local.set $a - i32.const 4 + i32.const 100 + i32.const 2 + i32.shr_s local.set $b local.get $a local.get $a @@ -2729,49 +2742,16 @@ 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 + local.set $cent + local.get $year + local.get $year + i32.const 2 + i32.shr_s + local.get $cent 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 + local.get $cent + i32.const 2 + i32.shr_s i32.add i32.add local.set $year @@ -2788,11 +2768,11 @@ i32.add local.get $day i32.add - local.set $a|9 + local.set $a|6 i32.const 7 - local.set $b|10 - local.get $a|9 - local.get $b|10 + local.set $b|7 + local.get $a|6 + local.get $b|7 i32.rem_s local.set $m local.get $m @@ -2800,7 +2780,7 @@ i32.const 0 i32.lt_s if (result i32) - local.get $b|10 + local.get $b|7 else i32.const 0 end @@ -3487,77 +3467,6 @@ i32.load 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/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<~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/string/isSpace (param $c i32) (result i32) (local $1 i32) local.get $c @@ -3645,6 +3554,77 @@ i32.const 0 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/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<~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/rt/__visit_globals (param $0 i32) (local $1 i32) i32.const 368 @@ -3676,12 +3656,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -3814,8 +3790,8 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 39600 - i32.const 39648 + i32.const 40240 + i32.const 40288 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3879,7 +3855,7 @@ if i32.const 32 i32.const 80 - i32.const 100 + i32.const 130 i32.const 35 call $~lib/builtins/abort unreachable @@ -3933,7 +3909,7 @@ if i32.const 32 i32.const 80 - i32.const 112 + i32.const 142 i32.const 28 call $~lib/builtins/abort unreachable @@ -4707,13 +4683,13 @@ (func $~lib/date/stringify (param $value i32) (param $padding i32) (result i32) (local $2 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 $value i32.const 10 call $~lib/number/I32#toString @@ -4724,15 +4700,10 @@ local.get $2 local.get $padding i32.const 848 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 call $~lib/string/String#padStart 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 @@ -5411,12 +5382,7 @@ i32.store local.get $19 i32.const 2432 - local.set $19 - global.get $~lib/memory/__stack_pointer - local.get $19 - i32.store offset=4 - local.get $19 - call $~lib/staticarray/StaticArray<~lib/string/String>#join + call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $19 global.get $~lib/memory/__stack_pointer i32.const 64 @@ -5742,11 +5708,6 @@ i32.store offset=8 local.get $20 i32.const 2432 - local.set $20 - global.get $~lib/memory/__stack_pointer - local.get $20 - i32.store offset=48 - local.get $20 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $20 global.get $~lib/memory/__stack_pointer @@ -5870,11 +5831,6 @@ i32.store local.get $7 i32.const 2432 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=28 - local.get $7 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $7 global.get $~lib/memory/__stack_pointer @@ -6201,11 +6157,6 @@ i32.store offset=8 local.get $26 i32.const 2432 - local.set $26 - global.get $~lib/memory/__stack_pointer - local.get $26 - i32.store offset=72 - local.get $26 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $26 global.get $~lib/memory/__stack_pointer @@ -6528,127 +6479,8 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) - (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 5760 - i32.const 5712 - 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<~lib/string/String>#__set (param $this i32) (param $index i32) (param $value i32) - (local $3 i32) + (func $~lib/string/String#charCodeAt (param $this i32) (param $pos i32) (result i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -6657,73 +6489,49 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $index + local.get $pos 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/array/Array<~lib/string/String>#get:length_ + local.get $2 + call $~lib/string/String#get:length i32.ge_u if - local.get $index - i32.const 0 - i32.lt_s - if - i32.const 368 - i32.const 5712 - 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 + i32.const -1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - local.get $index - i32.const 1 + i32.const 4 i32.add - call $~lib/array/Array<~lib/string/String>#set:length_ + global.set $~lib/memory/__stack_pointer + local.get $2 + return 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<~lib/string/String>#get:dataStart - local.get $index - i32.const 2 + local.get $pos + i32.const 1 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 + i32.load16_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/array/Array<~lib/string/String>#push (param $this i32) (param $value i32) (result i32) - (local $oldLen i32) + (func $~lib/util/string/strtol (param $str i32) (param $radix i32) (result i32) (local $len i32) - (local $4 i32) + (local $ptr i32) + (local $code i32) + (local $sign i32) + (local $6 i32) + (local $num i32) + (local $initial i32) + (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -6732,307 +6540,838 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $this - local.set $4 + local.get $str + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $10 i32.store - local.get $4 - call $~lib/array/Array<~lib/string/String>#get:length_ - local.set $oldLen - local.get $oldLen - i32.const 1 - i32.add + local.get $10 + call $~lib/string/String#get:length local.set $len - local.get $this local.get $len - i32.const 2 - i32.const 1 - call $~lib/array/ensureCapacity - i32.const 1 - drop - local.get $this - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - call $~lib/array/Array<~lib/string/String>#get:dataStart - local.get $oldLen - i32.const 2 - i32.shl - i32.add - local.get $value - i32.store - local.get $this - local.get $value - i32.const 1 - call $~lib/rt/itcms/__link - local.get $this - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - local.get $len - call $~lib/array/Array<~lib/string/String>#set:length_ - local.get $len - 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/string/String#split (param $this i32) (param $separator i32) (param $limit i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $length i32) - (local $sepLen i32) - (local $7 i32) - (local $8 i32) - (local $result i32) - (local $resultStart i32) - (local $i i32) - (local $charStr i32) - (local $result|13 i32) - (local $result|14 i32) - (local $end i32) - (local $start i32) - (local $i|17 i32) - (local $len i32) - (local $out i32) - (local $len|20 i32) - (local $out|21 i32) - (local $22 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - local.get $limit i32.eqz if i32.const 0 - i32.const 2 - i32.const 6 + drop i32.const 0 - call $~lib/rt/__newArray - local.set $22 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $22 + local.get $10 return end - local.get $separator - i32.const 0 + local.get $str + local.set $ptr + local.get $ptr + i32.load16_u + local.set $code + loop $while-continue|0 + local.get $code + call $~lib/util/string/isSpace + if + local.get $ptr + i32.const 2 + i32.add + local.tee $ptr + i32.load16_u + local.set $code + local.get $len + i32.const 1 + i32.sub + local.set $len + br $while-continue|0 + end + end + i32.const 1 + local.set $sign + local.get $code + i32.const 45 i32.eq - if - global.get $~lib/memory/__stack_pointer + if (result i32) i32.const 1 - i32.const 2 - i32.const 6 - i32.const 0 - call $~lib/rt/__newArray - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.load offset=4 - local.tee $4 - i32.store offset=4 - local.get $3 - i32.const 0 - local.get $this - call $~lib/array/Array<~lib/string/String>#__set - local.get $3 - local.set $22 - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $22 - return - end - local.get $this - local.set $22 - global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 - call $~lib/string/String#get:length - local.set $length - local.get $separator - local.set $22 - global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 - call $~lib/string/String#get:length - local.set $sepLen - local.get $limit - i32.const 0 - i32.lt_s - if - global.get $~lib/builtins/i32.MAX_VALUE - local.set $limit + else + local.get $code + i32.const 43 + i32.eq end - local.get $sepLen - i32.eqz if - local.get $length + local.get $len + i32.const 1 + i32.sub + local.tee $len i32.eqz if i32.const 0 - i32.const 2 - i32.const 6 + drop i32.const 0 - call $~lib/rt/__newArray - local.set $22 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $22 + local.get $10 return end - local.get $length - local.tee $7 - local.get $limit - local.tee $8 - local.get $7 - local.get $8 - i32.lt_s - select - local.set $length - global.get $~lib/memory/__stack_pointer - local.get $length - i32.const 2 - i32.const 6 - i32.const 0 - call $~lib/rt/__newArray - local.tee $result - i32.store offset=12 - local.get $result - local.set $22 - global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 - call $~lib/array/Array<~lib/string/String>#get:dataStart - local.set $resultStart - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $length - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 2 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $charStr - i32.store offset=16 - local.get $charStr - local.get $this - local.get $i - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $resultStart - local.get $i - i32.const 2 - i32.shl - i32.add - local.get $charStr - i32.store - local.get $result - local.get $charStr - i32.const 1 - call $~lib/rt/itcms/__link - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + local.get $code + i32.const 45 + i32.eq + if + i32.const -1 + local.set $sign end - local.get $result - local.set $22 - global.get $~lib/memory/__stack_pointer - i32.const 40 + local.get $ptr + i32.const 2 i32.add - global.set $~lib/memory/__stack_pointer - local.get $22 - return - else - local.get $length - i32.eqz - if - global.get $~lib/memory/__stack_pointer + local.tee $ptr + i32.load16_u + local.set $code + end + local.get $radix + if + local.get $radix + i32.const 2 + i32.lt_s + if (result i32) i32.const 1 - i32.const 2 - i32.const 6 + else + local.get $radix + i32.const 36 + i32.gt_s + end + if i32.const 0 - call $~lib/rt/__newArray - local.tee $result|13 - i32.store offset=20 - local.get $result|13 - local.set $22 - global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 - call $~lib/array/Array<~lib/string/String>#get:dataStart - i32.const 2432 - i32.store - local.get $result|13 - local.set $22 + drop + i32.const 0 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $22 + local.get $10 return end - end - global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $radix + i32.const 16 + i32.eq + if + local.get $len + i32.const 2 + i32.gt_s + if (result i32) + local.get $code + i32.const 48 + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $ptr + i32.load16_u offset=2 + i32.const 32 + i32.or + i32.const 120 + i32.eq + else + i32.const 0 + end + if + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + local.get $len + i32.const 2 + i32.sub + local.set $len + end + end + else + local.get $code + i32.const 48 + i32.eq + if (result i32) + local.get $len + i32.const 2 + i32.gt_s + else + i32.const 0 + end + if + block $break|1 + block $case2|1 + block $case1|1 + block $case0|1 + local.get $ptr + i32.load16_u offset=2 + i32.const 32 + i32.or + local.set $6 + local.get $6 + i32.const 98 + i32.eq + br_if $case0|1 + local.get $6 + i32.const 111 + i32.eq + br_if $case1|1 + local.get $6 + i32.const 120 + i32.eq + br_if $case2|1 + br $break|1 + end + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + local.get $len + i32.const 2 + i32.sub + local.set $len + i32.const 2 + local.set $radix + br $break|1 + end + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + local.get $len + i32.const 2 + i32.sub + local.set $len + i32.const 8 + local.set $radix + br $break|1 + end + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + local.get $len + i32.const 2 + i32.sub + local.set $len + i32.const 16 + local.set $radix + br $break|1 + end + end + local.get $radix + i32.eqz + if + i32.const 10 + local.set $radix + end + end + i32.const 0 + local.set $num + local.get $len + i32.const 1 + i32.sub + local.set $initial + block $while-break|2 + loop $while-continue|2 + local.get $len + local.tee $9 + i32.const 1 + i32.sub + local.set $len + local.get $9 + if + local.get $ptr + i32.load16_u + local.set $code + local.get $code + i32.const 48 + i32.sub + i32.const 10 + i32.lt_u + if + local.get $code + i32.const 48 + i32.sub + local.set $code + else + local.get $code + i32.const 65 + i32.sub + i32.const 90 + i32.const 65 + i32.sub + i32.le_u + if + local.get $code + i32.const 65 + i32.const 10 + i32.sub + i32.sub + local.set $code + else + local.get $code + i32.const 97 + i32.sub + i32.const 122 + i32.const 97 + i32.sub + i32.le_u + if + local.get $code + i32.const 97 + i32.const 10 + i32.sub + i32.sub + local.set $code + end + end + end + local.get $code + local.get $radix + i32.ge_u + if + local.get $initial + local.get $len + i32.eq + if + i32.const 0 + drop + i32.const 0 + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + end + br $while-break|2 + end + local.get $num + local.get $radix + i32.mul + local.get $code + i32.add + local.set $num + local.get $ptr + i32.const 2 + i32.add + local.set $ptr + br $while-continue|2 + end + end + end + local.get $sign + local.get $num + i32.mul + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + 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 5760 + i32.const 5712 + 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<~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 + 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<~lib/string/String>#get:length_ + i32.ge_u + if + local.get $index + i32.const 0 + i32.lt_s + if + i32.const 368 + i32.const 5712 + 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<~lib/string/String>#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<~lib/string/String>#get:dataStart + 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 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array<~lib/string/String>#push (param $this i32) (param $value i32) (result i32) + (local $oldLen i32) + (local $len 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/array/Array<~lib/string/String>#get:length_ + local.set $oldLen + local.get $oldLen + i32.const 1 + i32.add + local.set $len + local.get $this + local.get $len + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + i32.const 1 + drop + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/array/Array<~lib/string/String>#get:dataStart + local.get $oldLen + i32.const 2 + i32.shl + i32.add + local.get $value + i32.store + local.get $this + local.get $value + i32.const 1 + call $~lib/rt/itcms/__link + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + local.get $len + call $~lib/array/Array<~lib/string/String>#set:length_ + local.get $len + 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/string/String#split (param $this i32) (param $separator i32) (param $limit i32) (result i32) + (local $3 i32) + (local $length i32) + (local $sepLen i32) + (local $6 i32) + (local $7 i32) + (local $result i32) + (local $resultStart i32) + (local $i i32) + (local $charStr i32) + (local $result|12 i32) + (local $result|13 i32) + (local $end i32) + (local $start i32) + (local $i|16 i32) + (local $len i32) + (local $out i32) + (local $len|19 i32) + (local $out|20 i32) + (local $21 i32) + global.get $~lib/memory/__stack_pointer + i32.const 36 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 36 + memory.fill + local.get $limit + i32.eqz + if + i32.const 0 + i32.const 2 + i32.const 6 + i32.const 0 + call $~lib/rt/__newArray + local.set $21 + global.get $~lib/memory/__stack_pointer + i32.const 36 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $21 + return + end + local.get $separator + i32.const 0 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 1 + i32.const 2 + i32.const 6 + i32.const 0 + call $~lib/rt/__newArray + local.tee $3 + i32.store + local.get $3 + i32.const 0 + local.get $this + call $~lib/array/Array<~lib/string/String>#__set + local.get $3 + local.set $21 + global.get $~lib/memory/__stack_pointer + i32.const 36 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $21 + return + end + local.get $this + local.set $21 + global.get $~lib/memory/__stack_pointer + local.get $21 + i32.store offset=4 + local.get $21 + call $~lib/string/String#get:length + local.set $length + local.get $separator + local.set $21 + global.get $~lib/memory/__stack_pointer + local.get $21 + i32.store offset=4 + local.get $21 + call $~lib/string/String#get:length + local.set $sepLen + local.get $limit + i32.const 0 + i32.lt_s + if + global.get $~lib/builtins/i32.MAX_VALUE + local.set $limit + end + local.get $sepLen + i32.eqz + if + local.get $length + i32.eqz + if + i32.const 0 + i32.const 2 + i32.const 6 + i32.const 0 + call $~lib/rt/__newArray + local.set $21 + global.get $~lib/memory/__stack_pointer + i32.const 36 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $21 + return + end + local.get $length + local.tee $6 + local.get $limit + local.tee $7 + local.get $6 + local.get $7 + i32.lt_s + select + local.set $length + global.get $~lib/memory/__stack_pointer + local.get $length + i32.const 2 + i32.const 6 + i32.const 0 + call $~lib/rt/__newArray + local.tee $result + i32.store offset=8 + local.get $result + local.set $21 + global.get $~lib/memory/__stack_pointer + local.get $21 + i32.store offset=4 + local.get $21 + call $~lib/array/Array<~lib/string/String>#get:dataStart + local.set $resultStart + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $length + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $charStr + i32.store offset=12 + local.get $charStr + local.get $this + local.get $i + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $resultStart + local.get $i + i32.const 2 + i32.shl + i32.add + local.get $charStr + i32.store + local.get $result + local.get $charStr + i32.const 1 + call $~lib/rt/itcms/__link + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $result + local.set $21 + global.get $~lib/memory/__stack_pointer + i32.const 36 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $21 + return + else + local.get $length + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 1 + i32.const 2 + i32.const 6 + i32.const 0 + call $~lib/rt/__newArray + local.tee $result|12 + i32.store offset=16 + local.get $result|12 + local.set $21 + global.get $~lib/memory/__stack_pointer + local.get $21 + i32.store offset=4 + local.get $21 + call $~lib/array/Array<~lib/string/String>#get:dataStart + i32.const 2432 + i32.store + local.get $result|12 + local.set $21 + global.get $~lib/memory/__stack_pointer + i32.const 36 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $21 + return + end + end + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.const 2 i32.const 6 i32.const 0 call $~lib/rt/__newArray - local.tee $result|14 - i32.store offset=24 + local.tee $result|13 + i32.store offset=20 i32.const 0 local.set $end i32.const 0 local.set $start i32.const 0 - local.set $i|17 + local.set $i|16 loop $while-continue|1 local.get $this - local.set $22 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 + local.get $21 + i32.store offset=4 + local.get $21 local.get $separator - local.set $22 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=28 - local.get $22 + local.get $21 + i32.store offset=24 + local.get $21 local.get $start call $~lib/string/String#indexOf local.tee $end @@ -7054,7 +7393,7 @@ i32.const 2 call $~lib/rt/itcms/__new local.tee $out - i32.store offset=32 + i32.store offset=28 local.get $out local.get $this local.get $start @@ -7065,50 +7404,45 @@ i32.const 1 i32.shl memory.copy - local.get $result|14 - local.set $22 + local.get $result|13 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 + local.get $21 + i32.store offset=4 + local.get $21 local.get $out - local.set $22 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=28 - local.get $22 + local.get $21 + i32.store offset=24 + local.get $21 call $~lib/array/Array<~lib/string/String>#push drop else - local.get $result|14 - local.set $22 + local.get $result|13 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 + local.get $21 + i32.store offset=4 + local.get $21 i32.const 2432 - local.set $22 - global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=28 - local.get $22 call $~lib/array/Array<~lib/string/String>#push drop end - local.get $i|17 + local.get $i|16 i32.const 1 i32.add - local.tee $i|17 + local.tee $i|16 local.get $limit i32.eq if - local.get $result|14 - local.set $22 + local.get $result|13 + local.set $21 global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 36 i32.add global.set $~lib/memory/__stack_pointer - local.get $22 + local.get $21 return end local.get $end @@ -7121,92 +7455,87 @@ local.get $start i32.eqz if - local.get $result|14 - local.set $22 + local.get $result|13 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 + local.get $21 + i32.store offset=4 + local.get $21 local.get $this - local.set $22 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=28 - local.get $22 + local.get $21 + i32.store offset=24 + local.get $21 call $~lib/array/Array<~lib/string/String>#push drop - local.get $result|14 - local.set $22 + local.get $result|13 + local.set $21 global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 36 i32.add global.set $~lib/memory/__stack_pointer - local.get $22 + local.get $21 return end local.get $length local.get $start i32.sub - local.set $len|20 - local.get $len|20 + local.set $len|19 + local.get $len|19 i32.const 0 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $len|20 + local.get $len|19 i32.const 1 i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $out|21 - i32.store offset=36 - local.get $out|21 + local.tee $out|20 + i32.store offset=32 + local.get $out|20 local.get $this local.get $start i32.const 1 i32.shl i32.add - local.get $len|20 + local.get $len|19 i32.const 1 i32.shl memory.copy - local.get $result|14 - local.set $22 + local.get $result|13 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 - local.get $out|21 - local.set $22 + local.get $21 + i32.store offset=4 + local.get $21 + local.get $out|20 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=28 - local.get $22 + local.get $21 + i32.store offset=24 + local.get $21 call $~lib/array/Array<~lib/string/String>#push drop else - local.get $result|14 - local.set $22 + local.get $result|13 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 + local.get $21 + i32.store offset=4 + local.get $21 i32.const 2432 - local.set $22 - global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=28 - local.get $22 call $~lib/array/Array<~lib/string/String>#push drop end - local.get $result|14 - local.set $22 + local.get $result|13 + local.set $21 global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 36 i32.add global.set $~lib/memory/__stack_pointer - local.get $22 + local.get $21 return ) (func $~lib/string/String#split@varargs (param $this i32) (param $separator i32) (param $limit i32) (result i32) @@ -7347,381 +7676,234 @@ local.get $3 return ) - (func $~lib/util/string/strtol (param $str i32) (param $radix i32) (result i32) + (func $~lib/string/String#substr (param $this i32) (param $start i32) (param $length i32) (result i32) + (local $intStart i32) + (local $end i32) (local $len i32) - (local $ptr i32) - (local $code i32) - (local $sign i32) (local $6 i32) - (local $num i32) - (local $initial i32) + (local $7 i32) + (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $size i32) + (local $out i32) + (local $14 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 $str - local.set $10 + i64.const 0 + i64.store + local.get $start + local.set $intStart + local.get $length + local.set $end + local.get $this + local.set $14 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $14 i32.store - local.get $10 + local.get $14 call $~lib/string/String#get:length local.set $len - local.get $len - i32.eqz - if - i32.const 0 - drop - i32.const 0 - local.set $10 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $10 - return - end - local.get $str - local.set $ptr - local.get $ptr - i32.load16_u - local.set $code - loop $while-continue|0 - local.get $code - call $~lib/util/string/isSpace - if - local.get $ptr - i32.const 2 - i32.add - local.tee $ptr - i32.load16_u - local.set $code - local.get $len - i32.const 1 - i32.sub - local.set $len - br $while-continue|0 - end - end - i32.const 1 - local.set $sign - local.get $code - i32.const 45 - i32.eq - if (result i32) - i32.const 1 - else - local.get $code - i32.const 43 - i32.eq - end + local.get $intStart + i32.const 0 + i32.lt_s if local.get $len - i32.const 1 - i32.sub - local.tee $len - i32.eqz - if - i32.const 0 - drop - i32.const 0 - local.set $10 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $10 - return - end - local.get $code - i32.const 45 - i32.eq - if - i32.const -1 - local.set $sign - end - local.get $ptr - i32.const 2 + local.get $intStart i32.add - local.tee $ptr - i32.load16_u - local.set $code - end - local.get $radix - if - local.get $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 0 - drop - i32.const 0 - local.set $10 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $10 - return - end - local.get $radix - i32.const 16 - i32.eq - if - local.get $len - i32.const 2 - i32.gt_s - if (result i32) - local.get $code - i32.const 48 - i32.eq - else - i32.const 0 - end - if (result i32) - local.get $ptr - i32.load16_u offset=2 - i32.const 32 - i32.or - i32.const 120 - i32.eq - else - i32.const 0 - end - if - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - local.get $len - i32.const 2 - i32.sub - local.set $len - end - end - else - local.get $code - i32.const 48 - i32.eq - if (result i32) - local.get $len - i32.const 2 - i32.gt_s - else - i32.const 0 - end - if - block $break|1 - block $case2|1 - block $case1|1 - block $case0|1 - local.get $ptr - i32.load16_u offset=2 - i32.const 32 - i32.or - local.set $6 - local.get $6 - i32.const 98 - i32.eq - br_if $case0|1 - local.get $6 - i32.const 111 - i32.eq - br_if $case1|1 - local.get $6 - i32.const 120 - i32.eq - br_if $case2|1 - br $break|1 - end - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - local.get $len - i32.const 2 - i32.sub - local.set $len - i32.const 2 - local.set $radix - br $break|1 - end - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - local.get $len - i32.const 2 - i32.sub - local.set $len - i32.const 8 - local.set $radix - br $break|1 - end - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - local.get $len - i32.const 2 - i32.sub - local.set $len - i32.const 16 - local.set $radix - br $break|1 - end - end - local.get $radix - i32.eqz - if - i32.const 10 - local.set $radix - end + local.tee $6 + i32.const 0 + local.tee $7 + local.get $6 + local.get $7 + i32.gt_s + select + local.set $intStart end + local.get $end + local.tee $8 i32.const 0 - local.set $num + local.tee $9 + local.get $8 + local.get $9 + i32.gt_s + select + local.tee $10 local.get $len - i32.const 1 + local.get $intStart i32.sub - local.set $initial - block $while-break|2 - loop $while-continue|2 - local.get $len - local.tee $9 - i32.const 1 - i32.sub - local.set $len - local.get $9 - if - local.get $ptr - i32.load16_u - local.set $code - local.get $code - i32.const 48 - i32.sub - i32.const 10 - i32.lt_u - if - local.get $code - i32.const 48 - i32.sub - local.set $code - else - local.get $code - i32.const 65 - i32.sub - i32.const 90 - i32.const 65 - i32.sub - i32.le_u - if - local.get $code - i32.const 65 - i32.const 10 - i32.sub - i32.sub - local.set $code - else - local.get $code - i32.const 97 - i32.sub - i32.const 122 - i32.const 97 - i32.sub - i32.le_u - if - local.get $code - i32.const 97 - i32.const 10 - i32.sub - i32.sub - local.set $code - end - end - end - local.get $code - local.get $radix - i32.ge_u - if - local.get $initial - local.get $len - i32.eq - if - i32.const 0 - drop - i32.const 0 - local.set $10 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $10 - return - end - br $while-break|2 - end - local.get $num - local.get $radix - i32.mul - local.get $code - i32.add - local.set $num - local.get $ptr - i32.const 2 - i32.add - local.set $ptr - br $while-continue|2 - end - end + local.tee $11 + local.get $10 + local.get $11 + i32.lt_s + select + i32.const 1 + i32.shl + local.set $size + local.get $size + i32.const 0 + i32.le_s + if + i32.const 2432 + 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 - local.get $sign - local.get $num - i32.mul - local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $size + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $out + i32.store offset=4 + local.get $out + local.get $this + local.get $intStart + i32.const 1 + i32.shl + i32.add + local.get $size + memory.copy + local.get $out + local.set $14 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $14 return ) - (func $~lib/number/I32.parseInt (param $value i32) (param $radix i32) (result i32) - (local $2 i32) + (func $~lib/string/String#padEnd (param $this i32) (param $length i32) (param $pad i32) (result i32) + (local $thisSize i32) + (local $targetSize i32) + (local $padSize i32) + (local $appendSize i32) + (local $out i32) + (local $repeatCount i32) + (local $restBase i32) + (local $restSize i32) + (local $11 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 $this + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 i32.store - local.get $value - local.set $2 + local.get $11 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $thisSize + local.get $length + i32.const 1 + i32.shl + local.set $targetSize + local.get $pad + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $11 i32.store - local.get $2 - local.get $radix - call $~lib/util/string/strtol - local.set $2 + local.get $11 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $padSize + local.get $targetSize + local.get $thisSize + i32.lt_u + if (result i32) + i32.const 1 + else + local.get $padSize + i32.eqz + end + if + local.get $this + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $targetSize + local.get $thisSize + i32.sub + local.set $appendSize + global.get $~lib/memory/__stack_pointer + local.get $targetSize + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $out + i32.store offset=4 + local.get $out + local.get $this + local.get $thisSize + memory.copy + local.get $appendSize + local.get $padSize + i32.gt_u + if + local.get $appendSize + i32.const 2 + i32.sub + local.get $padSize + i32.div_u + local.set $repeatCount + local.get $repeatCount + local.get $padSize + i32.mul + local.set $restBase + local.get $appendSize + local.get $restBase + i32.sub + local.set $restSize + local.get $out + local.get $thisSize + i32.add + local.get $pad + local.get $padSize + local.get $repeatCount + call $~lib/memory/memory.repeat + local.get $out + local.get $thisSize + i32.add + local.get $restBase + i32.add + local.get $pad + local.get $restSize + memory.copy + else + local.get $out + local.get $thisSize + i32.add + local.get $pad + local.get $appendSize + memory.copy + end + local.get $out + local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $11 return ) (func $~lib/date/Date.fromString (param $dateTimeString i32) (result i32) @@ -7729,40 +7911,69 @@ (local $min i32) (local $sec i32) (local $ms i32) + (local $offsetMs i32) (local $dateString i32) (local $posT i32) (local $timeString i32) + (local $i i32) + (local $c i32) + (local $posColon i32) + (local $value i32) + (local $radix i32) + (local $offsetHours i32) + (local $value|15 i32) + (local $radix|16 i32) + (local $offsetMinutes i32) + (local $value|18 i32) + (local $radix|19 i32) + (local $offsetHours|20 i32) (local $timeParts i32) (local $len i32) - (local $secAndMs i32) + (local $value|23 i32) + (local $radix|24 i32) + (local $value|25 i32) + (local $radix|26 i32) + (local $secAndFrac i32) (local $posDot i32) + (local $value|29 i32) + (local $radix|30 i32) + (local $value|31 i32) + (local $radix|32 i32) + (local $value|33 i32) + (local $radix|34 i32) (local $parts i32) + (local $value|36 i32) + (local $radix|37 i32) (local $year i32) (local $month i32) (local $day i32) - (local $len|16 i32) - (local $17 i32) + (local $len|41 i32) + (local $value|42 i32) + (local $radix|43 i32) + (local $value|44 i32) + (local $radix|45 i32) + (local $46 i32) global.get $~lib/memory/__stack_pointer - i32.const 28 + i32.const 72 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 28 + i32.const 72 memory.fill local.get $dateTimeString - local.set $17 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $46 i32.store - local.get $17 + local.get $46 call $~lib/string/String#get:length i32.eqz if i32.const 32 i32.const 80 - i32.const 50 + i32.const 49 i32.const 33 call $~lib/builtins/abort unreachable @@ -7775,22 +7986,19 @@ local.set $sec i32.const 0 local.set $ms + i32.const 0 + local.set $offsetMs global.get $~lib/memory/__stack_pointer local.get $dateTimeString local.tee $dateString i32.store offset=4 local.get $dateTimeString - local.set $17 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $46 i32.store - local.get $17 + local.get $46 i32.const 2464 - local.set $17 - global.get $~lib/memory/__stack_pointer - local.get $17 - i32.store offset=8 - local.get $17 i32.const 0 call $~lib/string/String#indexOf local.set $posT @@ -7800,11 +8008,11 @@ if global.get $~lib/memory/__stack_pointer local.get $dateTimeString - local.set $17 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $46 i32.store - local.get $17 + local.get $46 i32.const 0 local.get $posT call $~lib/string/String#substring @@ -7812,11 +8020,11 @@ i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $dateTimeString - local.set $17 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $46 i32.store - local.get $17 + local.get $46 local.get $posT i32.const 1 i32.add @@ -7825,32 +8033,250 @@ i32.const 0 call $~lib/string/String#substring@varargs local.tee $timeString - i32.store offset=12 + i32.store offset=8 + local.get $timeString + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store + local.get $46 + call $~lib/string/String#get:length + i32.const 1 + i32.sub + local.set $i + block $for-break0 + loop $for-loop|0 + local.get $i + i32.const 0 + i32.ge_s + if + local.get $timeString + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store + local.get $46 + local.get $i + call $~lib/string/String#charCodeAt + local.set $c + local.get $c + i32.const 90 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $timeString + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store + local.get $46 + i32.const 0 + local.get $i + call $~lib/string/String#substring + local.tee $timeString + i32.store offset=8 + br $for-break0 + else + local.get $c + i32.const 43 + i32.eq + if (result i32) + i32.const 1 + else + local.get $c + i32.const 45 + i32.eq + end + if + local.get $i + local.get $timeString + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store + local.get $46 + call $~lib/string/String#get:length + i32.const 1 + i32.sub + i32.eq + if + i32.const 32 + i32.const 80 + i32.const 73 + i32.const 13 + call $~lib/builtins/abort + unreachable + end + local.get $timeString + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store + local.get $46 + i32.const 2496 + local.get $i + i32.const 1 + i32.add + call $~lib/string/String#indexOf + local.set $posColon + local.get $posColon + i32.const -1 + i32.xor + if + block $~lib/builtins/i32.parse|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + local.get $timeString + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store + local.get $46 + local.get $i + i32.const 1 + i32.add + local.get $posColon + call $~lib/string/String#substring + local.tee $value + i32.store offset=12 + i32.const 0 + local.set $radix + local.get $value + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store + local.get $46 + local.get $radix + call $~lib/util/string/strtol + br $~lib/builtins/i32.parse|inlined.0 + end + local.set $offsetHours + block $~lib/builtins/i32.parse|inlined.1 (result i32) + global.get $~lib/memory/__stack_pointer + local.get $timeString + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store + local.get $46 + local.get $posColon + i32.const 1 + i32.add + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String#substring@varargs + local.tee $value|15 + i32.store offset=16 + i32.const 0 + local.set $radix|16 + local.get $value|15 + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store + local.get $46 + local.get $radix|16 + call $~lib/util/string/strtol + br $~lib/builtins/i32.parse|inlined.1 + end + local.set $offsetMinutes + local.get $offsetHours + i32.const 60 + i32.mul + local.get $offsetMinutes + i32.add + i32.const 60000 + i32.mul + local.set $offsetMs + else + block $~lib/builtins/i32.parse|inlined.2 (result i32) + global.get $~lib/memory/__stack_pointer + local.get $timeString + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store + local.get $46 + local.get $i + i32.const 1 + i32.add + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String#substring@varargs + local.tee $value|18 + i32.store offset=20 + i32.const 0 + local.set $radix|19 + local.get $value|18 + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store + local.get $46 + local.get $radix|19 + call $~lib/util/string/strtol + br $~lib/builtins/i32.parse|inlined.2 + end + local.set $offsetHours|20 + local.get $offsetHours|20 + i32.const 3600000 + i32.mul + local.set $offsetMs + end + local.get $c + i32.const 45 + i32.eq + if + i32.const 0 + local.get $offsetMs + i32.sub + local.set $offsetMs + end + global.get $~lib/memory/__stack_pointer + local.get $timeString + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store + local.get $46 + i32.const 0 + local.get $i + call $~lib/string/String#substring + local.tee $timeString + i32.store offset=8 + br $for-break0 + end + end + local.get $i + i32.const 1 + i32.sub + local.set $i + br $for-loop|0 + end + end + end global.get $~lib/memory/__stack_pointer local.get $timeString - local.set $17 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $46 i32.store - local.get $17 + local.get $46 i32.const 2496 - local.set $17 - global.get $~lib/memory/__stack_pointer - local.get $17 - i32.store offset=8 - local.get $17 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/string/String#split@varargs local.tee $timeParts - i32.store offset=16 + i32.store offset=24 local.get $timeParts - local.set $17 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $46 i32.store - local.get $17 + local.get $46 call $~lib/array/Array<~lib/string/String>#get:length local.set $len local.get $len @@ -7859,42 +8285,60 @@ if i32.const 32 i32.const 80 - i32.const 67 + i32.const 95 i32.const 21 call $~lib/builtins/abort unreachable end - local.get $timeParts - local.set $17 - global.get $~lib/memory/__stack_pointer - local.get $17 - i32.store offset=8 - local.get $17 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#__get - local.set $17 - global.get $~lib/memory/__stack_pointer - local.get $17 - i32.store - local.get $17 - i32.const 0 - call $~lib/number/I32.parseInt + block $~lib/builtins/i32.parse|inlined.3 (result i32) + global.get $~lib/memory/__stack_pointer + local.get $timeParts + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store + local.get $46 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#__get + local.tee $value|23 + i32.store offset=28 + i32.const 0 + local.set $radix|24 + local.get $value|23 + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store + local.get $46 + local.get $radix|24 + call $~lib/util/string/strtol + br $~lib/builtins/i32.parse|inlined.3 + end local.set $hour - local.get $timeParts - local.set $17 - global.get $~lib/memory/__stack_pointer - local.get $17 - i32.store offset=8 - local.get $17 - i32.const 1 - call $~lib/array/Array<~lib/string/String>#__get - local.set $17 - global.get $~lib/memory/__stack_pointer - local.get $17 - i32.store - local.get $17 - i32.const 0 - call $~lib/number/I32.parseInt + block $~lib/builtins/i32.parse|inlined.4 (result i32) + global.get $~lib/memory/__stack_pointer + local.get $timeParts + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store + local.get $46 + i32.const 1 + call $~lib/array/Array<~lib/string/String>#__get + local.tee $value|25 + i32.store offset=32 + i32.const 0 + local.set $radix|26 + local.get $value|25 + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store + local.get $46 + local.get $radix|26 + call $~lib/util/string/strtol + br $~lib/builtins/i32.parse|inlined.4 + end local.set $min local.get $len i32.const 3 @@ -7902,27 +8346,22 @@ if global.get $~lib/memory/__stack_pointer local.get $timeParts - local.set $17 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $46 i32.store - local.get $17 + local.get $46 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get - local.tee $secAndMs - i32.store offset=20 - local.get $secAndMs - local.set $17 + local.tee $secAndFrac + i32.store offset=36 + local.get $secAndFrac + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $46 i32.store - local.get $17 + local.get $46 i32.const 2528 - local.set $17 - global.get $~lib/memory/__stack_pointer - local.get $17 - i32.store offset=8 - local.get $17 i32.const 0 call $~lib/string/String#indexOf local.set $posDot @@ -7930,143 +8369,198 @@ i32.const -1 i32.xor if - local.get $secAndMs - local.set $17 - global.get $~lib/memory/__stack_pointer - local.get $17 - i32.store offset=8 - local.get $17 - i32.const 0 - local.get $posDot - call $~lib/string/String#substring - local.set $17 - global.get $~lib/memory/__stack_pointer - local.get $17 - i32.store - local.get $17 - i32.const 0 - call $~lib/number/I32.parseInt + block $~lib/builtins/i32.parse|inlined.5 (result i32) + global.get $~lib/memory/__stack_pointer + local.get $secAndFrac + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store + local.get $46 + i32.const 0 + local.get $posDot + call $~lib/string/String#substring + local.tee $value|29 + i32.store offset=40 + i32.const 0 + local.set $radix|30 + local.get $value|29 + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store + local.get $46 + local.get $radix|30 + call $~lib/util/string/strtol + br $~lib/builtins/i32.parse|inlined.5 + end local.set $sec - local.get $secAndMs - local.set $17 - global.get $~lib/memory/__stack_pointer - local.get $17 - i32.store offset=8 - local.get $17 - local.get $posDot - i32.const 1 - i32.add - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/string/String#substring@varargs - local.set $17 - global.get $~lib/memory/__stack_pointer - local.get $17 - i32.store - local.get $17 - i32.const 0 - call $~lib/number/I32.parseInt + block $~lib/builtins/i32.parse|inlined.6 (result i32) + global.get $~lib/memory/__stack_pointer + local.get $secAndFrac + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store offset=44 + local.get $46 + local.get $posDot + i32.const 1 + i32.add + i32.const 3 + call $~lib/string/String#substr + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store + local.get $46 + i32.const 3 + i32.const 848 + call $~lib/string/String#padEnd + local.tee $value|31 + i32.store offset=48 + i32.const 0 + local.set $radix|32 + local.get $value|31 + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store + local.get $46 + local.get $radix|32 + call $~lib/util/string/strtol + br $~lib/builtins/i32.parse|inlined.6 + end local.set $ms else - local.get $secAndMs - local.set $17 - global.get $~lib/memory/__stack_pointer - local.get $17 - i32.store - local.get $17 - i32.const 0 - call $~lib/number/I32.parseInt + block $~lib/builtins/i32.parse|inlined.7 (result i32) + global.get $~lib/memory/__stack_pointer + local.get $secAndFrac + local.tee $value|33 + i32.store offset=52 + i32.const 0 + local.set $radix|34 + local.get $value|33 + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store + local.get $46 + local.get $radix|34 + call $~lib/util/string/strtol + br $~lib/builtins/i32.parse|inlined.7 + end local.set $sec end end end global.get $~lib/memory/__stack_pointer local.get $dateString - local.set $17 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $46 i32.store - local.get $17 + local.get $46 i32.const 592 - local.set $17 - global.get $~lib/memory/__stack_pointer - local.get $17 - i32.store offset=8 - local.get $17 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/string/String#split@varargs local.tee $parts - i32.store offset=24 - local.get $parts - local.set $17 - global.get $~lib/memory/__stack_pointer - local.get $17 - i32.store offset=8 - local.get $17 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#__get - local.set $17 - global.get $~lib/memory/__stack_pointer - local.get $17 - i32.store - local.get $17 - i32.const 0 - call $~lib/number/I32.parseInt + i32.store offset=56 + block $~lib/builtins/i32.parse|inlined.8 (result i32) + global.get $~lib/memory/__stack_pointer + local.get $parts + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store + local.get $46 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#__get + local.tee $value|36 + i32.store offset=60 + i32.const 0 + local.set $radix|37 + local.get $value|36 + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store + local.get $46 + local.get $radix|37 + call $~lib/util/string/strtol + br $~lib/builtins/i32.parse|inlined.8 + end local.set $year i32.const 1 local.set $month i32.const 1 local.set $day local.get $parts - local.set $17 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $46 i32.store - local.get $17 + local.get $46 call $~lib/array/Array<~lib/string/String>#get:length - local.set $len|16 - local.get $len|16 + local.set $len|41 + local.get $len|41 i32.const 2 i32.ge_s if - local.get $parts - local.set $17 - global.get $~lib/memory/__stack_pointer - local.get $17 - i32.store offset=8 - local.get $17 - i32.const 1 - call $~lib/array/Array<~lib/string/String>#__get - local.set $17 - global.get $~lib/memory/__stack_pointer - local.get $17 - i32.store - local.get $17 - i32.const 0 - call $~lib/number/I32.parseInt - local.set $month - local.get $len|16 - i32.const 3 - i32.ge_s - if + block $~lib/builtins/i32.parse|inlined.9 (result i32) + global.get $~lib/memory/__stack_pointer local.get $parts - local.set $17 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $17 - i32.store offset=8 - local.get $17 - i32.const 2 + local.get $46 + i32.store + local.get $46 + i32.const 1 call $~lib/array/Array<~lib/string/String>#__get - local.set $17 + local.tee $value|42 + i32.store offset=64 + i32.const 0 + local.set $radix|43 + local.get $value|42 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $46 i32.store - local.get $17 - i32.const 0 - call $~lib/number/I32.parseInt + local.get $46 + local.get $radix|43 + call $~lib/util/string/strtol + br $~lib/builtins/i32.parse|inlined.9 + end + local.set $month + local.get $len|41 + i32.const 3 + i32.ge_s + if + block $~lib/builtins/i32.parse|inlined.10 (result i32) + global.get $~lib/memory/__stack_pointer + local.get $parts + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store + local.get $46 + i32.const 2 + call $~lib/array/Array<~lib/string/String>#__get + local.tee $value|44 + i32.store offset=68 + i32.const 0 + local.set $radix|45 + local.get $value|44 + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store + local.get $46 + local.get $radix|45 + call $~lib/util/string/strtol + br $~lib/builtins/i32.parse|inlined.10 + end local.set $day end end @@ -8079,13 +8573,16 @@ local.get $sec local.get $ms call $~lib/date/epochMillis + local.get $offsetMs + i64.extend_i32_s + i64.sub call $~lib/date/Date#constructor - local.set $17 + local.set $46 global.get $~lib/memory/__stack_pointer - i32.const 28 + i32.const 72 i32.add global.set $~lib/memory/__stack_pointer - local.get $17 + local.get $46 return ) (func $start:std/date @@ -8246,14 +8743,27 @@ (local $154 i32) (local $155 i32) (local $156 i32) - global.get $~lib/memory/__stack_pointer - i32.const 408 + (local $157 i32) + (local $158 i32) + (local $159 i32) + (local $160 i32) + (local $161 i32) + (local $162 i32) + (local $163 i32) + (local $164 i32) + (local $165 i32) + (local $166 i32) + (local $167 i32) + (local $168 i32) + (local $169 i32) + global.get $~lib/memory/__stack_pointer + i32.const 456 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 408 + i32.const 456 memory.fill block $~lib/date/Date.UTC|inlined.0 (result i64) i32.const 1970 @@ -8302,7 +8812,7 @@ if i32.const 32 i32.const 80 - i32.const 36 + i32.const 35 i32.const 26 call $~lib/builtins/abort unreachable @@ -8368,7 +8878,7 @@ if i32.const 32 i32.const 80 - i32.const 36 + i32.const 35 i32.const 26 call $~lib/builtins/abort unreachable @@ -8434,7 +8944,7 @@ if i32.const 32 i32.const 80 - i32.const 36 + i32.const 35 i32.const 26 call $~lib/builtins/abort unreachable @@ -8500,7 +9010,7 @@ if i32.const 32 i32.const 80 - i32.const 36 + i32.const 35 i32.const 26 call $~lib/builtins/abort unreachable @@ -8566,7 +9076,7 @@ if i32.const 32 i32.const 80 - i32.const 36 + i32.const 35 i32.const 26 call $~lib/builtins/abort unreachable @@ -8632,7 +9142,7 @@ if i32.const 32 i32.const 80 - i32.const 36 + i32.const 35 i32.const 26 call $~lib/builtins/abort unreachable @@ -8698,7 +9208,7 @@ if i32.const 32 i32.const 80 - i32.const 36 + i32.const 35 i32.const 26 call $~lib/builtins/abort unreachable @@ -8748,11 +9258,11 @@ local.tee $58 i32.store offset=4 local.get $58 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.0 end @@ -8768,11 +9278,11 @@ unreachable end local.get $57 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 local.get $56 i64.const 1 i64.add @@ -8784,11 +9294,11 @@ local.tee $59 i32.store offset=12 local.get $59 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.1 end @@ -8817,11 +9327,11 @@ local.tee $61 i32.store offset=20 local.get $61 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:year br $~lib/date/Date#getUTCFullYear|inlined.0 end @@ -8842,11 +9352,11 @@ local.tee $62 i32.store offset=24 local.get $62 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:month i32.const 1 i32.sub @@ -8869,11 +9379,11 @@ local.tee $63 i32.store offset=28 local.get $63 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:day br $~lib/date/Date#getUTCDate|inlined.0 end @@ -8889,11 +9399,11 @@ unreachable end local.get $60 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#getUTCHours i32.const 22 i32.eq @@ -8907,11 +9417,11 @@ unreachable end local.get $60 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#getUTCMinutes i32.const 9 i32.eq @@ -8925,11 +9435,11 @@ unreachable end local.get $60 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#getUTCSeconds i32.const 43 i32.eq @@ -8943,11 +9453,11 @@ unreachable end local.get $60 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#getUTCMilliseconds i32.const 706 i32.eq @@ -8972,11 +9482,11 @@ local.tee $65 i32.store offset=36 local.get $65 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:year br $~lib/date/Date#getUTCFullYear|inlined.1 end @@ -8997,11 +9507,11 @@ local.tee $66 i32.store offset=40 local.get $66 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:month i32.const 1 i32.sub @@ -9024,11 +9534,11 @@ local.tee $67 i32.store offset=44 local.get $67 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:day br $~lib/date/Date#getUTCDate|inlined.1 end @@ -9044,11 +9554,11 @@ unreachable end local.get $64 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#getUTCHours i32.const 1 i32.eq @@ -9062,11 +9572,11 @@ unreachable end local.get $64 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#getUTCMinutes i32.const 3 i32.eq @@ -9080,11 +9590,11 @@ unreachable end local.get $64 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#getUTCSeconds i32.const 11 i32.eq @@ -9098,11 +9608,11 @@ unreachable end local.get $64 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#getUTCMilliseconds i32.const 274 i32.eq @@ -9122,11 +9632,11 @@ local.tee $68 i32.store offset=48 local.get $68 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#getUTCMilliseconds i32.const 984 i32.eq @@ -9140,19 +9650,19 @@ unreachable end local.get $68 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 12 call $~lib/date/Date#setUTCMilliseconds local.get $68 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#getUTCMilliseconds i32.const 12 i32.eq @@ -9166,19 +9676,19 @@ unreachable end local.get $68 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 568 call $~lib/date/Date#setUTCMilliseconds local.get $68 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#getUTCMilliseconds i32.const 568 i32.eq @@ -9192,11 +9702,11 @@ unreachable end local.get $68 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 0 call $~lib/date/Date#setUTCMilliseconds block $~lib/date/Date#getTime|inlined.2 (result i64) @@ -9205,11 +9715,11 @@ local.tee $69 i32.store offset=52 local.get $69 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.2 end @@ -9225,11 +9735,11 @@ unreachable end local.get $68 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 999 call $~lib/date/Date#setUTCMilliseconds block $~lib/date/Date#getTime|inlined.3 (result i64) @@ -9238,11 +9748,11 @@ local.tee $70 i32.store offset=56 local.get $70 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.3 end @@ -9258,19 +9768,19 @@ unreachable end local.get $68 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 2000 call $~lib/date/Date#setUTCMilliseconds local.get $68 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#getUTCMilliseconds i32.const 0 i32.eq @@ -9289,11 +9799,11 @@ local.tee $71 i32.store offset=60 local.get $71 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.4 end @@ -9309,19 +9819,19 @@ unreachable end local.get $68 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const -2000 call $~lib/date/Date#setUTCMilliseconds local.get $68 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#getUTCMilliseconds i32.const 0 i32.eq @@ -9340,11 +9850,11 @@ local.tee $72 i32.store offset=64 local.get $72 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.5 end @@ -9366,11 +9876,11 @@ local.tee $73 i32.store offset=68 local.get $73 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#getUTCSeconds i32.const 31 i32.eq @@ -9384,19 +9894,19 @@ unreachable end local.get $73 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 12 call $~lib/date/Date#setUTCSeconds local.get $73 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#getUTCSeconds i32.const 12 i32.eq @@ -9410,19 +9920,19 @@ unreachable end local.get $73 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 50 call $~lib/date/Date#setUTCSeconds local.get $73 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#getUTCSeconds i32.const 50 i32.eq @@ -9436,11 +9946,11 @@ unreachable end local.get $73 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 0 call $~lib/date/Date#setUTCSeconds block $~lib/date/Date#getTime|inlined.6 (result i64) @@ -9449,11 +9959,11 @@ local.tee $74 i32.store offset=72 local.get $74 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.6 end @@ -9469,11 +9979,11 @@ unreachable end local.get $73 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 59 call $~lib/date/Date#setUTCSeconds block $~lib/date/Date#getTime|inlined.7 (result i64) @@ -9482,11 +9992,11 @@ local.tee $75 i32.store offset=76 local.get $75 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.7 end @@ -9508,11 +10018,11 @@ local.tee $76 i32.store offset=80 local.get $76 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#getUTCMinutes i32.const 45 i32.eq @@ -9526,19 +10036,19 @@ unreachable end local.get $76 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 12 call $~lib/date/Date#setUTCMinutes local.get $76 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#getUTCMinutes i32.const 12 i32.eq @@ -9552,19 +10062,19 @@ unreachable end local.get $76 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 50 call $~lib/date/Date#setUTCMinutes local.get $76 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#getUTCMinutes i32.const 50 i32.eq @@ -9578,11 +10088,11 @@ unreachable end local.get $76 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 0 call $~lib/date/Date#setUTCMinutes block $~lib/date/Date#getTime|inlined.8 (result i64) @@ -9591,11 +10101,11 @@ local.tee $77 i32.store offset=84 local.get $77 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.8 end @@ -9611,11 +10121,11 @@ unreachable end local.get $76 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 59 call $~lib/date/Date#setUTCMinutes block $~lib/date/Date#getTime|inlined.9 (result i64) @@ -9624,11 +10134,11 @@ local.tee $78 i32.store offset=88 local.get $78 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.9 end @@ -9650,11 +10160,11 @@ local.tee $79 i32.store offset=92 local.get $79 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#getUTCHours i32.const 17 i32.eq @@ -9668,19 +10178,19 @@ unreachable end local.get $79 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 12 call $~lib/date/Date#setUTCHours local.get $79 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#getUTCHours i32.const 12 i32.eq @@ -9694,19 +10204,19 @@ unreachable end local.get $79 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 2 call $~lib/date/Date#setUTCHours local.get $79 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#getUTCHours i32.const 2 i32.eq @@ -9720,11 +10230,11 @@ unreachable end local.get $79 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 0 call $~lib/date/Date#setUTCHours block $~lib/date/Date#getTime|inlined.10 (result i64) @@ -9733,11 +10243,11 @@ local.tee $80 i32.store offset=96 local.get $80 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.10 end @@ -9753,11 +10263,11 @@ unreachable end local.get $79 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 23 call $~lib/date/Date#setUTCHours block $~lib/date/Date#getTime|inlined.11 (result i64) @@ -9766,11 +10276,11 @@ local.tee $81 i32.store offset=100 local.get $81 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.11 end @@ -9797,11 +10307,11 @@ local.tee $83 i32.store offset=108 local.get $83 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:year br $~lib/date/Date#getUTCFullYear|inlined.2 end @@ -9822,11 +10332,11 @@ local.tee $84 i32.store offset=112 local.get $84 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:month i32.const 1 i32.sub @@ -9844,11 +10354,11 @@ unreachable end local.get $82 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 12 call $~lib/date/Date#setUTCDate block $~lib/date/Date#getUTCDate|inlined.2 (result i32) @@ -9857,11 +10367,11 @@ local.tee $85 i32.store offset=116 local.get $85 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:day br $~lib/date/Date#getUTCDate|inlined.2 end @@ -9877,11 +10387,11 @@ unreachable end local.get $82 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 2 call $~lib/date/Date#setUTCDate block $~lib/date/Date#getUTCDate|inlined.3 (result i32) @@ -9890,11 +10400,11 @@ local.tee $86 i32.store offset=120 local.get $86 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:day br $~lib/date/Date#getUTCDate|inlined.3 end @@ -9910,62 +10420,62 @@ unreachable end local.get $82 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 1 call $~lib/date/Date#setUTCDate local.get $82 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 30 call $~lib/date/Date#setUTCDate local.get $82 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 0 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/date/Date#setUTCMonth@varargs local.get $82 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 1 call $~lib/date/Date#setUTCDate local.get $82 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 31 call $~lib/date/Date#setUTCDate local.get $82 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 2024 call $~lib/date/Date#setUTCFullYear local.get $82 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 1 i32.const 1 global.set $~argumentsLength @@ -9977,11 +10487,11 @@ local.tee $87 i32.store offset=124 local.get $87 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:month i32.const 1 i32.sub @@ -9999,27 +10509,27 @@ unreachable end local.get $82 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 1 call $~lib/date/Date#setUTCDate local.get $82 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 29 call $~lib/date/Date#setUTCDate local.get $82 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 1 i32.const 1 global.set $~argumentsLength @@ -10031,11 +10541,11 @@ local.tee $88 i32.store offset=128 local.get $88 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.12 end @@ -10056,11 +10566,11 @@ local.tee $89 i32.store offset=132 local.get $89 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:month i32.const 1 i32.sub @@ -10083,11 +10593,11 @@ local.tee $90 i32.store offset=136 local.get $90 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:day br $~lib/date/Date#getUTCDate|inlined.4 end @@ -10103,11 +10613,11 @@ unreachable end local.get $82 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#getUTCMinutes i32.const 3 i32.eq @@ -10121,11 +10631,11 @@ unreachable end local.get $82 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#getUTCSeconds i32.const 11 i32.eq @@ -10139,11 +10649,11 @@ unreachable end local.get $82 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#getUTCMilliseconds i32.const 274 i32.eq @@ -10163,11 +10673,11 @@ local.tee $82 i32.store offset=104 local.get $82 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 20 call $~lib/date/Date#setUTCDate block $~lib/date/Date#getTime|inlined.13 (result i64) @@ -10176,11 +10686,11 @@ local.tee $91 i32.store offset=140 local.get $91 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.13 end @@ -10196,11 +10706,11 @@ unreachable end local.get $82 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 1 call $~lib/date/Date#setUTCDate block $~lib/date/Date#getTime|inlined.14 (result i64) @@ -10209,11 +10719,11 @@ local.tee $92 i32.store offset=144 local.get $92 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.14 end @@ -10229,11 +10739,11 @@ unreachable end local.get $82 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 1000 call $~lib/date/Date#setUTCMilliseconds block $~lib/date/Date#getTime|inlined.15 (result i64) @@ -10242,11 +10752,11 @@ local.tee $93 i32.store offset=148 local.get $93 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.15 end @@ -10262,11 +10772,11 @@ unreachable end local.get $82 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 60 i32.const 60 i32.mul @@ -10279,11 +10789,11 @@ local.tee $94 i32.store offset=152 local.get $94 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.16 end @@ -10299,11 +10809,11 @@ unreachable end local.get $82 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 60 i32.const 60 i32.mul @@ -10318,11 +10828,11 @@ local.tee $95 i32.store offset=156 local.get $95 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.17 end @@ -10338,11 +10848,11 @@ unreachable end local.get $82 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 60 i32.const 60 i32.mul @@ -10357,11 +10867,11 @@ local.tee $96 i32.store offset=160 local.get $96 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.18 end @@ -10383,11 +10893,11 @@ local.tee $82 i32.store offset=104 local.get $82 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const -2208 call $~lib/date/Date#setUTCDate block $~lib/date/Date#getTime|inlined.19 (result i64) @@ -10396,11 +10906,11 @@ local.tee $97 i32.store offset=164 local.get $97 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.19 end @@ -10422,11 +10932,11 @@ local.tee $82 i32.store offset=104 local.get $82 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 2208 call $~lib/date/Date#setUTCDate block $~lib/date/Date#getTime|inlined.20 (result i64) @@ -10435,11 +10945,11 @@ local.tee $98 i32.store offset=168 local.get $98 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.20 end @@ -10462,25 +10972,25 @@ local.tee $99 i32.store offset=172 local.get $99 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:year local.get $99 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:month local.get $99 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:day call $~lib/date/dayOfWeek br $~lib/date/Date#getUTCDay|inlined.0 @@ -10506,25 +11016,25 @@ local.tee $100 i32.store offset=176 local.get $100 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:year local.get $100 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:month local.get $100 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:day call $~lib/date/dayOfWeek br $~lib/date/Date#getUTCDay|inlined.1 @@ -10552,25 +11062,25 @@ local.tee $101 i32.store offset=180 local.get $101 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:year local.get $101 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:month local.get $101 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:day call $~lib/date/dayOfWeek br $~lib/date/Date#getUTCDay|inlined.2 @@ -10596,25 +11106,25 @@ local.tee $102 i32.store offset=184 local.get $102 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:year local.get $102 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:month local.get $102 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:day call $~lib/date/dayOfWeek br $~lib/date/Date#getUTCDay|inlined.3 @@ -10638,25 +11148,25 @@ local.tee $103 i32.store offset=188 local.get $103 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:year local.get $103 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:month local.get $103 - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:day call $~lib/date/dayOfWeek br $~lib/date/Date#getUTCDay|inlined.4 @@ -10682,126 +11192,336 @@ local.tee $104 i32.store offset=192 local.get $104 - local.set $156 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 + i32.store offset=8 + local.get $169 + call $~lib/date/Date#get:year + local.get $104 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 + i32.store offset=8 + local.get $169 + call $~lib/date/Date#get:month + local.get $104 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 + i32.store offset=8 + local.get $169 + call $~lib/date/Date#get:day + call $~lib/date/dayOfWeek + br $~lib/date/Date#getUTCDay|inlined.5 + end + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 193 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + block $~lib/date/Date#getUTCDay|inlined.6 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 0 + i64.const 1468022400000 + i64.const 86400000 + i64.add + i64.const 1 + i64.sub + call $~lib/date/Date#constructor + local.tee $105 + i32.store offset=196 + local.get $105 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 + i32.store offset=8 + local.get $169 + call $~lib/date/Date#get:year + local.get $105 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 + i32.store offset=8 + local.get $169 + call $~lib/date/Date#get:month + local.get $105 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 + i32.store offset=8 + local.get $169 + call $~lib/date/Date#get:day + call $~lib/date/dayOfWeek + br $~lib/date/Date#getUTCDay|inlined.6 + end + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 194 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + block $~lib/date/Date#getUTCDay|inlined.7 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 0 + i64.const 1468022400000 + i64.const 86400000 + i64.add + call $~lib/date/Date#constructor + local.tee $106 + i32.store offset=200 + local.get $106 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 + i32.store offset=8 + local.get $169 + call $~lib/date/Date#get:year + local.get $106 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 + i32.store offset=8 + local.get $169 + call $~lib/date/Date#get:month + local.get $106 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 + i32.store offset=8 + local.get $169 + call $~lib/date/Date#get:day + call $~lib/date/dayOfWeek + br $~lib/date/Date#getUTCDay|inlined.7 + end + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 195 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + block $~lib/date/Date#getUTCDay|inlined.8 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 0 + i64.const -8640000000000000 + call $~lib/date/Date#constructor + local.tee $107 + i32.store offset=204 + local.get $107 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 + i32.store offset=8 + local.get $169 + call $~lib/date/Date#get:year + local.get $107 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 + i32.store offset=8 + local.get $169 + call $~lib/date/Date#get:month + local.get $107 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 + i32.store offset=8 + local.get $169 + call $~lib/date/Date#get:day + call $~lib/date/dayOfWeek + br $~lib/date/Date#getUTCDay|inlined.8 + end + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 197 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + block $~lib/date/Date#getUTCDay|inlined.9 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 0 + i64.const -62183116800000 + call $~lib/date/Date#constructor + local.tee $108 + i32.store offset=208 + local.get $108 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 + i32.store offset=8 + local.get $169 + call $~lib/date/Date#get:year + local.get $108 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 + i32.store offset=8 + local.get $169 + call $~lib/date/Date#get:month + local.get $108 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 + i32.store offset=8 + local.get $169 + call $~lib/date/Date#get:day + call $~lib/date/dayOfWeek + br $~lib/date/Date#getUTCDay|inlined.9 + end + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 198 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + block $~lib/date/Date#getUTCDay|inlined.10 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 0 + i64.const 0 + call $~lib/date/Date#constructor + local.tee $109 + i32.store offset=212 + local.get $109 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:year - local.get $104 - local.set $156 + local.get $109 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:month - local.get $104 - local.set $156 + local.get $109 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:day call $~lib/date/dayOfWeek - br $~lib/date/Date#getUTCDay|inlined.5 + br $~lib/date/Date#getUTCDay|inlined.10 end - i32.const 5 + i32.const 4 i32.eq i32.eqz if i32.const 0 i32.const 128 - i32.const 193 + i32.const 199 i32.const 3 call $~lib/builtins/abort unreachable end - block $~lib/date/Date#getUTCDay|inlined.6 (result i32) + block $~lib/date/Date#getUTCDay|inlined.11 (result i32) global.get $~lib/memory/__stack_pointer i32.const 0 - i64.const 1468022400000 - i64.const 86400000 - i64.add - i64.const 1 - i64.sub + i64.const 1709164800000 call $~lib/date/Date#constructor - local.tee $105 - i32.store offset=196 - local.get $105 - local.set $156 + local.tee $110 + i32.store offset=216 + local.get $110 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:year - local.get $105 - local.set $156 + local.get $110 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:month - local.get $105 - local.set $156 + local.get $110 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:day call $~lib/date/dayOfWeek - br $~lib/date/Date#getUTCDay|inlined.6 + br $~lib/date/Date#getUTCDay|inlined.11 end - i32.const 6 + i32.const 4 i32.eq i32.eqz if i32.const 0 i32.const 128 - i32.const 194 + i32.const 200 i32.const 3 call $~lib/builtins/abort unreachable end - block $~lib/date/Date#getUTCDay|inlined.7 (result i32) + block $~lib/date/Date#getUTCDay|inlined.12 (result i32) global.get $~lib/memory/__stack_pointer i32.const 0 - i64.const 1468022400000 - i64.const 86400000 - i64.add + i64.const 8640000000000000 call $~lib/date/Date#constructor - local.tee $106 - i32.store offset=200 - local.get $106 - local.set $156 + local.tee $111 + i32.store offset=220 + local.get $111 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:year - local.get $106 - local.set $156 + local.get $111 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:month - local.get $106 - local.set $156 + local.get $111 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:day call $~lib/date/dayOfWeek - br $~lib/date/Date#getUTCDay|inlined.7 + br $~lib/date/Date#getUTCDay|inlined.12 end - i32.const 0 + i32.const 6 i32.eq i32.eqz if i32.const 0 i32.const 128 - i32.const 195 + i32.const 201 i32.const 3 call $~lib/builtins/abort unreachable @@ -10810,19 +11530,19 @@ i32.const 0 i64.const 7899943856218720 call $~lib/date/Date#constructor - local.tee $107 - i32.store offset=204 + local.tee $112 + i32.store offset=224 block $~lib/date/Date#getUTCMonth|inlined.5 (result i32) global.get $~lib/memory/__stack_pointer - local.get $107 - local.tee $108 - i32.store offset=208 - local.get $108 - local.set $156 + local.get $112 + local.tee $113 + i32.store offset=228 + local.get $113 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:month i32.const 1 i32.sub @@ -10834,17 +11554,17 @@ if i32.const 0 i32.const 128 - i32.const 201 + i32.const 207 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $107 - local.set $156 + local.get $112 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 10 i32.const 1 global.set $~argumentsLength @@ -10852,15 +11572,15 @@ call $~lib/date/Date#setUTCMonth@varargs block $~lib/date/Date#getUTCMonth|inlined.6 (result i32) global.get $~lib/memory/__stack_pointer - local.get $107 - local.tee $109 - i32.store offset=212 - local.get $109 - local.set $156 + local.get $112 + local.tee $114 + i32.store offset=232 + local.get $114 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:month i32.const 1 i32.sub @@ -10872,17 +11592,17 @@ if i32.const 0 i32.const 128 - i32.const 203 + i32.const 209 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $107 - local.set $156 + local.get $112 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 2 i32.const 1 global.set $~argumentsLength @@ -10890,15 +11610,15 @@ call $~lib/date/Date#setUTCMonth@varargs block $~lib/date/Date#getUTCMonth|inlined.7 (result i32) global.get $~lib/memory/__stack_pointer - local.get $107 - local.tee $110 - i32.store offset=216 - local.get $110 - local.set $156 + local.get $112 + local.tee $115 + i32.store offset=236 + local.get $115 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:month i32.const 1 i32.sub @@ -10910,22 +11630,22 @@ if i32.const 0 i32.const 128 - i32.const 205 + i32.const 211 i32.const 3 call $~lib/builtins/abort unreachable end block $~lib/date/Date#getTime|inlined.21 (result i64) global.get $~lib/memory/__stack_pointer - local.get $107 - local.tee $111 - i32.store offset=220 - local.get $111 - local.set $156 + local.get $112 + local.tee $116 + i32.store offset=240 + local.get $116 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.21 end @@ -10935,17 +11655,17 @@ if i32.const 0 i32.const 128 - i32.const 206 + i32.const 212 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $107 - local.set $156 + local.get $112 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 0 i32.const 1 global.set $~argumentsLength @@ -10953,15 +11673,15 @@ call $~lib/date/Date#setUTCMonth@varargs block $~lib/date/Date#getTime|inlined.22 (result i64) global.get $~lib/memory/__stack_pointer - local.get $107 - local.tee $112 - i32.store offset=224 local.get $112 - local.set $156 + local.tee $117 + i32.store offset=244 + local.get $117 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.22 end @@ -10971,17 +11691,17 @@ if i32.const 0 i32.const 128 - i32.const 209 + i32.const 215 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $107 - local.set $156 + local.get $112 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 11 i32.const 1 global.set $~argumentsLength @@ -10989,15 +11709,15 @@ call $~lib/date/Date#setUTCMonth@varargs block $~lib/date/Date#getTime|inlined.23 (result i64) global.get $~lib/memory/__stack_pointer - local.get $107 - local.tee $113 - i32.store offset=228 - local.get $113 - local.set $156 + local.get $112 + local.tee $118 + i32.store offset=248 + local.get $118 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.23 end @@ -11007,17 +11727,17 @@ if i32.const 0 i32.const 128 - i32.const 211 + i32.const 217 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $107 - local.set $156 + local.get $112 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const -1 i32.const 1 global.set $~argumentsLength @@ -11025,15 +11745,15 @@ call $~lib/date/Date#setUTCMonth@varargs block $~lib/date/Date#getUTCMonth|inlined.8 (result i32) global.get $~lib/memory/__stack_pointer - local.get $107 - local.tee $114 - i32.store offset=232 - local.get $114 - local.set $156 + local.get $112 + local.tee $119 + i32.store offset=252 + local.get $119 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:month i32.const 1 i32.sub @@ -11045,22 +11765,22 @@ if i32.const 0 i32.const 128 - i32.const 215 + i32.const 221 i32.const 3 call $~lib/builtins/abort unreachable end block $~lib/date/Date#getTime|inlined.24 (result i64) global.get $~lib/memory/__stack_pointer - local.get $107 - local.tee $115 - i32.store offset=236 - local.get $115 - local.set $156 + local.get $112 + local.tee $120 + i32.store offset=256 + local.get $120 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.24 end @@ -11070,17 +11790,17 @@ if i32.const 0 i32.const 128 - i32.const 216 + i32.const 222 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $107 - local.set $156 + local.get $112 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 12 i32.const 1 global.set $~argumentsLength @@ -11088,15 +11808,15 @@ call $~lib/date/Date#setUTCMonth@varargs block $~lib/date/Date#getUTCMonth|inlined.9 (result i32) global.get $~lib/memory/__stack_pointer - local.get $107 - local.tee $116 - i32.store offset=240 - local.get $116 - local.set $156 + local.get $112 + local.tee $121 + i32.store offset=260 + local.get $121 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:month i32.const 1 i32.sub @@ -11108,22 +11828,22 @@ if i32.const 0 i32.const 128 - i32.const 218 + i32.const 224 i32.const 3 call $~lib/builtins/abort unreachable end block $~lib/date/Date#getTime|inlined.25 (result i64) global.get $~lib/memory/__stack_pointer - local.get $107 - local.tee $117 - i32.store offset=244 - local.get $117 - local.set $156 + local.get $112 + local.tee $122 + i32.store offset=264 + local.get $122 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.25 end @@ -11133,7 +11853,7 @@ if i32.const 0 i32.const 128 - i32.const 219 + i32.const 225 i32.const 3 call $~lib/builtins/abort unreachable @@ -11142,19 +11862,19 @@ i32.const 0 i64.const 7941202527925698 call $~lib/date/Date#constructor - local.tee $118 - i32.store offset=248 + local.tee $123 + i32.store offset=268 block $~lib/date/Date#getUTCFullYear|inlined.3 (result i32) global.get $~lib/memory/__stack_pointer - local.get $118 - local.tee $119 - i32.store offset=252 - local.get $119 - local.set $156 + local.get $123 + local.tee $124 + i32.store offset=272 + local.get $124 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:year br $~lib/date/Date#getUTCFullYear|inlined.3 end @@ -11164,30 +11884,30 @@ if i32.const 0 i32.const 128 - i32.const 225 + i32.const 231 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $118 - local.set $156 + local.get $123 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 1976 call $~lib/date/Date#setUTCFullYear block $~lib/date/Date#getUTCFullYear|inlined.4 (result i32) global.get $~lib/memory/__stack_pointer - local.get $118 - local.tee $120 - i32.store offset=256 - local.get $120 - local.set $156 + local.get $123 + local.tee $125 + i32.store offset=276 + local.get $125 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:year br $~lib/date/Date#getUTCFullYear|inlined.4 end @@ -11197,30 +11917,30 @@ if i32.const 0 i32.const 128 - i32.const 227 + i32.const 233 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $118 - local.set $156 + local.get $123 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 20212 call $~lib/date/Date#setUTCFullYear block $~lib/date/Date#getUTCFullYear|inlined.5 (result i32) global.get $~lib/memory/__stack_pointer - local.get $118 - local.tee $121 - i32.store offset=260 - local.get $121 - local.set $156 + local.get $123 + local.tee $126 + i32.store offset=280 + local.get $126 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:year br $~lib/date/Date#getUTCFullYear|inlined.5 end @@ -11230,30 +11950,30 @@ if i32.const 0 i32.const 128 - i32.const 229 + i32.const 235 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $118 - local.set $156 + local.get $123 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 71 call $~lib/date/Date#setUTCFullYear block $~lib/date/Date#getUTCFullYear|inlined.6 (result i32) global.get $~lib/memory/__stack_pointer - local.get $118 - local.tee $122 - i32.store offset=264 - local.get $122 - local.set $156 + local.get $123 + local.tee $127 + i32.store offset=284 + local.get $127 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:year br $~lib/date/Date#getUTCFullYear|inlined.6 end @@ -11263,7 +11983,7 @@ if i32.const 0 i32.const 128 - i32.const 231 + i32.const 237 i32.const 3 call $~lib/builtins/abort unreachable @@ -11272,32 +11992,27 @@ i32.const 0 i64.const -62167219200000 call $~lib/date/Date#constructor - local.tee $123 - i32.store offset=268 - local.get $123 - local.set $156 + local.tee $128 + i32.store offset=288 + local.get $128 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=276 - local.get $156 + local.get $169 + i32.store offset=292 + local.get $169 call $~lib/date/Date#toISOString - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 2672 - local.set $156 - global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=272 - local.get $156 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 128 - i32.const 237 + i32.const 243 i32.const 3 call $~lib/builtins/abort unreachable @@ -11308,32 +12023,27 @@ i64.const 1 i64.sub call $~lib/date/Date#constructor - local.tee $123 - i32.store offset=268 - local.get $123 - local.set $156 + local.tee $128 + i32.store offset=288 + local.get $128 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=276 - local.get $156 + local.get $169 + i32.store offset=292 + local.get $169 call $~lib/date/Date#toISOString - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 2752 - local.set $156 - global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=272 - local.get $156 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 128 - i32.const 239 + i32.const 245 i32.const 3 call $~lib/builtins/abort unreachable @@ -11342,32 +12052,27 @@ i32.const 0 i64.const -62127219200000 call $~lib/date/Date#constructor - local.tee $123 - i32.store offset=268 - local.get $123 - local.set $156 + local.tee $128 + i32.store offset=288 + local.get $128 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=276 - local.get $156 + local.get $169 + i32.store offset=292 + local.get $169 call $~lib/date/Date#toISOString - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 2832 - local.set $156 - global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=272 - local.get $156 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 128 - i32.const 241 + i32.const 247 i32.const 3 call $~lib/builtins/abort unreachable @@ -11376,32 +12081,27 @@ i32.const 0 i64.const 1231231231020 call $~lib/date/Date#constructor - local.tee $123 - i32.store offset=268 - local.get $123 - local.set $156 + local.tee $128 + i32.store offset=288 + local.get $128 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=276 - local.get $156 + local.get $169 + i32.store offset=292 + local.get $169 call $~lib/date/Date#toISOString - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 2912 - local.set $156 - global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=272 - local.get $156 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 128 - i32.const 243 + i32.const 249 i32.const 3 call $~lib/builtins/abort unreachable @@ -11410,32 +12110,27 @@ i32.const 0 i64.const 1231231231456 call $~lib/date/Date#constructor - local.tee $123 - i32.store offset=268 - local.get $123 - local.set $156 + local.tee $128 + i32.store offset=288 + local.get $128 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=276 - local.get $156 + local.get $169 + i32.store offset=292 + local.get $169 call $~lib/date/Date#toISOString - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 2992 - local.set $156 - global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=272 - local.get $156 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 128 - i32.const 245 + i32.const 251 i32.const 3 call $~lib/builtins/abort unreachable @@ -11444,32 +12139,27 @@ i32.const 0 i64.const 322331231231020 call $~lib/date/Date#constructor - local.tee $123 - i32.store offset=268 - local.get $123 - local.set $156 + local.tee $128 + i32.store offset=288 + local.get $128 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=276 - local.get $156 + local.get $169 + i32.store offset=292 + local.get $169 call $~lib/date/Date#toISOString - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 3072 - local.set $156 - global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=272 - local.get $156 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 128 - i32.const 247 + i32.const 253 i32.const 3 call $~lib/builtins/abort unreachable @@ -11477,33 +12167,28 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i64.const 253402300799999 - call $~lib/date/Date#constructor - local.tee $123 - i32.store offset=268 - local.get $123 - local.set $156 + call $~lib/date/Date#constructor + local.tee $128 + i32.store offset=288 + local.get $128 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=276 - local.get $156 + local.get $169 + i32.store offset=292 + local.get $169 call $~lib/date/Date#toISOString - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 3152 - local.set $156 - global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=272 - local.get $156 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 128 - i32.const 249 + i32.const 255 i32.const 3 call $~lib/builtins/abort unreachable @@ -11512,32 +12197,27 @@ i32.const 0 i64.const 253402300800000 call $~lib/date/Date#constructor - local.tee $123 - i32.store offset=268 - local.get $123 - local.set $156 + local.tee $128 + i32.store offset=288 + local.get $128 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=276 - local.get $156 + local.get $169 + i32.store offset=292 + local.get $169 call $~lib/date/Date#toISOString - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 3232 - local.set $156 - global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=272 - local.get $156 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 128 - i32.const 251 + i32.const 257 i32.const 3 call $~lib/builtins/abort unreachable @@ -11546,32 +12226,27 @@ i32.const 0 i64.const -62847038769226 call $~lib/date/Date#constructor - local.tee $123 - i32.store offset=268 - local.get $123 - local.set $156 + local.tee $128 + i32.store offset=288 + local.get $128 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=276 - local.get $156 + local.get $169 + i32.store offset=292 + local.get $169 call $~lib/date/Date#toISOString - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 3312 - local.set $156 - global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=272 - local.get $156 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 128 - i32.const 253 + i32.const 259 i32.const 3 call $~lib/builtins/abort unreachable @@ -11580,32 +12255,27 @@ i32.const 0 i64.const -61536067200000 call $~lib/date/Date#constructor - local.tee $124 - i32.store offset=280 - local.get $124 - local.set $156 - global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=276 - local.get $156 + local.tee $129 + i32.store offset=296 + local.get $129 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 + i32.store offset=292 + local.get $169 call $~lib/date/Date#toDateString - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 4240 - local.set $156 - global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=272 - local.get $156 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 128 - i32.const 259 + i32.const 265 i32.const 3 call $~lib/builtins/abort unreachable @@ -11614,32 +12284,27 @@ i32.const 0 i64.const 1580601600000 call $~lib/date/Date#constructor - local.tee $124 - i32.store offset=280 - local.get $124 - local.set $156 - global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=276 - local.get $156 + local.tee $129 + i32.store offset=296 + local.get $129 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 + i32.store offset=292 + local.get $169 call $~lib/date/Date#toDateString - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 4304 - local.set $156 - global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=272 - local.get $156 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 128 - i32.const 261 + i32.const 267 i32.const 3 call $~lib/builtins/abort unreachable @@ -11648,32 +12313,27 @@ i32.const 0 i64.const -62183116800000 call $~lib/date/Date#constructor - local.tee $124 - i32.store offset=280 - local.get $124 - local.set $156 - global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=276 - local.get $156 + local.tee $129 + i32.store offset=296 + local.get $129 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 + i32.store offset=292 + local.get $169 call $~lib/date/Date#toDateString - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 4368 - local.set $156 - global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=272 - local.get $156 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 128 - i32.const 264 + i32.const 270 i32.const 3 call $~lib/builtins/abort unreachable @@ -11682,32 +12342,27 @@ i32.const 0 i64.const -61536067200000 call $~lib/date/Date#constructor - local.tee $125 - i32.store offset=284 - local.get $125 - local.set $156 - global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=276 - local.get $156 + local.tee $130 + i32.store offset=300 + local.get $130 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 + i32.store offset=292 + local.get $169 call $~lib/date/Date#toTimeString - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 4480 - local.set $156 - global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=272 - local.get $156 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 128 - i32.const 270 + i32.const 276 i32.const 3 call $~lib/builtins/abort unreachable @@ -11716,32 +12371,27 @@ i32.const 0 i64.const 253402300799999 call $~lib/date/Date#constructor - local.tee $125 - i32.store offset=284 - local.get $125 - local.set $156 - global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=276 - local.get $156 + local.tee $130 + i32.store offset=300 + local.get $130 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 + i32.store offset=292 + local.get $169 call $~lib/date/Date#toTimeString - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 4528 - local.set $156 - global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=272 - local.get $156 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 128 - i32.const 273 + i32.const 279 i32.const 3 call $~lib/builtins/abort unreachable @@ -11750,32 +12400,27 @@ i32.const 0 i64.const -61536067200000 call $~lib/date/Date#constructor - local.tee $126 - i32.store offset=288 - local.get $126 - local.set $156 + local.tee $131 + i32.store offset=304 + local.get $131 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=276 - local.get $156 + local.get $169 + i32.store offset=292 + local.get $169 call $~lib/date/Date#toUTCString - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 5424 - local.set $156 - global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=272 - local.get $156 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 128 - i32.const 279 + i32.const 285 i32.const 3 call $~lib/builtins/abort unreachable @@ -11784,32 +12429,27 @@ i32.const 0 i64.const 1580741613467 call $~lib/date/Date#constructor - local.tee $126 - i32.store offset=288 - local.get $126 - local.set $156 + local.tee $131 + i32.store offset=304 + local.get $131 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=276 - local.get $156 + local.get $169 + i32.store offset=292 + local.get $169 call $~lib/date/Date#toUTCString - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 5504 - local.set $156 - global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=272 - local.get $156 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 128 - i32.const 281 + i32.const 287 i32.const 3 call $~lib/builtins/abort unreachable @@ -11818,57 +12458,47 @@ i32.const 0 i64.const -62183116800000 call $~lib/date/Date#constructor - local.tee $126 - i32.store offset=288 - local.get $126 - local.set $156 + local.tee $131 + i32.store offset=304 + local.get $131 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=276 - local.get $156 + local.get $169 + i32.store offset=292 + local.get $169 call $~lib/date/Date#toUTCString - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 i32.const 5584 - local.set $156 - global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=272 - local.get $156 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 128 - i32.const 284 + i32.const 290 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer i32.const 5664 - local.set $156 - global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=8 - local.get $156 call $~lib/date/Date.fromString - local.tee $127 - i32.store offset=292 + local.tee $132 + i32.store offset=308 block $~lib/date/Date#getTime|inlined.26 (result i64) global.get $~lib/memory/__stack_pointer - local.get $127 - local.tee $128 - i32.store offset=296 - local.get $128 - local.set $156 + local.get $132 + local.tee $133 + i32.store offset=312 + local.get $133 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.26 end @@ -11878,32 +12508,27 @@ if i32.const 0 i32.const 128 - i32.const 291 + i32.const 297 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer i32.const 5936 - local.set $156 - global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=8 - local.get $156 call $~lib/date/Date.fromString - local.tee $127 - i32.store offset=292 + local.tee $132 + i32.store offset=308 block $~lib/date/Date#getTime|inlined.27 (result i64) global.get $~lib/memory/__stack_pointer - local.get $127 - local.tee $129 - i32.store offset=300 - local.get $129 - local.set $156 + local.get $132 + local.tee $134 + i32.store offset=316 + local.get $134 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.27 end @@ -11913,104 +12538,329 @@ if i32.const 0 i32.const 128 - i32.const 293 + i32.const 299 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer i32.const 5984 - local.set $156 - global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=8 - local.get $156 call $~lib/date/Date.fromString - local.tee $127 - i32.store offset=292 + local.tee $132 + i32.store offset=308 block $~lib/date/Date#getTime|inlined.28 (result i64) global.get $~lib/memory/__stack_pointer - local.get $127 - local.tee $130 - i32.store offset=304 - local.get $130 - local.set $156 + local.get $132 + local.tee $135 + i32.store offset=320 + local.get $135 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 + i32.store offset=8 + local.get $169 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.28 + end + i64.const 11860387200000 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 301 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 6032 + call $~lib/date/Date.fromString + local.tee $132 + i32.store offset=308 + block $~lib/date/Date#getTime|inlined.29 (result i64) + global.get $~lib/memory/__stack_pointer + local.get $132 + local.tee $136 + i32.store offset=324 + local.get $136 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 + i32.store offset=8 + local.get $169 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.29 + end + i64.const 192112496000 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 305 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 6096 + call $~lib/date/Date.fromString + local.tee $132 + i32.store offset=308 + block $~lib/date/Date#getTime|inlined.30 (result i64) + global.get $~lib/memory/__stack_pointer + local.get $132 + local.tee $137 + i32.store offset=328 + local.get $137 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 + i32.store offset=8 + local.get $169 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.30 + end + i64.const 192112496456 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 309 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 6176 + call $~lib/date/Date.fromString + local.tee $132 + i32.store offset=308 + block $~lib/date/Date#getTime|inlined.31 (result i64) + global.get $~lib/memory/__stack_pointer + local.get $132 + local.tee $138 + i32.store offset=332 + local.get $138 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 + i32.store offset=8 + local.get $169 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.31 + end + i64.const 192112496456 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 313 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 6256 + call $~lib/date/Date.fromString + local.tee $132 + i32.store offset=308 + block $~lib/date/Date#getTime|inlined.32 (result i64) + global.get $~lib/memory/__stack_pointer + local.get $132 + local.tee $139 + i32.store offset=336 + local.get $139 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 + i32.store offset=8 + local.get $169 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.32 + end + i64.const 192141296456 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 317 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 6336 + call $~lib/date/Date.fromString + local.tee $132 + i32.store offset=308 + block $~lib/date/Date#getTime|inlined.33 (result i64) + global.get $~lib/memory/__stack_pointer + local.get $132 + local.tee $140 + i32.store offset=340 + local.get $140 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 + i32.store offset=8 + local.get $169 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.33 + end + i64.const 192092696456 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 321 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 6416 + call $~lib/date/Date.fromString + local.tee $132 + i32.store offset=308 + block $~lib/date/Date#getTime|inlined.34 (result i64) + global.get $~lib/memory/__stack_pointer + local.get $132 + local.tee $141 + i32.store offset=344 + local.get $141 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 + i32.store offset=8 + local.get $169 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.34 + end + i64.const 192112496450 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 325 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 6480 + call $~lib/date/Date.fromString + local.tee $132 + i32.store offset=308 + block $~lib/date/Date#getTime|inlined.35 (result i64) + global.get $~lib/memory/__stack_pointer + local.get $132 + local.tee $142 + i32.store offset=348 + local.get $142 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 + i32.store offset=8 + local.get $169 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.35 + end + i64.const 192112496450 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 329 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 6560 + call $~lib/date/Date.fromString + local.tee $132 + i32.store offset=308 + block $~lib/date/Date#getTime|inlined.36 (result i64) + global.get $~lib/memory/__stack_pointer + local.get $132 + local.tee $143 + i32.store offset=352 + local.get $143 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:epochMillis - br $~lib/date/Date#getTime|inlined.28 + br $~lib/date/Date#getTime|inlined.36 end - i64.const 11860387200000 + i64.const 192112496450 i64.eq i32.eqz if i32.const 0 i32.const 128 - i32.const 295 + i32.const 333 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 6032 - local.set $156 - global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=8 - local.get $156 + i32.const 6640 call $~lib/date/Date.fromString - local.tee $127 - i32.store offset=292 - block $~lib/date/Date#getTime|inlined.29 (result i64) + local.tee $132 + i32.store offset=308 + block $~lib/date/Date#getTime|inlined.37 (result i64) global.get $~lib/memory/__stack_pointer - local.get $127 - local.tee $131 - i32.store offset=308 - local.get $131 - local.set $156 + local.get $132 + local.tee $144 + i32.store offset=356 + local.get $144 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:epochMillis - br $~lib/date/Date#getTime|inlined.29 + br $~lib/date/Date#getTime|inlined.37 end - i64.const 192112496000 + i64.const 192112496456 i64.eq i32.eqz if i32.const 0 i32.const 128 - i32.const 299 + i32.const 337 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 6096 - local.set $156 - global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=8 - local.get $156 + i32.const 6720 call $~lib/date/Date.fromString - local.tee $127 - i32.store offset=292 - block $~lib/date/Date#getTime|inlined.30 (result i64) + local.tee $132 + i32.store offset=308 + block $~lib/date/Date#getTime|inlined.38 (result i64) global.get $~lib/memory/__stack_pointer - local.get $127 - local.tee $132 - i32.store offset=312 local.get $132 - local.set $156 + local.tee $145 + i32.store offset=360 + local.get $145 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:epochMillis - br $~lib/date/Date#getTime|inlined.30 + br $~lib/date/Date#getTime|inlined.38 end i64.const 192112496456 i64.eq @@ -12018,34 +12868,29 @@ if i32.const 0 i32.const 128 - i32.const 303 + i32.const 341 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 6176 - local.set $156 - global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=8 - local.get $156 + i32.const 6800 call $~lib/date/Date.fromString - local.tee $127 - i32.store offset=292 - block $~lib/date/Date#getTime|inlined.31 (result i64) + local.tee $132 + i32.store offset=308 + block $~lib/date/Date#getTime|inlined.39 (result i64) global.get $~lib/memory/__stack_pointer - local.get $127 - local.tee $133 - i32.store offset=316 - local.get $133 - local.set $156 + local.get $132 + local.tee $146 + i32.store offset=364 + local.get $146 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:epochMillis - br $~lib/date/Date#getTime|inlined.31 + br $~lib/date/Date#getTime|inlined.39 end i64.const 192112496456 i64.eq @@ -12053,34 +12898,29 @@ if i32.const 0 i32.const 128 - i32.const 307 + i32.const 345 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 6256 - local.set $156 - global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=8 - local.get $156 + i32.const 6896 call $~lib/date/Date.fromString - local.tee $127 - i32.store offset=292 - block $~lib/date/Date#getTime|inlined.32 (result i64) + local.tee $132 + i32.store offset=308 + block $~lib/date/Date#getTime|inlined.40 (result i64) global.get $~lib/memory/__stack_pointer - local.get $127 - local.tee $134 - i32.store offset=320 - local.get $134 - local.set $156 + local.get $132 + local.tee $147 + i32.store offset=368 + local.get $147 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:epochMillis - br $~lib/date/Date#getTime|inlined.32 + br $~lib/date/Date#getTime|inlined.40 end i64.const -62167219200000 i64.eq @@ -12088,34 +12928,29 @@ if i32.const 0 i32.const 128 - i32.const 310 + i32.const 348 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 6288 - local.set $156 - global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=8 - local.get $156 + i32.const 6928 call $~lib/date/Date.fromString - local.tee $127 - i32.store offset=292 - block $~lib/date/Date#getTime|inlined.33 (result i64) + local.tee $132 + i32.store offset=308 + block $~lib/date/Date#getTime|inlined.41 (result i64) global.get $~lib/memory/__stack_pointer - local.get $127 - local.tee $135 - i32.store offset=324 - local.get $135 - local.set $156 + local.get $132 + local.tee $148 + i32.store offset=372 + local.get $148 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:epochMillis - br $~lib/date/Date#getTime|inlined.33 + br $~lib/date/Date#getTime|inlined.41 end i64.const -62135596800000 i64.eq @@ -12123,34 +12958,29 @@ if i32.const 0 i32.const 128 - i32.const 313 + i32.const 351 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 6320 - local.set $156 - global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=8 - local.get $156 + i32.const 6960 call $~lib/date/Date.fromString - local.tee $127 - i32.store offset=292 - block $~lib/date/Date#getTime|inlined.34 (result i64) + local.tee $132 + i32.store offset=308 + block $~lib/date/Date#getTime|inlined.42 (result i64) global.get $~lib/memory/__stack_pointer - local.get $127 - local.tee $136 - i32.store offset=328 - local.get $136 - local.set $156 + local.get $132 + local.tee $149 + i32.store offset=376 + local.get $149 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:epochMillis - br $~lib/date/Date#getTime|inlined.34 + br $~lib/date/Date#getTime|inlined.42 end i64.const 189302400000 i64.eq @@ -12158,34 +12988,29 @@ if i32.const 0 i32.const 128 - i32.const 316 + i32.const 354 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 6352 - local.set $156 - global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=8 - local.get $156 + i32.const 6992 call $~lib/date/Date.fromString - local.tee $127 - i32.store offset=292 - block $~lib/date/Date#getTime|inlined.35 (result i64) + local.tee $132 + i32.store offset=308 + block $~lib/date/Date#getTime|inlined.43 (result i64) global.get $~lib/memory/__stack_pointer - local.get $127 - local.tee $137 - i32.store offset=332 - local.get $137 - local.set $156 + local.get $132 + local.tee $150 + i32.store offset=380 + local.get $150 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:epochMillis - br $~lib/date/Date#getTime|inlined.35 + br $~lib/date/Date#getTime|inlined.43 end i64.const 191980800000 i64.eq @@ -12193,34 +13018,29 @@ if i32.const 0 i32.const 128 - i32.const 319 + i32.const 357 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer i32.const 5664 - local.set $156 - global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=8 - local.get $156 call $~lib/date/Date.fromString - local.tee $127 - i32.store offset=292 - block $~lib/date/Date#getTime|inlined.36 (result i64) + local.tee $132 + i32.store offset=308 + block $~lib/date/Date#getTime|inlined.44 (result i64) global.get $~lib/memory/__stack_pointer - local.get $127 - local.tee $138 - i32.store offset=336 - local.get $138 - local.set $156 + local.get $132 + local.tee $151 + i32.store offset=384 + local.get $151 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:epochMillis - br $~lib/date/Date#getTime|inlined.36 + br $~lib/date/Date#getTime|inlined.44 end i64.const 192067200000 i64.eq @@ -12228,34 +13048,29 @@ if i32.const 0 i32.const 128 - i32.const 322 + i32.const 360 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 6400 - local.set $156 - global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=8 - local.get $156 + i32.const 7040 call $~lib/date/Date.fromString - local.tee $127 - i32.store offset=292 - block $~lib/date/Date#getTime|inlined.37 (result i64) + local.tee $132 + i32.store offset=308 + block $~lib/date/Date#getTime|inlined.45 (result i64) global.get $~lib/memory/__stack_pointer - local.get $127 - local.tee $139 - i32.store offset=340 - local.get $139 - local.set $156 + local.get $132 + local.tee $152 + i32.store offset=388 + local.get $152 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:epochMillis - br $~lib/date/Date#getTime|inlined.37 + br $~lib/date/Date#getTime|inlined.45 end i64.const 192112440000 i64.eq @@ -12263,34 +13078,29 @@ if i32.const 0 i32.const 128 - i32.const 325 + i32.const 363 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer i32.const 6032 - local.set $156 - global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=8 - local.get $156 call $~lib/date/Date.fromString - local.tee $127 - i32.store offset=292 - block $~lib/date/Date#getTime|inlined.38 (result i64) + local.tee $132 + i32.store offset=308 + block $~lib/date/Date#getTime|inlined.46 (result i64) global.get $~lib/memory/__stack_pointer - local.get $127 - local.tee $140 - i32.store offset=344 - local.get $140 - local.set $156 + local.get $132 + local.tee $153 + i32.store offset=392 + local.get $153 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:epochMillis - br $~lib/date/Date#getTime|inlined.38 + br $~lib/date/Date#getTime|inlined.46 end i64.const 192112496000 i64.eq @@ -12298,7 +13108,7 @@ if i32.const 0 i32.const 128 - i32.const 328 + i32.const 366 i32.const 3 call $~lib/builtins/abort unreachable @@ -12307,27 +13117,27 @@ i32.const 0 i64.const -8640000000000000 call $~lib/date/Date#constructor - local.tee $141 - i32.store offset=348 + local.tee $154 + i32.store offset=396 global.get $~lib/memory/__stack_pointer i32.const 0 i64.const 8640000000000000 call $~lib/date/Date#constructor - local.tee $142 - i32.store offset=352 - block $~lib/date/Date#getTime|inlined.39 (result i64) - global.get $~lib/memory/__stack_pointer - local.get $141 - local.tee $143 - i32.store offset=356 - local.get $143 - local.set $156 + local.tee $155 + i32.store offset=400 + block $~lib/date/Date#getTime|inlined.47 (result i64) global.get $~lib/memory/__stack_pointer + local.get $154 + local.tee $156 + i32.store offset=404 local.get $156 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:epochMillis - br $~lib/date/Date#getTime|inlined.39 + br $~lib/date/Date#getTime|inlined.47 end i64.const -8640000000000000 i64.eq @@ -12335,24 +13145,24 @@ if i32.const 0 i32.const 128 - i32.const 346 + i32.const 384 i32.const 3 call $~lib/builtins/abort unreachable end - block $~lib/date/Date#getTime|inlined.40 (result i64) + block $~lib/date/Date#getTime|inlined.48 (result i64) global.get $~lib/memory/__stack_pointer - local.get $142 - local.tee $144 - i32.store offset=360 - local.get $144 - local.set $156 + local.get $155 + local.tee $157 + i32.store offset=408 + local.get $157 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:epochMillis - br $~lib/date/Date#getTime|inlined.40 + br $~lib/date/Date#getTime|inlined.48 end i64.const 8640000000000000 i64.eq @@ -12360,22 +13170,22 @@ if i32.const 0 i32.const 128 - i32.const 347 + i32.const 385 i32.const 3 call $~lib/builtins/abort unreachable end block $~lib/date/Date#getUTCFullYear|inlined.7 (result i32) global.get $~lib/memory/__stack_pointer - local.get $141 - local.tee $145 - i32.store offset=364 - local.get $145 - local.set $156 + local.get $154 + local.tee $158 + i32.store offset=412 + local.get $158 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:year br $~lib/date/Date#getUTCFullYear|inlined.7 end @@ -12385,22 +13195,22 @@ if i32.const 0 i32.const 128 - i32.const 349 + i32.const 387 i32.const 3 call $~lib/builtins/abort unreachable end block $~lib/date/Date#getUTCFullYear|inlined.8 (result i32) global.get $~lib/memory/__stack_pointer - local.get $142 - local.tee $146 - i32.store offset=368 - local.get $146 - local.set $156 + local.get $155 + local.tee $159 + i32.store offset=416 + local.get $159 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:year br $~lib/date/Date#getUTCFullYear|inlined.8 end @@ -12410,22 +13220,22 @@ if i32.const 0 i32.const 128 - i32.const 350 + i32.const 388 i32.const 3 call $~lib/builtins/abort unreachable end block $~lib/date/Date#getUTCMonth|inlined.10 (result i32) global.get $~lib/memory/__stack_pointer - local.get $141 - local.tee $147 - i32.store offset=372 - local.get $147 - local.set $156 + local.get $154 + local.tee $160 + i32.store offset=420 + local.get $160 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:month i32.const 1 i32.sub @@ -12437,22 +13247,22 @@ if i32.const 0 i32.const 128 - i32.const 352 + i32.const 390 i32.const 3 call $~lib/builtins/abort unreachable end block $~lib/date/Date#getUTCMonth|inlined.11 (result i32) global.get $~lib/memory/__stack_pointer - local.get $142 - local.tee $148 - i32.store offset=376 - local.get $148 - local.set $156 + local.get $155 + local.tee $161 + i32.store offset=424 + local.get $161 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:month i32.const 1 i32.sub @@ -12464,22 +13274,22 @@ if i32.const 0 i32.const 128 - i32.const 353 + i32.const 391 i32.const 3 call $~lib/builtins/abort unreachable end block $~lib/date/Date#getUTCDate|inlined.5 (result i32) global.get $~lib/memory/__stack_pointer - local.get $141 - local.tee $149 - i32.store offset=380 - local.get $149 - local.set $156 + local.get $154 + local.tee $162 + i32.store offset=428 + local.get $162 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:day br $~lib/date/Date#getUTCDate|inlined.5 end @@ -12489,22 +13299,22 @@ if i32.const 0 i32.const 128 - i32.const 355 + i32.const 393 i32.const 3 call $~lib/builtins/abort unreachable end block $~lib/date/Date#getUTCDate|inlined.6 (result i32) global.get $~lib/memory/__stack_pointer - local.get $142 - local.tee $150 - i32.store offset=384 - local.get $150 - local.set $156 + local.get $155 + local.tee $163 + i32.store offset=432 + local.get $163 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:day br $~lib/date/Date#getUTCDate|inlined.6 end @@ -12514,63 +13324,53 @@ if i32.const 0 i32.const 128 - i32.const 356 + i32.const 394 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $141 - local.set $156 + local.get $154 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=276 - local.get $156 + local.get $169 + i32.store offset=292 + local.get $169 call $~lib/date/Date#toISOString - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 - i32.const 6464 - local.set $156 - global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=272 - local.get $156 + local.get $169 + i32.const 7104 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 128 - i32.const 358 + i32.const 396 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $142 - local.set $156 + local.get $155 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=276 - local.get $156 + local.get $169 + i32.store offset=292 + local.get $169 call $~lib/date/Date#toISOString - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 - i32.const 6544 - local.set $156 - global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=272 - local.get $156 + local.get $169 + i32.const 7184 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 128 - i32.const 359 + i32.const 397 i32.const 3 call $~lib/builtins/abort unreachable @@ -12581,27 +13381,27 @@ i64.const 1 i64.sub call $~lib/date/Date#constructor - local.tee $151 - i32.store offset=388 + local.tee $164 + i32.store offset=436 global.get $~lib/memory/__stack_pointer i32.const 0 i64.const -8640000000000000 i64.const 1 i64.add call $~lib/date/Date#constructor - local.tee $152 - i32.store offset=392 + local.tee $165 + i32.store offset=440 block $~lib/date/Date#getUTCFullYear|inlined.9 (result i32) global.get $~lib/memory/__stack_pointer - local.get $152 - local.tee $153 - i32.store offset=396 - local.get $153 - local.set $156 + local.get $165 + local.tee $166 + i32.store offset=444 + local.get $166 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:year br $~lib/date/Date#getUTCFullYear|inlined.9 end @@ -12611,22 +13411,22 @@ if i32.const 0 i32.const 128 - i32.const 364 + i32.const 402 i32.const 3 call $~lib/builtins/abort unreachable end block $~lib/date/Date#getUTCMonth|inlined.12 (result i32) global.get $~lib/memory/__stack_pointer - local.get $152 - local.tee $154 - i32.store offset=400 - local.get $154 - local.set $156 + local.get $165 + local.tee $167 + i32.store offset=448 + local.get $167 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:month i32.const 1 i32.sub @@ -12638,22 +13438,22 @@ if i32.const 0 i32.const 128 - i32.const 365 + i32.const 403 i32.const 3 call $~lib/builtins/abort unreachable end block $~lib/date/Date#getUTCDate|inlined.7 (result i32) global.get $~lib/memory/__stack_pointer - local.get $152 - local.tee $155 - i32.store offset=404 - local.get $155 - local.set $156 + local.get $165 + local.tee $168 + i32.store offset=452 + local.get $168 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#get:day br $~lib/date/Date#getUTCDate|inlined.7 end @@ -12663,17 +13463,17 @@ if i32.const 0 i32.const 128 - i32.const 366 + i32.const 404 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $152 - local.set $156 + local.get $165 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#getUTCHours i32.const 0 i32.eq @@ -12681,17 +13481,17 @@ if i32.const 0 i32.const 128 - i32.const 367 + i32.const 405 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $152 - local.set $156 + local.get $165 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#getUTCMinutes i32.const 0 i32.eq @@ -12699,17 +13499,17 @@ if i32.const 0 i32.const 128 - i32.const 368 + i32.const 406 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $152 - local.set $156 + local.get $165 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#getUTCSeconds i32.const 0 i32.eq @@ -12717,17 +13517,17 @@ if i32.const 0 i32.const 128 - i32.const 369 + i32.const 407 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $152 - local.set $156 + local.get $165 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 + local.get $169 call $~lib/date/Date#getUTCMilliseconds i32.const 1 i32.eq @@ -12735,69 +13535,59 @@ if i32.const 0 i32.const 128 - i32.const 370 + i32.const 408 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $151 - local.set $156 + local.get $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=276 - local.get $156 + local.get $169 + i32.store offset=292 + local.get $169 call $~lib/date/Date#toISOString - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 - i32.const 6624 - local.set $156 - global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=272 - local.get $156 + local.get $169 + i32.const 7264 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 128 - i32.const 372 + i32.const 410 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $152 - local.set $156 + local.get $165 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=276 - local.get $156 + local.get $169 + i32.store offset=292 + local.get $169 call $~lib/date/Date#toISOString - local.set $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $169 i32.store offset=8 - local.get $156 - i32.const 6704 - local.set $156 - global.get $~lib/memory/__stack_pointer - local.get $156 - i32.store offset=272 - local.get $156 + local.get $169 + i32.const 7344 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 128 - i32.const 373 + i32.const 411 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 408 + i32.const 456 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/std/date.release.wat b/tests/compiler/std/date.release.wat index 4ce5b2a67f..ada5d9f64a 100644 --- a/tests/compiler/std/date.release.wat +++ b/tests/compiler/std/date.release.wat @@ -6,14 +6,14 @@ (type $4 (func (param i32))) (type $5 (func (param i32 i32 i32) (result i32))) (type $6 (func (param i64) (result i32))) - (type $7 (func (param i32 i32 i32 i32 i32 i32 i32) (result i64))) - (type $8 (func (param i32 i32 i32 i32))) - (type $9 (func (param i32 i32 i64))) - (type $10 (func (result i32))) + (type $7 (func (param i32 i32 i32 i32))) + (type $8 (func (param i32 i32 i32))) + (type $9 (func (param i32 i32 i32 i32 i32 i32 i32) (result i64))) + (type $10 (func (param i32 i64))) (type $11 (func (param i32 i32 i32 i64) (result i64))) - (type $12 (func (param i32 i32 i32))) - (type $13 (func (param i32 i32 i32 i32) (result i32))) - (type $14 (func (param i32 i64))) + (type $12 (func (param i32 i32 i32 i32) (result i32))) + (type $13 (func (param i32 i32 i64))) + (type $14 (func (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/date/_day (mut i32) (i32.const 0)) (global $~lib/date/_month (mut i32) (i32.const 0)) @@ -28,7 +28,7 @@ (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 40596)) + (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) ",") @@ -220,1398 +220,999 @@ (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) "\1c") - (data $100.1 (i32.const 7272) "\02\00\00\00\08\00\00\000\000\000\000") - (data $101 (i32.const 7292) "\1c") - (data $101.1 (i32.const 7304) "\02\00\00\00\08\00\00\000\000\000\001") - (data $102 (i32.const 7324) "\1c") - (data $102.1 (i32.const 7336) "\02\00\00\00\08\00\00\001\009\007\006") - (data $103 (i32.const 7356) ",") - (data $103.1 (i32.const 7368) "\02\00\00\00\0e\00\00\001\009\007\006\00-\000\002") - (data $104 (i32.const 7404) "<") - (data $104.1 (i32.const 7416) "\02\00\00\00 \00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004") - (data $105 (i32.const 7468) "L") - (data $105.1 (i32.const 7480) "\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 $106 (i32.const 7548) "L") - (data $106.1 (i32.const 7560) "\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 $107 (i32.const 7628) "L") - (data $107.1 (i32.const 7640) "\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 $108 (i32.const 7708) "L") - (data $108.1 (i32.const 7720) "\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 $109 (i32.const 7792) "\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 $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) - local.get $6 - i64.extend_i32_s - local.get $5 - i32.const 1000 - i32.mul - i64.extend_i32_s - local.get $4 - i32.const 60000 - i32.mul - i64.extend_i32_s - local.get $3 - i32.const 3600000 - i32.mul - i64.extend_i32_s + (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 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 + 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 + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 + i64.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 local.get $1 - i32.const 2 - i32.le_s - i32.sub - local.tee $0 - i32.const 399 i32.const 0 - local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 i32.const 0 - i32.lt_s - select - i32.sub - i32.const 400 - i32.div_s - local.set $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.const -3 - i32.const 9 + i32.store offset=4 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 + i32.const 0 + i32.store offset=8 local.get $0 - local.get $3 - i32.const 400 - i32.mul - i32.sub - local.tee $0 - i32.const 365 - i32.mul + i64.const -8640000000000000 + i64.lt_s local.get $0 - i32.const 2 - i32.shr_u - i32.add + i64.const 8640000000000000 + i64.gt_s + i32.or + if + i32.const 1056 + i32.const 1104 + i32.const 130 + i32.const 35 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.const 100 - i32.div_u - i32.sub - i32.add - local.get $3 - i32.const 146097 - i32.mul + call $~lib/date/dateFromEpoch + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + global.get $~lib/date/_month + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + global.get $~lib/date/_day + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - i32.const 719469 - i32.sub - i64.extend_i32_s - i64.const 86400000 - i64.mul - i64.add - i64.add - i64.add - i64.add + global.set $~lib/memory/__stack_pointer + local.get $1 ) - (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 + local.tee $1 + i32.load offset=4 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 + i32.eq if - local.get $2 - i32.const 12 + local.get $0 + i32.const 20 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 1392 - call $~lib/rt/itcms/__visit - i32.const 6784 - call $~lib/rt/itcms/__visit - i32.const 6832 - call $~lib/rt/itcms/__visit - i32.const 1200 - call $~lib/rt/itcms/__visit - i32.const 1056 - 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 + local.tee $0 + i32.load offset=4 + i32.const 3 + i32.and + local.tee $3 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq if local.get $0 - i32.load offset=4 + local.get $1 + local.get $2 + select + call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + local.get $3 i32.const 3 + i32.eq i32.and - i32.const 3 - i32.ne if - i32.const 0 - i32.const 1264 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + local.get $1 + call $~lib/rt/itcms/Object#makeGray 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) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result 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 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 + i64.const 0 + i64.store local.get $0 - global.get $~lib/rt/itcms/iter + local.get $1 i32.eq if - local.get $0 - i32.load offset=8 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1264 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.set $~lib/rt/itcms/iter + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return end - block $__inlined_func$~lib/rt/itcms/Object#unlink$359 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $1 + block $folding-inner0 + local.get $1 i32.eqz - if - local.get $0 - i32.load offset=8 - i32.eqz - local.get $0 - i32.const 40596 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1264 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$359 - end local.get $0 - i32.load offset=8 - local.tee $2 i32.eqz - if - i32.const 0 - i32.const 1264 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end + 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 $2 + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $2 - i32.store offset=8 + i32.store 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 20 + i32.sub + i32.load offset=16 i32.const 1 - else + i32.shr_u + i32.ne + 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.const 7792 - i32.load - i32.gt_u - if - i32.const 1392 - i32.const 1456 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end + i32.store offset=4 + local.get $0 + i32.const 0 local.get $1 - i32.const 2 - i32.shl - i32.const 7796 + local.get $2 + call $~lib/util/string/compareImpl + i32.eqz + global.get $~lib/memory/__stack_pointer + i32.const 8 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 + global.set $~lib/memory/__stack_pointer 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 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 ) - (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 1536 - 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 1536 - 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 1536 - 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) + (func $~lib/date/Date.fromString (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 $1 - i32.eqz - if - i32.const 0 - i32.const 1536 - 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 + (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 72 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 8468 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1536 - 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 + i32.const 72 + memory.fill + global.get $~lib/memory/__stack_pointer 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 + local.get $0 + i32.const 20 i32.sub - i32.load - local.tee $1 - i32.load - local.tee $6 + i32.load offset=16 i32.const 1 - i32.and + i32.shr_u i32.eqz if - i32.const 0 - i32.const 1536 - i32.const 221 - i32.const 16 + i32.const 1056 + i32.const 1104 + i32.const 49 + i32.const 33 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 1536 - 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 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 3488 i32.const 0 - i32.const 1536 - 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 + call $~lib/string/String#indexOf 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.const -1 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 1536 - 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 1536 - 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 1536 - 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 0 - i32.const 1536 - 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 40608 - i32.const 0 - i32.store - i32.const 42176 - 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 40608 - i32.add - i32.const 0 + local.get $2 + call $~lib/string/String#substring + local.tee $1 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 40608 - 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 - br $for-loop|0 - end - end - i32.const 40608 - i32.const 42180 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 40608 - 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 + call $~lib/string/String#substring@varargs + local.tee $2 + i32.store offset=8 + 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 + i32.const 1 + i32.sub + local.set $3 + loop $for-loop|0 + local.get $3 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 + i32.ge_s 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 + global.get $~lib/memory/__stack_pointer + 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 8468 + 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 + block $__inlined_func$~lib/string/String#charCodeAt$401 + local.get $3 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.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.ge_u + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const -1 + local.set $0 + br $__inlined_func$~lib/string/String#charCodeAt$401 + end + local.get $2 + local.get $3 + i32.const 1 + i32.shl 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 40596 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - local.get $0 + i32.load16_u + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add - local.set $0 - br $while-continue|0 + global.set $~lib/memory/__stack_pointer 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 + block $for-break0 local.get $0 - i32.load offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne + i32.const 90 + i32.eq + br_if $for-break0 + local.get $0 + i32.const 45 + i32.eq + local.get $0 + i32.const 43 + i32.eq + i32.or if - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $3 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 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.const 1 + i32.sub + i32.eq + if + i32.const 1056 + i32.const 1104 + i32.const 73 + i32.const 13 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + i32.const 0 + local.get $2 + i32.const 3520 + local.get $3 + i32.const 1 + i32.add + local.tee $5 + call $~lib/string/String#indexOf + local.tee $7 + i32.const -1 + i32.xor + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + local.get $5 + local.get $7 + call $~lib/string/String#substring + local.tee $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $~lib/util/string/strtol + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $2 + local.get $7 + i32.const 1 + i32.add + call $~lib/string/String#substring@varargs + local.tee $7 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + call $~lib/util/string/strtol + local.get $5 + i32.const 60 + i32.mul + i32.add + i32.const 60000 + i32.mul + else + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $2 + local.get $3 + i32.const 1 + i32.add + call $~lib/string/String#substring@varargs + local.tee $5 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $~lib/util/string/strtol + i32.const 3600000 + i32.mul + end + local.tee $5 + i32.sub + local.get $5 + local.get $0 + i32.const 45 + i32.eq + select + local.set $5 + br $for-break0 + end + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $for-loop|0 end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + local.get $3 + call $~lib/string/String#substring + local.tee $2 + i32.store offset=8 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 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3520 + call $~lib/string/String#split@varargs + local.tee $0 + i32.store offset=24 + global.get $~lib/memory/__stack_pointer 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 + i32.store + local.get $0 + call $~lib/array/Array<~lib/string/String>#get:length + local.tee $2 + i32.const 1 + i32.le_s if - i32.const 0 - i32.const 1264 - i32.const 229 - i32.const 20 + i32.const 1056 + i32.const 1104 + i32.const 95 + i32.const 21 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 40596 - i32.lt_u + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#__get + local.tee $3 + i32.store offset=28 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/util/string/strtol + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 1 + call $~lib/array/Array<~lib/string/String>#__get + local.tee $7 + i32.store offset=32 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + call $~lib/util/string/strtol + local.set $7 + local.get $2 + i32.const 3 + i32.ge_s if + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 0 - i32.store offset=4 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 + i32.const 2 + call $~lib/array/Array<~lib/string/String>#__get + local.tee $2 + i32.store offset=36 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 3552 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/string/String#indexOf local.tee $0 - i32.const 40596 - i32.ge_u + i32.const -1 + i32.xor if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 local.get $0 - i32.const 4 - i32.sub - local.set $2 + call $~lib/string/String#substring + local.tee $6 + i32.store offset=40 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + call $~lib/util/string/strtol + local.set $6 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=44 local.get $0 - i32.const 15 - i32.and i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else + i32.add + 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 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 $2 + i32.store + block $__inlined_func$~lib/string/String#substr$402 (result i32) + i32.const 3 local.get $2 - i32.load + i32.const 20 + i32.sub + i32.load offset=16 i32.const 1 - i32.and - end - if + i32.shr_u + local.tee $8 + local.get $0 i32.const 0 - i32.const 1536 - i32.const 562 + i32.lt_s + if + local.get $0 + local.get $8 + i32.add + local.tee $0 + i32.const 0 + local.get $0 + i32.const 0 + i32.gt_s + select + local.set $0 + end + local.get $0 + i32.sub + local.tee $8 + local.get $8 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 $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.gt_s + select + i32.const 1 + i32.shl + local.tee $8 + i32.const 0 + i32.le_s + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 3456 + br $__inlined_func$~lib/string/String#substr$402 + end + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $10 + i32.store offset=4 + local.get $10 + local.get $2 + local.get $0 + i32.const 1 + i32.shl + i32.add + local.get $8 + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + end + 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 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 $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 + i32.and + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 1872 + i32.store + block $__inlined_func$~lib/string/String#padEnd$403 + i32.const 1868 + i32.load + i32.const -2 + i32.and + local.tee $8 + i32.eqz + local.get $10 + i32.const 6 + i32.gt_u + i32.or + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/string/String#padEnd$403 + end + global.get $~lib/memory/__stack_pointer + i32.const 6 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=4 + local.get $2 + local.get $0 + local.get $10 + memory.copy + i32.const 6 + local.get $10 + i32.sub + local.tee $0 + local.get $8 + i32.gt_u + if + local.get $0 + local.get $0 + i32.const 2 + i32.sub + local.get $8 + i32.div_u + local.get $8 + i32.mul + local.tee $0 + i32.sub + local.set $11 + local.get $2 + local.get $10 + i32.add + local.set $12 + loop $while-continue|0 + local.get $0 + local.get $4 + i32.gt_u + if + local.get $4 + local.get $12 + i32.add + i32.const 1872 + local.get $8 + memory.copy + local.get $4 + local.get $8 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $2 + local.get $10 + i32.add + local.get $0 + i32.add + i32.const 1872 + local.get $11 + memory.copy + else + local.get $2 + local.get $10 + i32.add + i32.const 1872 + local.get $0 + memory.copy + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + local.set $0 + end + local.get $0 + i32.store offset=48 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/util/string/strtol + local.set $4 + else + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=52 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/util/string/strtol + local.set $6 end end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1616 + call $~lib/string/String#split@varargs local.tee $0 + i32.store offset=56 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 - local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if + call $~lib/array/Array<~lib/string/String>#__get + local.tee $1 + i32.store offset=60 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else + i32.store local.get $1 - i32.const 536870910 - i32.lt_u - if - local.get $1 + call $~lib/util/string/strtol + i32.const 1 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/array/Array<~lib/string/String>#get:length + local.tee $8 + i32.const 2 + i32.ge_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 1 - i32.const 27 + call $~lib/array/Array<~lib/string/String>#__get + local.tee $1 + i32.store offset=64 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub + i32.store + local.get $1 + call $~lib/util/string/strtol local.set $1 + local.get $8 + i32.const 3 + i32.ge_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 2 + call $~lib/array/Array<~lib/string/String>#__get + local.tee $0 + i32.store offset=68 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/util/string/strtol + else + i32.const 1 + end + else + i32.const 1 end + local.set $0 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 + local.get $0 + local.get $3 + local.get $7 + local.get $6 + local.get $4 + call $~lib/date/epochMillis + local.get $5 + i64.extend_i32_s + i64.sub + call $~lib/date/Date#constructor + global.get $~lib/memory/__stack_pointer + i32.const 72 + i32.add + global.set $~lib/memory/__stack_pointer + return end - local.get $1 - i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u - i32.and - i32.eqz + i32.const 41264 + i32.const 41312 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (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 0 - i32.const 1536 - 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 1536 - 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 1200 - i32.const 1264 - i32.const 261 - i32.const 31 + i32.const 1200 + i32.const 1264 + i32.const 261 + i32.const 31 call $~lib/builtins/abort unreachable end @@ -1631,12 +1232,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 @@ -1648,8 +1245,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1701,8 +1297,6 @@ local.tee $2 i32.eqz if - memory.size - local.tee $2 local.get $5 i32.const 256 i32.ge_u @@ -1730,7 +1324,8 @@ i32.const 4 local.get $4 i32.load offset=1568 - local.get $2 + memory.size + local.tee $2 i32.const 16 i32.shl i32.const 4 @@ -1744,7 +1339,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.set $3 + local.get $2 + local.get $3 local.get $2 local.get $3 i32.gt_s @@ -1916,1132 +1513,1059 @@ memory.fill 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/number/I32#toString (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/date/stringify (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7828 - i32.lt_s - if - i32.const 40624 - i32.const 40672 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/itoa32$73 - local.get $0 - i32.eqz - if - local.get $1 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1872 - local.set $2 - br $__inlined_func$~lib/util/number/itoa32$73 - end + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 8468 + i32.lt_s + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 + i32.store + local.get $0 + 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 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 $0 + i32.store 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) - local.get $0 - i32.const 100 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 + i32.and + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 1872 + i32.store + block $__inlined_func$~lib/string/String#padStart$399 + i32.const 1868 + i32.load + i32.const -2 + i32.and + local.tee $2 + i32.eqz + local.get $1 + i32.const 1 + i32.shl + local.tee $5 + local.get $3 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.or + if + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/string/String#padStart$399 end - end - local.tee $1 - i32.const 1 - i32.shl - local.get $3 - i32.add - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - local.get $3 - i32.add - local.set $5 - loop $while-continue|0 - local.get $0 - i32.const 10000 - i32.ge_u + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=4 + local.get $5 + local.get $3 + i32.sub + local.tee $7 + local.get $2 + i32.gt_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 + local.get $7 + local.get $7 + i32.const 2 i32.sub - local.tee $1 - i32.const 1 - i32.shl - i32.add - local.get $4 - i32.const 100 + local.get $2 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 + local.get $2 + i32.mul + local.tee $6 + i32.sub + local.set $5 + loop $while-continue|0 + local.get $4 + local.get $6 + i32.lt_u + if + local.get $1 + local.get $4 + i32.add + i32.const 1872 + local.get $2 + memory.copy + local.get $2 + local.get $4 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $1 + local.get $6 i32.add - i64.load32_u - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 + i32.const 1872 + local.get $5 + memory.copy + else + local.get $1 + i32.const 1872 + local.get $7 + memory.copy 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 + local.get $7 i32.add local.get $0 - i32.const 2 - i32.shl - i32.const 1884 + local.get $3 + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - i32.load - i32.store - else - local.get $5 + global.set $~lib/memory/__stack_pointer 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 + local.set $0 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 + return end - local.get $2 + i32.const 41264 + i32.const 41312 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/date/Date#toISOString (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) (local $3 i32) - local.get $1 - i32.eqz - if - return - end - local.get $0 - i32.eqz - if + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const -64 + i32.add + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 8468 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer 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.tee $3 - 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 $3 - i32.eqz + i32.const 64 + memory.fill + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 20 - i32.sub - local.tee $0 - i32.load offset=4 - i32.const 3 - i32.and - local.tee $3 - i32.eq + i32.store + 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 - local.get $0 - local.get $1 - local.get $2 + global.get $~lib/memory/__stack_pointer + i32.const 1616 + i32.const 1648 + local.get $3 select - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq + 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.const 3 - i32.eq + 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 - if + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + block $__inlined_func$~lib/string/String#concat$400 + 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$400 + end + global.get $~lib/memory/__stack_pointer local.get $1 - call $~lib/rt/itcms/Object#makeGray - end - end - end - ) - (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (local $4 i32) - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.set $1 - local.get $3 - i32.const 4 - i32.ge_u - if (result i32) - local.get $1 - i32.const 7 - i32.and - local.get $2 - i32.const 7 - i32.and - i32.or - else - i32.const 1 - end - i32.eqz - if - loop $do-loop|0 - local.get $1 - i64.load - local.get $2 - i64.load - i64.eq - if + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=4 local.get $1 - i32.const 8 + local.get $3 + local.get $5 + memory.copy + local.get $1 + local.get $5 i32.add - local.set $1 - local.get $2 + local.get $4 + local.get $6 + memory.copy + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add - local.set $2 - local.get $3 - i32.const 4 - i32.sub - local.tee $3 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end - end - end - loop $while-continue|1 - local.get $3 - local.tee $0 - i32.const 1 - i32.sub - local.set $3 - local.get $0 - if - local.get $1 - i32.load16_u - local.tee $0 - local.get $2 - i32.load16_u - local.tee $4 - i32.ne - if - local.get $0 - local.get $4 - i32.sub - return + global.set $~lib/memory/__stack_pointer end - local.get $1 - i32.const 2 + 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 - local.get $2 - i32.const 2 - i32.add - local.set $2 - br $while-continue|1 end - end - i32.const 0 - ) - (func $~lib/rt/__visit_members (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - block $folding-inner1 - block $folding-inner0 - block $invalid - block $~lib/array/Array - block $~lib/array/Array<~lib/string/String> - block $~lib/staticarray/StaticArray<~lib/string/String> - block $~lib/date/Date - 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/date/Date $~lib/staticarray/StaticArray<~lib/string/String> $~lib/array/Array<~lib/string/String> $~lib/array/Array $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - return - end - return - end - local.get $0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.add - local.set $1 - loop $while-continue|0 - local.get $0 - local.get $1 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - 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 7828 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $1 - local.get $2 - 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|01 - 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|01 - end - end - br $folding-inner1 - 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 7828 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - br $folding-inner1 - end - unreachable - end - i32.const 40624 - i32.const 40672 + 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.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 3616 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 3616 + local.get $1 + 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/builtins/abort - unreachable - 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 - ) - (func $~start - global.get $~started - if - return - end - i32.const 1 - global.set $~started - call $start:std/date - ) - (func $~lib/date/Date#constructor (param $0 i64) (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 7828 - i32.lt_s - if - i32.const 40624 - i32.const 40672 + 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/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - i32.const 24 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - i64.store offset=16 - local.get $2 - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store - local.get $2 - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $0 - i64.const -8640000000000000 - i64.lt_s + 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 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/rt/itcms/__visit (param $0 i32) local.get $0 - i64.const 8640000000000000 - i64.gt_s - i32.or + i32.eqz if - i32.const 1056 - i32.const 1104 - i32.const 100 - i32.const 35 - call $~lib/builtins/abort - unreachable + return end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + global.get $~lib/rt/itcms/white local.get $0 - call $~lib/date/dateFromEpoch - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - global.get $~lib/date/_month - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - global.get $~lib/date/_day - i32.store offset=8 - 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 + 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/date/Date#setTime (param $0 i32) (param $1 i64) + (func $~lib/date/Date#setUTCDate (param $0 i32) (param $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 7828 + i32.const 8468 i32.lt_s if - i32.const 40624 - i32.const 40672 + 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 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store local.get $1 - i64.const -8640000000000000 - i64.lt_s - local.get $1 - i64.const 8640000000000000 - i64.gt_s - i32.or + local.get $0 + i32.load offset=8 + i32.eq if - i32.const 1056 - i32.const 1104 - i32.const 112 - i32.const 28 - call $~lib/builtins/abort - unreachable + 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 - local.tee $2 local.get $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i64.store offset=16 - local.get $2 - local.get $0 - i32.store + i32.store offset=4 local.get $0 - local.get $1 - call $~lib/date/dateFromEpoch - i32.store + i32.load + local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - local.get $0 - global.get $~lib/date/_month i32.store offset=4 + local.get $0 + i32.load offset=4 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=4 local.get $0 - global.get $~lib/date/_day - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/date/Date#getUTCHours (param $0 i32) (result i32) - (local $1 i32) - (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 7828 - i32.lt_s - if - i32.const 40624 - i32.const 40672 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store + local.get $2 + local.get $3 local.get $1 local.get $0 - i32.store - local.get $0 i64.load offset=16 - i64.const 86400000 - i64.rem_s - local.set $2 - local.get $1 - i32.const 4 + call $~lib/date/join + call $~lib/date/Date#setTime + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - i64.const 86400000 - i64.const 0 - local.get $2 - i64.const 0 - i64.lt_s - select - i64.add - i32.wrap_i64 - i32.const 3600000 - i32.div_s ) - (func $~lib/date/Date#getUTCMinutes (param $0 i32) (result i32) + (func $~lib/util/string/strtol (param $0 i32) (result i32) (local $1 i32) - (local $2 i64) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s if - i32.const 40624 - i32.const 40672 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $0 - i64.load offset=16 - i64.const 3600000 - i64.rem_s - local.set $2 - local.get $1 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - i64.const 3600000 - i64.const 0 - local.get $2 - i64.const 0 - i64.lt_s - select - i64.add - i32.wrap_i64 - i32.const 60000 - i32.div_s - ) - (func $~lib/date/Date#getUTCSeconds (param $0 i32) (result i32) - (local $1 i32) - (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 7828 - i32.lt_s - if - i32.const 40624 - i32.const 40672 - i32.const 1 + block $folding-inner0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - local.get $0 - i32.store - local.get $0 - i64.load offset=16 - i64.const 60000 - i64.rem_s - local.set $2 - local.get $1 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - i64.const 60000 - i64.const 0 - local.get $2 - i64.const 0 - i64.lt_s - select - i64.add - i32.wrap_i64 - i32.const 1000 - i32.div_s - ) - (func $~lib/date/Date#getUTCMilliseconds (param $0 i32) (result i32) - (local $1 i32) - (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 7828 - i32.lt_s - if - i32.const 40624 - i32.const 40672 + i32.shr_u + local.tee $1 + i32.eqz + br_if $folding-inner0 + local.get $0 + local.tee $2 + i32.load16_u + local.set $0 + loop $while-continue|0 + block $__inlined_func$~lib/util/string/isSpace$164 (result i32) + local.get $0 + i32.const 128 + i32.or + i32.const 160 + i32.eq + local.get $0 + i32.const 9 + i32.sub + i32.const 4 + i32.le_u + i32.or + local.get $0 + i32.const 5760 + i32.lt_u + br_if $__inlined_func$~lib/util/string/isSpace$164 + drop + i32.const 1 + local.get $0 + i32.const -8192 + i32.add + i32.const 10 + i32.le_u + br_if $__inlined_func$~lib/util/string/isSpace$164 + drop + block $break|0 + block $case0|0 + local.get $0 + i32.const 5760 + i32.eq + br_if $case0|0 + local.get $0 + i32.const 8232 + i32.eq + br_if $case0|0 + local.get $0 + i32.const 8233 + i32.eq + br_if $case0|0 + local.get $0 + i32.const 8239 + i32.eq + br_if $case0|0 + local.get $0 + i32.const 8287 + i32.eq + br_if $case0|0 + local.get $0 + i32.const 12288 + i32.eq + br_if $case0|0 + local.get $0 + i32.const 65279 + i32.eq + br_if $case0|0 + br $break|0 + end + i32.const 1 + br $__inlined_func$~lib/util/string/isSpace$164 + end + i32.const 0 + end + if + local.get $2 + i32.const 2 + i32.add + local.tee $2 + i32.load16_u + local.set $0 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|0 + end + end i32.const 1 + local.set $4 + local.get $0 + i32.const 45 + i32.eq + local.tee $6 + local.get $0 + i32.const 43 + i32.eq + i32.or + if (result i32) + local.get $1 + i32.const 1 + i32.sub + local.tee $1 + i32.eqz + br_if $folding-inner0 + i32.const -1 + i32.const 1 + local.get $6 + select + local.set $4 + local.get $2 + i32.const 2 + i32.add + local.tee $2 + i32.load16_u + else + local.get $0 + end + i32.const 48 + i32.eq + local.get $1 + i32.const 2 + i32.gt_s + i32.and + if + block $break|1 + block $case2|1 + block $case1|1 + local.get $2 + i32.load16_u offset=2 + i32.const 32 + i32.or + local.tee $0 + i32.const 98 + i32.ne + if + local.get $0 + i32.const 111 + i32.eq + br_if $case1|1 + local.get $0 + i32.const 120 + i32.eq + br_if $case2|1 + br $break|1 + end + local.get $2 + i32.const 4 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.sub + local.set $1 + i32.const 2 + local.set $3 + br $break|1 + end + local.get $2 + i32.const 4 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.sub + local.set $1 + i32.const 8 + local.set $3 + br $break|1 + end + local.get $2 + i32.const 4 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.sub + local.set $1 + i32.const 16 + local.set $3 + end + end + local.get $3 + i32.const 10 + local.get $3 + select + local.set $6 + local.get $1 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - local.get $0 - i32.store - local.get $0 - i64.load offset=16 - i64.const 1000 - i64.rem_s - local.set $2 - local.get $1 - i32.const 4 + i32.sub + local.set $7 + loop $while-continue|2 + local.get $1 + local.tee $0 + i32.const 1 + i32.sub + local.set $1 + local.get $0 + if + block $while-break|2 + local.get $2 + i32.load16_u + local.tee $3 + i32.const 48 + i32.sub + local.tee $0 + i32.const 10 + i32.ge_u + if + local.get $3 + i32.const 65 + i32.sub + i32.const 25 + i32.le_u + if (result i32) + local.get $3 + i32.const 55 + i32.sub + else + local.get $3 + i32.const 87 + i32.sub + local.get $3 + local.get $3 + i32.const 97 + i32.sub + i32.const 25 + i32.le_u + select + end + local.set $0 + end + local.get $0 + local.get $6 + i32.ge_u + if + local.get $1 + local.get $7 + i32.eq + br_if $folding-inner0 + br $while-break|2 + end + local.get $5 + local.get $6 + i32.mul + local.get $0 + i32.add + local.set $5 + local.get $2 + i32.const 2 + i32.add + local.set $2 + br $while-continue|2 + end + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + local.get $5 + i32.mul + return + end + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - i64.const 1000 - i64.const 0 - local.get $2 - i64.const 0 - i64.lt_s - select - i64.add - i32.wrap_i64 + i32.const 0 ) - (func $~lib/date/Date#setUTCMilliseconds (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i64) + (func $~lib/date/Date#getUTCSeconds (param $0 i32) (result i32) + (local $1 i64) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s if - i32.const 40624 - i32.const 40672 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - local.get $0 + i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store local.get $0 i64.load offset=16 - local.set $3 - local.get $2 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $3 - local.get $1 - local.get $0 - call $~lib/date/Date#getUTCMilliseconds - i32.sub - i64.extend_i32_s - i64.add - call $~lib/date/Date#setTime + i64.const 60000 + i64.rem_s + 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 + i64.const 60000 + i64.const 0 + local.get $1 + i64.const 0 + i64.lt_s + select + i64.add + i32.wrap_i64 + i32.const 1000 + i32.div_s ) - (func $~lib/date/Date#setUTCSeconds (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i64) + (func $~lib/date/Date#getUTCMinutes (param $0 i32) (result i32) + (local $1 i64) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s if - i32.const 40624 - i32.const 40672 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - local.get $0 + i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store local.get $0 i64.load offset=16 - local.set $3 - local.get $2 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $3 - local.get $1 - local.get $0 - call $~lib/date/Date#getUTCSeconds - i32.sub - i32.const 1000 - i32.mul - i64.extend_i32_s - i64.add - call $~lib/date/Date#setTime + i64.const 3600000 + i64.rem_s + 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 + i64.const 3600000 + i64.const 0 + local.get $1 + i64.const 0 + i64.lt_s + select + i64.add + i32.wrap_i64 + i32.const 60000 + i32.div_s ) - (func $~lib/date/Date#setUTCMinutes (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i64) + (func $~lib/date/Date#getUTCMilliseconds (param $0 i32) (result i32) + (local $1 i64) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s if - i32.const 40624 - i32.const 40672 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - local.get $0 + i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store local.get $0 i64.load offset=16 - local.set $3 - local.get $2 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $3 - local.get $1 - local.get $0 - call $~lib/date/Date#getUTCMinutes - i32.sub - i32.const 60000 - i32.mul - i64.extend_i32_s - i64.add - call $~lib/date/Date#setTime + i64.const 1000 + i64.rem_s + 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 + i64.const 1000 + i64.const 0 + local.get $1 + i64.const 0 + i64.lt_s + select + i64.add + i32.wrap_i64 ) - (func $~lib/date/Date#setUTCHours (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i64) + (func $~lib/date/Date#setUTCMilliseconds (param $0 i32) (param $1 i32) + (local $2 i64) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s if - i32.const 40624 - i32.const 40672 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i64.load offset=16 - local.set $3 - local.get $2 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - local.get $3 + local.get $2 local.get $1 local.get $0 - call $~lib/date/Date#getUTCHours + call $~lib/date/Date#getUTCMilliseconds i32.sub - i32.const 3600000 - i32.mul i64.extend_i32_s i64.add call $~lib/date/Date#setTime @@ -3050,86 +2574,60 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/date/Date#setUTCDate (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + (func $~lib/date/Date#getUTCHours (param $0 i32) (result i32) + (local $1 i64) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s if - i32.const 40624 - i32.const 40672 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - local.get $0 + i32.const 0 i32.store - local.get $1 - local.get $0 - i32.load offset=8 - i32.eq - if - local.get $2 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return - end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load - local.set $4 - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $2 - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $4 - local.get $2 - local.get $1 local.get $0 i64.load offset=16 - call $~lib/date/join - call $~lib/date/Date#setTime + i64.const 86400000 + i64.rem_s + 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 + i64.const 86400000 + i64.const 0 + local.get $1 + i64.const 0 + i64.lt_s + select + i64.add + i32.wrap_i64 + i32.const 3600000 + i32.div_s ) (func $~lib/date/Date#setUTCMonth@varargs (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 block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3153,48 +2651,45 @@ local.set $2 end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 i32.const 1 i32.add - local.tee $3 + local.tee $1 local.get $0 i32.load offset=4 i32.ne if global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load - local.set $4 - local.get $1 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - local.get $4 local.get $3 + local.get $1 local.get $2 local.get $0 i64.load offset=16 @@ -3211,275 +2706,297 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 40624 - i32.const 40672 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable ) - (func $~lib/date/Date#setUTCFullYear (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + (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) + local.get $6 + i64.extend_i32_s + local.get $5 + i32.const 1000 + i32.mul + i64.extend_i32_s + local.get $4 + i32.const 60000 + i32.mul + i64.extend_i32_s + local.get $3 + i32.const 3600000 + i32.mul + i64.extend_i32_s + 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 $3 + 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 $3 + 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 $3 + i32.const 146097 + i32.mul + i32.add + i32.const 719469 + i32.sub + i64.extend_i32_s + i64.const 86400000 + i64.mul + i64.add + i64.add + i64.add + i64.add + ) + (func $~lib/date/Date#setTime (param $0 i32) (param $1 i64) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s if - i32.const 40624 - i32.const 40672 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - local.get $0 + i32.const 0 i32.store local.get $1 - local.get $0 - i32.load - i32.eq + i64.const -8640000000000000 + i64.lt_s + local.get $1 + i64.const 8640000000000000 + i64.gt_s + i32.or if - local.get $2 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return + i32.const 1056 + i32.const 1104 + i32.const 142 + i32.const 28 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 local.get $0 - i32.store offset=4 + local.get $1 + i64.store offset=16 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=4 - local.set $4 - local.get $3 + i32.store local.get $0 - i32.store offset=4 + local.get $1 + call $~lib/date/dateFromEpoch + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=8 - local.set $2 - local.get $3 + i32.store local.get $0 + global.get $~lib/date/_month i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - local.get $4 - local.get $2 + i32.store local.get $0 - i64.load offset=16 - call $~lib/date/join - call $~lib/date/Date#setTime + global.get $~lib/date/_day + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/date/stringify (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) + (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 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 7828 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - 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 1872 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7828 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $5 - i64.const 0 - i64.store - local.get $5 - 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 - local.get $5 - i32.const 1872 - i32.store - block $__inlined_func$~lib/string/String#padStart$367 - i32.const 1868 - i32.load - i32.const -2 - i32.and - local.tee $2 - i32.eqz - local.get $1 - i32.const 1 - i32.shl - local.tee $6 - local.get $3 - i32.lt_u - i32.or - if - local.get $5 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/string/String#padStart$367 - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=4 - local.get $6 - local.get $3 - i32.sub - local.tee $6 - local.get $2 - i32.gt_u - if - local.get $6 - local.get $6 - i32.const 2 - i32.sub - local.get $2 - i32.div_u - local.get $2 - i32.mul - local.tee $5 - i32.sub - local.set $7 - loop $while-continue|0 - local.get $4 - local.get $5 - i32.lt_u - if - local.get $1 - local.get $4 - i32.add - i32.const 1872 - local.get $2 - memory.copy - local.get $2 - local.get $4 - i32.add - local.set $4 - br $while-continue|0 - end - end - local.get $1 - local.get $5 - i32.add - i32.const 1872 - local.get $7 - memory.copy - else - local.get $1 - i32.const 1872 - local.get $6 - memory.copy - end - local.get $1 - local.get $6 - i32.add - local.get $0 - local.get $3 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $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 - 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 40624 - i32.const 40672 - 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 + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 1392 + i32.const 6736 + 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 6832 + i32.const 6736 + 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/util/string/joinStringArray (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/string/String#substring (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s if - i32.const 40624 - i32.const 40672 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 i64.const 0 i64.store - local.get $5 - i64.const 0 - i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $1 - i32.const 1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + local.tee $3 + local.get $0 + i32.const 20 i32.sub - local.tee $4 + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $1 + local.get $1 + local.get $3 + i32.gt_s + select + local.tee $3 + local.get $2 + i32.const 0 + local.get $2 i32.const 0 + i32.gt_s + select + local.tee $2 + local.get $1 + local.get $1 + local.get $2 + i32.gt_s + select + local.tee $2 + local.get $2 + local.get $3 + i32.gt_s + select + i32.const 1 + i32.shl + local.set $4 + local.get $3 + local.get $2 + local.get $2 + local.get $3 i32.lt_s + select + i32.const 1 + i32.shl + local.tee $2 + local.get $4 + i32.sub + local.tee $3 + i32.eqz if - local.get $5 - i32.const 16 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 3456 @@ -3487,3051 +3004,3814 @@ end local.get $4 i32.eqz + local.get $2 + local.get $1 + i32.const 1 + i32.shl + i32.eq + i32.and if global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.load - local.tee $0 - i32.store - local.get $1 - i32.const 16 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 - i32.const 3456 - local.get $0 - select return end - loop $for-loop|0 - local.get $1 - local.get $3 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $0 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $6 - i32.store offset=4 - local.get $6 - if - local.get $5 - local.get $6 - i32.store offset=8 - local.get $2 - local.get $6 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.add - local.set $2 - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - i32.const 0 - local.set $3 global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 2 + call $~lib/rt/itcms/__new local.tee $1 - i32.const 3456 - i32.store offset=8 + i32.store offset=4 local.get $1 - local.get $2 + local.get $0 local.get $4 - i32.const 3452 - i32.load - i32.const 1 - i32.shr_u - local.tee $5 - i32.mul i32.add - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store offset=12 - i32.const 0 - local.set $2 - loop $for-loop|1 - local.get $2 - local.get $4 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.tee $7 - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $1 - i32.store offset=4 - local.get $1 - if - local.get $7 - local.get $1 - i32.store offset=8 - local.get $6 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.get $1 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $1 - i32.const 1 - i32.shl - memory.copy - local.get $1 - local.get $3 - i32.add - local.set $3 - end - local.get $5 - if - local.get $6 - local.get $3 - i32.const 1 - i32.shl - i32.add - i32.const 3456 - local.get $5 - i32.const 1 - i32.shl - memory.copy - local.get $3 - local.get $5 - i32.add - local.set $3 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|1 - end + local.get $3 + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/rt/__newArray (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 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 - local.tee $1 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $4 i32.const 2 i32.shl - i32.add - i32.load - local.tee $0 + local.tee $3 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + i32.const 16 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $1 + local.get $2 + i32.store + local.get $1 + local.get $2 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $1 + local.get $2 i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $1 local.get $0 - if - local.get $1 - local.get $0 - i32.store offset=8 - local.get $6 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - memory.copy - end + i32.store offset=12 global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $1 ) - (func $~lib/staticarray/StaticArray<~lib/string/String>#join (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/array/Array<~lib/string/String>#push (param $0 i32) (param $1 i32) (local $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s if - i32.const 40624 - i32.const 40672 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 + local.get $0 + i32.load offset=12 + local.tee $2 + 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 + i32.load offset=4 + local.get $2 i32.const 2 - i32.shr_u - local.set $2 + i32.shl + i32.add local.get $1 - i32.const 3456 i32.store local.get $0 - local.get $2 - call $~lib/util/string/joinStringArray - local.set $0 + local.get $1 + i32.const 1 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $0 + i32.store + local.get $0 + local.get $3 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/date/Date#toISOString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) + (func $~lib/string/String#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const -64 - i32.add + i32.const 8 + i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 7828 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.const 64 - memory.fill - local.get $2 - local.get $0 - i32.store - local.get $0 - i32.load - local.tee $1 + 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 + i64.const 0 + i64.store + 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 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 - i32.lt_s - local.tee $3 - local.get $1 - i32.const 10000 - i32.ge_s - i32.or + return + end + 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.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 + return + end + local.get $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.tee $2 + local.get $4 + local.get $2 + local.get $4 + i32.lt_s + select + local.set $2 + local.get $4 + local.get $3 + i32.sub + local.set $4 + loop $for-loop|0 + local.get $2 + local.get $4 + i32.le_s if - local.get $2 - i32.const 1616 - i32.const 1648 - local.get $3 - select - local.tee $3 + global.get $~lib/memory/__stack_pointer + local.get $0 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 + local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7828 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - block $__inlined_func$~lib/string/String#concat$368 (result i32) - local.get $1 - local.get $3 - i32.store - local.get $1 - local.get $4 - i32.store offset=4 - local.get $1 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7828 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $5 - i64.const 0 - i64.store - local.get $5 - local.get $3 - i32.store - local.get $3 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $6 - local.get $5 - local.get $4 - i32.store - local.get $4 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $7 - local.get $6 - i32.add - local.tee $1 - i32.eqz - if - local.get $5 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 3456 - br $__inlined_func$~lib/string/String#concat$368 - 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 $6 - memory.copy - local.get $1 - local.get $6 - i32.add - local.get $4 - local.get $7 - memory.copy + local.get $0 + local.get $2 + 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 - local.get $1 + local.get $2 + return end - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $2 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - else - local.get $1 - i32.const 4 - call $~lib/date/stringify - local.set $1 + local.set $2 + br $for-loop|0 end - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store - local.get $2 - 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 3616 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 3616 - local.get $1 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 3456 - i32.store offset=4 - i32.const 3616 - call $~lib/staticarray/StaticArray<~lib/string/String>#join - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const -64 - i32.sub - global.set $~lib/memory/__stack_pointer - local.get $0 - return end - i32.const 40624 - i32.const 40672 - 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 + i32.const -1 ) - (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) + (func $~lib/staticarray/StaticArray<~lib/string/String>#join (param $0 i32) (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 7828 + i32.const 8468 i32.lt_s if - i32.const 40624 - i32.const 40672 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 3456 + i32.store local.get $0 local.get $1 - i32.eq - if - local.get $2 - 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.tee $2 - 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 - local.get $2 - 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 - local.get $2 - local.get $0 - i32.store - local.get $2 - local.get $1 - i32.store offset=4 - local.get $0 - i32.const 0 - local.get $1 - local.get $3 - call $~lib/util/string/compareImpl - i32.eqz - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end + call $~lib/util/string/joinStringArray global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 ) - (func $~lib/date/Date#toDateString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) + (func $~lib/date/Date#setUTCSeconds (param $0 i32) (param $1 i32) + (local $2 i64) global.get $~lib/memory/__stack_pointer - i32.const 52 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s if - i32.const 40624 - i32.const 40672 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.const 52 - memory.fill - i32.const 28 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $2 - i32.const 4640 - i32.const 28 - memory.copy - local.get $1 - local.get $2 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 - i32.const 48 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $3 - i32.const 5072 - i32.const 48 - memory.copy - local.get $1 - local.get $3 + local.get $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $1 - local.get $4 - local.get $0 - i32.store offset=8 local.get $0 - i32.load offset=8 - local.set $5 - local.get $4 + i64.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 - i32.load - local.tee $6 - local.get $1 - i32.const 3 - i32.lt_s - i32.sub - local.tee $7 - i32.const 0 - i32.lt_s - local.set $0 + local.get $2 local.get $1 - i32.const 1579 - i32.add - i32.load8_u - local.get $7 - i32.const 3 - i32.const 0 - local.get $0 - select - i32.sub - i32.const 4 - i32.div_s - local.get $7 - i32.const 99 - i32.const 0 - local.get $0 - select - i32.sub - i32.const 100 - i32.div_s - i32.sub - local.get $7 - i32.const 399 - i32.const 0 local.get $0 - select + call $~lib/date/Date#getUTCSeconds i32.sub - i32.const 400 - i32.div_s - i32.add - local.get $7 - i32.add - i32.add - local.get $5 - i32.add - i32.const 7 - i32.rem_s - local.set $0 - local.get $4 - local.get $6 - i32.const 31 - i32.shr_s - local.tee $4 - local.get $6 - i32.add - local.get $4 - i32.xor - i32.const 4 - call $~lib/date/stringify - local.tee $4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + i32.const 1000 + i32.mul + i64.extend_i32_s + i64.add + call $~lib/date/Date#setTime global.get $~lib/memory/__stack_pointer - local.get $3 - local.get $1 - i32.const 1 - i32.sub - i32.const 2 - i32.shl + i32.const 8 i32.add - i32.load - local.tee $1 - i32.store offset=16 + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/date/Date#setUTCMinutes (param $0 i32) (param $1 i32) + (local $2 i64) global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 7 - i32.const 0 - local.get $0 - i32.const 0 + i32.const 8468 i32.lt_s - select - local.get $0 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $0 - i32.store offset=20 + 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 - local.get $5 - i32.const 2 - call $~lib/date/stringify - local.tee $2 - i32.store offset=24 + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=28 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=36 - global.get $~lib/memory/__stack_pointer - i32.const 5200 - i32.const 5232 - local.get $6 - i32.const 0 - i32.lt_s - select - local.tee $3 - i32.store offset=40 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=44 - global.get $~lib/memory/__stack_pointer - i32.const 5152 - i32.store offset=8 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=48 - i32.const 5152 - local.get $0 - i32.store - i32.const 5152 + i32.store offset=4 local.get $0 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 5152 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=48 - i32.const 5156 - local.get $1 - i32.store - i32.const 5152 - local.get $1 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 5152 - i32.store offset=8 + i64.load offset=16 + local.set $2 global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 local.get $2 - i32.store offset=48 - i32.const 5160 - local.get $2 - i32.store - i32.const 5152 - local.get $2 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 5152 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=48 - i32.const 5164 - local.get $3 - i32.store - i32.const 5152 - local.get $3 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 5152 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=48 - i32.const 5168 - local.get $4 - i32.store - i32.const 5152 - local.get $4 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 5152 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3456 - i32.store offset=48 - i32.const 5152 - call $~lib/staticarray/StaticArray<~lib/string/String>#join - local.set $0 + local.get $1 + local.get $0 + call $~lib/date/Date#getUTCMinutes + i32.sub + i32.const 60000 + i32.mul + i64.extend_i32_s + i64.add + call $~lib/date/Date#setTime global.get $~lib/memory/__stack_pointer - i32.const 52 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/date/Date#toTimeString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) + (func $~lib/date/Date#setUTCHours (param $0 i32) (param $1 i32) + (local $2 i64) global.get $~lib/memory/__stack_pointer - i32.const 32 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s if - i32.const 40624 - i32.const 40672 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.const 32 - memory.fill - local.get $1 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 - call $~lib/date/Date#getUTCHours - i32.const 2 - call $~lib/date/stringify - local.tee $2 i32.store offset=4 - 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 $1 - i32.store offset=8 + i64.load offset=16 + local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer + i32.store offset=4 local.get $0 - call $~lib/date/Date#getUTCSeconds - i32.const 2 - call $~lib/date/stringify - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=24 + call $~lib/date/Date#getUTCHours + i32.sub + i32.const 3600000 + i32.mul + i64.extend_i32_s + i64.add + call $~lib/date/Date#setTime global.get $~lib/memory/__stack_pointer - i32.const 5456 - i32.store + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/date/Date#setUTCFullYear (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - i32.const 5456 - local.get $2 - i32.store - i32.const 5456 - local.get $2 - i32.const 1 - call $~lib/rt/itcms/__link + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5456 - i32.store + 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 - local.get $1 - i32.store offset=28 - i32.const 5464 - local.get $1 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - i32.const 5456 local.get $1 - i32.const 1 - call $~lib/rt/itcms/__link + local.get $0 + i32.load + i32.eq + if + 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 5456 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=28 - i32.const 5472 - local.get $0 - i32.store - i32.const 5456 + i32.store offset=4 local.get $0 - i32.const 1 - call $~lib/rt/itcms/__link + i32.load offset=4 + local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 5456 - i32.store + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 3456 - i32.store offset=28 - i32.const 5456 - call $~lib/staticarray/StaticArray<~lib/string/String>#join - local.set $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + local.get $2 + local.get $3 + local.get $0 + i64.load offset=16 + call $~lib/date/join + call $~lib/date/Date#setTime global.get $~lib/memory/__stack_pointer - i32.const 32 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/date/Date#toUTCString (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/string/String#substring@varargs (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 76 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s if - i32.const 40624 - i32.const 40672 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 - i32.const 76 - memory.fill - i32.const 28 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $2 - i32.const 5824 - i32.const 28 - memory.copy - local.get $1 - local.get $2 i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 2147483647 + local.set $2 + end global.get $~lib/memory/__stack_pointer - local.set $1 - i32.const 48 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $3 - i32.const 6256 - i32.const 48 - memory.copy - local.get $1 - local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $5 - local.get $4 - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $6 - local.get $4 local.get $0 - i32.store offset=8 + i32.store local.get $0 - i32.load - local.tee $7 - local.get $5 - i32.const 3 - i32.lt_s - i32.sub - local.tee $8 - i32.const 0 - i32.lt_s - local.set $1 - local.get $5 - i32.const 1579 - i32.add - i32.load8_u - local.get $8 - i32.const 3 - i32.const 0 - local.get $1 - select - i32.sub - i32.const 4 - i32.div_s - local.get $8 - i32.const 99 - i32.const 0 - local.get $1 - select - i32.sub - i32.const 100 - i32.div_s - i32.sub - local.get $8 - i32.const 399 - i32.const 0 local.get $1 - select - i32.sub - i32.const 400 - i32.div_s - i32.add - local.get $8 - i32.add - i32.add - local.get $6 - i32.add - i32.const 7 - i32.rem_s - local.set $1 - local.get $4 - local.get $7 - i32.const 31 - i32.shr_s - local.tee $4 - local.get $7 - i32.add - local.get $4 - i32.xor - i32.const 4 - call $~lib/date/stringify - local.tee $4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + local.get $2 + call $~lib/string/String#substring global.get $~lib/memory/__stack_pointer - local.get $3 - local.get $5 - i32.const 1 - i32.sub - i32.const 2 - i32.shl + i32.const 4 i32.add + global.set $~lib/memory/__stack_pointer + ) + (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.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1536 + 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 1536 + 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 7 - i32.const 0 + i32.const 23 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1536 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end local.get $1 - i32.const 0 - i32.lt_s - select + 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 - i32.load local.tee $1 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 2 - call $~lib/date/stringify - local.tee $2 - i32.store offset=24 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/date/Date#getUTCHours - i32.const 2 - call $~lib/date/stringify - local.tee $5 - i32.store offset=28 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/date/Date#getUTCMinutes - i32.const 2 - call $~lib/date/stringify - local.tee $6 - i32.store offset=32 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/date/Date#getUTCSeconds - i32.const 2 - call $~lib/date/stringify - local.tee $0 - i32.store offset=36 - global.get $~lib/memory/__stack_pointer + 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.store offset=40 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=44 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=48 - global.get $~lib/memory/__stack_pointer - i32.const 1616 - i32.const 3456 - local.get $7 - i32.const 0 - i32.lt_s - select - local.tee $7 - i32.store offset=52 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=56 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=60 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=64 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=68 - global.get $~lib/memory/__stack_pointer - i32.const 6368 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer + i32.eqz + if + i32.const 0 + i32.const 1536 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end local.get $1 - i32.store offset=72 - i32.const 6368 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1536 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end local.get $1 - i32.store - i32.const 6368 + 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 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 6368 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=72 - i32.const 6372 - local.get $2 - i32.store - i32.const 6368 - local.get $2 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 6368 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=72 - i32.const 6376 - local.get $3 - i32.store - i32.const 6368 + 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 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 6368 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=72 - i32.const 6380 - local.get $7 - i32.store - i32.const 6368 - local.get $7 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 6368 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=72 - i32.const 6384 - local.get $4 - i32.store - i32.const 6368 + 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 1536 + 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 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 6368 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=72 - i32.const 6392 - local.get $5 - i32.store - i32.const 6368 - local.get $5 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 6368 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=72 - i32.const 6400 - local.get $6 - i32.store - i32.const 6368 - local.get $6 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 6368 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=72 - i32.const 6408 - local.get $0 + local.get $2 + i32.const 2 + i32.or i32.store - i32.const 6368 - local.get $0 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 6368 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3456 - i32.store offset=72 - i32.const 6368 - call $~lib/staticarray/StaticArray<~lib/string/String>#join - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 76 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/string/String#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7828 - i32.lt_s + local.get $3 + i32.const -4 + i32.and + local.tee $2 + i32.const 12 + i32.lt_u if - i32.const 40624 - i32.const 40672 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1536 + i32.const 233 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store local.get $4 local.get $1 - i32.store - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $3 - i32.eqz + i32.const 4 + i32.add + local.get $2 + i32.add + i32.ne if - local.get $4 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer i32.const 0 - return + i32.const 1536 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $0 - i32.store - local.get $0 - i32.const 20 + local.get $4 + i32.const 4 i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $5 - i32.eqz - if - local.get $4 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const -1 - return - end - local.get $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - local.tee $2 - local.get $5 + local.get $1 + i32.store local.get $2 - local.get $5 - i32.lt_s - select - local.set $2 - local.get $5 - local.get $3 - i32.sub - local.set $4 - loop $for-loop|0 + i32.const 256 + i32.lt_u + if (result i32) local.get $2 - local.get $4 - i32.le_s - if - global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $0 - i32.store - local.get $5 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $2 - 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 - local.get $2 - return - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end + 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 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const -1 - ) - (func $~lib/string/String#substring (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7828 - i32.lt_s + 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 40624 - i32.const 40672 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1536 + i32.const 251 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - local.get $0 - i32.store - local.get $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - local.tee $4 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 $4 - i32.gt_s - select - local.tee $4 - local.get $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - local.tee $2 - local.get $1 - local.get $1 - local.get $2 - i32.gt_s - select - local.tee $2 - local.get $2 - local.get $4 - i32.gt_s - select - i32.const 1 + local.get $5 + i32.const 4 i32.shl - local.set $5 - local.get $4 - local.get $2 local.get $2 - local.get $4 - i32.lt_s - select - i32.const 1 + i32.add + i32.const 2 i32.shl - local.tee $2 - local.get $5 - i32.sub - local.tee $4 - i32.eqz + 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 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 3456 - return + local.get $1 + i32.store offset=4 end + local.get $0 local.get $5 - i32.eqz + 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.eq - i32.and - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=4 - local.get $1 + i32.or + i32.store local.get $0 local.get $5 + i32.const 2 + i32.shl i32.add - 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 + 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/string/String#substring@varargs (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/itcms/Object#makeGray (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 7828 - i32.lt_s + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq if - i32.const 40624 - i32.const 40672 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1264 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange + block $__inlined_func$~lib/rt/itcms/Object#unlink$391 + 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 41236 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1264 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable end + br $__inlined_func$~lib/rt/itcms/Object#unlink$391 + end + local.get $0 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1264 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort unreachable end - i32.const 2147483647 - local.set $2 + 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/memory/__stack_pointer + global.get $~lib/rt/itcms/toSpace + local.set $2 local.get $0 - i32.store + 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 8432 + i32.load + i32.gt_u + if + i32.const 1392 + i32.const 1456 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 8436 + 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 - call $~lib/string/String#substring - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer local.get $0 + i32.store offset=8 ) - (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (param $0 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 7828 - i32.lt_s - if - i32.const 40624 - i32.const 40672 + block $folding-inner1 + block $folding-inner0 + block $invalid + block $~lib/array/Array + block $~lib/array/Array<~lib/string/String> + block $~lib/staticarray/StaticArray<~lib/string/String> + block $~lib/date/Date + 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/date/Date $~lib/staticarray/StaticArray<~lib/string/String> $~lib/array/Array<~lib/string/String> $~lib/array/Array $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + return + end + local.get $0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.add + local.set $1 + loop $while-continue|0 + local.get $0 + local.get $1 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + 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 8468 + 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 $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|01 + 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|01 + end + end + br $folding-inner1 + 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 8468 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + br $folding-inner1 + end + unreachable + end + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 local.get $0 i32.store - local.get $1 local.get $0 - i32.load offset=8 - local.tee $2 + i32.load + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (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.gt_u - if - local.get $1 - i32.const 268435455 - i32.gt_u - if - i32.const 6784 - i32.const 6736 - 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$350 - 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$350 - 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 - 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 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 i32.add - global.set $~lib/memory/__stack_pointer + 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/array/Array<~lib/string/String>#push (param $0 i32) (param $1 i32) + (func $~lib/date/Date#toUTCString (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 76 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s if - i32.const 40624 - i32.const 40672 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 - i32.store + i32.const 76 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 28 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $2 + i32.const 5824 + i32.const 28 + memory.copy local.get $2 - local.get $0 i32.store - local.get $0 - local.get $0 - i32.load offset=12 - local.tee $2 - i32.const 1 - i32.add + global.get $~lib/memory/__stack_pointer + i32.const 48 + i32.const 5 + call $~lib/rt/itcms/__new local.tee $3 - call $~lib/array/ensureCapacity + i32.const 6256 + i32.const 48 + memory.copy + local.get $3 + i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=8 local.get $0 i32.load offset=4 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.get $1 - i32.store - local.get $0 - local.get $1 - i32.const 1 - call $~lib/rt/itcms/__link + local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=8 local.get $0 - local.get $3 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/string/String#split (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) + i32.load offset=8 + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 40 + local.get $0 + i32.store offset=8 + local.get $0 + i32.load + local.tee $6 + local.get $4 + i32.const 2 + i32.le_s i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner3 - block $folding-inner2 - block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 7828 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - local.get $2 - i32.eqz - br_if $folding-inner1 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 1 - call $~lib/rt/__newArray - local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.load offset=4 - 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 7828 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - local.get $2 - i32.store - local.get $2 - i32.load offset=12 - i32.eqz - if - local.get $2 - i32.const 1 - call $~lib/array/ensureCapacity - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - i32.const 1 - i32.store offset=12 - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - i32.load offset=4 - local.get $0 - i32.store - local.get $2 - local.get $0 - 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 - br $folding-inner2 - end - global.get $~lib/memory/__stack_pointer - local.tee $6 - local.get $0 - i32.store offset=8 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $7 - local.get $6 - local.get $1 - i32.store offset=8 - i32.const 2147483647 - local.get $2 - local.get $2 - i32.const 0 - i32.lt_s - select - local.set $2 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $5 - if - local.get $7 - i32.eqz - if - local.get $6 - i32.const 1 - call $~lib/rt/__newArray - local.tee $2 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 - i32.load offset=4 - i32.const 3456 - i32.store - br $folding-inner2 - end - else - local.get $7 - i32.eqz - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.get $7 - local.get $2 - local.get $2 - local.get $7 - i32.gt_s - select - local.tee $3 - call $~lib/rt/__newArray - local.tee $2 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $1 - loop $for-loop|0 - local.get $1 - local.get $3 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 2 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=16 - local.get $5 - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $4 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $5 - i32.store - local.get $2 - local.get $5 - i32.const 1 - call $~lib/rt/itcms/__link - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 - end - end - br $folding-inner2 - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - call $~lib/rt/__newArray - local.tee $8 - i32.store offset=24 - loop $while-continue|1 - global.get $~lib/memory/__stack_pointer - local.tee $6 - local.get $0 - i32.store offset=8 - local.get $6 - local.get $1 - i32.store offset=28 - local.get $0 - local.get $1 - local.get $3 - call $~lib/string/String#indexOf - local.tee $9 - i32.const -1 - i32.xor - if - local.get $9 - local.get $3 - i32.sub - local.tee $6 - i32.const 0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 1 - i32.shl - local.tee $10 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store offset=32 - local.get $6 - local.get $0 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.get $10 - memory.copy - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=28 - local.get $8 - local.get $6 - call $~lib/array/Array<~lib/string/String>#push - else - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $8 - i32.store offset=8 - local.get $3 - i32.const 3456 - i32.store offset=28 - local.get $8 - i32.const 3456 - call $~lib/array/Array<~lib/string/String>#push - end - local.get $4 - i32.const 1 - i32.add - local.tee $4 - local.get $2 - i32.eq - br_if $folding-inner3 - local.get $5 - local.get $9 - i32.add - local.set $3 - br $while-continue|1 - end - end - local.get $3 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $8 - i32.store offset=8 - local.get $1 - local.get $0 - i32.store offset=28 - local.get $8 - local.get $0 - call $~lib/array/Array<~lib/string/String>#push - br $folding-inner3 - end - local.get $7 - local.get $3 - i32.sub - local.tee $1 - i32.const 0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.shl - local.tee $1 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=36 - local.get $2 - local.get $0 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.get $1 - memory.copy - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $8 - local.get $2 - call $~lib/array/Array<~lib/string/String>#push - else - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $8 - i32.store offset=8 - local.get $0 - i32.const 3456 - i32.store offset=28 - local.get $8 - i32.const 3456 - call $~lib/array/Array<~lib/string/String>#push - end - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - return + local.tee $7 + i32.const 2 + i32.shr_s + local.tee $8 + i32.const 24 + i32.const 0 + local.get $8 + i32.const 0 + i32.lt_s + select + i32.sub + i32.const 25 + i32.div_s + local.set $1 + i32.const 7 + i32.const 0 + local.get $4 + i32.const 1579 + i32.add + i32.load8_u + local.get $7 + local.get $8 + local.get $1 + i32.sub + local.get $1 + i32.const 2 + i32.shr_s + i32.add + i32.add + i32.add + local.get $5 + i32.add + i32.const 7 + i32.rem_s + local.tee $1 + i32.const 0 + i32.lt_s + select + local.get $1 + i32.add + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 31 + i32.shr_s + local.tee $7 + local.get $6 + local.get $7 + i32.add + i32.xor + i32.const 4 + call $~lib/date/stringify + local.tee $7 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + local.get $4 + i32.const 1 + i32.sub + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $3 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $2 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $1 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 2 + call $~lib/date/stringify + local.tee $2 + i32.store offset=24 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + 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=28 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + 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=32 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/date/Date#getUTCSeconds + i32.const 2 + call $~lib/date/stringify + local.tee $0 + i32.store offset=36 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=40 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=44 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=48 + global.get $~lib/memory/__stack_pointer + i32.const 1616 + i32.const 3456 + local.get $6 + i32.const 0 + i32.lt_s + select + local.tee $6 + i32.store offset=52 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=56 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=60 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=64 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=68 + global.get $~lib/memory/__stack_pointer + i32.const 6368 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=72 + i32.const 6368 + local.get $1 + i32.store + i32.const 6368 + local.get $1 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 6368 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=72 + i32.const 6372 + local.get $2 + i32.store + i32.const 6368 + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 6368 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=72 + i32.const 6376 + local.get $3 + i32.store + i32.const 6368 + local.get $3 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 6368 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=72 + i32.const 6380 + local.get $6 + i32.store + i32.const 6368 + local.get $6 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 6368 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=72 + i32.const 6384 + local.get $7 + i32.store + i32.const 6368 + local.get $7 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 6368 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=72 + i32.const 6392 + local.get $4 + i32.store + i32.const 6368 + local.get $4 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 6368 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=72 + i32.const 6400 + local.get $5 + i32.store + i32.const 6368 + local.get $5 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 6368 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=72 + i32.const 6408 + local.get $0 + i32.store + i32.const 6368 + local.get $0 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 6368 + i32.store offset=8 + i32.const 6368 + call $~lib/staticarray/StaticArray<~lib/string/String>#join + global.get $~lib/memory/__stack_pointer + i32.const 76 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/date/Date#toDateString (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 52 + 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.const 52 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 28 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $3 + i32.const 4640 + i32.const 28 + memory.copy + local.get $3 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 48 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $4 + i32.const 5072 + i32.const 48 + memory.copy + local.get $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load + local.tee $0 + local.get $1 + i32.const 2 + i32.le_s + i32.sub + local.tee $6 + i32.const 2 + i32.shr_s + local.tee $7 + i32.const 24 + i32.const 0 + local.get $7 + i32.const 0 + i32.lt_s + select + i32.sub + i32.const 25 + i32.div_s + local.set $2 + i32.const 7 + i32.const 0 + local.get $1 + i32.const 1579 + i32.add + i32.load8_u + local.get $6 + local.get $7 + local.get $2 + i32.sub + local.get $2 + i32.const 2 + i32.shr_s + i32.add + i32.add + i32.add + local.get $5 + i32.add + i32.const 7 + i32.rem_s + local.tee $2 + i32.const 0 + i32.lt_s + select + local.get $2 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 31 + i32.shr_s + local.tee $6 + local.get $0 + local.get $6 + i32.add + i32.xor + i32.const 4 + call $~lib/date/stringify + local.tee $6 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + local.get $1 + i32.const 1 + i32.sub + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $1 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $2 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 2 + call $~lib/date/stringify + local.tee $3 + i32.store offset=24 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=28 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=32 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=36 + global.get $~lib/memory/__stack_pointer + i32.const 5200 + i32.const 5232 + local.get $0 + i32.const 0 + i32.lt_s + select + local.tee $0 + i32.store offset=40 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=44 + global.get $~lib/memory/__stack_pointer + i32.const 5152 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=48 + i32.const 5152 + local.get $2 + i32.store + i32.const 5152 + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 5152 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=48 + i32.const 5156 + local.get $1 + i32.store + i32.const 5152 + local.get $1 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 5152 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=48 + i32.const 5160 + local.get $3 + i32.store + i32.const 5152 + local.get $3 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 5152 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=48 + i32.const 5164 + local.get $0 + i32.store + i32.const 5152 + local.get $0 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 5152 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=48 + i32.const 5168 + local.get $6 + i32.store + i32.const 5152 + local.get $6 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 5152 + i32.store offset=8 + i32.const 5152 + call $~lib/staticarray/StaticArray<~lib/string/String>#join + global.get $~lib/memory/__stack_pointer + i32.const 52 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.set $1 + local.get $3 + i32.const 4 + i32.ge_u + if (result i32) + local.get $1 + i32.const 7 + i32.and + local.get $2 + i32.const 7 + i32.and + i32.or + else + i32.const 1 + end + i32.eqz + if + loop $do-loop|0 + local.get $1 + i64.load + local.get $2 + i64.load + i64.eq + if + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $3 + i32.const 4 + i32.sub + local.tee $3 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + loop $while-continue|1 + local.get $3 + local.tee $0 + i32.const 1 + i32.sub + local.set $3 + local.get $0 + if + local.get $1 + i32.load16_u + local.tee $0 + local.get $2 + i32.load16_u + local.tee $4 + i32.ne + if + local.get $0 + local.get $4 + i32.sub + return + end + local.get $1 + i32.const 2 + i32.add + local.set $1 + local.get $2 + i32.const 2 + i32.add + local.set $2 + br $while-continue|1 + end + end + i32.const 0 + ) + (func $~lib/string/String#split@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 + 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 + i64.const 0 + i64.store + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + br_table $0of2 $1of2 $2of2 $outOfRange end - i32.const 40624 - i32.const 40672 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort unreachable end i32.const 0 - call $~lib/rt/__newArray - local.set $2 + local.set $1 end - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return + i32.const 2147483647 + local.set $2 end global.get $~lib/memory/__stack_pointer - i32.const 40 + 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 + call $~lib/string/String#split + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 ) - (func $~lib/string/String#split@varargs (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (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 1536 + 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 1536 + 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/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 41248 + i32.const 0 + i32.store + i32.const 42816 + 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 41248 + 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 41248 + 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 41248 + i32.const 42820 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 41248 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) (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 7828 - i32.lt_s + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u if - i32.const 40624 - i32.const 40672 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1536 + i32.const 382 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $2of2 - block $1of2 - block $0of2 - block $outOfRange - global.get $~argumentsLength - br_table $0of2 $1of2 $2of2 $outOfRange - end - 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 1536 + 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 - i32.const 2147483647 - local.set $2 + else + local.get $0 + i32.const 1572 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1536 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end end - global.get $~lib/memory/__stack_pointer + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub local.tee $3 - local.get $0 - i32.store + 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/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1392 + call $~lib/rt/itcms/__visit + i32.const 6784 + call $~lib/rt/itcms/__visit + i32.const 6832 + call $~lib/rt/itcms/__visit + i32.const 1200 + call $~lib/rt/itcms/__visit + i32.const 1056 + 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 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/date/dateFromEpoch (param $0 i64) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 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 $2 + i32.const 146096 + i32.const 0 + local.get $2 + i32.const 0 + i32.lt_s + select + i32.sub + i32.const 146097 + i32.div_s + local.set $1 + local.get $2 + local.get $1 + 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 $2 + i32.const 2141 + i32.mul + i32.const 197913 + i32.add + local.tee $3 + i32.const 65535 + i32.and + i32.const 2141 + i32.div_u + i32.const 1 + i32.add + global.set $~lib/date/_day + local.get $3 + i32.const 16 + i32.shr_u + i32.const 12 + i32.const 0 + local.get $2 + i32.const 306 + i32.ge_u + local.tee $2 + select + i32.sub + global.set $~lib/date/_month local.get $0 + i64.const 32 + i64.shr_u + i32.wrap_i64 local.get $1 + i32.const 100 + i32.mul + i32.add local.get $2 - call $~lib/string/String#split - local.set $0 - 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>#get:length (param $0 i32) (result i32) + (func $~lib/date/Date#toTimeString (param $0 i32) (result i32) (local $1 i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 32 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s if - i32.const 40624 - i32.const 40672 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 + i32.const 32 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/date/Date#getUTCHours + i32.const 2 + call $~lib/date/stringify + local.tee $1 + i32.store offset=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 $0 + call $~lib/date/Date#getUTCMinutes + i32.const 2 + call $~lib/date/stringify + local.tee $2 + 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/date/Date#getUTCSeconds + i32.const 2 + call $~lib/date/stringify + local.tee $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.const 4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=24 + global.get $~lib/memory/__stack_pointer + i32.const 5456 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=28 + i32.const 5456 + local.get $1 + i32.store + i32.const 5456 + local.get $1 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 5456 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=28 + i32.const 5464 + local.get $2 + i32.store + i32.const 5456 + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 5456 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=28 + i32.const 5472 + local.get $0 + i32.store + i32.const 5456 + local.get $0 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 5456 + i32.store + i32.const 5456 + call $~lib/staticarray/StaticArray<~lib/string/String>#join + global.get $~lib/memory/__stack_pointer + i32.const 32 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/array/Array<~lib/string/String>#__get (param $0 i32) (param $1 i32) (result i32) + (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 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s if - i32.const 40624 - i32.const 40672 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 local.get $0 - i32.load offset=12 - i32.ge_u + i32.load offset=8 + local.tee $2 + i32.const 2 + i32.shr_u + i32.gt_u if - i32.const 1392 - i32.const 6736 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable + local.get $1 + i32.const 268435455 + i32.gt_u + if + i32.const 6784 + i32.const 6736 + 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$378 + 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$378 + 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 + 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 end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl + i32.const 4 i32.add - i32.load - local.tee $0 - i32.store offset=4 - local.get $0 - i32.eqz - if - i32.const 6832 - i32.const 6736 - i32.const 118 - i32.const 40 + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array<~lib/string/String>#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 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 8 + 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 - local.get $0 ) - (func $~lib/util/string/strtol (param $0 i32) (result i32) - (local $1 i32) + (func $~start + global.get $~started + if + return + end + i32.const 1 + global.set $~started + call $start:std/date + ) + (func $~lib/util/string/joinStringArray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s if - i32.const 40624 - i32.const 40672 + i32.const 41264 + i32.const 41312 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 + local.get $1 + i32.const 1 + i32.sub + local.tee $4 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 3456 + return + end + local.get $4 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.const 3456 + local.get $0 + select + return + end + loop $for-loop|0 + local.get $1 + local.get $3 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $5 + i32.store offset=4 + local.get $5 + if + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $2 + local.get $5 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.add + local.set $2 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + i32.const 0 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 3456 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3452 + i32.load + i32.const 1 + i32.shr_u local.tee $1 + local.get $4 + i32.mul + i32.add + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=12 i32.const 0 - i32.store - local.get $1 + local.set $2 + loop $for-loop|1 + local.get $2 + local.get $4 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $6 + i32.store offset=4 + local.get $6 + if + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + local.get $5 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.get $6 + local.get $6 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $6 + i32.const 1 + i32.shl + memory.copy + local.get $3 + local.get $6 + i32.add + local.set $3 + end + local.get $1 + if + local.get $5 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.const 3456 + local.get $1 + i32.const 1 + i32.shl + memory.copy + local.get $1 + local.get $3 + i32.add + local.set $3 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - block $folding-inner0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $0 + i32.store offset=4 + local.get $0 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $5 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.get $0 local.get $0 i32.const 20 i32.sub i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $1 - i32.eqz - br_if $folding-inner0 - local.get $0 - local.tee $2 - i32.load16_u - local.set $0 - loop $while-continue|0 - block $__inlined_func$~lib/util/string/isSpace$183 (result i32) - local.get $0 - i32.const 128 - i32.or - i32.const 160 - i32.eq - local.get $0 - i32.const 9 - i32.sub - i32.const 4 - i32.le_u - i32.or - local.get $0 - i32.const 5760 - i32.lt_u - br_if $__inlined_func$~lib/util/string/isSpace$183 - drop - i32.const 1 - local.get $0 - i32.const -8192 - i32.add - i32.const 10 - i32.le_u - br_if $__inlined_func$~lib/util/string/isSpace$183 - drop - block $break|0 - block $case0|0 + i32.const -2 + i32.and + memory.copy + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + ) + (func $~lib/string/String#split (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 36 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner4 + block $folding-inner3 + block $folding-inner1 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 8468 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 36 + memory.fill + local.get $2 + i32.eqz + br_if $folding-inner1 + local.get $1 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 1 + call $~lib/rt/__newArray + local.tee $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 8468 + 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 $2 + i32.load offset=12 + i32.eqz + if + local.get $2 + i32.const 1 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 1 + i32.store offset=12 + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.load offset=4 local.get $0 - i32.const 5760 - i32.eq - br_if $case0|0 + i32.store + local.get $2 local.get $0 - i32.const 8232 - i32.eq - br_if $case0|0 + 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 + br $folding-inner4 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 2147483647 + local.get $2 + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $8 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $4 + if + local.get $6 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 1 + call $~lib/rt/__newArray + local.tee $2 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.load offset=4 + i32.const 3456 + i32.store + br $folding-inner4 + end + else + local.get $6 + i32.eqz + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $6 + local.get $8 + local.get $6 + local.get $8 + i32.lt_s + select + local.tee $3 + call $~lib/rt/__newArray + local.tee $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $1 + loop $for-loop|0 + local.get $1 + local.get $3 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=12 + local.get $5 + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $5 + i32.store + local.get $2 + local.get $5 + i32.const 1 + call $~lib/rt/itcms/__link + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + br $folding-inner4 + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/rt/__newArray + local.tee $2 + i32.store offset=20 + loop $while-continue|1 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 8233 - i32.eq - br_if $case0|0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=24 local.get $0 - i32.const 8239 - i32.eq - br_if $case0|0 + local.get $1 + local.get $3 + call $~lib/string/String#indexOf + local.tee $9 + i32.const -1 + i32.xor + if + local.get $9 + local.get $3 + i32.sub + local.tee $7 + i32.const 0 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.const 1 + i32.shl + local.tee $10 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store offset=28 + local.get $7 + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.get $10 + memory.copy + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=24 + local.get $2 + local.get $7 + call $~lib/array/Array<~lib/string/String>#push + else + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3456 + call $~lib/array/Array<~lib/string/String>#push + end + local.get $5 + i32.const 1 + i32.add + local.tee $5 + local.get $8 + i32.eq + br_if $folding-inner3 + local.get $4 + local.get $9 + i32.add + local.set $3 + br $while-continue|1 + end + end + local.get $3 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 8287 - i32.eq - br_if $case0|0 + i32.store offset=24 + local.get $2 local.get $0 - i32.const 12288 - i32.eq - br_if $case0|0 + call $~lib/array/Array<~lib/string/String>#push + br $folding-inner3 + end + local.get $6 + local.get $3 + i32.sub + local.tee $1 + i32.const 0 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.shl + local.tee $1 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=32 + local.get $4 local.get $0 - i32.const 65279 - i32.eq - br_if $case0|0 - br $break|0 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.get $1 + memory.copy + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=24 + local.get $2 + local.get $4 + call $~lib/array/Array<~lib/string/String>#push + else + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3456 + call $~lib/array/Array<~lib/string/String>#push end - i32.const 1 - br $__inlined_func$~lib/util/string/isSpace$183 + br $folding-inner4 end - i32.const 0 - end - if - local.get $2 - i32.const 2 - i32.add - local.tee $2 - i32.load16_u - local.set $0 - local.get $1 + i32.const 41264 + i32.const 41312 i32.const 1 - i32.sub - local.set $1 - br $while-continue|0 + i32.const 1 + call $~lib/builtins/abort + unreachable end + i32.const 0 + call $~lib/rt/__newArray + local.set $2 + br $folding-inner4 end - i32.const 1 - local.set $4 - local.get $0 - i32.const 45 - i32.eq - local.tee $6 - local.get $0 - i32.const 43 - i32.eq - i32.or - if (result i32) - local.get $1 - i32.const 1 - i32.sub - local.tee $1 + global.get $~lib/memory/__stack_pointer + i32.const 36 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + global.get $~lib/memory/__stack_pointer + i32.const 36 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (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 - br_if $folding-inner0 - i32.const -1 - i32.const 1 - local.get $6 - select - local.set $4 - local.get $2 - i32.const 2 - i32.add - local.tee $2 - i32.load16_u - else - local.get $0 - end - i32.const 48 - i32.eq - local.get $1 - i32.const 2 - i32.gt_s - i32.and - if - block $break|1 - block $case2|1 - block $case1|1 + 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.load16_u offset=2 - i32.const 32 + i32.const -4 + i32.and + local.get $1 i32.or - local.tee $0 - i32.const 98 + 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 41236 + 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 - i32.const 111 - i32.eq - br_if $case1|1 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 local.get $0 - i32.const 120 - i32.eq - br_if $case2|1 - br $break|1 + i32.const 20 + i32.add + call $~lib/rt/__visit_members end - local.get $2 - i32.const 4 - i32.add - local.set $2 - local.get $1 - i32.const 2 - i32.sub - local.set $1 - i32.const 2 - local.set $3 - br $break|1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 end - local.get $2 - i32.const 4 - i32.add - local.set $2 - local.get $1 - i32.const 2 - i32.sub - local.set $1 - i32.const 8 - local.set $3 - br $break|1 end - local.get $2 - i32.const 4 - i32.add - local.set $2 + 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 - i32.sub - local.set $1 - i32.const 16 - local.set $3 + global.set $~lib/rt/itcms/state end + global.get $~lib/rt/itcms/visitCount + return end - local.get $3 - i32.const 10 - local.get $3 - select - local.set $6 - local.get $1 - i32.const 1 - i32.sub - local.set $7 - loop $while-continue|2 + 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 - local.tee $0 - i32.const 1 - i32.sub - local.set $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1264 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 + i32.const 41236 + i32.lt_u if - block $while-break|2 - local.get $2 - i32.load16_u - local.tee $3 - i32.const 48 - i32.sub - local.tee $0 - i32.const 10 - i32.ge_u + 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 41236 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz if - local.get $3 - i32.const 65 - i32.sub - i32.const 25 - i32.le_u - if (result i32) - local.get $3 - i32.const 55 - i32.sub - else - local.get $3 - i32.const 87 - i32.sub - local.get $3 - local.get $3 - i32.const 97 - i32.sub - i32.const 25 - i32.le_u - select - end - local.set $0 + call $~lib/rt/tlsf/initialize end + global.get $~lib/rt/tlsf/ROOT local.get $0 - local.get $6 - i32.ge_u + 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 - local.get $1 - local.get $7 - i32.eq - br_if $folding-inner0 - br $while-break|2 + i32.const 0 + i32.const 1536 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $5 - local.get $6 - i32.mul - local.get $0 - i32.add - local.set $5 local.get $2 - i32.const 2 - i32.add - local.set $2 - br $while-continue|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/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $5 - i32.mul - return - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $~lib/number/I32.parseInt (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7828 - i32.lt_s - if - i32.const 40624 - i32.const 40672 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + 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 - global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 - i32.store - local.get $1 - local.get $0 - i32.store - local.get $0 - call $~lib/util/string/strtol - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/date/Date.fromString (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) - (local $6 i32) - (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 28 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s if - i32.const 40624 - i32.const 40672 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.const 28 - memory.fill - local.get $1 - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.eqz - if - i32.const 1056 - i32.const 1104 - i32.const 50 - i32.const 33 + i32.const 41264 + i32.const 41312 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - local.get $0 - i32.store - local.get $1 - i32.const 3488 - i32.store offset=8 - local.get $0 - local.tee $1 - i32.const 3488 i32.const 0 - call $~lib/string/String#indexOf - local.tee $6 - i32.const -1 - i32.xor - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 0 - local.get $6 - call $~lib/string/String#substring - local.tee $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - i32.const 1 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $6 - i32.const 1 - i32.add - call $~lib/string/String#substring@varargs - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3520 - i32.store offset=8 - i32.const 1 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 3520 - call $~lib/string/String#split@varargs - local.tee $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + i32.store + block $__inlined_func$~lib/util/number/itoa32$73 local.get $0 - call $~lib/array/Array<~lib/string/String>#get:length - local.tee $6 - i32.const 1 - i32.le_s + i32.eqz if - i32.const 1056 - i32.const 1104 - i32.const 67 - i32.const 21 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1872 + local.set $2 + br $__inlined_func$~lib/util/number/itoa32$73 end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 i32.const 0 - call $~lib/array/Array<~lib/string/String>#__get - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/number/I32.parseInt - local.set $3 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.sub local.get $0 + local.get $0 + i32.const 31 + i32.shr_u i32.const 1 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - call $~lib/number/I32.parseInt - local.set $4 - local.get $6 - i32.const 3 - 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.const 2 - call $~lib/array/Array<~lib/string/String>#__get - local.tee $0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3552 - i32.store offset=8 + i32.shl + local.tee $3 + select + local.tee $0 + i32.const 100000 + i32.lt_u + if (result i32) local.get $0 - i32.const 3552 - i32.const 0 - call $~lib/string/String#indexOf - local.tee $6 - i32.const -1 - i32.xor - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.const 0 - local.get $6 - call $~lib/string/String#substring - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/number/I32.parseInt - local.set $2 - global.get $~lib/memory/__stack_pointer + i32.const 100 + i32.lt_u + if (result i32) local.get $0 - i32.store offset=8 + i32.const 10 + i32.ge_u i32.const 1 - global.set $~argumentsLength + i32.add + else local.get $0 - local.get $6 - i32.const 1 + i32.const 10000 + i32.ge_u + i32.const 3 i32.add - call $~lib/string/String#substring@varargs - local.set $0 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + 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 - call $~lib/number/I32.parseInt - local.set $5 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add else - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add local.get $0 - call $~lib/number/I32.parseInt - local.set $2 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.tee $1 + i32.const 1 + i32.shl + local.get $3 + i32.add + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + 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 - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store - local.get $0 - i32.const 1616 - i32.store offset=8 - i32.const 1 - global.set $~argumentsLength - local.get $0 - local.get $1 - i32.const 1616 - call $~lib/string/String#split@varargs - local.tee $0 - i32.store offset=24 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - 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 - i32.store - local.get $1 - call $~lib/number/I32.parseInt - local.set $7 - i32.const 1 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/array/Array<~lib/string/String>#get:length - local.tee $6 - i32.const 2 - i32.ge_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $0 - i32.const 1 - call $~lib/array/Array<~lib/string/String>#__get - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/number/I32.parseInt - local.set $1 - local.get $6 - i32.const 3 - i32.ge_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 + 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 - call $~lib/array/Array<~lib/string/String>#__get + i32.shl + i32.const 1884 + i32.add + i32.load + i32.store + local.get $0 + i32.const 100 + i32.div_u local.set $0 - global.get $~lib/memory/__stack_pointer + 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 - local.get $0 - call $~lib/number/I32.parseInt 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 - else - i32.const 1 + 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.set $0 - local.get $7 - local.get $1 - local.get $0 - local.get $3 - local.get $4 local.get $2 - local.get $5 - call $~lib/date/epochMillis - call $~lib/date/Date#constructor - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 28 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $start:std/date (local $0 i32) (local $1 i64) (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 408 + i32.const 456 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s if - i32.const 40624 - i32.const 40672 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -6539,7 +6819,7 @@ end global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 408 + i32.const 456 memory.fill block $folding-inner0 i32.const 1970 @@ -6734,7 +7014,7 @@ memory.size i32.const 16 i32.shl - i32.const 40596 + i32.const 41236 i32.sub i32.const 1 i32.shr_u @@ -6834,10 +7114,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=24 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -6853,10 +7132,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=28 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -6955,10 +7233,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=40 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -6974,10 +7251,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=44 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -7182,10 +7458,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=60 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -7220,10 +7495,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=64 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -7592,10 +7866,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=112 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -7761,10 +8034,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=132 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -7780,10 +8052,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=136 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -7852,215 +8123,584 @@ local.get $0 i32.store offset=8 local.get $0 - i32.const 20 - call $~lib/date/Date#setUTCDate + i32.const 20 + call $~lib/date/Date#setUTCDate + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=140 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i64.load offset=16 + i64.const 1363748399999 + i64.ne + if + i32.const 0 + i32.const 1152 + i32.const 155 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.const 1 + call $~lib/date/Date#setUTCDate + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=144 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i64.load offset=16 + i64.const 1362106799999 + i64.ne + if + i32.const 0 + i32.const 1152 + i32.const 157 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.const 1000 + call $~lib/date/Date#setUTCMilliseconds + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=148 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i64.load offset=16 + i64.const 1362106800000 + i64.ne + if + i32.const 0 + i32.const 1152 + i32.const 160 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.const 3600000 + call $~lib/date/Date#setUTCMilliseconds + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=152 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i64.load offset=16 + i64.const 1362110400000 + i64.ne + if + i32.const 0 + i32.const 1152 + i32.const 163 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.const 3600001 + call $~lib/date/Date#setUTCMilliseconds + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=156 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i64.load offset=16 + i64.const 1362114000001 + i64.ne + if + i32.const 0 + i32.const 1152 + i32.const 166 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.const 3600001 + call $~lib/date/Date#setUTCMilliseconds global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=140 + i32.store offset=160 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i64.load offset=16 - i64.const 1363748399999 + i64.const 1362117600001 i64.ne if i32.const 0 i32.const 1152 - i32.const 155 + i32.const 169 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + i64.const 123814991274 + call $~lib/date/Date#constructor + local.tee $0 + i32.store offset=104 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - i32.const 1 + i32.const -2208 call $~lib/date/Date#setUTCDate global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=144 + i32.store offset=164 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i64.load offset=16 - i64.const 1362106799999 + i64.const -67301808726 i64.ne if i32.const 0 i32.const 1152 - i32.const 157 + i32.const 173 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + i64.const 123814991274 + call $~lib/date/Date#constructor + local.tee $0 + i32.store offset=104 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - i32.const 1000 - call $~lib/date/Date#setUTCMilliseconds + i32.const 2208 + call $~lib/date/Date#setUTCDate global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=148 + i32.store offset=168 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i64.load offset=16 - i64.const 1362106800000 + i64.const 314240591274 i64.ne if i32.const 0 i32.const 1152 - i32.const 160 + i32.const 177 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + i64.const 1467763200000 + call $~lib/date/Date#constructor + local.tee $0 + i32.store offset=172 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - i32.const 3600000 - call $~lib/date/Date#setUTCMilliseconds + i32.load global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=152 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 + local.get $3 + i32.const 2 + i32.le_s + i32.sub + local.tee $2 + i32.const 2 + i32.shr_s + local.tee $4 + i32.const 24 + i32.const 0 + local.get $4 + i32.const 0 + i32.lt_s + select + i32.sub + i32.const 25 + i32.div_s + local.set $5 + i32.const 7 + i32.const 0 local.get $0 - i64.load offset=16 - i64.const 1362110400000 - i64.ne + i32.load offset=8 + local.get $3 + i32.const 1579 + i32.add + i32.load8_u + local.get $2 + local.get $4 + local.get $5 + i32.sub + local.get $5 + i32.const 2 + i32.shr_s + i32.add + i32.add + i32.add + i32.add + i32.const 7 + i32.rem_s + local.tee $0 + i32.const 0 + i32.lt_s + select + local.get $0 + i32.add + i32.const 3 + i32.ne if i32.const 0 i32.const 1152 - i32.const 163 + i32.const 187 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + i64.const 1467763199999 + call $~lib/date/Date#constructor + local.tee $0 + i32.store offset=176 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - i32.const 3600001 - call $~lib/date/Date#setUTCMilliseconds + i32.load global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=156 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 + local.get $3 + i32.const 2 + i32.le_s + i32.sub + local.tee $2 + i32.const 2 + i32.shr_s + local.tee $4 + i32.const 24 + i32.const 0 + local.get $4 + i32.const 0 + i32.lt_s + select + i32.sub + i32.const 25 + i32.div_s + local.set $5 + i32.const 7 + i32.const 0 local.get $0 - i64.load offset=16 - i64.const 1362114000001 - i64.ne + i32.load offset=8 + local.get $3 + i32.const 1579 + i32.add + i32.load8_u + local.get $2 + local.get $4 + local.get $5 + i32.sub + local.get $5 + i32.const 2 + i32.shr_s + i32.add + i32.add + i32.add + i32.add + i32.const 7 + i32.rem_s + local.tee $0 + i32.const 0 + i32.lt_s + select + local.get $0 + i32.add + i32.const 2 + i32.ne if i32.const 0 i32.const 1152 - i32.const 166 + i32.const 188 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + i64.const 1467849599999 + call $~lib/date/Date#constructor + local.tee $0 + i32.store offset=180 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - i32.const 3600001 - call $~lib/date/Date#setUTCMilliseconds + i32.load global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=160 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 + local.get $3 + i32.const 2 + i32.le_s + i32.sub + local.tee $2 + i32.const 2 + i32.shr_s + local.tee $4 + i32.const 24 + i32.const 0 + local.get $4 + i32.const 0 + i32.lt_s + select + i32.sub + i32.const 25 + i32.div_s + local.set $5 + i32.const 7 + i32.const 0 local.get $0 - i64.load offset=16 - i64.const 1362117600001 - i64.ne + i32.load offset=8 + local.get $3 + i32.const 1579 + i32.add + i32.load8_u + local.get $2 + local.get $4 + local.get $5 + i32.sub + local.get $5 + i32.const 2 + i32.shr_s + i32.add + i32.add + i32.add + i32.add + i32.const 7 + i32.rem_s + local.tee $0 + i32.const 0 + i32.lt_s + select + local.get $0 + i32.add + i32.const 3 + i32.ne if i32.const 0 i32.const 1152 - i32.const 169 + i32.const 189 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const 123814991274 + i64.const 1467849600000 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=104 + i32.store offset=184 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - i32.const -2208 - call $~lib/date/Date#setUTCDate + i32.load global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=164 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 + local.get $3 + i32.const 2 + i32.le_s + i32.sub + local.tee $2 + i32.const 2 + i32.shr_s + local.tee $4 + i32.const 24 + i32.const 0 + local.get $4 + i32.const 0 + i32.lt_s + select + i32.sub + i32.const 25 + i32.div_s + local.set $5 + i32.const 7 + i32.const 0 + local.get $0 + i32.load offset=8 + local.get $3 + i32.const 1579 + i32.add + i32.load8_u + local.get $2 + local.get $4 + local.get $5 + i32.sub + local.get $5 + i32.const 2 + i32.shr_s + i32.add + i32.add + i32.add + i32.add + i32.const 7 + i32.rem_s + local.tee $0 + i32.const 0 + i32.lt_s + select local.get $0 - i64.load offset=16 - i64.const -67301808726 - i64.ne + i32.add + i32.const 4 + i32.ne if i32.const 0 i32.const 1152 - i32.const 173 + i32.const 190 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const 123814991274 + i64.const 1468022400000 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=104 + i32.store offset=188 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - i32.const 2208 - call $~lib/date/Date#setUTCDate + i32.load global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=168 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 + local.get $3 + i32.const 2 + i32.le_s + i32.sub + local.tee $2 + i32.const 2 + i32.shr_s + local.tee $4 + i32.const 24 + i32.const 0 + local.get $4 + i32.const 0 + i32.lt_s + select + i32.sub + i32.const 25 + i32.div_s + local.set $5 + i32.const 7 + i32.const 0 local.get $0 - i64.load offset=16 - i64.const 314240591274 - i64.ne + i32.load offset=8 + local.get $3 + i32.const 1579 + i32.add + i32.load8_u + local.get $2 + local.get $4 + local.get $5 + i32.sub + local.get $5 + i32.const 2 + i32.shr_s + i32.add + i32.add + i32.add + i32.add + i32.const 7 + i32.rem_s + local.tee $0 + i32.const 0 + i32.lt_s + select + local.get $0 + i32.add + i32.const 6 + i32.ne if i32.const 0 i32.const 1152 - i32.const 177 + i32.const 192 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const 1467763200000 + i64.const 1468022399999 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=172 + i32.store offset=192 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -8070,49 +8710,40 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - i32.const 7 - i32.const 0 - local.get $0 - i32.load offset=8 - local.get $3 - i32.const 1579 - i32.add - i32.load8_u - local.get $2 local.get $3 - i32.const 3 - i32.lt_s + i32.const 2 + i32.le_s i32.sub - local.tee $0 - i32.const 3 + local.tee $2 + i32.const 2 + i32.shr_s + local.tee $4 + i32.const 24 i32.const 0 - local.get $0 + local.get $4 i32.const 0 i32.lt_s - local.tee $2 select i32.sub - i32.const 4 + i32.const 25 i32.div_s - local.get $0 - i32.const 99 + local.set $5 + i32.const 7 i32.const 0 - local.get $2 - select - i32.sub - i32.const 100 - i32.div_s - i32.sub local.get $0 - i32.const 399 - i32.const 0 + i32.load offset=8 + local.get $3 + i32.const 1579 + i32.add + i32.load8_u local.get $2 - select + local.get $4 + local.get $5 i32.sub - i32.const 400 - i32.div_s + local.get $5 + i32.const 2 + i32.shr_s i32.add - local.get $0 i32.add i32.add i32.add @@ -8124,27 +8755,26 @@ select local.get $0 i32.add - i32.const 3 + i32.const 5 i32.ne if i32.const 0 i32.const 1152 - i32.const 187 + i32.const 193 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const 1467763199999 + i64.const 1468108799999 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=176 + i32.store offset=196 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -8154,49 +8784,40 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - i32.const 7 - i32.const 0 - local.get $0 - i32.load offset=8 - local.get $3 - i32.const 1579 - i32.add - i32.load8_u - local.get $2 local.get $3 - i32.const 3 - i32.lt_s + i32.const 2 + i32.le_s i32.sub - local.tee $0 - i32.const 3 + local.tee $2 + i32.const 2 + i32.shr_s + local.tee $4 + i32.const 24 i32.const 0 - local.get $0 + local.get $4 i32.const 0 i32.lt_s - local.tee $2 select i32.sub - i32.const 4 + i32.const 25 i32.div_s - local.get $0 - i32.const 99 + local.set $5 + i32.const 7 i32.const 0 - local.get $2 - select - i32.sub - i32.const 100 - i32.div_s - i32.sub local.get $0 - i32.const 399 - i32.const 0 + i32.load offset=8 + local.get $3 + i32.const 1579 + i32.add + i32.load8_u local.get $2 - select + local.get $4 + local.get $5 i32.sub - i32.const 400 - i32.div_s + local.get $5 + i32.const 2 + i32.shr_s i32.add - local.get $0 i32.add i32.add i32.add @@ -8208,27 +8829,26 @@ select local.get $0 i32.add - i32.const 2 + i32.const 6 i32.ne if i32.const 0 i32.const 1152 - i32.const 188 + i32.const 194 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const 1467849599999 + i64.const 1468108800000 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=180 + i32.store offset=200 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -8238,49 +8858,40 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - i32.const 7 - i32.const 0 - local.get $0 - i32.load offset=8 - local.get $3 - i32.const 1579 - i32.add - i32.load8_u - local.get $2 local.get $3 - i32.const 3 - i32.lt_s + i32.const 2 + i32.le_s i32.sub - local.tee $0 - i32.const 3 + local.tee $2 + i32.const 2 + i32.shr_s + local.tee $4 + i32.const 24 i32.const 0 - local.get $0 + local.get $4 i32.const 0 i32.lt_s - local.tee $2 select i32.sub - i32.const 4 + i32.const 25 i32.div_s - local.get $0 - i32.const 99 + local.set $5 + i32.const 7 i32.const 0 - local.get $2 - select - i32.sub - i32.const 100 - i32.div_s - i32.sub local.get $0 - i32.const 399 - i32.const 0 + i32.load offset=8 + local.get $3 + i32.const 1579 + i32.add + i32.load8_u local.get $2 - select + local.get $4 + local.get $5 i32.sub - i32.const 400 - i32.div_s + local.get $5 + i32.const 2 + i32.shr_s i32.add - local.get $0 i32.add i32.add i32.add @@ -8292,27 +8903,24 @@ select local.get $0 i32.add - i32.const 3 - i32.ne if i32.const 0 i32.const 1152 - i32.const 189 + i32.const 195 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const 1467849600000 + i64.const -8640000000000000 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=184 + i32.store offset=204 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -8322,49 +8930,40 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - i32.const 7 - i32.const 0 - local.get $0 - i32.load offset=8 - local.get $3 - i32.const 1579 - i32.add - i32.load8_u - local.get $2 local.get $3 - i32.const 3 - i32.lt_s + i32.const 2 + i32.le_s i32.sub - local.tee $0 - i32.const 3 + local.tee $2 + i32.const 2 + i32.shr_s + local.tee $4 + i32.const 24 i32.const 0 - local.get $0 + local.get $4 i32.const 0 i32.lt_s - local.tee $2 select i32.sub - i32.const 4 + i32.const 25 i32.div_s - local.get $0 - i32.const 99 + local.set $5 + i32.const 7 i32.const 0 - local.get $2 - select - i32.sub - i32.const 100 - i32.div_s - i32.sub local.get $0 - i32.const 399 - i32.const 0 + i32.load offset=8 + local.get $3 + i32.const 1579 + i32.add + i32.load8_u local.get $2 - select + local.get $4 + local.get $5 i32.sub - i32.const 400 - i32.div_s + local.get $5 + i32.const 2 + i32.shr_s i32.add - local.get $0 i32.add i32.add i32.add @@ -8376,27 +8975,26 @@ select local.get $0 i32.add - i32.const 4 + i32.const 2 i32.ne if i32.const 0 i32.const 1152 - i32.const 190 + i32.const 197 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const 1468022400000 + i64.const -62183116800000 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=188 + i32.store offset=208 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -8406,49 +9004,40 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - i32.const 7 - i32.const 0 - local.get $0 - i32.load offset=8 - local.get $3 - i32.const 1579 - i32.add - i32.load8_u - local.get $2 local.get $3 - i32.const 3 - i32.lt_s + i32.const 2 + i32.le_s i32.sub - local.tee $0 - i32.const 3 + local.tee $2 + i32.const 2 + i32.shr_s + local.tee $4 + i32.const 24 i32.const 0 - local.get $0 + local.get $4 i32.const 0 i32.lt_s - local.tee $2 select i32.sub - i32.const 4 + i32.const 25 i32.div_s - local.get $0 - i32.const 99 + local.set $5 + i32.const 7 i32.const 0 - local.get $2 - select - i32.sub - i32.const 100 - i32.div_s - i32.sub local.get $0 - i32.const 399 - i32.const 0 + i32.load offset=8 + local.get $3 + i32.const 1579 + i32.add + i32.load8_u local.get $2 - select + local.get $4 + local.get $5 i32.sub - i32.const 400 - i32.div_s + local.get $5 + i32.const 2 + i32.shr_s i32.add - local.get $0 i32.add i32.add i32.add @@ -8460,27 +9049,26 @@ select local.get $0 i32.add - i32.const 6 + i32.const 4 i32.ne if i32.const 0 i32.const 1152 - i32.const 192 + i32.const 198 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const 1468022399999 + i64.const 0 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=192 + i32.store offset=212 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -8490,49 +9078,40 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - i32.const 7 - i32.const 0 - local.get $0 - i32.load offset=8 - local.get $3 - i32.const 1579 - i32.add - i32.load8_u - local.get $2 local.get $3 - i32.const 3 - i32.lt_s + i32.const 2 + i32.le_s i32.sub - local.tee $0 - i32.const 3 + local.tee $2 + i32.const 2 + i32.shr_s + local.tee $4 + i32.const 24 i32.const 0 - local.get $0 + local.get $4 i32.const 0 i32.lt_s - local.tee $2 select i32.sub - i32.const 4 + i32.const 25 i32.div_s - local.get $0 - i32.const 99 + local.set $5 + i32.const 7 i32.const 0 - local.get $2 - select - i32.sub - i32.const 100 - i32.div_s - i32.sub local.get $0 - i32.const 399 - i32.const 0 + i32.load offset=8 + local.get $3 + i32.const 1579 + i32.add + i32.load8_u local.get $2 - select + local.get $4 + local.get $5 i32.sub - i32.const 400 - i32.div_s + local.get $5 + i32.const 2 + i32.shr_s i32.add - local.get $0 i32.add i32.add i32.add @@ -8544,27 +9123,26 @@ select local.get $0 i32.add - i32.const 5 + i32.const 4 i32.ne if i32.const 0 i32.const 1152 - i32.const 193 + i32.const 199 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const 1468108799999 + i64.const 1709164800000 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=196 + i32.store offset=216 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -8574,49 +9152,40 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - i32.const 7 - i32.const 0 - local.get $0 - i32.load offset=8 - local.get $3 - i32.const 1579 - i32.add - i32.load8_u - local.get $2 local.get $3 - i32.const 3 - i32.lt_s + i32.const 2 + i32.le_s i32.sub - local.tee $0 - i32.const 3 + local.tee $2 + i32.const 2 + i32.shr_s + local.tee $4 + i32.const 24 i32.const 0 - local.get $0 + local.get $4 i32.const 0 i32.lt_s - local.tee $2 select i32.sub - i32.const 4 + i32.const 25 i32.div_s - local.get $0 - i32.const 99 + local.set $5 + i32.const 7 i32.const 0 - local.get $2 - select - i32.sub - i32.const 100 - i32.div_s - i32.sub local.get $0 - i32.const 399 - i32.const 0 + i32.load offset=8 + local.get $3 + i32.const 1579 + i32.add + i32.load8_u local.get $2 - select + local.get $4 + local.get $5 i32.sub - i32.const 400 - i32.div_s + local.get $5 + i32.const 2 + i32.shr_s i32.add - local.get $0 i32.add i32.add i32.add @@ -8628,27 +9197,26 @@ select local.get $0 i32.add - i32.const 6 + i32.const 4 i32.ne if i32.const 0 i32.const 1152 - i32.const 194 + i32.const 200 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const 1468108800000 + i64.const 8640000000000000 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=200 + i32.store offset=220 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -8658,49 +9226,40 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - i32.const 7 - i32.const 0 - local.get $0 - i32.load offset=8 local.get $3 - i32.const 1579 - i32.add - i32.load8_u - local.get $2 - local.get $3 - i32.const 3 - i32.lt_s + i32.const 2 + i32.le_s i32.sub - local.tee $0 - i32.const 3 + local.tee $2 + i32.const 2 + i32.shr_s + local.tee $4 + i32.const 24 i32.const 0 - local.get $0 + local.get $4 i32.const 0 i32.lt_s - local.tee $2 select i32.sub - i32.const 4 + i32.const 25 i32.div_s - local.get $0 - i32.const 99 + local.set $5 + i32.const 7 i32.const 0 - local.get $2 - select - i32.sub - i32.const 100 - i32.div_s - i32.sub local.get $0 - i32.const 399 - i32.const 0 + i32.load offset=8 + local.get $3 + i32.const 1579 + i32.add + i32.load8_u local.get $2 - select + local.get $4 + local.get $5 i32.sub - i32.const 400 - i32.div_s + local.get $5 + i32.const 2 + i32.shr_s i32.add - local.get $0 i32.add i32.add i32.add @@ -8712,10 +9271,12 @@ select local.get $0 i32.add + i32.const 6 + i32.ne if i32.const 0 i32.const 1152 - i32.const 195 + i32.const 201 i32.const 3 call $~lib/builtins/abort unreachable @@ -8724,10 +9285,10 @@ i64.const 7899943856218720 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=204 + i32.store offset=224 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=208 + i32.store offset=228 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -8738,7 +9299,7 @@ if i32.const 0 i32.const 1152 - i32.const 201 + i32.const 207 i32.const 3 call $~lib/builtins/abort unreachable @@ -8753,7 +9314,7 @@ call $~lib/date/Date#setUTCMonth@varargs global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=212 + i32.store offset=232 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -8764,7 +9325,7 @@ if i32.const 0 i32.const 1152 - i32.const 203 + i32.const 209 i32.const 3 call $~lib/builtins/abort unreachable @@ -8779,7 +9340,7 @@ call $~lib/date/Date#setUTCMonth@varargs global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=216 + i32.store offset=236 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -8790,16 +9351,15 @@ if i32.const 0 i32.const 1152 - i32.const 205 + i32.const 211 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 - i32.store offset=220 - local.get $2 + i32.store offset=240 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -8809,7 +9369,7 @@ if i32.const 0 i32.const 1152 - i32.const 206 + i32.const 212 i32.const 3 call $~lib/builtins/abort unreachable @@ -8824,7 +9384,7 @@ call $~lib/date/Date#setUTCMonth@varargs global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=224 + i32.store offset=244 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -8835,7 +9395,7 @@ if i32.const 0 i32.const 1152 - i32.const 209 + i32.const 215 i32.const 3 call $~lib/builtins/abort unreachable @@ -8850,7 +9410,7 @@ call $~lib/date/Date#setUTCMonth@varargs global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=228 + i32.store offset=248 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -8861,7 +9421,7 @@ if i32.const 0 i32.const 1152 - i32.const 211 + i32.const 217 i32.const 3 call $~lib/builtins/abort unreachable @@ -8876,7 +9436,7 @@ call $~lib/date/Date#setUTCMonth@varargs global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=232 + i32.store offset=252 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -8887,16 +9447,15 @@ if i32.const 0 i32.const 1152 - i32.const 215 + i32.const 221 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 - i32.store offset=236 - local.get $2 + i32.store offset=256 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -8906,7 +9465,7 @@ if i32.const 0 i32.const 1152 - i32.const 216 + i32.const 222 i32.const 3 call $~lib/builtins/abort unreachable @@ -8921,7 +9480,7 @@ call $~lib/date/Date#setUTCMonth@varargs global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=240 + i32.store offset=260 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -8932,16 +9491,15 @@ if i32.const 0 i32.const 1152 - i32.const 218 + i32.const 224 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 - i32.store offset=244 - local.get $2 + i32.store offset=264 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -8951,7 +9509,7 @@ if i32.const 0 i32.const 1152 - i32.const 219 + i32.const 225 i32.const 3 call $~lib/builtins/abort unreachable @@ -8960,10 +9518,10 @@ i64.const 7941202527925698 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=248 + i32.store offset=268 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=252 + i32.store offset=272 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -8974,7 +9532,7 @@ if i32.const 0 i32.const 1152 - i32.const 225 + i32.const 231 i32.const 3 call $~lib/builtins/abort unreachable @@ -8987,7 +9545,7 @@ call $~lib/date/Date#setUTCFullYear global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=256 + i32.store offset=276 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -8998,7 +9556,7 @@ if i32.const 0 i32.const 1152 - i32.const 227 + i32.const 233 i32.const 3 call $~lib/builtins/abort unreachable @@ -9011,7 +9569,7 @@ call $~lib/date/Date#setUTCFullYear global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=260 + i32.store offset=280 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -9022,7 +9580,7 @@ if i32.const 0 i32.const 1152 - i32.const 229 + i32.const 235 i32.const 3 call $~lib/builtins/abort unreachable @@ -9035,7 +9593,7 @@ call $~lib/date/Date#setUTCFullYear global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=264 + i32.store offset=284 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -9046,7 +9604,7 @@ if i32.const 0 i32.const 1152 - i32.const 231 + i32.const 237 i32.const 3 call $~lib/builtins/abort unreachable @@ -9055,19 +9613,16 @@ i64.const -62167219200000 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=268 + i32.store offset=288 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=276 + i32.store offset=292 local.get $0 call $~lib/date/Date#toISOString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3696 - i32.store offset=272 local.get $0 i32.const 3696 call $~lib/string/String.__eq @@ -9075,595 +9630,711 @@ if i32.const 0 i32.const 1152 - i32.const 237 + i32.const 243 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const -62167219200001 + call $~lib/date/Date#constructor + local.tee $0 + i32.store offset=288 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=292 + local.get $0 + call $~lib/date/Date#toISOString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.const 3776 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 245 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const -62127219200000 + call $~lib/date/Date#constructor + local.tee $0 + i32.store offset=288 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=292 + local.get $0 + call $~lib/date/Date#toISOString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.const 3856 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 247 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 1231231231020 + call $~lib/date/Date#constructor + local.tee $0 + i32.store offset=288 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=292 + local.get $0 + call $~lib/date/Date#toISOString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.const 3936 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 249 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 1231231231456 + call $~lib/date/Date#constructor + local.tee $0 + i32.store offset=288 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=292 + local.get $0 + call $~lib/date/Date#toISOString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.const 4016 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 251 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 322331231231020 + call $~lib/date/Date#constructor + local.tee $0 + i32.store offset=288 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=292 + local.get $0 + call $~lib/date/Date#toISOString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.const 4096 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 253 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 253402300799999 + call $~lib/date/Date#constructor + local.tee $0 + i32.store offset=288 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=292 + local.get $0 + call $~lib/date/Date#toISOString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.const 4176 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 255 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 253402300800000 + call $~lib/date/Date#constructor + local.tee $0 + i32.store offset=288 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=292 + local.get $0 + call $~lib/date/Date#toISOString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.const 4256 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 257 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const -62847038769226 + call $~lib/date/Date#constructor + local.tee $0 + i32.store offset=288 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=292 + local.get $0 + call $~lib/date/Date#toISOString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.const 4336 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 259 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const -62167219200001 + i64.const -61536067200000 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=268 + i32.store offset=296 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=276 + i32.store offset=292 local.get $0 - call $~lib/date/Date#toISOString + call $~lib/date/Date#toDateString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3776 - i32.store offset=272 local.get $0 - i32.const 3776 + i32.const 5264 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1152 - i32.const 239 + i32.const 265 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const -62127219200000 + i64.const 1580601600000 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=268 + i32.store offset=296 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=276 + i32.store offset=292 local.get $0 - call $~lib/date/Date#toISOString + call $~lib/date/Date#toDateString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3856 - i32.store offset=272 local.get $0 - i32.const 3856 + i32.const 5328 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1152 - i32.const 241 + i32.const 267 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const 1231231231020 + i64.const -62183116800000 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=268 + i32.store offset=296 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=276 + i32.store offset=292 local.get $0 - call $~lib/date/Date#toISOString + call $~lib/date/Date#toDateString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3936 - i32.store offset=272 local.get $0 - i32.const 3936 + i32.const 5392 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1152 - i32.const 243 + i32.const 270 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const 1231231231456 + i64.const -61536067200000 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=268 + i32.store offset=300 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=276 + i32.store offset=292 local.get $0 - call $~lib/date/Date#toISOString + call $~lib/date/Date#toTimeString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 4016 - i32.store offset=272 local.get $0 - i32.const 4016 + i32.const 5504 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1152 - i32.const 245 + i32.const 276 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const 322331231231020 + i64.const 253402300799999 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=268 + i32.store offset=300 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=276 + i32.store offset=292 local.get $0 - call $~lib/date/Date#toISOString + call $~lib/date/Date#toTimeString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 4096 - i32.store offset=272 local.get $0 - i32.const 4096 + i32.const 5552 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1152 - i32.const 247 + i32.const 279 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const 253402300799999 + i64.const -61536067200000 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=268 + i32.store offset=304 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=276 + i32.store offset=292 local.get $0 - call $~lib/date/Date#toISOString + call $~lib/date/Date#toUTCString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 4176 - i32.store offset=272 local.get $0 - i32.const 4176 + i32.const 6448 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1152 - i32.const 249 + i32.const 285 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const 253402300800000 + i64.const 1580741613467 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=268 + i32.store offset=304 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=276 + i32.store offset=292 local.get $0 - call $~lib/date/Date#toISOString + call $~lib/date/Date#toUTCString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 4256 - i32.store offset=272 local.get $0 - i32.const 4256 + i32.const 6528 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1152 - i32.const 251 + i32.const 287 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const -62847038769226 + i64.const -62183116800000 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=268 + i32.store offset=304 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=276 + i32.store offset=292 local.get $0 - call $~lib/date/Date#toISOString + call $~lib/date/Date#toUTCString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 4336 - i32.store offset=272 local.get $0 - i32.const 4336 + i32.const 6608 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1152 - i32.const 253 + i32.const 290 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const -61536067200000 - call $~lib/date/Date#constructor + i32.const 6688 + call $~lib/date/Date.fromString local.tee $0 - i32.store offset=280 + i32.store offset=308 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=276 - local.get $0 - call $~lib/date/Date#toDateString - local.set $0 + i32.store offset=312 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 5264 - i32.store offset=272 local.get $0 - i32.const 5264 - call $~lib/string/String.__eq - i32.eqz + i64.load offset=16 + i64.const 192067200000 + i64.ne if i32.const 0 i32.const 1152 - i32.const 259 + i32.const 297 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const 1580601600000 - call $~lib/date/Date#constructor + i32.const 6960 + call $~lib/date/Date.fromString local.tee $0 - i32.store offset=280 + i32.store offset=308 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=276 - local.get $0 - call $~lib/date/Date#toDateString - local.set $0 + i32.store offset=316 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 5328 - i32.store offset=272 local.get $0 - i32.const 5328 - call $~lib/string/String.__eq - i32.eqz + i64.load offset=16 + i64.const 192067200000 + i64.ne if i32.const 0 i32.const 1152 - i32.const 261 + i32.const 299 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const -62183116800000 - call $~lib/date/Date#constructor + i32.const 7008 + call $~lib/date/Date.fromString local.tee $0 - i32.store offset=280 + i32.store offset=308 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=276 - local.get $0 - call $~lib/date/Date#toDateString - local.set $0 + i32.store offset=320 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 5392 - i32.store offset=272 local.get $0 - i32.const 5392 - call $~lib/string/String.__eq - i32.eqz + i64.load offset=16 + i64.const 11860387200000 + i64.ne if i32.const 0 i32.const 1152 - i32.const 264 + i32.const 301 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const -61536067200000 - call $~lib/date/Date#constructor + i32.const 7056 + call $~lib/date/Date.fromString local.tee $0 - i32.store offset=284 + i32.store offset=308 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=276 - local.get $0 - call $~lib/date/Date#toTimeString - local.set $0 + i32.store offset=324 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 5504 - i32.store offset=272 local.get $0 - i32.const 5504 - call $~lib/string/String.__eq - i32.eqz + i64.load offset=16 + i64.const 192112496000 + i64.ne if i32.const 0 i32.const 1152 - i32.const 270 + i32.const 305 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const 253402300799999 - call $~lib/date/Date#constructor + i32.const 7120 + call $~lib/date/Date.fromString local.tee $0 - i32.store offset=284 + i32.store offset=308 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=276 - local.get $0 - call $~lib/date/Date#toTimeString - local.set $0 + i32.store offset=328 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 5552 - i32.store offset=272 local.get $0 - i32.const 5552 - call $~lib/string/String.__eq - i32.eqz + i64.load offset=16 + i64.const 192112496456 + i64.ne if i32.const 0 i32.const 1152 - i32.const 273 + i32.const 309 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const -61536067200000 - call $~lib/date/Date#constructor + i32.const 7200 + call $~lib/date/Date.fromString local.tee $0 - i32.store offset=288 + i32.store offset=308 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=276 - local.get $0 - call $~lib/date/Date#toUTCString - local.set $0 + i32.store offset=332 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 6448 - i32.store offset=272 local.get $0 - i32.const 6448 - call $~lib/string/String.__eq - i32.eqz + i64.load offset=16 + i64.const 192112496456 + i64.ne if i32.const 0 i32.const 1152 - i32.const 279 + i32.const 313 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const 1580741613467 - call $~lib/date/Date#constructor + i32.const 7280 + call $~lib/date/Date.fromString local.tee $0 - i32.store offset=288 + i32.store offset=308 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=276 - local.get $0 - call $~lib/date/Date#toUTCString - local.set $0 + i32.store offset=336 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 6528 - i32.store offset=272 - local.get $0 - i32.const 6528 - call $~lib/string/String.__eq - i32.eqz + local.get $0 + i64.load offset=16 + i64.const 192141296456 + i64.ne if i32.const 0 i32.const 1152 - i32.const 281 + i32.const 317 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const -62183116800000 - call $~lib/date/Date#constructor + i32.const 7360 + call $~lib/date/Date.fromString local.tee $0 - i32.store offset=288 + i32.store offset=308 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=276 - local.get $0 - call $~lib/date/Date#toUTCString - local.set $0 + i32.store offset=340 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 6608 - i32.store offset=272 local.get $0 - i32.const 6608 - call $~lib/string/String.__eq - i32.eqz + i64.load offset=16 + i64.const 192092696456 + i64.ne if i32.const 0 i32.const 1152 - i32.const 284 + i32.const 321 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 6688 - i32.store offset=8 - local.get $0 - i32.const 6688 + i32.const 7440 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=292 + i32.store offset=308 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=296 + i32.store offset=344 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i64.load offset=16 - i64.const 192067200000 + i64.const 192112496450 i64.ne if i32.const 0 i32.const 1152 - i32.const 291 + i32.const 325 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 6960 - i32.store offset=8 - local.get $0 - i32.const 6960 + i32.const 7504 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=292 + i32.store offset=308 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=300 + i32.store offset=348 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i64.load offset=16 - i64.const 192067200000 + i64.const 192112496450 i64.ne if i32.const 0 i32.const 1152 - i32.const 293 + i32.const 329 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 7008 - i32.store offset=8 - local.get $0 - i32.const 7008 + i32.const 7584 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=292 + i32.store offset=308 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=304 + i32.store offset=352 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i64.load offset=16 - i64.const 11860387200000 + i64.const 192112496450 i64.ne if i32.const 0 i32.const 1152 - i32.const 295 + i32.const 333 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 7056 - i32.store offset=8 - local.get $0 - i32.const 7056 + i32.const 7664 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=292 + i32.store offset=308 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=308 + i32.store offset=356 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i64.load offset=16 - i64.const 192112496000 + i64.const 192112496456 i64.ne if i32.const 0 i32.const 1152 - i32.const 299 + i32.const 337 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 7120 - i32.store offset=8 - local.get $0 - i32.const 7120 + i32.const 7744 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=292 + i32.store offset=308 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=312 + i32.store offset=360 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -9674,23 +10345,19 @@ if i32.const 0 i32.const 1152 - i32.const 303 + i32.const 341 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 7200 - i32.store offset=8 - local.get $0 - i32.const 7200 + i32.const 7824 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=292 + i32.store offset=308 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=316 + i32.store offset=364 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -9701,23 +10368,19 @@ if i32.const 0 i32.const 1152 - i32.const 307 + i32.const 345 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 7280 - i32.store offset=8 - local.get $0 - i32.const 7280 + i32.const 7920 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=292 + i32.store offset=308 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=320 + i32.store offset=368 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -9728,23 +10391,19 @@ if i32.const 0 i32.const 1152 - i32.const 310 + i32.const 348 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 7312 - i32.store offset=8 - local.get $0 - i32.const 7312 + i32.const 7952 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=292 + i32.store offset=308 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=324 + i32.store offset=372 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -9755,23 +10414,19 @@ if i32.const 0 i32.const 1152 - i32.const 313 + i32.const 351 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 7344 - i32.store offset=8 - local.get $0 - i32.const 7344 + i32.const 7984 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=292 + i32.store offset=308 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=328 + i32.store offset=376 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -9782,23 +10437,19 @@ if i32.const 0 i32.const 1152 - i32.const 316 + i32.const 354 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 7376 - i32.store offset=8 - local.get $0 - i32.const 7376 + i32.const 8016 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=292 + i32.store offset=308 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=332 + i32.store offset=380 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -9809,23 +10460,19 @@ if i32.const 0 i32.const 1152 - i32.const 319 + i32.const 357 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 6688 - i32.store offset=8 - local.get $0 i32.const 6688 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=292 + i32.store offset=308 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=336 + i32.store offset=384 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -9836,23 +10483,19 @@ if i32.const 0 i32.const 1152 - i32.const 322 + i32.const 360 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 7424 - i32.store offset=8 - local.get $0 - i32.const 7424 + i32.const 8064 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=292 + i32.store offset=308 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=340 + i32.store offset=388 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -9863,23 +10506,19 @@ if i32.const 0 i32.const 1152 - i32.const 325 + i32.const 363 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 7056 - i32.store offset=8 - local.get $0 i32.const 7056 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=292 + i32.store offset=308 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=344 + i32.store offset=392 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -9890,7 +10529,7 @@ if i32.const 0 i32.const 1152 - i32.const 328 + i32.const 366 i32.const 3 call $~lib/builtins/abort unreachable @@ -9899,15 +10538,15 @@ i64.const -8640000000000000 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=348 + i32.store offset=396 global.get $~lib/memory/__stack_pointer i64.const 8640000000000000 call $~lib/date/Date#constructor local.tee $2 - i32.store offset=352 + i32.store offset=400 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=356 + i32.store offset=404 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -9918,16 +10557,15 @@ if i32.const 0 i32.const 1152 - i32.const 346 + i32.const 384 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $2 - i32.store offset=360 - local.get $3 + i32.store offset=408 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=8 local.get $2 @@ -9937,16 +10575,15 @@ if i32.const 0 i32.const 1152 - i32.const 347 + i32.const 385 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 - i32.store offset=364 - local.get $3 + i32.store offset=412 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -9956,16 +10593,15 @@ if i32.const 0 i32.const 1152 - i32.const 349 + i32.const 387 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $2 - i32.store offset=368 - local.get $3 + i32.store offset=416 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=8 local.get $2 @@ -9975,16 +10611,15 @@ if i32.const 0 i32.const 1152 - i32.const 350 + i32.const 388 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 - i32.store offset=372 - local.get $3 + i32.store offset=420 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -9994,16 +10629,15 @@ if i32.const 0 i32.const 1152 - i32.const 352 + i32.const 390 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $2 - i32.store offset=376 - local.get $3 + i32.store offset=424 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=8 local.get $2 @@ -10013,16 +10647,15 @@ if i32.const 0 i32.const 1152 - i32.const 353 + i32.const 391 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 - i32.store offset=380 - local.get $3 + i32.store offset=428 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -10032,16 +10665,15 @@ if i32.const 0 i32.const 1152 - i32.const 355 + i32.const 393 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $2 - i32.store offset=384 - local.get $3 + i32.store offset=432 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=8 local.get $2 @@ -10051,55 +10683,49 @@ if i32.const 0 i32.const 1152 - i32.const 356 + i32.const 394 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=276 + i32.store offset=292 local.get $0 call $~lib/date/Date#toISOString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 7488 - i32.store offset=272 local.get $0 - i32.const 7488 + i32.const 8128 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1152 - i32.const 358 + i32.const 396 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=276 + i32.store offset=292 local.get $2 call $~lib/date/Date#toISOString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 7568 - i32.store offset=272 local.get $0 - i32.const 7568 + i32.const 8208 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1152 - i32.const 359 + i32.const 397 i32.const 3 call $~lib/builtins/abort unreachable @@ -10108,15 +10734,15 @@ i64.const 8639999999999999 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=388 + i32.store offset=436 global.get $~lib/memory/__stack_pointer i64.const -8639999999999999 call $~lib/date/Date#constructor local.tee $2 - i32.store offset=392 + i32.store offset=440 global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=396 + i32.store offset=444 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=8 @@ -10127,16 +10753,15 @@ if i32.const 0 i32.const 1152 - i32.const 364 + i32.const 402 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $2 - i32.store offset=400 - local.get $3 + i32.store offset=448 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=8 local.get $2 @@ -10146,16 +10771,15 @@ if i32.const 0 i32.const 1152 - i32.const 365 + i32.const 403 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $2 - i32.store offset=404 - local.get $3 + i32.store offset=452 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=8 local.get $2 @@ -10165,7 +10789,7 @@ if i32.const 0 i32.const 1152 - i32.const 366 + i32.const 404 i32.const 3 call $~lib/builtins/abort unreachable @@ -10178,7 +10802,7 @@ if i32.const 0 i32.const 1152 - i32.const 367 + i32.const 405 i32.const 3 call $~lib/builtins/abort unreachable @@ -10191,7 +10815,7 @@ if i32.const 0 i32.const 1152 - i32.const 368 + i32.const 406 i32.const 3 call $~lib/builtins/abort unreachable @@ -10204,7 +10828,7 @@ if i32.const 0 i32.const 1152 - i32.const 369 + i32.const 407 i32.const 3 call $~lib/builtins/abort unreachable @@ -10219,127 +10843,64 @@ if i32.const 0 i32.const 1152 - i32.const 370 + i32.const 408 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=276 + i32.store offset=292 local.get $0 call $~lib/date/Date#toISOString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 7648 - i32.store offset=272 local.get $0 - i32.const 7648 + i32.const 8288 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1152 - i32.const 372 + i32.const 410 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=276 + i32.store offset=292 local.get $2 call $~lib/date/Date#toISOString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 7728 - i32.store offset=272 local.get $0 - i32.const 7728 + i32.const 8368 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1152 - i32.const 373 + i32.const 411 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 408 + i32.const 456 i32.add global.set $~lib/memory/__stack_pointer return end i32.const 1056 i32.const 1104 - i32.const 36 + i32.const 35 i32.const 26 call $~lib/builtins/abort unreachable ) - (func $~lib/rt/__newArray (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 7828 - i32.lt_s - if - i32.const 40624 - i32.const 40672 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - local.get $0 - i32.const 2 - i32.shl - local.tee $1 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - i32.const 16 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $2 - local.get $3 - i32.store - local.get $2 - local.get $3 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $2 - local.get $3 - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - local.get $2 - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) ) diff --git a/tests/compiler/std/date.ts b/tests/compiler/std/date.ts index c2152d8aa4..27fbe5186b 100644 --- a/tests/compiler/std/date.ts +++ b/tests/compiler/std/date.ts @@ -177,7 +177,7 @@ assert(date.getTime() == 314240591274); } -// Date#setUTCDay ////////////////////////////////////////////////////////////////////////////////// +// Date#getUTCDay ////////////////////////////////////////////////////////////////////////////////// { // tests from test262 const july6: i64 = 1467763200000; @@ -193,6 +193,12 @@ assert(new Date(july9 - 1).getUTCDay() == 5); assert(new Date(july9 + dayMs - 1).getUTCDay() == 6); assert(new Date(july9 + dayMs ).getUTCDay() == 0); + + assert(new Date(-8640000000000000).getUTCDay() == 2); // -271821-04-20 + assert(new Date(-62183116800000).getUTCDay() == 4); // -000001-07-01 + assert(new Date(0).getUTCDay() == 4); // 1970-01-01 + assert(new Date(1709164800000).getUTCDay() == 4); // 2024-02-29 + assert(new Date(8640000000000000).getUTCDay() == 6); // +275760-09-13 } // Date#setUTCMonth //////////////////////////////////////////////////////////////////////////////// @@ -295,17 +301,49 @@ assert(date.getTime() == 11860387200000); // supports year / month / day / hour / minute / second - date = Date.fromString("1976-02-02T12:34:56"); // still use Z suffix + date = Date.fromString("1976-02-02T12:34:56"); assert(date.getTime() == 192112496000); // supports milliseconds - date = Date.fromString("1976-02-02T12:34:56.456"); // still use Z suffix + date = Date.fromString("1976-02-02T12:34:56.456"); assert(date.getTime() == 192112496456); - // supports 'Z' suffix + // supports 'Z' suffix (UTC) date = Date.fromString("1976-02-02T12:34:56.456Z"); assert(date.getTime() == 192112496456); + // supports negative offset from UTC + date = Date.fromString("1976-02-02T12:34:56.456-08:00"); + assert(date.getTime() == 192141296456); + + // supports positive offset from UTC + date = Date.fromString("1976-02-02T12:34:56.456+05:30"); + assert(date.getTime() == 192092696456); + + // allows fewer than 3 decimal places + date = Date.fromString("1976-02-02T12:34:56.45"); + assert(date.getTime() == 192112496450); + + // allows fewer than 3 decimal places (with Z) + date = Date.fromString("1976-02-02T12:34:56.45Z"); + assert(date.getTime() == 192112496450); + + // allows fewer than 3 decimal places (with offset) + date = Date.fromString("1976-02-02T12:34:56.45+00:00"); + assert(date.getTime() == 192112496450); + + // truncates more than 3 decimal places + date = Date.fromString("1976-02-02T12:34:56.456789"); + assert(date.getTime() == 192112496456); + + // truncates more than 3 decimal places (with Z) + date = Date.fromString("1976-02-02T12:34:56.456789Z"); + assert(date.getTime() == 192112496456); + + // truncates more than 3 decimal places (with offset) + date = Date.fromString("1976-02-02T12:34:56.456789+00:00"); + assert(date.getTime() == 192112496456); + date = Date.fromString("0000"); assert(date.getTime() == -62167219200000); @@ -321,10 +359,10 @@ date = Date.fromString("1976-02-02"); assert(date.getTime() == 192067200000); - date = Date.fromString("1976-02-02T12:34"); // still use Z suffix + date = Date.fromString("1976-02-02T12:34"); assert(date.getTime() == 192112440000); - date = Date.fromString("1976-02-02T12:34:56"); // still use Z suffix + date = Date.fromString("1976-02-02T12:34:56"); assert(date.getTime() == 192112496000); // date = Date.fromString('0Z'); diff --git a/tests/compiler/std/hash.debug.wat b/tests/compiler/std/hash.debug.wat index 0a04055d0c..12f679f2a3 100644 --- a/tests/compiler/std/hash.debug.wat +++ b/tests/compiler/std/hash.debug.wat @@ -198,6 +198,100 @@ end return ) + (func $start:std/hash + i32.const 0 + call $~lib/util/hash/HASH<~lib/string/String|null> + call $std/hash/check + drop + i32.const 32 + call $~lib/util/hash/HASH<~lib/string/String> + call $std/hash/check + drop + i32.const 64 + call $~lib/util/hash/HASH<~lib/string/String> + call $std/hash/check + drop + i32.const 96 + call $~lib/util/hash/HASH<~lib/string/String> + call $std/hash/check + drop + i32.const 128 + call $~lib/util/hash/HASH<~lib/string/String> + call $std/hash/check + drop + i32.const 160 + call $~lib/util/hash/HASH<~lib/string/String> + call $std/hash/check + drop + i32.const 192 + call $~lib/util/hash/HASH<~lib/string/String> + call $std/hash/check + drop + i32.const 224 + call $~lib/util/hash/HASH<~lib/string/String> + call $std/hash/check + drop + i32.const 256 + call $~lib/util/hash/HASH<~lib/string/String> + call $std/hash/check + drop + i32.const 304 + call $~lib/util/hash/HASH<~lib/string/String> + call $std/hash/check + drop + i32.const 352 + call $~lib/util/hash/HASH<~lib/string/String> + call $std/hash/check + drop + f32.const 0 + call $~lib/util/hash/HASH + call $std/hash/check + drop + f32.const 1 + call $~lib/util/hash/HASH + call $std/hash/check + drop + f32.const 1.100000023841858 + call $~lib/util/hash/HASH + call $std/hash/check + drop + f32.const -0 + call $~lib/util/hash/HASH + call $std/hash/check + drop + f32.const inf + call $~lib/util/hash/HASH + call $std/hash/check + drop + f32.const nan:0x400000 + call $~lib/util/hash/HASH + call $std/hash/check + drop + f64.const 0 + call $~lib/util/hash/HASH + call $std/hash/check + drop + f64.const 1 + call $~lib/util/hash/HASH + call $std/hash/check + drop + f64.const 1.1 + call $~lib/util/hash/HASH + call $std/hash/check + drop + f64.const -0 + call $~lib/util/hash/HASH + call $std/hash/check + drop + f64.const inf + call $~lib/util/hash/HASH + call $std/hash/check + drop + f64.const nan:0x8000000000000 + call $~lib/util/hash/HASH + call $std/hash/check + drop + ) (func $~start call $start:std/hash ) @@ -792,161 +886,4 @@ local.get $19 return ) - (func $start:std/hash - (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 0 - call $~lib/util/hash/HASH<~lib/string/String|null> - call $std/hash/check - drop - i32.const 32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/util/hash/HASH<~lib/string/String> - call $std/hash/check - drop - i32.const 64 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/util/hash/HASH<~lib/string/String> - call $std/hash/check - drop - i32.const 96 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/util/hash/HASH<~lib/string/String> - call $std/hash/check - drop - i32.const 128 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/util/hash/HASH<~lib/string/String> - call $std/hash/check - drop - i32.const 160 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/util/hash/HASH<~lib/string/String> - call $std/hash/check - drop - i32.const 192 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/util/hash/HASH<~lib/string/String> - call $std/hash/check - drop - i32.const 224 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/util/hash/HASH<~lib/string/String> - call $std/hash/check - drop - i32.const 256 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/util/hash/HASH<~lib/string/String> - call $std/hash/check - drop - i32.const 304 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/util/hash/HASH<~lib/string/String> - call $std/hash/check - drop - i32.const 352 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/util/hash/HASH<~lib/string/String> - call $std/hash/check - drop - f32.const 0 - call $~lib/util/hash/HASH - call $std/hash/check - drop - f32.const 1 - call $~lib/util/hash/HASH - call $std/hash/check - drop - f32.const 1.100000023841858 - call $~lib/util/hash/HASH - call $std/hash/check - drop - f32.const -0 - call $~lib/util/hash/HASH - call $std/hash/check - drop - f32.const inf - call $~lib/util/hash/HASH - call $std/hash/check - drop - f32.const nan:0x400000 - call $~lib/util/hash/HASH - call $std/hash/check - drop - f64.const 0 - call $~lib/util/hash/HASH - call $std/hash/check - drop - f64.const 1 - call $~lib/util/hash/HASH - call $std/hash/check - drop - f64.const 1.1 - call $~lib/util/hash/HASH - call $std/hash/check - drop - f64.const -0 - call $~lib/util/hash/HASH - call $std/hash/check - drop - f64.const inf - call $~lib/util/hash/HASH - call $std/hash/check - drop - f64.const nan:0x8000000000000 - call $~lib/util/hash/HASH - call $std/hash/check - drop - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) ) diff --git a/tests/compiler/std/hash.release.wat b/tests/compiler/std/hash.release.wat index ec05d869a7..0b046b6c23 100644 --- a/tests/compiler/std/hash.release.wat +++ b/tests/compiler/std/hash.release.wat @@ -1,7 +1,7 @@ (module - (type $0 (func)) - (type $1 (func (param i32 i32 i32 i32))) - (type $2 (func (param i32))) + (type $0 (func (param i32))) + (type $1 (func)) + (type $2 (func (param i32 i32 i32 i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34172)) (memory $0 1) @@ -27,82 +27,6 @@ (data $9.1 (i32.const 1368) "\02\00\00\00\12\00\00\00a\00b\00c\00d\00e\00f\00g\00h\00i") (export "memory" (memory $0)) (start $~start) - (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 1404 - i32.lt_s - if - i32.const 34192 - i32.const 34240 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const 0 - call $~lib/util/hash/HASH<~lib/string/String|null> - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - i32.const 1056 - call $~lib/util/hash/HASH<~lib/string/String|null> - global.get $~lib/memory/__stack_pointer - i32.const 1088 - i32.store - i32.const 1088 - call $~lib/util/hash/HASH<~lib/string/String|null> - global.get $~lib/memory/__stack_pointer - i32.const 1120 - i32.store - i32.const 1120 - call $~lib/util/hash/HASH<~lib/string/String|null> - global.get $~lib/memory/__stack_pointer - i32.const 1152 - i32.store - i32.const 1152 - call $~lib/util/hash/HASH<~lib/string/String|null> - global.get $~lib/memory/__stack_pointer - i32.const 1184 - i32.store - i32.const 1184 - call $~lib/util/hash/HASH<~lib/string/String|null> - global.get $~lib/memory/__stack_pointer - i32.const 1216 - i32.store - i32.const 1216 - call $~lib/util/hash/HASH<~lib/string/String|null> - global.get $~lib/memory/__stack_pointer - i32.const 1248 - i32.store - i32.const 1248 - call $~lib/util/hash/HASH<~lib/string/String|null> - global.get $~lib/memory/__stack_pointer - i32.const 1280 - i32.store - i32.const 1280 - call $~lib/util/hash/HASH<~lib/string/String|null> - global.get $~lib/memory/__stack_pointer - i32.const 1328 - i32.store - i32.const 1328 - call $~lib/util/hash/HASH<~lib/string/String|null> - global.get $~lib/memory/__stack_pointer - i32.const 1376 - i32.store - i32.const 1376 - call $~lib/util/hash/HASH<~lib/string/String|null> - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) (func $~lib/util/hash/HASH<~lib/string/String|null> (param $0 i32) (local $1 i32) (local $2 i32) @@ -127,15 +51,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 if - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 local.tee $1 i32.store offset=4 @@ -302,4 +225,28 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $~start + i32.const 0 + call $~lib/util/hash/HASH<~lib/string/String|null> + i32.const 1056 + call $~lib/util/hash/HASH<~lib/string/String|null> + i32.const 1088 + call $~lib/util/hash/HASH<~lib/string/String|null> + i32.const 1120 + call $~lib/util/hash/HASH<~lib/string/String|null> + i32.const 1152 + call $~lib/util/hash/HASH<~lib/string/String|null> + i32.const 1184 + call $~lib/util/hash/HASH<~lib/string/String|null> + i32.const 1216 + call $~lib/util/hash/HASH<~lib/string/String|null> + i32.const 1248 + call $~lib/util/hash/HASH<~lib/string/String|null> + i32.const 1280 + call $~lib/util/hash/HASH<~lib/string/String|null> + i32.const 1328 + call $~lib/util/hash/HASH<~lib/string/String|null> + i32.const 1376 + call $~lib/util/hash/HASH<~lib/string/String|null> + ) ) diff --git a/tests/compiler/std/map.debug.wat b/tests/compiler/std/map.debug.wat index e257b10dce..13432055e5 100644 --- a/tests/compiler/std/map.debug.wat +++ b/tests/compiler/std/map.debug.wat @@ -1652,14 +1652,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + drop global.get $~lib/rt/itcms/total - i64.extend_i32_u i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 + i32.const 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold @@ -2341,7 +2344,7 @@ end end ) - (func $~lib/map/Map#set:buckets (param $this i32) (param $buckets i32) + (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this local.get $buckets i32.store @@ -2350,12 +2353,12 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (param $this i32) (param $bucketsMask i32) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) local.get $this local.get $bucketsMask i32.store offset=4 ) - (func $~lib/map/Map#set:entries (param $this i32) (param $entries i32) + (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this local.get $entries i32.store offset=8 @@ -2364,17 +2367,17 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (param $this i32) (param $entriesCapacity i32) + (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) local.get $this local.get $entriesCapacity i32.store offset=12 ) - (func $~lib/map/Map#set:entriesOffset (param $this i32) (param $entriesOffset i32) + (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this local.get $entriesOffset i32.store offset=16 ) - (func $~lib/map/Map#set:entriesCount (param $this i32) (param $entriesCount i32) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) local.get $this local.get $entriesCount i32.store offset=20 @@ -2448,53 +2451,53 @@ end return ) - (func $~lib/map/Map#get:buckets (param $this i32) (result i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/map/Map#get:bucketsMask (param $this i32) (result i32) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#get:taggedNext (param $this i32) (result i32) + (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) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i32) local.get $this i32.load8_s ) - (func $~lib/map/MapEntry#set:value (param $this i32) (param $value i32) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) local.get $this local.get $value i32.store offset=4 ) - (func $~lib/map/Map#get:entriesOffset (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) local.get $this i32.load offset=16 ) - (func $~lib/map/Map#get:entriesCapacity (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) local.get $this i32.load offset=12 ) - (func $~lib/map/Map#get:entriesCount (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) local.get $this i32.load offset=20 ) - (func $~lib/map/Map#get:entries (param $this i32) (result i32) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#set:key (param $this i32) (param $key i32) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i32) local.get $this local.get $key i32.store8 ) - (func $~lib/map/MapEntry#get:value (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#set:taggedNext (param $this i32) (param $taggedNext i32) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) local.get $this local.get $taggedNext i32.store offset=8 @@ -2621,7 +2624,7 @@ local.get $this i32.load offset=4 ) - (func $~lib/map/Map#set:buckets (param $this i32) (param $buckets i32) + (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this local.get $buckets i32.store @@ -2630,12 +2633,12 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (param $this i32) (param $bucketsMask i32) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) local.get $this local.get $bucketsMask i32.store offset=4 ) - (func $~lib/map/Map#set:entries (param $this i32) (param $entries i32) + (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this local.get $entries i32.store offset=8 @@ -2644,22 +2647,22 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (param $this i32) (param $entriesCapacity i32) + (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) local.get $this local.get $entriesCapacity i32.store offset=12 ) - (func $~lib/map/Map#set:entriesOffset (param $this i32) (param $entriesOffset i32) + (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this local.get $entriesOffset i32.store offset=16 ) - (func $~lib/map/Map#set:entriesCount (param $this i32) (param $entriesCount i32) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) local.get $this local.get $entriesCount i32.store offset=20 ) - (func $~lib/map/Map#set:buckets (param $this i32) (param $buckets i32) + (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this local.get $buckets i32.store @@ -2668,12 +2671,12 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (param $this i32) (param $bucketsMask i32) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) local.get $this local.get $bucketsMask i32.store offset=4 ) - (func $~lib/map/Map#set:entries (param $this i32) (param $entries i32) + (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this local.get $entries i32.store offset=8 @@ -2682,68 +2685,68 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (param $this i32) (param $entriesCapacity i32) + (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) local.get $this local.get $entriesCapacity i32.store offset=12 ) - (func $~lib/map/Map#set:entriesOffset (param $this i32) (param $entriesOffset i32) + (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this local.get $entriesOffset i32.store offset=16 ) - (func $~lib/map/Map#set:entriesCount (param $this i32) (param $entriesCount i32) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) local.get $this local.get $entriesCount i32.store offset=20 ) - (func $~lib/map/Map#get:buckets (param $this i32) (result i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/map/Map#get:bucketsMask (param $this i32) (result i32) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#get:taggedNext (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#get:key (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i32) local.get $this i32.load8_s ) - (func $~lib/map/MapEntry#set:value (param $this i32) (param $value i32) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) local.get $this local.get $value i32.store8 offset=1 ) - (func $~lib/map/Map#get:entriesOffset (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) local.get $this i32.load offset=16 ) - (func $~lib/map/Map#get:entriesCapacity (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) local.get $this i32.load offset=12 ) - (func $~lib/map/Map#get:entriesCount (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) local.get $this i32.load offset=20 ) - (func $~lib/map/Map#get:entries (param $this i32) (result i32) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#set:key (param $this i32) (param $key i32) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i32) local.get $this local.get $key i32.store8 ) - (func $~lib/map/MapEntry#get:value (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) local.get $this i32.load8_s offset=1 ) - (func $~lib/map/MapEntry#set:taggedNext (param $this i32) (param $taggedNext i32) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) local.get $this local.get $taggedNext i32.store offset=4 @@ -2816,58 +2819,58 @@ end return ) - (func $~lib/map/Map#get:buckets (param $this i32) (result i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/map/Map#get:bucketsMask (param $this i32) (result i32) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#get:taggedNext (param $this i32) (result i32) + (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) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/map/MapEntry#set:value (param $this i32) (param $value i32) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) local.get $this local.get $value i32.store offset=4 ) - (func $~lib/map/Map#get:entriesOffset (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) local.get $this i32.load offset=16 ) - (func $~lib/map/Map#get:entriesCapacity (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) local.get $this i32.load offset=12 ) - (func $~lib/map/Map#get:entriesCount (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) local.get $this i32.load offset=20 ) - (func $~lib/map/Map#get:entries (param $this i32) (result i32) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#set:key (param $this i32) (param $key i32) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i32) local.get $this local.get $key i32.store ) - (func $~lib/map/MapEntry#get:value (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#set:taggedNext (param $this i32) (param $taggedNext i32) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) local.get $this local.get $taggedNext i32.store offset=8 ) - (func $~lib/map/Map#set:buckets (param $this i32) (param $buckets i32) + (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this local.get $buckets i32.store @@ -2876,12 +2879,12 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (param $this i32) (param $bucketsMask i32) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) local.get $this local.get $bucketsMask i32.store offset=4 ) - (func $~lib/map/Map#set:entries (param $this i32) (param $entries i32) + (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this local.get $entries i32.store offset=8 @@ -2890,17 +2893,17 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (param $this i32) (param $entriesCapacity i32) + (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) local.get $this local.get $entriesCapacity i32.store offset=12 ) - (func $~lib/map/Map#set:entriesOffset (param $this i32) (param $entriesOffset i32) + (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this local.get $entriesOffset i32.store offset=16 ) - (func $~lib/map/Map#set:entriesCount (param $this i32) (param $entriesCount i32) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) local.get $this local.get $entriesCount i32.store offset=20 @@ -2975,53 +2978,53 @@ end return ) - (func $~lib/map/Map#get:buckets (param $this i32) (result i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/map/Map#get:bucketsMask (param $this i32) (result i32) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#get:taggedNext (param $this i32) (result i32) + (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) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i32) local.get $this i32.load8_u ) - (func $~lib/map/MapEntry#set:value (param $this i32) (param $value i32) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) local.get $this local.get $value i32.store offset=4 ) - (func $~lib/map/Map#get:entriesOffset (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) local.get $this i32.load offset=16 ) - (func $~lib/map/Map#get:entriesCapacity (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) local.get $this i32.load offset=12 ) - (func $~lib/map/Map#get:entriesCount (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) local.get $this i32.load offset=20 ) - (func $~lib/map/Map#get:entries (param $this i32) (result i32) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#set:key (param $this i32) (param $key i32) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i32) local.get $this local.get $key i32.store8 ) - (func $~lib/map/MapEntry#get:value (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#set:taggedNext (param $this i32) (param $taggedNext i32) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) local.get $this local.get $taggedNext i32.store offset=8 @@ -3058,7 +3061,7 @@ local.get $this i32.load offset=4 ) - (func $~lib/map/Map#set:buckets (param $this i32) (param $buckets i32) + (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this local.get $buckets i32.store @@ -3067,12 +3070,12 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (param $this i32) (param $bucketsMask i32) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) local.get $this local.get $bucketsMask i32.store offset=4 ) - (func $~lib/map/Map#set:entries (param $this i32) (param $entries i32) + (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this local.get $entries i32.store offset=8 @@ -3081,73 +3084,73 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (param $this i32) (param $entriesCapacity i32) + (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) local.get $this local.get $entriesCapacity i32.store offset=12 ) - (func $~lib/map/Map#set:entriesOffset (param $this i32) (param $entriesOffset i32) + (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this local.get $entriesOffset i32.store offset=16 ) - (func $~lib/map/Map#set:entriesCount (param $this i32) (param $entriesCount i32) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) local.get $this local.get $entriesCount i32.store offset=20 ) - (func $~lib/map/Map#get:buckets (param $this i32) (result i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/map/Map#get:bucketsMask (param $this i32) (result i32) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#get:taggedNext (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#get:key (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i32) local.get $this i32.load8_u ) - (func $~lib/map/MapEntry#set:value (param $this i32) (param $value i32) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) local.get $this local.get $value i32.store8 offset=1 ) - (func $~lib/map/Map#get:entriesOffset (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) local.get $this i32.load offset=16 ) - (func $~lib/map/Map#get:entriesCapacity (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) local.get $this i32.load offset=12 ) - (func $~lib/map/Map#get:entriesCount (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) local.get $this i32.load offset=20 ) - (func $~lib/map/Map#get:entries (param $this i32) (result i32) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#set:key (param $this i32) (param $key i32) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i32) local.get $this local.get $key i32.store8 ) - (func $~lib/map/MapEntry#get:value (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) local.get $this i32.load8_u offset=1 ) - (func $~lib/map/MapEntry#set:taggedNext (param $this i32) (param $taggedNext i32) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) local.get $this local.get $taggedNext i32.store offset=4 ) - (func $~lib/map/Map#set:buckets (param $this i32) (param $buckets i32) + (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this local.get $buckets i32.store @@ -3156,12 +3159,12 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (param $this i32) (param $bucketsMask i32) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) local.get $this local.get $bucketsMask i32.store offset=4 ) - (func $~lib/map/Map#set:entries (param $this i32) (param $entries i32) + (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this local.get $entries i32.store offset=8 @@ -3170,17 +3173,17 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (param $this i32) (param $entriesCapacity i32) + (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) local.get $this local.get $entriesCapacity i32.store offset=12 ) - (func $~lib/map/Map#set:entriesOffset (param $this i32) (param $entriesOffset i32) + (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this local.get $entriesOffset i32.store offset=16 ) - (func $~lib/map/Map#set:entriesCount (param $this i32) (param $entriesCount i32) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) local.get $this local.get $entriesCount i32.store offset=20 @@ -3254,53 +3257,53 @@ end return ) - (func $~lib/map/Map#get:buckets (param $this i32) (result i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/map/Map#get:bucketsMask (param $this i32) (result i32) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#get:taggedNext (param $this i32) (result i32) + (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) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i32) local.get $this i32.load16_s ) - (func $~lib/map/MapEntry#set:value (param $this i32) (param $value i32) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) local.get $this local.get $value i32.store offset=4 ) - (func $~lib/map/Map#get:entriesOffset (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) local.get $this i32.load offset=16 ) - (func $~lib/map/Map#get:entriesCapacity (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) local.get $this i32.load offset=12 ) - (func $~lib/map/Map#get:entriesCount (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) local.get $this i32.load offset=20 ) - (func $~lib/map/Map#get:entries (param $this i32) (result i32) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#set:key (param $this i32) (param $key i32) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i32) local.get $this local.get $key i32.store16 ) - (func $~lib/map/MapEntry#get:value (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#set:taggedNext (param $this i32) (param $taggedNext i32) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) local.get $this local.get $taggedNext i32.store offset=8 @@ -3337,7 +3340,7 @@ local.get $this i32.load offset=4 ) - (func $~lib/map/Map#set:buckets (param $this i32) (param $buckets i32) + (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this local.get $buckets i32.store @@ -3346,12 +3349,12 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (param $this i32) (param $bucketsMask i32) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) local.get $this local.get $bucketsMask i32.store offset=4 ) - (func $~lib/map/Map#set:entries (param $this i32) (param $entries i32) + (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this local.get $entries i32.store offset=8 @@ -3360,73 +3363,73 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (param $this i32) (param $entriesCapacity i32) + (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) local.get $this local.get $entriesCapacity i32.store offset=12 ) - (func $~lib/map/Map#set:entriesOffset (param $this i32) (param $entriesOffset i32) + (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this local.get $entriesOffset i32.store offset=16 ) - (func $~lib/map/Map#set:entriesCount (param $this i32) (param $entriesCount i32) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) local.get $this local.get $entriesCount i32.store offset=20 ) - (func $~lib/map/Map#get:buckets (param $this i32) (result i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/map/Map#get:bucketsMask (param $this i32) (result i32) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#get:taggedNext (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#get:key (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i32) local.get $this i32.load16_s ) - (func $~lib/map/MapEntry#set:value (param $this i32) (param $value i32) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) local.get $this local.get $value i32.store16 offset=2 ) - (func $~lib/map/Map#get:entriesOffset (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) local.get $this i32.load offset=16 ) - (func $~lib/map/Map#get:entriesCapacity (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) local.get $this i32.load offset=12 ) - (func $~lib/map/Map#get:entriesCount (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) local.get $this i32.load offset=20 ) - (func $~lib/map/Map#get:entries (param $this i32) (result i32) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#set:key (param $this i32) (param $key i32) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i32) local.get $this local.get $key i32.store16 ) - (func $~lib/map/MapEntry#get:value (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) local.get $this i32.load16_s offset=2 ) - (func $~lib/map/MapEntry#set:taggedNext (param $this i32) (param $taggedNext i32) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) local.get $this local.get $taggedNext i32.store offset=4 ) - (func $~lib/map/Map#set:buckets (param $this i32) (param $buckets i32) + (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this local.get $buckets i32.store @@ -3435,12 +3438,12 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (param $this i32) (param $bucketsMask i32) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) local.get $this local.get $bucketsMask i32.store offset=4 ) - (func $~lib/map/Map#set:entries (param $this i32) (param $entries i32) + (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this local.get $entries i32.store offset=8 @@ -3449,17 +3452,17 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (param $this i32) (param $entriesCapacity i32) + (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) local.get $this local.get $entriesCapacity i32.store offset=12 ) - (func $~lib/map/Map#set:entriesOffset (param $this i32) (param $entriesOffset i32) + (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this local.get $entriesOffset i32.store offset=16 ) - (func $~lib/map/Map#set:entriesCount (param $this i32) (param $entriesCount i32) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) local.get $this local.get $entriesCount i32.store offset=20 @@ -3534,53 +3537,53 @@ end return ) - (func $~lib/map/Map#get:buckets (param $this i32) (result i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/map/Map#get:bucketsMask (param $this i32) (result i32) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#get:taggedNext (param $this i32) (result i32) + (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) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i32) local.get $this i32.load16_u ) - (func $~lib/map/MapEntry#set:value (param $this i32) (param $value i32) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) local.get $this local.get $value i32.store offset=4 ) - (func $~lib/map/Map#get:entriesOffset (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) local.get $this i32.load offset=16 ) - (func $~lib/map/Map#get:entriesCapacity (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) local.get $this i32.load offset=12 ) - (func $~lib/map/Map#get:entriesCount (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) local.get $this i32.load offset=20 ) - (func $~lib/map/Map#get:entries (param $this i32) (result i32) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#set:key (param $this i32) (param $key i32) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i32) local.get $this local.get $key i32.store16 ) - (func $~lib/map/MapEntry#get:value (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#set:taggedNext (param $this i32) (param $taggedNext i32) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) local.get $this local.get $taggedNext i32.store offset=8 @@ -3617,7 +3620,7 @@ local.get $this i32.load offset=4 ) - (func $~lib/map/Map#set:buckets (param $this i32) (param $buckets i32) + (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this local.get $buckets i32.store @@ -3626,12 +3629,12 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (param $this i32) (param $bucketsMask i32) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) local.get $this local.get $bucketsMask i32.store offset=4 ) - (func $~lib/map/Map#set:entries (param $this i32) (param $entries i32) + (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this local.get $entries i32.store offset=8 @@ -3640,73 +3643,73 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (param $this i32) (param $entriesCapacity i32) + (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) local.get $this local.get $entriesCapacity i32.store offset=12 ) - (func $~lib/map/Map#set:entriesOffset (param $this i32) (param $entriesOffset i32) + (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this local.get $entriesOffset i32.store offset=16 ) - (func $~lib/map/Map#set:entriesCount (param $this i32) (param $entriesCount i32) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) local.get $this local.get $entriesCount i32.store offset=20 ) - (func $~lib/map/Map#get:buckets (param $this i32) (result i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/map/Map#get:bucketsMask (param $this i32) (result i32) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#get:taggedNext (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#get:key (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i32) local.get $this i32.load16_u ) - (func $~lib/map/MapEntry#set:value (param $this i32) (param $value i32) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) local.get $this local.get $value i32.store16 offset=2 ) - (func $~lib/map/Map#get:entriesOffset (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) local.get $this i32.load offset=16 ) - (func $~lib/map/Map#get:entriesCapacity (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) local.get $this i32.load offset=12 ) - (func $~lib/map/Map#get:entriesCount (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) local.get $this i32.load offset=20 ) - (func $~lib/map/Map#get:entries (param $this i32) (result i32) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#set:key (param $this i32) (param $key i32) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i32) local.get $this local.get $key i32.store16 ) - (func $~lib/map/MapEntry#get:value (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) local.get $this i32.load16_u offset=2 ) - (func $~lib/map/MapEntry#set:taggedNext (param $this i32) (param $taggedNext i32) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) local.get $this local.get $taggedNext i32.store offset=4 ) - (func $~lib/map/Map#set:buckets (param $this i32) (param $buckets i32) + (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this local.get $buckets i32.store @@ -3715,12 +3718,12 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (param $this i32) (param $bucketsMask i32) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) local.get $this local.get $bucketsMask i32.store offset=4 ) - (func $~lib/map/Map#set:entries (param $this i32) (param $entries i32) + (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this local.get $entries i32.store offset=8 @@ -3729,17 +3732,17 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (param $this i32) (param $entriesCapacity i32) + (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) local.get $this local.get $entriesCapacity i32.store offset=12 ) - (func $~lib/map/Map#set:entriesOffset (param $this i32) (param $entriesOffset i32) + (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this local.get $entriesOffset i32.store offset=16 ) - (func $~lib/map/Map#set:entriesCount (param $this i32) (param $entriesCount i32) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) local.get $this local.get $entriesCount i32.store offset=20 @@ -3812,53 +3815,53 @@ end return ) - (func $~lib/map/Map#get:buckets (param $this i32) (result i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/map/Map#get:bucketsMask (param $this i32) (result i32) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#get:taggedNext (param $this i32) (result i32) + (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) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/map/MapEntry#set:value (param $this i32) (param $value i32) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) local.get $this local.get $value i32.store offset=4 ) - (func $~lib/map/Map#get:entriesOffset (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) local.get $this i32.load offset=16 ) - (func $~lib/map/Map#get:entriesCapacity (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) local.get $this i32.load offset=12 ) - (func $~lib/map/Map#get:entriesCount (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) local.get $this i32.load offset=20 ) - (func $~lib/map/Map#get:entries (param $this i32) (result i32) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#set:key (param $this i32) (param $key i32) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i32) local.get $this local.get $key i32.store ) - (func $~lib/map/MapEntry#get:value (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#set:taggedNext (param $this i32) (param $taggedNext i32) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) local.get $this local.get $taggedNext i32.store offset=8 @@ -3895,7 +3898,7 @@ local.get $this i32.load offset=4 ) - (func $~lib/map/Map#set:buckets (param $this i32) (param $buckets i32) + (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this local.get $buckets i32.store @@ -3904,12 +3907,12 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (param $this i32) (param $bucketsMask i32) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) local.get $this local.get $bucketsMask i32.store offset=4 ) - (func $~lib/map/Map#set:entries (param $this i32) (param $entries i32) + (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this local.get $entries i32.store offset=8 @@ -3918,73 +3921,73 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (param $this i32) (param $entriesCapacity i32) + (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) local.get $this local.get $entriesCapacity i32.store offset=12 ) - (func $~lib/map/Map#set:entriesOffset (param $this i32) (param $entriesOffset i32) + (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this local.get $entriesOffset i32.store offset=16 ) - (func $~lib/map/Map#set:entriesCount (param $this i32) (param $entriesCount i32) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) local.get $this local.get $entriesCount i32.store offset=20 ) - (func $~lib/map/Map#get:buckets (param $this i32) (result i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/map/Map#get:bucketsMask (param $this i32) (result i32) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#get:taggedNext (param $this i32) (result i32) + (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) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/map/MapEntry#set:value (param $this i32) (param $value i32) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) local.get $this local.get $value i32.store offset=4 ) - (func $~lib/map/Map#get:entriesOffset (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) local.get $this i32.load offset=16 ) - (func $~lib/map/Map#get:entriesCapacity (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) local.get $this i32.load offset=12 ) - (func $~lib/map/Map#get:entriesCount (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) local.get $this i32.load offset=20 ) - (func $~lib/map/Map#get:entries (param $this i32) (result i32) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#set:key (param $this i32) (param $key i32) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i32) local.get $this local.get $key i32.store ) - (func $~lib/map/MapEntry#get:value (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#set:taggedNext (param $this i32) (param $taggedNext i32) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) local.get $this local.get $taggedNext i32.store offset=8 ) - (func $~lib/map/Map#set:buckets (param $this i32) (param $buckets i32) + (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this local.get $buckets i32.store @@ -3993,12 +3996,12 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (param $this i32) (param $bucketsMask i32) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) local.get $this local.get $bucketsMask i32.store offset=4 ) - (func $~lib/map/Map#set:entries (param $this i32) (param $entries i32) + (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this local.get $entries i32.store offset=8 @@ -4007,17 +4010,17 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (param $this i32) (param $entriesCapacity i32) + (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) local.get $this local.get $entriesCapacity i32.store offset=12 ) - (func $~lib/map/Map#set:entriesOffset (param $this i32) (param $entriesOffset i32) + (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this local.get $entriesOffset i32.store offset=16 ) - (func $~lib/map/Map#set:entriesCount (param $this i32) (param $entriesCount i32) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) local.get $this local.get $entriesCount i32.store offset=20 @@ -4107,53 +4110,53 @@ end return ) - (func $~lib/map/Map#get:buckets (param $this i32) (result i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/map/Map#get:bucketsMask (param $this i32) (result i32) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#get:taggedNext (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) local.get $this i32.load offset=12 ) - (func $~lib/map/MapEntry#get:key (param $this i32) (result i64) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i64) local.get $this i64.load ) - (func $~lib/map/MapEntry#set:value (param $this i32) (param $value i32) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) local.get $this local.get $value i32.store offset=8 ) - (func $~lib/map/Map#get:entriesOffset (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) local.get $this i32.load offset=16 ) - (func $~lib/map/Map#get:entriesCapacity (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) local.get $this i32.load offset=12 ) - (func $~lib/map/Map#get:entriesCount (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) local.get $this i32.load offset=20 ) - (func $~lib/map/Map#get:entries (param $this i32) (result i32) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#set:key (param $this i32) (param $key i64) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i64) local.get $this local.get $key i64.store ) - (func $~lib/map/MapEntry#get:value (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#set:taggedNext (param $this i32) (param $taggedNext i32) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) local.get $this local.get $taggedNext i32.store offset=12 @@ -4190,7 +4193,7 @@ local.get $this i32.load offset=4 ) - (func $~lib/map/Map#set:buckets (param $this i32) (param $buckets i32) + (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this local.get $buckets i32.store @@ -4199,12 +4202,12 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (param $this i32) (param $bucketsMask i32) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) local.get $this local.get $bucketsMask i32.store offset=4 ) - (func $~lib/map/Map#set:entries (param $this i32) (param $entries i32) + (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this local.get $entries i32.store offset=8 @@ -4213,73 +4216,73 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (param $this i32) (param $entriesCapacity i32) + (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) local.get $this local.get $entriesCapacity i32.store offset=12 ) - (func $~lib/map/Map#set:entriesOffset (param $this i32) (param $entriesOffset i32) + (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this local.get $entriesOffset i32.store offset=16 ) - (func $~lib/map/Map#set:entriesCount (param $this i32) (param $entriesCount i32) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) local.get $this local.get $entriesCount i32.store offset=20 ) - (func $~lib/map/Map#get:buckets (param $this i32) (result i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/map/Map#get:bucketsMask (param $this i32) (result i32) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#get:taggedNext (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) local.get $this i32.load offset=16 ) - (func $~lib/map/MapEntry#get:key (param $this i32) (result i64) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i64) local.get $this i64.load ) - (func $~lib/map/MapEntry#set:value (param $this i32) (param $value i64) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i64) local.get $this local.get $value i64.store offset=8 ) - (func $~lib/map/Map#get:entriesOffset (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) local.get $this i32.load offset=16 ) - (func $~lib/map/Map#get:entriesCapacity (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) local.get $this i32.load offset=12 ) - (func $~lib/map/Map#get:entriesCount (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) local.get $this i32.load offset=20 ) - (func $~lib/map/Map#get:entries (param $this i32) (result i32) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#set:key (param $this i32) (param $key i64) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i64) local.get $this local.get $key i64.store ) - (func $~lib/map/MapEntry#get:value (param $this i32) (result i64) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i64) local.get $this i64.load offset=8 ) - (func $~lib/map/MapEntry#set:taggedNext (param $this i32) (param $taggedNext i32) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) local.get $this local.get $taggedNext i32.store offset=16 ) - (func $~lib/map/Map#set:buckets (param $this i32) (param $buckets i32) + (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this local.get $buckets i32.store @@ -4288,12 +4291,12 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (param $this i32) (param $bucketsMask i32) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) local.get $this local.get $bucketsMask i32.store offset=4 ) - (func $~lib/map/Map#set:entries (param $this i32) (param $entries i32) + (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this local.get $entries i32.store offset=8 @@ -4302,17 +4305,17 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (param $this i32) (param $entriesCapacity i32) + (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) local.get $this local.get $entriesCapacity i32.store offset=12 ) - (func $~lib/map/Map#set:entriesOffset (param $this i32) (param $entriesOffset i32) + (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this local.get $entriesOffset i32.store offset=16 ) - (func $~lib/map/Map#set:entriesCount (param $this i32) (param $entriesCount i32) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) local.get $this local.get $entriesCount i32.store offset=20 @@ -4402,53 +4405,53 @@ end return ) - (func $~lib/map/Map#get:buckets (param $this i32) (result i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/map/Map#get:bucketsMask (param $this i32) (result i32) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#get:taggedNext (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) local.get $this i32.load offset=12 ) - (func $~lib/map/MapEntry#get:key (param $this i32) (result i64) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i64) local.get $this i64.load ) - (func $~lib/map/MapEntry#set:value (param $this i32) (param $value i32) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) local.get $this local.get $value i32.store offset=8 ) - (func $~lib/map/Map#get:entriesOffset (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) local.get $this i32.load offset=16 ) - (func $~lib/map/Map#get:entriesCapacity (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) local.get $this i32.load offset=12 ) - (func $~lib/map/Map#get:entriesCount (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) local.get $this i32.load offset=20 ) - (func $~lib/map/Map#get:entries (param $this i32) (result i32) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#set:key (param $this i32) (param $key i64) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i64) local.get $this local.get $key i64.store ) - (func $~lib/map/MapEntry#get:value (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#set:taggedNext (param $this i32) (param $taggedNext i32) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) local.get $this local.get $taggedNext i32.store offset=12 @@ -4485,7 +4488,7 @@ local.get $this i32.load offset=4 ) - (func $~lib/map/Map#set:buckets (param $this i32) (param $buckets i32) + (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this local.get $buckets i32.store @@ -4494,12 +4497,12 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (param $this i32) (param $bucketsMask i32) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) local.get $this local.get $bucketsMask i32.store offset=4 ) - (func $~lib/map/Map#set:entries (param $this i32) (param $entries i32) + (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this local.get $entries i32.store offset=8 @@ -4508,73 +4511,73 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (param $this i32) (param $entriesCapacity i32) + (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) local.get $this local.get $entriesCapacity i32.store offset=12 ) - (func $~lib/map/Map#set:entriesOffset (param $this i32) (param $entriesOffset i32) + (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this local.get $entriesOffset i32.store offset=16 ) - (func $~lib/map/Map#set:entriesCount (param $this i32) (param $entriesCount i32) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) local.get $this local.get $entriesCount i32.store offset=20 ) - (func $~lib/map/Map#get:buckets (param $this i32) (result i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/map/Map#get:bucketsMask (param $this i32) (result i32) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#get:taggedNext (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) local.get $this i32.load offset=16 ) - (func $~lib/map/MapEntry#get:key (param $this i32) (result i64) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i64) local.get $this i64.load ) - (func $~lib/map/MapEntry#set:value (param $this i32) (param $value i64) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i64) local.get $this local.get $value i64.store offset=8 ) - (func $~lib/map/Map#get:entriesOffset (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) local.get $this i32.load offset=16 ) - (func $~lib/map/Map#get:entriesCapacity (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) local.get $this i32.load offset=12 ) - (func $~lib/map/Map#get:entriesCount (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) local.get $this i32.load offset=20 ) - (func $~lib/map/Map#get:entries (param $this i32) (result i32) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#set:key (param $this i32) (param $key i64) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i64) local.get $this local.get $key i64.store ) - (func $~lib/map/MapEntry#get:value (param $this i32) (result i64) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i64) local.get $this i64.load offset=8 ) - (func $~lib/map/MapEntry#set:taggedNext (param $this i32) (param $taggedNext i32) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) local.get $this local.get $taggedNext i32.store offset=16 ) - (func $~lib/map/Map#set:buckets (param $this i32) (param $buckets i32) + (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this local.get $buckets i32.store @@ -4583,12 +4586,12 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (param $this i32) (param $bucketsMask i32) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) local.get $this local.get $bucketsMask i32.store offset=4 ) - (func $~lib/map/Map#set:entries (param $this i32) (param $entries i32) + (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this local.get $entries i32.store offset=8 @@ -4597,17 +4600,17 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (param $this i32) (param $entriesCapacity i32) + (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) local.get $this local.get $entriesCapacity i32.store offset=12 ) - (func $~lib/map/Map#set:entriesOffset (param $this i32) (param $entriesOffset i32) + (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this local.get $entriesOffset i32.store offset=16 ) - (func $~lib/map/Map#set:entriesCount (param $this i32) (param $entriesCount i32) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) local.get $this local.get $entriesCount i32.store offset=20 @@ -4681,53 +4684,53 @@ end return ) - (func $~lib/map/Map#get:buckets (param $this i32) (result i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/map/Map#get:bucketsMask (param $this i32) (result i32) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#get:taggedNext (param $this i32) (result i32) + (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 f32) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result f32) local.get $this f32.load ) - (func $~lib/map/MapEntry#set:value (param $this i32) (param $value i32) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) local.get $this local.get $value i32.store offset=4 ) - (func $~lib/map/Map#get:entriesOffset (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) local.get $this i32.load offset=16 ) - (func $~lib/map/Map#get:entriesCapacity (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) local.get $this i32.load offset=12 ) - (func $~lib/map/Map#get:entriesCount (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) local.get $this i32.load offset=20 ) - (func $~lib/map/Map#get:entries (param $this i32) (result i32) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#set:key (param $this i32) (param $key f32) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key f32) local.get $this local.get $key f32.store ) - (func $~lib/map/MapEntry#get:value (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#set:taggedNext (param $this i32) (param $taggedNext i32) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) local.get $this local.get $taggedNext i32.store offset=8 @@ -4764,7 +4767,7 @@ local.get $this i32.load offset=4 ) - (func $~lib/map/Map#set:buckets (param $this i32) (param $buckets i32) + (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this local.get $buckets i32.store @@ -4773,12 +4776,12 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (param $this i32) (param $bucketsMask i32) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) local.get $this local.get $bucketsMask i32.store offset=4 ) - (func $~lib/map/Map#set:entries (param $this i32) (param $entries i32) + (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this local.get $entries i32.store offset=8 @@ -4787,73 +4790,73 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (param $this i32) (param $entriesCapacity i32) + (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) local.get $this local.get $entriesCapacity i32.store offset=12 ) - (func $~lib/map/Map#set:entriesOffset (param $this i32) (param $entriesOffset i32) + (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this local.get $entriesOffset i32.store offset=16 ) - (func $~lib/map/Map#set:entriesCount (param $this i32) (param $entriesCount i32) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) local.get $this local.get $entriesCount i32.store offset=20 ) - (func $~lib/map/Map#get:buckets (param $this i32) (result i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/map/Map#get:bucketsMask (param $this i32) (result i32) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#get:taggedNext (param $this i32) (result i32) + (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 f32) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result f32) local.get $this f32.load ) - (func $~lib/map/MapEntry#set:value (param $this i32) (param $value f32) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value f32) local.get $this local.get $value f32.store offset=4 ) - (func $~lib/map/Map#get:entriesOffset (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) local.get $this i32.load offset=16 ) - (func $~lib/map/Map#get:entriesCapacity (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) local.get $this i32.load offset=12 ) - (func $~lib/map/Map#get:entriesCount (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) local.get $this i32.load offset=20 ) - (func $~lib/map/Map#get:entries (param $this i32) (result i32) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#set:key (param $this i32) (param $key f32) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key f32) local.get $this local.get $key f32.store ) - (func $~lib/map/MapEntry#get:value (param $this i32) (result f32) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result f32) local.get $this f32.load offset=4 ) - (func $~lib/map/MapEntry#set:taggedNext (param $this i32) (param $taggedNext i32) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) local.get $this local.get $taggedNext i32.store offset=8 ) - (func $~lib/map/Map#set:buckets (param $this i32) (param $buckets i32) + (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this local.get $buckets i32.store @@ -4862,12 +4865,12 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (param $this i32) (param $bucketsMask i32) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) local.get $this local.get $bucketsMask i32.store offset=4 ) - (func $~lib/map/Map#set:entries (param $this i32) (param $entries i32) + (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this local.get $entries i32.store offset=8 @@ -4876,17 +4879,17 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (param $this i32) (param $entriesCapacity i32) + (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) local.get $this local.get $entriesCapacity i32.store offset=12 ) - (func $~lib/map/Map#set:entriesOffset (param $this i32) (param $entriesOffset i32) + (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this local.get $entriesOffset i32.store offset=16 ) - (func $~lib/map/Map#set:entriesCount (param $this i32) (param $entriesCount i32) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) local.get $this local.get $entriesCount i32.store offset=20 @@ -4977,53 +4980,53 @@ end return ) - (func $~lib/map/Map#get:buckets (param $this i32) (result i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/map/Map#get:bucketsMask (param $this i32) (result i32) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#get:taggedNext (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) local.get $this i32.load offset=12 ) - (func $~lib/map/MapEntry#get:key (param $this i32) (result f64) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result f64) local.get $this f64.load ) - (func $~lib/map/MapEntry#set:value (param $this i32) (param $value i32) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) local.get $this local.get $value i32.store offset=8 ) - (func $~lib/map/Map#get:entriesOffset (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) local.get $this i32.load offset=16 ) - (func $~lib/map/Map#get:entriesCapacity (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) local.get $this i32.load offset=12 ) - (func $~lib/map/Map#get:entriesCount (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) local.get $this i32.load offset=20 ) - (func $~lib/map/Map#get:entries (param $this i32) (result i32) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#set:key (param $this i32) (param $key f64) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key f64) local.get $this local.get $key f64.store ) - (func $~lib/map/MapEntry#get:value (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#set:taggedNext (param $this i32) (param $taggedNext i32) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) local.get $this local.get $taggedNext i32.store offset=12 @@ -5060,7 +5063,7 @@ local.get $this i32.load offset=4 ) - (func $~lib/map/Map#set:buckets (param $this i32) (param $buckets i32) + (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this local.get $buckets i32.store @@ -5069,12 +5072,12 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (param $this i32) (param $bucketsMask i32) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) local.get $this local.get $bucketsMask i32.store offset=4 ) - (func $~lib/map/Map#set:entries (param $this i32) (param $entries i32) + (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this local.get $entries i32.store offset=8 @@ -5083,68 +5086,68 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (param $this i32) (param $entriesCapacity i32) + (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) local.get $this local.get $entriesCapacity i32.store offset=12 ) - (func $~lib/map/Map#set:entriesOffset (param $this i32) (param $entriesOffset i32) + (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this local.get $entriesOffset i32.store offset=16 ) - (func $~lib/map/Map#set:entriesCount (param $this i32) (param $entriesCount i32) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) local.get $this local.get $entriesCount i32.store offset=20 ) - (func $~lib/map/Map#get:buckets (param $this i32) (result i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/map/Map#get:bucketsMask (param $this i32) (result i32) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#get:taggedNext (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) local.get $this i32.load offset=16 ) - (func $~lib/map/MapEntry#get:key (param $this i32) (result f64) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result f64) local.get $this f64.load ) - (func $~lib/map/MapEntry#set:value (param $this i32) (param $value f64) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value f64) local.get $this local.get $value f64.store offset=8 ) - (func $~lib/map/Map#get:entriesOffset (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) local.get $this i32.load offset=16 ) - (func $~lib/map/Map#get:entriesCapacity (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) local.get $this i32.load offset=12 ) - (func $~lib/map/Map#get:entriesCount (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) local.get $this i32.load offset=20 ) - (func $~lib/map/Map#get:entries (param $this i32) (result i32) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#set:key (param $this i32) (param $key f64) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key f64) local.get $this local.get $key f64.store ) - (func $~lib/map/MapEntry#get:value (param $this i32) (result f64) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result f64) local.get $this f64.load offset=8 ) - (func $~lib/map/MapEntry#set:taggedNext (param $this i32) (param $taggedNext i32) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) local.get $this local.get $taggedNext i32.store offset=16 @@ -5213,16 +5216,16 @@ i32.const 320 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace - call $std/map/testNumeric - call $std/map/testNumeric - call $std/map/testNumeric - call $std/map/testNumeric - call $std/map/testNumeric - call $std/map/testNumeric - call $std/map/testNumeric - call $std/map/testNumeric - call $std/map/testNumeric - call $std/map/testNumeric + call $"std/map/testNumeric" + call $"std/map/testNumeric" + call $"std/map/testNumeric" + call $"std/map/testNumeric" + call $"std/map/testNumeric" + call $"std/map/testNumeric" + call $"std/map/testNumeric" + call $"std/map/testNumeric" + call $"std/map/testNumeric" + call $"std/map/testNumeric" call $~lib/rt/itcms/__collect ) (func $~lib/rt/__visit_globals (param $0 i32) @@ -5247,22 +5250,18 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + (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 + call $"~lib/map/Map#__visit" ) (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this @@ -5288,29 +5287,29 @@ local.get $1 call $~lib/array/Array#__visit ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + (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 + call $"~lib/map/Map#__visit" ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + (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 + call $"~lib/map/Map#__visit" ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + (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 + call $"~lib/map/Map#__visit" ) (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this @@ -5324,21 +5323,21 @@ local.get $1 call $~lib/array/Array#__visit ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + (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 + call $"~lib/map/Map#__visit" ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + (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 + call $"~lib/map/Map#__visit" ) (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this @@ -5352,21 +5351,21 @@ local.get $1 call $~lib/array/Array#__visit ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + (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 + call $"~lib/map/Map#__visit" ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + (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 + call $"~lib/map/Map#__visit" ) (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this @@ -5380,21 +5379,21 @@ local.get $1 call $~lib/array/Array#__visit ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + (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 + call $"~lib/map/Map#__visit" ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + (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 + call $"~lib/map/Map#__visit" ) (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this @@ -5408,21 +5407,21 @@ local.get $1 call $~lib/array/Array#__visit ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + (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 + call $"~lib/map/Map#__visit" ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + (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 + call $"~lib/map/Map#__visit" ) (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this @@ -5436,21 +5435,21 @@ local.get $1 call $~lib/array/Array#__visit ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + (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 + call $"~lib/map/Map#__visit" ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + (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 + call $"~lib/map/Map#__visit" ) (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this @@ -5464,21 +5463,21 @@ local.get $1 call $~lib/array/Array#__visit ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + (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 + call $"~lib/map/Map#__visit" ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + (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 + call $"~lib/map/Map#__visit" ) (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this @@ -5492,21 +5491,21 @@ local.get $1 call $~lib/array/Array#__visit ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + (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 + call $"~lib/map/Map#__visit" ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + (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 + call $"~lib/map/Map#__visit" ) (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this @@ -5520,45 +5519,45 @@ local.get $1 call $~lib/array/Array#__visit ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + (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 + 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/array/Array - block $~lib/map/Map - block $~lib/map/Map + block $"~lib/map/Map" + block $"~lib/map/Map" block $~lib/array/Array - block $~lib/map/Map - block $~lib/map/Map + block $"~lib/map/Map" + block $"~lib/map/Map" block $~lib/array/Array - block $~lib/map/Map - block $~lib/map/Map + block $"~lib/map/Map" + block $"~lib/map/Map" block $~lib/array/Array - block $~lib/map/Map - block $~lib/map/Map + block $"~lib/map/Map" + block $"~lib/map/Map" block $~lib/array/Array - block $~lib/map/Map - block $~lib/map/Map + block $"~lib/map/Map" + block $"~lib/map/Map" block $~lib/array/Array - block $~lib/map/Map - block $~lib/map/Map + block $"~lib/map/Map" + block $"~lib/map/Map" block $~lib/array/Array - block $~lib/map/Map - block $~lib/map/Map + block $"~lib/map/Map" + block $"~lib/map/Map" block $~lib/array/Array - 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/array/Array block $~lib/array/Array - block $~lib/map/Map + block $"~lib/map/Map" block $~lib/arraybuffer/ArrayBufferView block $~lib/string/String block $~lib/arraybuffer/ArrayBuffer @@ -5567,7 +5566,7 @@ i32.const 8 i32.sub i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/map/Map $~lib/array/Array $~lib/array/Array $~lib/map/Map $~lib/map/Map $~lib/map/Map $~lib/array/Array $~lib/map/Map $~lib/map/Map $~lib/array/Array $~lib/map/Map $~lib/map/Map $~lib/array/Array $~lib/map/Map $~lib/map/Map $~lib/array/Array $~lib/map/Map $~lib/map/Map $~lib/array/Array $~lib/map/Map $~lib/map/Map $~lib/array/Array $~lib/map/Map $~lib/map/Map $~lib/array/Array $~lib/map/Map $~lib/map/Map $~lib/array/Array $~lib/map/Map $invalid + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $"~lib/map/Map" $~lib/array/Array $~lib/array/Array $"~lib/map/Map" $"~lib/map/Map" $"~lib/map/Map" $~lib/array/Array $"~lib/map/Map" $"~lib/map/Map" $~lib/array/Array $"~lib/map/Map" $"~lib/map/Map" $~lib/array/Array $"~lib/map/Map" $"~lib/map/Map" $~lib/array/Array $"~lib/map/Map" $"~lib/map/Map" $~lib/array/Array $"~lib/map/Map" $"~lib/map/Map" $~lib/array/Array $"~lib/map/Map" $"~lib/map/Map" $~lib/array/Array $"~lib/map/Map" $"~lib/map/Map" $~lib/array/Array $"~lib/map/Map" $invalid end return end @@ -5582,7 +5581,7 @@ end local.get $0 local.get $1 - call $~lib/map/Map~visit + call $"~lib/map/Map~visit" return end local.get $0 @@ -5597,17 +5596,17 @@ end local.get $0 local.get $1 - call $~lib/map/Map~visit + call $"~lib/map/Map~visit" return end local.get $0 local.get $1 - call $~lib/map/Map~visit + call $"~lib/map/Map~visit" return end local.get $0 local.get $1 - call $~lib/map/Map~visit + call $"~lib/map/Map~visit" return end local.get $0 @@ -5617,12 +5616,12 @@ end local.get $0 local.get $1 - call $~lib/map/Map~visit + call $"~lib/map/Map~visit" return end local.get $0 local.get $1 - call $~lib/map/Map~visit + call $"~lib/map/Map~visit" return end local.get $0 @@ -5632,12 +5631,12 @@ end local.get $0 local.get $1 - call $~lib/map/Map~visit + call $"~lib/map/Map~visit" return end local.get $0 local.get $1 - call $~lib/map/Map~visit + call $"~lib/map/Map~visit" return end local.get $0 @@ -5647,12 +5646,12 @@ end local.get $0 local.get $1 - call $~lib/map/Map~visit + call $"~lib/map/Map~visit" return end local.get $0 local.get $1 - call $~lib/map/Map~visit + call $"~lib/map/Map~visit" return end local.get $0 @@ -5662,12 +5661,12 @@ end local.get $0 local.get $1 - call $~lib/map/Map~visit + call $"~lib/map/Map~visit" return end local.get $0 local.get $1 - call $~lib/map/Map~visit + call $"~lib/map/Map~visit" return end local.get $0 @@ -5677,12 +5676,12 @@ end local.get $0 local.get $1 - call $~lib/map/Map~visit + call $"~lib/map/Map~visit" return end local.get $0 local.get $1 - call $~lib/map/Map~visit + call $"~lib/map/Map~visit" return end local.get $0 @@ -5692,12 +5691,12 @@ end local.get $0 local.get $1 - call $~lib/map/Map~visit + call $"~lib/map/Map~visit" return end local.get $0 local.get $1 - call $~lib/map/Map~visit + call $"~lib/map/Map~visit" return end local.get $0 @@ -5707,12 +5706,12 @@ end local.get $0 local.get $1 - call $~lib/map/Map~visit + call $"~lib/map/Map~visit" return end local.get $0 local.get $1 - call $~lib/map/Map~visit + call $"~lib/map/Map~visit" return end local.get $0 @@ -5722,7 +5721,7 @@ end local.get $0 local.get $1 - call $~lib/map/Map~visit + call $"~lib/map/Map~visit" return end unreachable @@ -5743,7 +5742,7 @@ unreachable end ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $"~lib/map/Map#constructor" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -5782,7 +5781,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -5792,7 +5791,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -5801,9 +5800,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.0 + br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -5812,7 +5811,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -5820,7 +5819,7 @@ i32.store offset=4 local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -5828,7 +5827,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -5836,7 +5835,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -5845,7 +5844,7 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $~lib/map/Map#find (param $this i32) (param $key i32) (param $hashCode i32) (result i32) + (func $"~lib/map/Map#find" (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) (local $taggedNext i32) (local $5 i32) @@ -5863,7 +5862,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $5 @@ -5871,7 +5870,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -5882,7 +5881,7 @@ local.get $entry if local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" local.set $taggedNext local.get $taggedNext i32.const 1 @@ -5890,7 +5889,7 @@ i32.eqz if (result i32) local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" i32.extend8_s local.get $key i32.extend8_s @@ -5926,7 +5925,7 @@ local.get $5 return ) - (func $~lib/map/Map#has (param $this i32) (param $key i32) (result i32) + (func $"~lib/map/Map#has" (param $this i32) (param $key i32) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -5945,7 +5944,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" i32.const 0 i32.ne local.set $2 @@ -5956,7 +5955,7 @@ local.get $2 return ) - (func $~lib/map/Map#rehash (param $this i32) (param $newBucketsMask i32) + (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) (local $newBucketsCapacity i32) (local $newBuckets i32) (local $newEntriesCapacity i32) @@ -6002,9 +6001,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.1 + br $"~lib/map/ENTRY_SIZE|inlined.1" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -6016,7 +6015,7 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $oldPtr local.get $oldPtr local.get $this @@ -6025,10 +6024,10 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entriesOffset - block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + call $"~lib/map/Map#get:entriesOffset" + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.2 + br $"~lib/map/ENTRY_SIZE|inlined.2" end i32.mul i32.add @@ -6043,7 +6042,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -6051,15 +6050,15 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" local.get $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" local.get $oldEntryKey call $~lib/util/hash/HASH local.get $newBucketsMask @@ -6074,22 +6073,22 @@ local.get $newEntry local.get $newBucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $newBucketPtrBase local.get $newPtr i32.store local.get $newPtr - block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.3 + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add local.set $newPtr end local.get $oldPtr - block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.4 + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add local.set $oldPtr @@ -6108,7 +6107,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -6116,7 +6115,7 @@ i32.store offset=8 local.get $14 local.get $newBucketsMask - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -6129,7 +6128,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -6137,7 +6136,7 @@ i32.store offset=8 local.get $14 local.get $newEntriesCapacity - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -6150,14 +6149,14 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#get:entriesCount - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#get:entriesCount" + call $"~lib/map/Map#set:entriesOffset" global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set (param $this i32) (param $key i32) (param $value i32) (result i32) + (func $"~lib/map/Map#set" (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) (local $entry i32) (local $entries i32) @@ -6186,13 +6185,13 @@ local.get $8 local.get $key local.get $hashCode - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry if local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop else @@ -6202,14 +6201,14 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" 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:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.eq if local.get $this @@ -6224,14 +6223,14 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -6244,7 +6243,7 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" else local.get $this local.set $8 @@ -6252,13 +6251,13 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl i32.const 1 i32.or end - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer local.get $this @@ -6267,7 +6266,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=8 local.get $entries @@ -6283,27 +6282,27 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.tee $6 i32.const 1 i32.add - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.5 + br $"~lib/map/ENTRY_SIZE|inlined.5" end i32.mul i32.add local.set $entry local.get $entry local.get $key - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" i32.const 0 drop local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this @@ -6318,17 +6317,17 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" 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 + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $8 @@ -6336,7 +6335,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -6345,7 +6344,7 @@ local.get $entry local.get $bucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase local.get $entry i32.store @@ -6359,7 +6358,7 @@ local.get $8 return ) - (func $~lib/map/Map#get (param $this i32) (param $key i32) (result i32) + (func $"~lib/map/Map#get" (param $this i32) (param $key i32) (result i32) (local $entry i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -6379,7 +6378,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry i32.eqz @@ -6392,7 +6391,7 @@ unreachable end local.get $entry - call $~lib/map/MapEntry#get:value + call $"~lib/map/MapEntry#get:value" local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -6401,7 +6400,7 @@ local.get $3 return ) - (func $~lib/map/Map#get:size (param $this i32) (result i32) + (func $"~lib/map/Map#get:size" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -6417,7 +6416,7 @@ local.get $1 i32.store local.get $1 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -6780,7 +6779,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#keys (param $this i32) (result i32) + (func $"~lib/map/Map#keys" (param $this i32) (result i32) (local $start i32) (local $size i32) (local $keys i32) @@ -6803,7 +6802,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $start local.get $this local.set $8 @@ -6811,7 +6810,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -6830,15 +6829,15 @@ if local.get $start local.get $i - block $~lib/map/ENTRY_SIZE|inlined.6 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.6" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.6 + br $"~lib/map/ENTRY_SIZE|inlined.6" end i32.mul i32.add local.set $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -6856,7 +6855,7 @@ local.set $length local.get $7 local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" call $~lib/array/Array#__set end local.get $i @@ -7118,7 +7117,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#values (param $this i32) (result i32) + (func $"~lib/map/Map#values" (param $this i32) (result i32) (local $start i32) (local $size i32) (local $values i32) @@ -7141,7 +7140,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $start local.get $this local.set $8 @@ -7149,7 +7148,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -7168,15 +7167,15 @@ if local.get $start local.get $i - block $~lib/map/ENTRY_SIZE|inlined.7 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.7" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.7 + br $"~lib/map/ENTRY_SIZE|inlined.7" end i32.mul i32.add local.set $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -7194,7 +7193,7 @@ local.set $length local.get $7 local.get $entry - call $~lib/map/MapEntry#get:value + call $"~lib/map/MapEntry#get:value" call $~lib/array/Array#__set end local.get $i @@ -7221,7 +7220,7 @@ local.get $8 return ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $"~lib/map/Map#constructor" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -7260,7 +7259,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -7270,7 +7269,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -7279,9 +7278,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 8 - br $~lib/map/ENTRY_SIZE|inlined.0 + br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -7290,7 +7289,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -7298,7 +7297,7 @@ i32.store offset=4 local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -7306,7 +7305,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -7314,7 +7313,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -7323,7 +7322,7 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $"~lib/map/Map#constructor" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -7362,7 +7361,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -7372,7 +7371,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -7381,9 +7380,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.0 + br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -7392,7 +7391,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -7400,7 +7399,7 @@ i32.store offset=4 local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -7408,7 +7407,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -7416,7 +7415,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -7554,7 +7553,7 @@ local.get $3 return ) - (func $~lib/map/Map#find (param $this i32) (param $key i32) (param $hashCode i32) (result i32) + (func $"~lib/map/Map#find" (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) (local $taggedNext i32) (local $5 i32) @@ -7572,7 +7571,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $5 @@ -7580,7 +7579,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -7591,7 +7590,7 @@ local.get $entry if local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" local.set $taggedNext local.get $taggedNext i32.const 1 @@ -7599,7 +7598,7 @@ i32.eqz if (result i32) local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" i32.extend8_s local.get $key i32.extend8_s @@ -7635,7 +7634,7 @@ local.get $5 return ) - (func $~lib/map/Map#rehash (param $this i32) (param $newBucketsMask i32) + (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) (local $newBucketsCapacity i32) (local $newBuckets i32) (local $newEntriesCapacity i32) @@ -7681,9 +7680,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) i32.const 8 - br $~lib/map/ENTRY_SIZE|inlined.1 + br $"~lib/map/ENTRY_SIZE|inlined.1" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -7695,7 +7694,7 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $oldPtr local.get $oldPtr local.get $this @@ -7704,10 +7703,10 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entriesOffset - block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + call $"~lib/map/Map#get:entriesOffset" + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) i32.const 8 - br $~lib/map/ENTRY_SIZE|inlined.2 + br $"~lib/map/ENTRY_SIZE|inlined.2" end i32.mul i32.add @@ -7722,7 +7721,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -7730,15 +7729,15 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" local.get $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" local.get $oldEntryKey call $~lib/util/hash/HASH local.get $newBucketsMask @@ -7753,22 +7752,22 @@ local.get $newEntry local.get $newBucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $newBucketPtrBase local.get $newPtr i32.store local.get $newPtr - block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 8 - br $~lib/map/ENTRY_SIZE|inlined.3 + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add local.set $newPtr end local.get $oldPtr - block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 8 - br $~lib/map/ENTRY_SIZE|inlined.4 + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add local.set $oldPtr @@ -7787,7 +7786,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -7795,7 +7794,7 @@ i32.store offset=8 local.get $14 local.get $newBucketsMask - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -7808,7 +7807,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -7816,7 +7815,7 @@ i32.store offset=8 local.get $14 local.get $newEntriesCapacity - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -7829,14 +7828,14 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#get:entriesCount - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#get:entriesCount" + call $"~lib/map/Map#set:entriesOffset" global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set (param $this i32) (param $key i32) (param $value i32) (result i32) + (func $"~lib/map/Map#set" (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) (local $entry i32) (local $entries i32) @@ -7865,13 +7864,13 @@ local.get $8 local.get $key local.get $hashCode - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry if local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop else @@ -7881,14 +7880,14 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" 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:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.eq if local.get $this @@ -7903,14 +7902,14 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -7923,7 +7922,7 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" else local.get $this local.set $8 @@ -7931,13 +7930,13 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl i32.const 1 i32.or end - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer local.get $this @@ -7946,7 +7945,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=8 local.get $entries @@ -7962,27 +7961,27 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.tee $6 i32.const 1 i32.add - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) i32.const 8 - br $~lib/map/ENTRY_SIZE|inlined.5 + br $"~lib/map/ENTRY_SIZE|inlined.5" end i32.mul i32.add local.set $entry local.get $entry local.get $key - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" i32.const 0 drop local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this @@ -7997,17 +7996,17 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" 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 + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $8 @@ -8015,7 +8014,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -8024,7 +8023,7 @@ local.get $entry local.get $bucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase local.get $entry i32.store @@ -8038,7 +8037,7 @@ local.get $8 return ) - (func $~lib/map/Map#find (param $this i32) (param $key i32) (param $hashCode i32) (result i32) + (func $"~lib/map/Map#find" (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) (local $taggedNext i32) (local $5 i32) @@ -8056,7 +8055,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $5 @@ -8064,7 +8063,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -8075,7 +8074,7 @@ local.get $entry if local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" local.set $taggedNext local.get $taggedNext i32.const 1 @@ -8083,7 +8082,7 @@ i32.eqz if (result i32) local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.get $key i32.eq else @@ -8117,7 +8116,7 @@ local.get $5 return ) - (func $~lib/map/Map#rehash (param $this i32) (param $newBucketsMask i32) + (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) (local $newBucketsCapacity i32) (local $newBuckets i32) (local $newEntriesCapacity i32) @@ -8163,9 +8162,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.1 + br $"~lib/map/ENTRY_SIZE|inlined.1" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -8177,7 +8176,7 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $oldPtr local.get $oldPtr local.get $this @@ -8186,10 +8185,10 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entriesOffset - block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + call $"~lib/map/Map#get:entriesOffset" + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.2 + br $"~lib/map/ENTRY_SIZE|inlined.2" end i32.mul i32.add @@ -8204,7 +8203,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -8212,15 +8211,15 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" local.get $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" local.get $oldEntryKey call $~lib/util/hash/HASH local.get $newBucketsMask @@ -8235,22 +8234,22 @@ local.get $newEntry local.get $newBucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $newBucketPtrBase local.get $newPtr i32.store local.get $newPtr - block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.3 + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add local.set $newPtr end local.get $oldPtr - block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.4 + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add local.set $oldPtr @@ -8269,7 +8268,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -8277,7 +8276,7 @@ i32.store offset=8 local.get $14 local.get $newBucketsMask - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -8290,7 +8289,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -8298,7 +8297,7 @@ i32.store offset=8 local.get $14 local.get $newEntriesCapacity - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -8311,14 +8310,14 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#get:entriesCount - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#get:entriesCount" + call $"~lib/map/Map#set:entriesOffset" global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set (param $this i32) (param $key i32) (param $value i32) (result i32) + (func $"~lib/map/Map#set" (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) (local $entry i32) (local $entries i32) @@ -8347,13 +8346,13 @@ local.get $8 local.get $key local.get $hashCode - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry if local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop else @@ -8363,14 +8362,14 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" 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:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.eq if local.get $this @@ -8385,14 +8384,14 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -8405,7 +8404,7 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" else local.get $this local.set $8 @@ -8413,13 +8412,13 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl i32.const 1 i32.or end - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer local.get $this @@ -8428,7 +8427,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=8 local.get $entries @@ -8444,27 +8443,27 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.tee $6 i32.const 1 i32.add - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.5 + br $"~lib/map/ENTRY_SIZE|inlined.5" end i32.mul i32.add local.set $entry local.get $entry local.get $key - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" i32.const 0 drop local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this @@ -8479,17 +8478,17 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" 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 + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $8 @@ -8497,7 +8496,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -8506,7 +8505,7 @@ local.get $entry local.get $bucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase local.get $entry i32.store @@ -8520,7 +8519,7 @@ local.get $8 return ) - (func $~lib/map/Map#get:size (param $this i32) (result i32) + (func $"~lib/map/Map#get:size" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -8536,7 +8535,7 @@ local.get $1 i32.store local.get $1 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -8545,7 +8544,7 @@ local.get $1 return ) - (func $~lib/map/Map#get:size (param $this i32) (result i32) + (func $"~lib/map/Map#get:size" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -8561,7 +8560,7 @@ local.get $1 i32.store local.get $1 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -8570,7 +8569,7 @@ local.get $1 return ) - (func $~lib/map/Map#delete (param $this i32) (param $key i32) (result i32) + (func $"~lib/map/Map#delete" (param $this i32) (param $key i32) (result i32) (local $entry i32) (local $halfBucketsMask i32) (local $4 i32) @@ -8593,7 +8592,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry i32.eqz @@ -8609,10 +8608,10 @@ end local.get $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.or - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer @@ -8625,17 +8624,17 @@ local.get $6 i32.store offset=4 local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.sub - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shr_u local.set $halfBucketsMask @@ -8650,7 +8649,7 @@ local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.tee $5 local.get $4 local.get $5 @@ -8664,14 +8663,14 @@ local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -8688,7 +8687,7 @@ i32.store local.get $6 local.get $halfBucketsMask - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end i32.const 1 local.set $6 @@ -8699,7 +8698,7 @@ local.get $6 return ) - (func $~lib/map/Map#clear (param $this i32) + (func $"~lib/map/Map#clear" (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -8725,7 +8724,7 @@ local.get $1 i32.store offset=4 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -8735,7 +8734,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -8744,9 +8743,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.8 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.8" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.8 + br $"~lib/map/ENTRY_SIZE|inlined.8" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -8755,7 +8754,7 @@ local.get $1 i32.store offset=4 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -8763,7 +8762,7 @@ i32.store local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -8771,7 +8770,7 @@ i32.store local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -8779,13 +8778,13 @@ i32.store local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/map/testNumeric + (func $"std/map/testNumeric" (local $map i32) (local $k i32) (local $k|2 i32) @@ -8810,7 +8809,7 @@ memory.fill global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $map i32.store i32.const 0 @@ -8827,7 +8826,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -8848,7 +8847,7 @@ i32.const 10 local.get $k i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -8857,7 +8856,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -8874,7 +8873,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 10 local.get $k i32.add @@ -8901,7 +8900,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -8927,7 +8926,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -8944,7 +8943,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 10 local.get $k|2 i32.add @@ -8968,7 +8967,7 @@ i32.const 20 local.get $k|2 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -8977,7 +8976,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -8994,7 +8993,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 20 local.get $k|2 i32.add @@ -9021,7 +9020,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -9040,7 +9039,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#keys + call $"~lib/map/Map#keys" local.tee $keys i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -9050,17 +9049,17 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#values + call $"~lib/map/Map#values" local.tee $vals i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $keyMap i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $valMap i32.store offset=20 i32.const 0 @@ -9101,7 +9100,7 @@ i32.store offset=4 local.get $12 local.get $key - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -9120,7 +9119,7 @@ local.get $value i32.const 20 i32.sub - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -9138,7 +9137,7 @@ local.get $12 local.get $key local.get $key - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $valMap local.set $12 @@ -9152,7 +9151,7 @@ local.get $value i32.const 20 i32.sub - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $index i32.const 1 @@ -9167,7 +9166,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -9185,7 +9184,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -9211,7 +9210,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -9228,7 +9227,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 20 local.get $k|10 i32.add @@ -9249,7 +9248,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" drop local.get $map local.set $12 @@ -9258,7 +9257,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -9282,7 +9281,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz @@ -9308,7 +9307,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -9329,7 +9328,7 @@ i32.const 10 local.get $k|11 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -9338,7 +9337,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -9355,7 +9354,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" drop local.get $map local.set $12 @@ -9364,7 +9363,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -9388,7 +9387,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz @@ -9406,14 +9405,14 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#clear + call $"~lib/map/Map#clear" local.get $map local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 0 i32.eq i32.eqz @@ -9430,7 +9429,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $"~lib/map/Map#constructor" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -9469,7 +9468,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -9479,7 +9478,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -9488,9 +9487,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.0 + br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -9499,7 +9498,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -9507,7 +9506,7 @@ i32.store offset=4 local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -9515,7 +9514,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -9523,7 +9522,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -9532,7 +9531,7 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $~lib/map/Map#find (param $this i32) (param $key i32) (param $hashCode i32) (result i32) + (func $"~lib/map/Map#find" (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) (local $taggedNext i32) (local $5 i32) @@ -9550,7 +9549,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $5 @@ -9558,7 +9557,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -9569,7 +9568,7 @@ local.get $entry if local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" local.set $taggedNext local.get $taggedNext i32.const 1 @@ -9577,7 +9576,7 @@ i32.eqz if (result i32) local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" i32.const 255 i32.and local.get $key @@ -9615,7 +9614,7 @@ local.get $5 return ) - (func $~lib/map/Map#has (param $this i32) (param $key i32) (result i32) + (func $"~lib/map/Map#has" (param $this i32) (param $key i32) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -9634,7 +9633,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" i32.const 0 i32.ne local.set $2 @@ -9645,7 +9644,7 @@ local.get $2 return ) - (func $~lib/map/Map#rehash (param $this i32) (param $newBucketsMask i32) + (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) (local $newBucketsCapacity i32) (local $newBuckets i32) (local $newEntriesCapacity i32) @@ -9691,9 +9690,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.1 + br $"~lib/map/ENTRY_SIZE|inlined.1" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -9705,7 +9704,7 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $oldPtr local.get $oldPtr local.get $this @@ -9714,10 +9713,10 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entriesOffset - block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + call $"~lib/map/Map#get:entriesOffset" + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.2 + br $"~lib/map/ENTRY_SIZE|inlined.2" end i32.mul i32.add @@ -9732,7 +9731,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -9740,15 +9739,15 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" local.get $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" local.get $oldEntryKey call $~lib/util/hash/HASH local.get $newBucketsMask @@ -9763,22 +9762,22 @@ local.get $newEntry local.get $newBucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $newBucketPtrBase local.get $newPtr i32.store local.get $newPtr - block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.3 + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add local.set $newPtr end local.get $oldPtr - block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.4 + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add local.set $oldPtr @@ -9797,7 +9796,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -9805,7 +9804,7 @@ i32.store offset=8 local.get $14 local.get $newBucketsMask - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -9818,7 +9817,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -9826,7 +9825,7 @@ i32.store offset=8 local.get $14 local.get $newEntriesCapacity - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -9839,14 +9838,14 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#get:entriesCount - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#get:entriesCount" + call $"~lib/map/Map#set:entriesOffset" global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set (param $this i32) (param $key i32) (param $value i32) (result i32) + (func $"~lib/map/Map#set" (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) (local $entry i32) (local $entries i32) @@ -9875,13 +9874,13 @@ local.get $8 local.get $key local.get $hashCode - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry if local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop else @@ -9891,14 +9890,14 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" 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:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.eq if local.get $this @@ -9913,14 +9912,14 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -9933,7 +9932,7 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" else local.get $this local.set $8 @@ -9941,13 +9940,13 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl i32.const 1 i32.or end - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer local.get $this @@ -9956,7 +9955,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=8 local.get $entries @@ -9972,27 +9971,27 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.tee $6 i32.const 1 i32.add - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.5 + br $"~lib/map/ENTRY_SIZE|inlined.5" end i32.mul i32.add local.set $entry local.get $entry local.get $key - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" i32.const 0 drop local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this @@ -10007,17 +10006,17 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" 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 + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $8 @@ -10025,7 +10024,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -10034,7 +10033,7 @@ local.get $entry local.get $bucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase local.get $entry i32.store @@ -10048,7 +10047,7 @@ local.get $8 return ) - (func $~lib/map/Map#get (param $this i32) (param $key i32) (result i32) + (func $"~lib/map/Map#get" (param $this i32) (param $key i32) (result i32) (local $entry i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -10068,7 +10067,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry i32.eqz @@ -10081,7 +10080,7 @@ unreachable end local.get $entry - call $~lib/map/MapEntry#get:value + call $"~lib/map/MapEntry#get:value" local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -10090,7 +10089,7 @@ local.get $3 return ) - (func $~lib/map/Map#get:size (param $this i32) (result i32) + (func $"~lib/map/Map#get:size" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -10106,7 +10105,7 @@ local.get $1 i32.store local.get $1 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -10350,7 +10349,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#keys (param $this i32) (result i32) + (func $"~lib/map/Map#keys" (param $this i32) (result i32) (local $start i32) (local $size i32) (local $keys i32) @@ -10373,7 +10372,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $start local.get $this local.set $8 @@ -10381,7 +10380,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -10400,15 +10399,15 @@ if local.get $start local.get $i - block $~lib/map/ENTRY_SIZE|inlined.6 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.6" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.6 + br $"~lib/map/ENTRY_SIZE|inlined.6" end i32.mul i32.add local.set $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -10426,7 +10425,7 @@ local.set $length local.get $7 local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" call $~lib/array/Array#__set end local.get $i @@ -10453,7 +10452,7 @@ local.get $8 return ) - (func $~lib/map/Map#values (param $this i32) (result i32) + (func $"~lib/map/Map#values" (param $this i32) (result i32) (local $start i32) (local $size i32) (local $values i32) @@ -10476,7 +10475,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $start local.get $this local.set $8 @@ -10484,7 +10483,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -10503,15 +10502,15 @@ if local.get $start local.get $i - block $~lib/map/ENTRY_SIZE|inlined.7 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.7" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.7 + br $"~lib/map/ENTRY_SIZE|inlined.7" end i32.mul i32.add local.set $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -10529,7 +10528,7 @@ local.set $length local.get $7 local.get $entry - call $~lib/map/MapEntry#get:value + call $"~lib/map/MapEntry#get:value" call $~lib/array/Array#__set end local.get $i @@ -10556,7 +10555,7 @@ local.get $8 return ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $"~lib/map/Map#constructor" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -10595,7 +10594,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -10605,7 +10604,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -10614,9 +10613,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 8 - br $~lib/map/ENTRY_SIZE|inlined.0 + br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -10625,7 +10624,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -10633,7 +10632,7 @@ i32.store offset=4 local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -10641,7 +10640,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -10649,7 +10648,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -10735,7 +10734,7 @@ local.get $3 return ) - (func $~lib/map/Map#find (param $this i32) (param $key i32) (param $hashCode i32) (result i32) + (func $"~lib/map/Map#find" (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) (local $taggedNext i32) (local $5 i32) @@ -10753,7 +10752,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $5 @@ -10761,7 +10760,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -10772,7 +10771,7 @@ local.get $entry if local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" local.set $taggedNext local.get $taggedNext i32.const 1 @@ -10780,7 +10779,7 @@ i32.eqz if (result i32) local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" i32.const 255 i32.and local.get $key @@ -10818,7 +10817,7 @@ local.get $5 return ) - (func $~lib/map/Map#rehash (param $this i32) (param $newBucketsMask i32) + (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) (local $newBucketsCapacity i32) (local $newBuckets i32) (local $newEntriesCapacity i32) @@ -10864,9 +10863,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) i32.const 8 - br $~lib/map/ENTRY_SIZE|inlined.1 + br $"~lib/map/ENTRY_SIZE|inlined.1" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -10878,7 +10877,7 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $oldPtr local.get $oldPtr local.get $this @@ -10887,10 +10886,10 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entriesOffset - block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + call $"~lib/map/Map#get:entriesOffset" + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) i32.const 8 - br $~lib/map/ENTRY_SIZE|inlined.2 + br $"~lib/map/ENTRY_SIZE|inlined.2" end i32.mul i32.add @@ -10905,7 +10904,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -10913,15 +10912,15 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" local.get $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" local.get $oldEntryKey call $~lib/util/hash/HASH local.get $newBucketsMask @@ -10936,22 +10935,22 @@ local.get $newEntry local.get $newBucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $newBucketPtrBase local.get $newPtr i32.store local.get $newPtr - block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 8 - br $~lib/map/ENTRY_SIZE|inlined.3 + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add local.set $newPtr end local.get $oldPtr - block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 8 - br $~lib/map/ENTRY_SIZE|inlined.4 + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add local.set $oldPtr @@ -10970,7 +10969,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -10978,7 +10977,7 @@ i32.store offset=8 local.get $14 local.get $newBucketsMask - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -10991,7 +10990,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -10999,7 +10998,7 @@ i32.store offset=8 local.get $14 local.get $newEntriesCapacity - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -11012,14 +11011,14 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#get:entriesCount - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#get:entriesCount" + call $"~lib/map/Map#set:entriesOffset" global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set (param $this i32) (param $key i32) (param $value i32) (result i32) + (func $"~lib/map/Map#set" (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) (local $entry i32) (local $entries i32) @@ -11048,13 +11047,13 @@ local.get $8 local.get $key local.get $hashCode - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry if local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop else @@ -11064,14 +11063,14 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" 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:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.eq if local.get $this @@ -11086,14 +11085,14 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -11106,7 +11105,7 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" else local.get $this local.set $8 @@ -11114,13 +11113,13 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl i32.const 1 i32.or end - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer local.get $this @@ -11129,7 +11128,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=8 local.get $entries @@ -11145,27 +11144,27 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.tee $6 i32.const 1 i32.add - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) i32.const 8 - br $~lib/map/ENTRY_SIZE|inlined.5 + br $"~lib/map/ENTRY_SIZE|inlined.5" end i32.mul i32.add local.set $entry local.get $entry local.get $key - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" i32.const 0 drop local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this @@ -11180,17 +11179,17 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" 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 + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $8 @@ -11198,7 +11197,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -11207,7 +11206,7 @@ local.get $entry local.get $bucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase local.get $entry i32.store @@ -11221,7 +11220,7 @@ local.get $8 return ) - (func $~lib/map/Map#get:size (param $this i32) (result i32) + (func $"~lib/map/Map#get:size" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -11237,7 +11236,7 @@ local.get $1 i32.store local.get $1 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -11246,7 +11245,7 @@ local.get $1 return ) - (func $~lib/map/Map#delete (param $this i32) (param $key i32) (result i32) + (func $"~lib/map/Map#delete" (param $this i32) (param $key i32) (result i32) (local $entry i32) (local $halfBucketsMask i32) (local $4 i32) @@ -11269,7 +11268,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry i32.eqz @@ -11285,10 +11284,10 @@ end local.get $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.or - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer @@ -11301,17 +11300,17 @@ local.get $6 i32.store offset=4 local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.sub - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shr_u local.set $halfBucketsMask @@ -11326,7 +11325,7 @@ local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.tee $5 local.get $4 local.get $5 @@ -11340,14 +11339,14 @@ local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -11364,7 +11363,7 @@ i32.store local.get $6 local.get $halfBucketsMask - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end i32.const 1 local.set $6 @@ -11375,7 +11374,7 @@ local.get $6 return ) - (func $~lib/map/Map#clear (param $this i32) + (func $"~lib/map/Map#clear" (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -11401,7 +11400,7 @@ local.get $1 i32.store offset=4 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -11411,7 +11410,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -11420,9 +11419,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.8 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.8" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.8 + br $"~lib/map/ENTRY_SIZE|inlined.8" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -11431,7 +11430,7 @@ local.get $1 i32.store offset=4 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -11439,7 +11438,7 @@ i32.store local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -11447,7 +11446,7 @@ i32.store local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -11455,13 +11454,13 @@ i32.store local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/map/testNumeric + (func $"std/map/testNumeric" (local $map i32) (local $k i32) (local $k|2 i32) @@ -11486,7 +11485,7 @@ memory.fill global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $map i32.store i32.const 0 @@ -11503,7 +11502,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -11524,7 +11523,7 @@ i32.const 10 local.get $k i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -11533,7 +11532,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -11550,7 +11549,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 10 local.get $k i32.add @@ -11577,7 +11576,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -11603,7 +11602,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -11620,7 +11619,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 10 local.get $k|2 i32.add @@ -11644,7 +11643,7 @@ i32.const 20 local.get $k|2 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -11653,7 +11652,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -11670,7 +11669,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 20 local.get $k|2 i32.add @@ -11697,7 +11696,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -11716,7 +11715,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#keys + call $"~lib/map/Map#keys" local.tee $keys i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -11726,17 +11725,17 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#values + call $"~lib/map/Map#values" local.tee $vals i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $keyMap i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $valMap i32.store offset=20 i32.const 0 @@ -11777,7 +11776,7 @@ i32.store offset=4 local.get $12 local.get $key - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -11796,7 +11795,7 @@ local.get $value i32.const 20 i32.sub - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -11814,7 +11813,7 @@ local.get $12 local.get $key local.get $key - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $valMap local.set $12 @@ -11828,7 +11827,7 @@ local.get $value i32.const 20 i32.sub - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $index i32.const 1 @@ -11843,7 +11842,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -11861,7 +11860,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -11887,7 +11886,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -11904,7 +11903,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 20 local.get $k|10 i32.add @@ -11925,7 +11924,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" drop local.get $map local.set $12 @@ -11934,7 +11933,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -11958,7 +11957,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz @@ -11984,7 +11983,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -12005,7 +12004,7 @@ i32.const 10 local.get $k|11 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -12014,7 +12013,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -12031,7 +12030,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" drop local.get $map local.set $12 @@ -12040,7 +12039,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -12064,7 +12063,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz @@ -12082,14 +12081,14 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#clear + call $"~lib/map/Map#clear" local.get $map local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 0 i32.eq i32.eqz @@ -12106,7 +12105,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $"~lib/map/Map#constructor" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -12145,7 +12144,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -12155,7 +12154,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -12164,9 +12163,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.0 + br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -12175,7 +12174,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -12183,7 +12182,7 @@ i32.store offset=4 local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -12191,7 +12190,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -12199,7 +12198,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -12208,7 +12207,7 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $~lib/map/Map#find (param $this i32) (param $key i32) (param $hashCode i32) (result i32) + (func $"~lib/map/Map#find" (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) (local $taggedNext i32) (local $5 i32) @@ -12226,7 +12225,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $5 @@ -12234,7 +12233,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -12245,7 +12244,7 @@ local.get $entry if local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" local.set $taggedNext local.get $taggedNext i32.const 1 @@ -12253,7 +12252,7 @@ i32.eqz if (result i32) local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" i32.extend16_s local.get $key i32.extend16_s @@ -12289,7 +12288,7 @@ local.get $5 return ) - (func $~lib/map/Map#has (param $this i32) (param $key i32) (result i32) + (func $"~lib/map/Map#has" (param $this i32) (param $key i32) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -12308,7 +12307,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" i32.const 0 i32.ne local.set $2 @@ -12319,7 +12318,7 @@ local.get $2 return ) - (func $~lib/map/Map#rehash (param $this i32) (param $newBucketsMask i32) + (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) (local $newBucketsCapacity i32) (local $newBuckets i32) (local $newEntriesCapacity i32) @@ -12365,9 +12364,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.1 + br $"~lib/map/ENTRY_SIZE|inlined.1" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -12379,7 +12378,7 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $oldPtr local.get $oldPtr local.get $this @@ -12388,10 +12387,10 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entriesOffset - block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + call $"~lib/map/Map#get:entriesOffset" + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.2 + br $"~lib/map/ENTRY_SIZE|inlined.2" end i32.mul i32.add @@ -12406,7 +12405,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -12414,15 +12413,15 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" local.get $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" local.get $oldEntryKey call $~lib/util/hash/HASH local.get $newBucketsMask @@ -12437,22 +12436,22 @@ local.get $newEntry local.get $newBucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $newBucketPtrBase local.get $newPtr i32.store local.get $newPtr - block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.3 + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add local.set $newPtr end local.get $oldPtr - block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.4 + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add local.set $oldPtr @@ -12471,7 +12470,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -12479,7 +12478,7 @@ i32.store offset=8 local.get $14 local.get $newBucketsMask - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -12492,7 +12491,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -12500,7 +12499,7 @@ i32.store offset=8 local.get $14 local.get $newEntriesCapacity - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -12513,14 +12512,14 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#get:entriesCount - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#get:entriesCount" + call $"~lib/map/Map#set:entriesOffset" global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set (param $this i32) (param $key i32) (param $value i32) (result i32) + (func $"~lib/map/Map#set" (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) (local $entry i32) (local $entries i32) @@ -12549,13 +12548,13 @@ local.get $8 local.get $key local.get $hashCode - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry if local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop else @@ -12565,14 +12564,14 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" 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:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.eq if local.get $this @@ -12587,14 +12586,14 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -12607,7 +12606,7 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" else local.get $this local.set $8 @@ -12615,13 +12614,13 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl i32.const 1 i32.or end - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer local.get $this @@ -12630,7 +12629,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=8 local.get $entries @@ -12646,27 +12645,27 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.tee $6 i32.const 1 i32.add - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.5 + br $"~lib/map/ENTRY_SIZE|inlined.5" end i32.mul i32.add local.set $entry local.get $entry local.get $key - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" i32.const 0 drop local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this @@ -12681,17 +12680,17 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" 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 + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $8 @@ -12699,7 +12698,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -12708,7 +12707,7 @@ local.get $entry local.get $bucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase local.get $entry i32.store @@ -12722,7 +12721,7 @@ local.get $8 return ) - (func $~lib/map/Map#get (param $this i32) (param $key i32) (result i32) + (func $"~lib/map/Map#get" (param $this i32) (param $key i32) (result i32) (local $entry i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -12742,7 +12741,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry i32.eqz @@ -12755,7 +12754,7 @@ unreachable end local.get $entry - call $~lib/map/MapEntry#get:value + call $"~lib/map/MapEntry#get:value" local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -12764,7 +12763,7 @@ local.get $3 return ) - (func $~lib/map/Map#get:size (param $this i32) (result i32) + (func $"~lib/map/Map#get:size" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -12780,7 +12779,7 @@ local.get $1 i32.store local.get $1 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -13024,7 +13023,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#keys (param $this i32) (result i32) + (func $"~lib/map/Map#keys" (param $this i32) (result i32) (local $start i32) (local $size i32) (local $keys i32) @@ -13047,7 +13046,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $start local.get $this local.set $8 @@ -13055,7 +13054,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -13074,15 +13073,15 @@ if local.get $start local.get $i - block $~lib/map/ENTRY_SIZE|inlined.6 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.6" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.6 + br $"~lib/map/ENTRY_SIZE|inlined.6" end i32.mul i32.add local.set $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -13100,7 +13099,7 @@ local.set $length local.get $7 local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" call $~lib/array/Array#__set end local.get $i @@ -13127,7 +13126,7 @@ local.get $8 return ) - (func $~lib/map/Map#values (param $this i32) (result i32) + (func $"~lib/map/Map#values" (param $this i32) (result i32) (local $start i32) (local $size i32) (local $values i32) @@ -13150,7 +13149,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $start local.get $this local.set $8 @@ -13158,7 +13157,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -13177,15 +13176,15 @@ if local.get $start local.get $i - block $~lib/map/ENTRY_SIZE|inlined.7 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.7" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.7 + br $"~lib/map/ENTRY_SIZE|inlined.7" end i32.mul i32.add local.set $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -13203,7 +13202,7 @@ local.set $length local.get $7 local.get $entry - call $~lib/map/MapEntry#get:value + call $"~lib/map/MapEntry#get:value" call $~lib/array/Array#__set end local.get $i @@ -13230,7 +13229,7 @@ local.get $8 return ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $"~lib/map/Map#constructor" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -13269,7 +13268,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -13279,7 +13278,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -13288,9 +13287,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 8 - br $~lib/map/ENTRY_SIZE|inlined.0 + br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -13299,7 +13298,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -13307,7 +13306,7 @@ i32.store offset=4 local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -13315,7 +13314,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -13323,7 +13322,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -13409,7 +13408,7 @@ local.get $3 return ) - (func $~lib/map/Map#find (param $this i32) (param $key i32) (param $hashCode i32) (result i32) + (func $"~lib/map/Map#find" (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) (local $taggedNext i32) (local $5 i32) @@ -13427,7 +13426,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $5 @@ -13435,7 +13434,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -13446,7 +13445,7 @@ local.get $entry if local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" local.set $taggedNext local.get $taggedNext i32.const 1 @@ -13454,7 +13453,7 @@ i32.eqz if (result i32) local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" i32.extend16_s local.get $key i32.extend16_s @@ -13490,7 +13489,7 @@ local.get $5 return ) - (func $~lib/map/Map#rehash (param $this i32) (param $newBucketsMask i32) + (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) (local $newBucketsCapacity i32) (local $newBuckets i32) (local $newEntriesCapacity i32) @@ -13536,9 +13535,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) i32.const 8 - br $~lib/map/ENTRY_SIZE|inlined.1 + br $"~lib/map/ENTRY_SIZE|inlined.1" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -13550,7 +13549,7 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $oldPtr local.get $oldPtr local.get $this @@ -13559,10 +13558,10 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entriesOffset - block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + call $"~lib/map/Map#get:entriesOffset" + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) i32.const 8 - br $~lib/map/ENTRY_SIZE|inlined.2 + br $"~lib/map/ENTRY_SIZE|inlined.2" end i32.mul i32.add @@ -13577,7 +13576,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -13585,15 +13584,15 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" local.get $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" local.get $oldEntryKey call $~lib/util/hash/HASH local.get $newBucketsMask @@ -13608,22 +13607,22 @@ local.get $newEntry local.get $newBucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $newBucketPtrBase local.get $newPtr i32.store local.get $newPtr - block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 8 - br $~lib/map/ENTRY_SIZE|inlined.3 + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add local.set $newPtr end local.get $oldPtr - block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 8 - br $~lib/map/ENTRY_SIZE|inlined.4 + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add local.set $oldPtr @@ -13642,7 +13641,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -13650,7 +13649,7 @@ i32.store offset=8 local.get $14 local.get $newBucketsMask - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -13663,7 +13662,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -13671,7 +13670,7 @@ i32.store offset=8 local.get $14 local.get $newEntriesCapacity - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -13684,14 +13683,14 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#get:entriesCount - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#get:entriesCount" + call $"~lib/map/Map#set:entriesOffset" global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set (param $this i32) (param $key i32) (param $value i32) (result i32) + (func $"~lib/map/Map#set" (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) (local $entry i32) (local $entries i32) @@ -13720,13 +13719,13 @@ local.get $8 local.get $key local.get $hashCode - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry if local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop else @@ -13736,14 +13735,14 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" 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:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.eq if local.get $this @@ -13758,14 +13757,14 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -13778,7 +13777,7 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" else local.get $this local.set $8 @@ -13786,13 +13785,13 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl i32.const 1 i32.or end - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer local.get $this @@ -13801,7 +13800,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=8 local.get $entries @@ -13817,27 +13816,27 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.tee $6 i32.const 1 i32.add - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) i32.const 8 - br $~lib/map/ENTRY_SIZE|inlined.5 + br $"~lib/map/ENTRY_SIZE|inlined.5" end i32.mul i32.add local.set $entry local.get $entry local.get $key - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" i32.const 0 drop local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this @@ -13852,17 +13851,17 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" 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 + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $8 @@ -13870,7 +13869,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -13879,7 +13878,7 @@ local.get $entry local.get $bucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase local.get $entry i32.store @@ -13893,7 +13892,7 @@ local.get $8 return ) - (func $~lib/map/Map#get:size (param $this i32) (result i32) + (func $"~lib/map/Map#get:size" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -13909,7 +13908,7 @@ local.get $1 i32.store local.get $1 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -13918,7 +13917,7 @@ local.get $1 return ) - (func $~lib/map/Map#delete (param $this i32) (param $key i32) (result i32) + (func $"~lib/map/Map#delete" (param $this i32) (param $key i32) (result i32) (local $entry i32) (local $halfBucketsMask i32) (local $4 i32) @@ -13941,7 +13940,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry i32.eqz @@ -13957,10 +13956,10 @@ end local.get $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.or - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer @@ -13973,17 +13972,17 @@ local.get $6 i32.store offset=4 local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.sub - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shr_u local.set $halfBucketsMask @@ -13998,7 +13997,7 @@ local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.tee $5 local.get $4 local.get $5 @@ -14012,14 +14011,14 @@ local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -14036,7 +14035,7 @@ i32.store local.get $6 local.get $halfBucketsMask - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end i32.const 1 local.set $6 @@ -14047,7 +14046,7 @@ local.get $6 return ) - (func $~lib/map/Map#clear (param $this i32) + (func $"~lib/map/Map#clear" (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -14073,7 +14072,7 @@ local.get $1 i32.store offset=4 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -14083,7 +14082,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -14092,9 +14091,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.8 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.8" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.8 + br $"~lib/map/ENTRY_SIZE|inlined.8" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -14103,7 +14102,7 @@ local.get $1 i32.store offset=4 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -14111,7 +14110,7 @@ i32.store local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -14119,7 +14118,7 @@ i32.store local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -14127,13 +14126,13 @@ i32.store local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/map/testNumeric + (func $"std/map/testNumeric" (local $map i32) (local $k i32) (local $k|2 i32) @@ -14158,7 +14157,7 @@ memory.fill global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $map i32.store i32.const 0 @@ -14175,7 +14174,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -14196,7 +14195,7 @@ i32.const 10 local.get $k i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -14205,7 +14204,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -14222,7 +14221,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 10 local.get $k i32.add @@ -14249,7 +14248,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -14275,7 +14274,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -14292,7 +14291,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 10 local.get $k|2 i32.add @@ -14316,7 +14315,7 @@ i32.const 20 local.get $k|2 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -14325,7 +14324,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -14342,7 +14341,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 20 local.get $k|2 i32.add @@ -14369,7 +14368,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -14388,7 +14387,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#keys + call $"~lib/map/Map#keys" local.tee $keys i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -14398,17 +14397,17 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#values + call $"~lib/map/Map#values" local.tee $vals i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $keyMap i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $valMap i32.store offset=20 i32.const 0 @@ -14449,7 +14448,7 @@ i32.store offset=4 local.get $12 local.get $key - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -14468,7 +14467,7 @@ local.get $value i32.const 20 i32.sub - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -14486,7 +14485,7 @@ local.get $12 local.get $key local.get $key - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $valMap local.set $12 @@ -14500,7 +14499,7 @@ local.get $value i32.const 20 i32.sub - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $index i32.const 1 @@ -14515,7 +14514,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -14533,7 +14532,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -14559,7 +14558,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -14576,7 +14575,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 20 local.get $k|10 i32.add @@ -14597,7 +14596,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" drop local.get $map local.set $12 @@ -14606,7 +14605,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -14630,7 +14629,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz @@ -14656,7 +14655,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -14677,7 +14676,7 @@ i32.const 10 local.get $k|11 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -14686,7 +14685,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -14703,7 +14702,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" drop local.get $map local.set $12 @@ -14712,7 +14711,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -14736,7 +14735,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz @@ -14754,14 +14753,14 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#clear + call $"~lib/map/Map#clear" local.get $map local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 0 i32.eq i32.eqz @@ -14778,7 +14777,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $"~lib/map/Map#constructor" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -14817,7 +14816,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -14827,7 +14826,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -14836,9 +14835,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.0 + br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -14847,7 +14846,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -14855,7 +14854,7 @@ i32.store offset=4 local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -14863,7 +14862,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -14871,7 +14870,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -14880,7 +14879,7 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $~lib/map/Map#find (param $this i32) (param $key i32) (param $hashCode i32) (result i32) + (func $"~lib/map/Map#find" (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) (local $taggedNext i32) (local $5 i32) @@ -14898,7 +14897,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $5 @@ -14906,7 +14905,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -14917,7 +14916,7 @@ local.get $entry if local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" local.set $taggedNext local.get $taggedNext i32.const 1 @@ -14925,7 +14924,7 @@ i32.eqz if (result i32) local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" i32.const 65535 i32.and local.get $key @@ -14963,7 +14962,7 @@ local.get $5 return ) - (func $~lib/map/Map#has (param $this i32) (param $key i32) (result i32) + (func $"~lib/map/Map#has" (param $this i32) (param $key i32) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -14982,7 +14981,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" i32.const 0 i32.ne local.set $2 @@ -14993,7 +14992,7 @@ local.get $2 return ) - (func $~lib/map/Map#rehash (param $this i32) (param $newBucketsMask i32) + (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) (local $newBucketsCapacity i32) (local $newBuckets i32) (local $newEntriesCapacity i32) @@ -15039,9 +15038,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.1 + br $"~lib/map/ENTRY_SIZE|inlined.1" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -15053,7 +15052,7 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $oldPtr local.get $oldPtr local.get $this @@ -15062,10 +15061,10 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entriesOffset - block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + call $"~lib/map/Map#get:entriesOffset" + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.2 + br $"~lib/map/ENTRY_SIZE|inlined.2" end i32.mul i32.add @@ -15080,7 +15079,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -15088,15 +15087,15 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" local.get $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" local.get $oldEntryKey call $~lib/util/hash/HASH local.get $newBucketsMask @@ -15111,22 +15110,22 @@ local.get $newEntry local.get $newBucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $newBucketPtrBase local.get $newPtr i32.store local.get $newPtr - block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.3 + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add local.set $newPtr end local.get $oldPtr - block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.4 + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add local.set $oldPtr @@ -15145,7 +15144,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -15153,7 +15152,7 @@ i32.store offset=8 local.get $14 local.get $newBucketsMask - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -15166,7 +15165,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -15174,7 +15173,7 @@ i32.store offset=8 local.get $14 local.get $newEntriesCapacity - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -15187,14 +15186,14 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#get:entriesCount - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#get:entriesCount" + call $"~lib/map/Map#set:entriesOffset" global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set (param $this i32) (param $key i32) (param $value i32) (result i32) + (func $"~lib/map/Map#set" (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) (local $entry i32) (local $entries i32) @@ -15223,13 +15222,13 @@ local.get $8 local.get $key local.get $hashCode - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry if local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop else @@ -15239,14 +15238,14 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" 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:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.eq if local.get $this @@ -15261,14 +15260,14 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -15281,7 +15280,7 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" else local.get $this local.set $8 @@ -15289,13 +15288,13 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl i32.const 1 i32.or end - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer local.get $this @@ -15304,7 +15303,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=8 local.get $entries @@ -15320,27 +15319,27 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.tee $6 i32.const 1 i32.add - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.5 + br $"~lib/map/ENTRY_SIZE|inlined.5" end i32.mul i32.add local.set $entry local.get $entry local.get $key - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" i32.const 0 drop local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this @@ -15355,17 +15354,17 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" 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 + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $8 @@ -15373,7 +15372,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -15382,7 +15381,7 @@ local.get $entry local.get $bucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase local.get $entry i32.store @@ -15396,7 +15395,7 @@ local.get $8 return ) - (func $~lib/map/Map#get (param $this i32) (param $key i32) (result i32) + (func $"~lib/map/Map#get" (param $this i32) (param $key i32) (result i32) (local $entry i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -15416,7 +15415,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry i32.eqz @@ -15429,7 +15428,7 @@ unreachable end local.get $entry - call $~lib/map/MapEntry#get:value + call $"~lib/map/MapEntry#get:value" local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -15438,7 +15437,7 @@ local.get $3 return ) - (func $~lib/map/Map#get:size (param $this i32) (result i32) + (func $"~lib/map/Map#get:size" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -15454,7 +15453,7 @@ local.get $1 i32.store local.get $1 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -15698,7 +15697,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#keys (param $this i32) (result i32) + (func $"~lib/map/Map#keys" (param $this i32) (result i32) (local $start i32) (local $size i32) (local $keys i32) @@ -15721,7 +15720,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $start local.get $this local.set $8 @@ -15729,7 +15728,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -15748,15 +15747,15 @@ if local.get $start local.get $i - block $~lib/map/ENTRY_SIZE|inlined.6 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.6" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.6 + br $"~lib/map/ENTRY_SIZE|inlined.6" end i32.mul i32.add local.set $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -15774,7 +15773,7 @@ local.set $length local.get $7 local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" call $~lib/array/Array#__set end local.get $i @@ -15801,7 +15800,7 @@ local.get $8 return ) - (func $~lib/map/Map#values (param $this i32) (result i32) + (func $"~lib/map/Map#values" (param $this i32) (result i32) (local $start i32) (local $size i32) (local $values i32) @@ -15824,7 +15823,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $start local.get $this local.set $8 @@ -15832,7 +15831,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -15851,15 +15850,15 @@ if local.get $start local.get $i - block $~lib/map/ENTRY_SIZE|inlined.7 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.7" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.7 + br $"~lib/map/ENTRY_SIZE|inlined.7" end i32.mul i32.add local.set $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -15877,7 +15876,7 @@ local.set $length local.get $7 local.get $entry - call $~lib/map/MapEntry#get:value + call $"~lib/map/MapEntry#get:value" call $~lib/array/Array#__set end local.get $i @@ -15904,7 +15903,7 @@ local.get $8 return ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $"~lib/map/Map#constructor" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -15943,7 +15942,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -15953,7 +15952,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -15962,9 +15961,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 8 - br $~lib/map/ENTRY_SIZE|inlined.0 + br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -15973,7 +15972,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -15981,7 +15980,7 @@ i32.store offset=4 local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -15989,7 +15988,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -15997,7 +15996,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -16083,7 +16082,7 @@ local.get $3 return ) - (func $~lib/map/Map#find (param $this i32) (param $key i32) (param $hashCode i32) (result i32) + (func $"~lib/map/Map#find" (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) (local $taggedNext i32) (local $5 i32) @@ -16101,7 +16100,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $5 @@ -16109,7 +16108,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -16120,7 +16119,7 @@ local.get $entry if local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" local.set $taggedNext local.get $taggedNext i32.const 1 @@ -16128,7 +16127,7 @@ i32.eqz if (result i32) local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" i32.const 65535 i32.and local.get $key @@ -16166,7 +16165,7 @@ local.get $5 return ) - (func $~lib/map/Map#rehash (param $this i32) (param $newBucketsMask i32) + (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) (local $newBucketsCapacity i32) (local $newBuckets i32) (local $newEntriesCapacity i32) @@ -16212,9 +16211,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) i32.const 8 - br $~lib/map/ENTRY_SIZE|inlined.1 + br $"~lib/map/ENTRY_SIZE|inlined.1" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -16226,7 +16225,7 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $oldPtr local.get $oldPtr local.get $this @@ -16235,10 +16234,10 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entriesOffset - block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + call $"~lib/map/Map#get:entriesOffset" + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) i32.const 8 - br $~lib/map/ENTRY_SIZE|inlined.2 + br $"~lib/map/ENTRY_SIZE|inlined.2" end i32.mul i32.add @@ -16253,7 +16252,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -16261,15 +16260,15 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" local.get $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" local.get $oldEntryKey call $~lib/util/hash/HASH local.get $newBucketsMask @@ -16284,22 +16283,22 @@ local.get $newEntry local.get $newBucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $newBucketPtrBase local.get $newPtr i32.store local.get $newPtr - block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 8 - br $~lib/map/ENTRY_SIZE|inlined.3 + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add local.set $newPtr end local.get $oldPtr - block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 8 - br $~lib/map/ENTRY_SIZE|inlined.4 + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add local.set $oldPtr @@ -16318,7 +16317,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -16326,7 +16325,7 @@ i32.store offset=8 local.get $14 local.get $newBucketsMask - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -16339,7 +16338,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -16347,7 +16346,7 @@ i32.store offset=8 local.get $14 local.get $newEntriesCapacity - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -16360,14 +16359,14 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#get:entriesCount - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#get:entriesCount" + call $"~lib/map/Map#set:entriesOffset" global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set (param $this i32) (param $key i32) (param $value i32) (result i32) + (func $"~lib/map/Map#set" (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) (local $entry i32) (local $entries i32) @@ -16396,13 +16395,13 @@ local.get $8 local.get $key local.get $hashCode - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry if local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop else @@ -16412,14 +16411,14 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" 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:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.eq if local.get $this @@ -16434,14 +16433,14 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -16454,7 +16453,7 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" else local.get $this local.set $8 @@ -16462,13 +16461,13 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl i32.const 1 i32.or end - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer local.get $this @@ -16477,7 +16476,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=8 local.get $entries @@ -16493,27 +16492,27 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.tee $6 i32.const 1 i32.add - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) i32.const 8 - br $~lib/map/ENTRY_SIZE|inlined.5 + br $"~lib/map/ENTRY_SIZE|inlined.5" end i32.mul i32.add local.set $entry local.get $entry local.get $key - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" i32.const 0 drop local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this @@ -16528,17 +16527,17 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" 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 + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $8 @@ -16546,7 +16545,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -16555,7 +16554,7 @@ local.get $entry local.get $bucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase local.get $entry i32.store @@ -16569,7 +16568,7 @@ local.get $8 return ) - (func $~lib/map/Map#get:size (param $this i32) (result i32) + (func $"~lib/map/Map#get:size" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -16585,7 +16584,7 @@ local.get $1 i32.store local.get $1 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -16594,7 +16593,7 @@ local.get $1 return ) - (func $~lib/map/Map#delete (param $this i32) (param $key i32) (result i32) + (func $"~lib/map/Map#delete" (param $this i32) (param $key i32) (result i32) (local $entry i32) (local $halfBucketsMask i32) (local $4 i32) @@ -16617,7 +16616,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry i32.eqz @@ -16633,10 +16632,10 @@ end local.get $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.or - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer @@ -16649,17 +16648,17 @@ local.get $6 i32.store offset=4 local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.sub - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shr_u local.set $halfBucketsMask @@ -16674,7 +16673,7 @@ local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.tee $5 local.get $4 local.get $5 @@ -16688,14 +16687,14 @@ local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -16712,7 +16711,7 @@ i32.store local.get $6 local.get $halfBucketsMask - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end i32.const 1 local.set $6 @@ -16723,7 +16722,7 @@ local.get $6 return ) - (func $~lib/map/Map#clear (param $this i32) + (func $"~lib/map/Map#clear" (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -16749,7 +16748,7 @@ local.get $1 i32.store offset=4 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -16759,7 +16758,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -16768,9 +16767,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.8 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.8" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.8 + br $"~lib/map/ENTRY_SIZE|inlined.8" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -16779,7 +16778,7 @@ local.get $1 i32.store offset=4 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -16787,7 +16786,7 @@ i32.store local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -16795,7 +16794,7 @@ i32.store local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -16803,13 +16802,13 @@ i32.store local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/map/testNumeric + (func $"std/map/testNumeric" (local $map i32) (local $k i32) (local $k|2 i32) @@ -16834,7 +16833,7 @@ memory.fill global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $map i32.store i32.const 0 @@ -16851,7 +16850,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -16872,7 +16871,7 @@ i32.const 10 local.get $k i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -16881,7 +16880,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -16898,7 +16897,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 10 local.get $k i32.add @@ -16925,7 +16924,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -16951,7 +16950,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -16968,7 +16967,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 10 local.get $k|2 i32.add @@ -16992,7 +16991,7 @@ i32.const 20 local.get $k|2 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -17001,7 +17000,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -17018,7 +17017,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 20 local.get $k|2 i32.add @@ -17045,7 +17044,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -17064,7 +17063,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#keys + call $"~lib/map/Map#keys" local.tee $keys i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -17074,17 +17073,17 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#values + call $"~lib/map/Map#values" local.tee $vals i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $keyMap i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $valMap i32.store offset=20 i32.const 0 @@ -17125,7 +17124,7 @@ i32.store offset=4 local.get $12 local.get $key - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -17144,7 +17143,7 @@ local.get $value i32.const 20 i32.sub - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -17162,7 +17161,7 @@ local.get $12 local.get $key local.get $key - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $valMap local.set $12 @@ -17176,7 +17175,7 @@ local.get $value i32.const 20 i32.sub - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $index i32.const 1 @@ -17191,7 +17190,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -17209,7 +17208,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -17235,7 +17234,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -17252,7 +17251,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 20 local.get $k|10 i32.add @@ -17273,7 +17272,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" drop local.get $map local.set $12 @@ -17282,7 +17281,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -17306,7 +17305,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz @@ -17332,7 +17331,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -17353,7 +17352,7 @@ i32.const 10 local.get $k|11 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -17362,7 +17361,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -17379,7 +17378,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" drop local.get $map local.set $12 @@ -17388,7 +17387,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -17412,7 +17411,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz @@ -17430,14 +17429,14 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#clear + call $"~lib/map/Map#clear" local.get $map local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 0 i32.eq i32.eqz @@ -17454,7 +17453,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#has (param $this i32) (param $key i32) (result i32) + (func $"~lib/map/Map#has" (param $this i32) (param $key i32) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -17473,7 +17472,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" i32.const 0 i32.ne local.set $2 @@ -17484,7 +17483,7 @@ local.get $2 return ) - (func $~lib/map/Map#get (param $this i32) (param $key i32) (result i32) + (func $"~lib/map/Map#get" (param $this i32) (param $key i32) (result i32) (local $entry i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -17504,7 +17503,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry i32.eqz @@ -17517,7 +17516,7 @@ unreachable end local.get $entry - call $~lib/map/MapEntry#get:value + call $"~lib/map/MapEntry#get:value" local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -17526,7 +17525,7 @@ local.get $3 return ) - (func $~lib/map/Map#keys (param $this i32) (result i32) + (func $"~lib/map/Map#keys" (param $this i32) (result i32) (local $start i32) (local $size i32) (local $keys i32) @@ -17549,7 +17548,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $start local.get $this local.set $8 @@ -17557,7 +17556,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -17576,15 +17575,15 @@ if local.get $start local.get $i - block $~lib/map/ENTRY_SIZE|inlined.6 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.6" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.6 + br $"~lib/map/ENTRY_SIZE|inlined.6" end i32.mul i32.add local.set $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -17602,7 +17601,7 @@ local.set $length local.get $7 local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" call $~lib/array/Array#__set end local.get $i @@ -17629,7 +17628,7 @@ local.get $8 return ) - (func $~lib/map/Map#values (param $this i32) (result i32) + (func $"~lib/map/Map#values" (param $this i32) (result i32) (local $start i32) (local $size i32) (local $values i32) @@ -17652,7 +17651,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $start local.get $this local.set $8 @@ -17660,7 +17659,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -17679,15 +17678,15 @@ if local.get $start local.get $i - block $~lib/map/ENTRY_SIZE|inlined.7 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.7" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.7 + br $"~lib/map/ENTRY_SIZE|inlined.7" end i32.mul i32.add local.set $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -17705,7 +17704,7 @@ local.set $length local.get $7 local.get $entry - call $~lib/map/MapEntry#get:value + call $"~lib/map/MapEntry#get:value" call $~lib/array/Array#__set end local.get $i @@ -17757,7 +17756,7 @@ local.get $1 return ) - (func $~lib/map/Map#delete (param $this i32) (param $key i32) (result i32) + (func $"~lib/map/Map#delete" (param $this i32) (param $key i32) (result i32) (local $entry i32) (local $halfBucketsMask i32) (local $4 i32) @@ -17780,7 +17779,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry i32.eqz @@ -17796,10 +17795,10 @@ end local.get $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.or - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer @@ -17812,17 +17811,17 @@ local.get $6 i32.store offset=4 local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.sub - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shr_u local.set $halfBucketsMask @@ -17837,7 +17836,7 @@ local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.tee $5 local.get $4 local.get $5 @@ -17851,14 +17850,14 @@ local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -17875,7 +17874,7 @@ i32.store local.get $6 local.get $halfBucketsMask - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end i32.const 1 local.set $6 @@ -17886,7 +17885,7 @@ local.get $6 return ) - (func $~lib/map/Map#clear (param $this i32) + (func $"~lib/map/Map#clear" (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -17912,7 +17911,7 @@ local.get $1 i32.store offset=4 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -17922,7 +17921,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -17931,9 +17930,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.8 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.8" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.8 + br $"~lib/map/ENTRY_SIZE|inlined.8" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -17942,7 +17941,7 @@ local.get $1 i32.store offset=4 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -17950,7 +17949,7 @@ i32.store local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -17958,7 +17957,7 @@ i32.store local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -17966,13 +17965,13 @@ i32.store local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/map/testNumeric + (func $"std/map/testNumeric" (local $map i32) (local $k i32) (local $k|2 i32) @@ -17997,7 +17996,7 @@ memory.fill global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $map i32.store i32.const 0 @@ -18014,7 +18013,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -18035,7 +18034,7 @@ i32.const 10 local.get $k i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -18044,7 +18043,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -18061,7 +18060,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 10 local.get $k i32.add @@ -18088,7 +18087,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -18114,7 +18113,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -18131,7 +18130,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 10 local.get $k|2 i32.add @@ -18155,7 +18154,7 @@ i32.const 20 local.get $k|2 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -18164,7 +18163,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -18181,7 +18180,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 20 local.get $k|2 i32.add @@ -18208,7 +18207,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -18227,7 +18226,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#keys + call $"~lib/map/Map#keys" local.tee $keys i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -18237,17 +18236,17 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#values + call $"~lib/map/Map#values" local.tee $vals i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $keyMap i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $valMap i32.store offset=20 i32.const 0 @@ -18288,7 +18287,7 @@ i32.store offset=4 local.get $12 local.get $key - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -18307,7 +18306,7 @@ local.get $value i32.const 20 i32.sub - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -18325,7 +18324,7 @@ local.get $12 local.get $key local.get $key - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $valMap local.set $12 @@ -18339,7 +18338,7 @@ local.get $value i32.const 20 i32.sub - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $index i32.const 1 @@ -18354,7 +18353,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -18372,7 +18371,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -18398,7 +18397,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -18415,7 +18414,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 20 local.get $k|10 i32.add @@ -18436,7 +18435,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" drop local.get $map local.set $12 @@ -18445,7 +18444,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -18469,7 +18468,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz @@ -18495,7 +18494,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -18516,7 +18515,7 @@ i32.const 10 local.get $k|11 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -18525,7 +18524,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -18542,7 +18541,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" drop local.get $map local.set $12 @@ -18551,7 +18550,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -18575,7 +18574,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz @@ -18593,14 +18592,14 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#clear + call $"~lib/map/Map#clear" local.get $map local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 0 i32.eq i32.eqz @@ -18617,7 +18616,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $"~lib/map/Map#constructor" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -18656,7 +18655,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -18666,7 +18665,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -18675,9 +18674,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.0 + br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -18686,7 +18685,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -18694,7 +18693,7 @@ i32.store offset=4 local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -18702,7 +18701,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -18710,7 +18709,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -18719,7 +18718,7 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $~lib/map/Map#find (param $this i32) (param $key i32) (param $hashCode i32) (result i32) + (func $"~lib/map/Map#find" (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) (local $taggedNext i32) (local $5 i32) @@ -18737,7 +18736,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $5 @@ -18745,7 +18744,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -18756,7 +18755,7 @@ local.get $entry if local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" local.set $taggedNext local.get $taggedNext i32.const 1 @@ -18764,7 +18763,7 @@ i32.eqz if (result i32) local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.get $key i32.eq else @@ -18798,7 +18797,7 @@ local.get $5 return ) - (func $~lib/map/Map#has (param $this i32) (param $key i32) (result i32) + (func $"~lib/map/Map#has" (param $this i32) (param $key i32) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -18817,7 +18816,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" i32.const 0 i32.ne local.set $2 @@ -18828,7 +18827,7 @@ local.get $2 return ) - (func $~lib/map/Map#rehash (param $this i32) (param $newBucketsMask i32) + (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) (local $newBucketsCapacity i32) (local $newBuckets i32) (local $newEntriesCapacity i32) @@ -18874,9 +18873,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.1 + br $"~lib/map/ENTRY_SIZE|inlined.1" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -18888,7 +18887,7 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $oldPtr local.get $oldPtr local.get $this @@ -18897,10 +18896,10 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entriesOffset - block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + call $"~lib/map/Map#get:entriesOffset" + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.2 + br $"~lib/map/ENTRY_SIZE|inlined.2" end i32.mul i32.add @@ -18915,7 +18914,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -18923,15 +18922,15 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" local.get $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" local.get $oldEntryKey call $~lib/util/hash/HASH local.get $newBucketsMask @@ -18946,22 +18945,22 @@ local.get $newEntry local.get $newBucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $newBucketPtrBase local.get $newPtr i32.store local.get $newPtr - block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.3 + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add local.set $newPtr end local.get $oldPtr - block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.4 + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add local.set $oldPtr @@ -18980,7 +18979,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -18988,7 +18987,7 @@ i32.store offset=8 local.get $14 local.get $newBucketsMask - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -19001,7 +19000,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -19009,7 +19008,7 @@ i32.store offset=8 local.get $14 local.get $newEntriesCapacity - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -19022,14 +19021,14 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#get:entriesCount - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#get:entriesCount" + call $"~lib/map/Map#set:entriesOffset" global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set (param $this i32) (param $key i32) (param $value i32) (result i32) + (func $"~lib/map/Map#set" (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) (local $entry i32) (local $entries i32) @@ -19058,13 +19057,13 @@ local.get $8 local.get $key local.get $hashCode - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry if local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop else @@ -19074,14 +19073,14 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" 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:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.eq if local.get $this @@ -19096,14 +19095,14 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -19116,7 +19115,7 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" else local.get $this local.set $8 @@ -19124,13 +19123,13 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl i32.const 1 i32.or end - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer local.get $this @@ -19139,7 +19138,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=8 local.get $entries @@ -19155,27 +19154,27 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.tee $6 i32.const 1 i32.add - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.5 + br $"~lib/map/ENTRY_SIZE|inlined.5" end i32.mul i32.add local.set $entry local.get $entry local.get $key - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" i32.const 0 drop local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this @@ -19190,17 +19189,17 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" 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 + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $8 @@ -19208,7 +19207,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -19217,7 +19216,7 @@ local.get $entry local.get $bucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase local.get $entry i32.store @@ -19231,7 +19230,7 @@ local.get $8 return ) - (func $~lib/map/Map#get (param $this i32) (param $key i32) (result i32) + (func $"~lib/map/Map#get" (param $this i32) (param $key i32) (result i32) (local $entry i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -19251,7 +19250,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry i32.eqz @@ -19264,7 +19263,7 @@ unreachable end local.get $entry - call $~lib/map/MapEntry#get:value + call $"~lib/map/MapEntry#get:value" local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -19273,7 +19272,7 @@ local.get $3 return ) - (func $~lib/map/Map#get:size (param $this i32) (result i32) + (func $"~lib/map/Map#get:size" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -19289,7 +19288,7 @@ local.get $1 i32.store local.get $1 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -19533,7 +19532,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#keys (param $this i32) (result i32) + (func $"~lib/map/Map#keys" (param $this i32) (result i32) (local $start i32) (local $size i32) (local $keys i32) @@ -19556,7 +19555,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $start local.get $this local.set $8 @@ -19564,7 +19563,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -19583,15 +19582,15 @@ if local.get $start local.get $i - block $~lib/map/ENTRY_SIZE|inlined.6 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.6" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.6 + br $"~lib/map/ENTRY_SIZE|inlined.6" end i32.mul i32.add local.set $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -19609,7 +19608,7 @@ local.set $length local.get $7 local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" call $~lib/array/Array#__set end local.get $i @@ -19636,7 +19635,7 @@ local.get $8 return ) - (func $~lib/map/Map#values (param $this i32) (result i32) + (func $"~lib/map/Map#values" (param $this i32) (result i32) (local $start i32) (local $size i32) (local $values i32) @@ -19659,7 +19658,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $start local.get $this local.set $8 @@ -19667,7 +19666,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -19686,15 +19685,15 @@ if local.get $start local.get $i - block $~lib/map/ENTRY_SIZE|inlined.7 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.7" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.7 + br $"~lib/map/ENTRY_SIZE|inlined.7" end i32.mul i32.add local.set $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -19712,7 +19711,7 @@ local.set $length local.get $7 local.get $entry - call $~lib/map/MapEntry#get:value + call $"~lib/map/MapEntry#get:value" call $~lib/array/Array#__set end local.get $i @@ -19739,7 +19738,7 @@ local.get $8 return ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $"~lib/map/Map#constructor" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -19778,7 +19777,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -19788,7 +19787,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -19797,9 +19796,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.0 + br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -19808,7 +19807,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -19816,7 +19815,7 @@ i32.store offset=4 local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -19824,7 +19823,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -19832,7 +19831,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -19918,7 +19917,7 @@ local.get $3 return ) - (func $~lib/map/Map#find (param $this i32) (param $key i32) (param $hashCode i32) (result i32) + (func $"~lib/map/Map#find" (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) (local $taggedNext i32) (local $5 i32) @@ -19936,7 +19935,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $5 @@ -19944,7 +19943,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -19955,7 +19954,7 @@ local.get $entry if local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" local.set $taggedNext local.get $taggedNext i32.const 1 @@ -19963,7 +19962,7 @@ i32.eqz if (result i32) local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.get $key i32.eq else @@ -19997,7 +19996,7 @@ local.get $5 return ) - (func $~lib/map/Map#rehash (param $this i32) (param $newBucketsMask i32) + (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) (local $newBucketsCapacity i32) (local $newBuckets i32) (local $newEntriesCapacity i32) @@ -20043,9 +20042,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.1 + br $"~lib/map/ENTRY_SIZE|inlined.1" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -20057,7 +20056,7 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $oldPtr local.get $oldPtr local.get $this @@ -20066,10 +20065,10 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entriesOffset - block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + call $"~lib/map/Map#get:entriesOffset" + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.2 + br $"~lib/map/ENTRY_SIZE|inlined.2" end i32.mul i32.add @@ -20084,7 +20083,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -20092,15 +20091,15 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" local.get $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" local.get $oldEntryKey call $~lib/util/hash/HASH local.get $newBucketsMask @@ -20115,22 +20114,22 @@ local.get $newEntry local.get $newBucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $newBucketPtrBase local.get $newPtr i32.store local.get $newPtr - block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.3 + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add local.set $newPtr end local.get $oldPtr - block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.4 + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add local.set $oldPtr @@ -20149,7 +20148,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -20157,7 +20156,7 @@ i32.store offset=8 local.get $14 local.get $newBucketsMask - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -20170,7 +20169,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -20178,7 +20177,7 @@ i32.store offset=8 local.get $14 local.get $newEntriesCapacity - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -20191,14 +20190,14 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#get:entriesCount - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#get:entriesCount" + call $"~lib/map/Map#set:entriesOffset" global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set (param $this i32) (param $key i32) (param $value i32) (result i32) + (func $"~lib/map/Map#set" (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) (local $entry i32) (local $entries i32) @@ -20227,13 +20226,13 @@ local.get $8 local.get $key local.get $hashCode - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry if local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop else @@ -20243,14 +20242,14 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" 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:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.eq if local.get $this @@ -20265,14 +20264,14 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -20285,7 +20284,7 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" else local.get $this local.set $8 @@ -20293,13 +20292,13 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl i32.const 1 i32.or end - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer local.get $this @@ -20308,7 +20307,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=8 local.get $entries @@ -20324,27 +20323,27 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.tee $6 i32.const 1 i32.add - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.5 + br $"~lib/map/ENTRY_SIZE|inlined.5" end i32.mul i32.add local.set $entry local.get $entry local.get $key - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" i32.const 0 drop local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this @@ -20359,17 +20358,17 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" 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 + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $8 @@ -20377,7 +20376,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -20386,7 +20385,7 @@ local.get $entry local.get $bucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase local.get $entry i32.store @@ -20400,7 +20399,7 @@ local.get $8 return ) - (func $~lib/map/Map#get:size (param $this i32) (result i32) + (func $"~lib/map/Map#get:size" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -20416,7 +20415,7 @@ local.get $1 i32.store local.get $1 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -20425,7 +20424,7 @@ local.get $1 return ) - (func $~lib/map/Map#delete (param $this i32) (param $key i32) (result i32) + (func $"~lib/map/Map#delete" (param $this i32) (param $key i32) (result i32) (local $entry i32) (local $halfBucketsMask i32) (local $4 i32) @@ -20448,7 +20447,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry i32.eqz @@ -20464,10 +20463,10 @@ end local.get $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.or - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer @@ -20480,17 +20479,17 @@ local.get $6 i32.store offset=4 local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.sub - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shr_u local.set $halfBucketsMask @@ -20505,7 +20504,7 @@ local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.tee $5 local.get $4 local.get $5 @@ -20519,14 +20518,14 @@ local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -20543,7 +20542,7 @@ i32.store local.get $6 local.get $halfBucketsMask - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end i32.const 1 local.set $6 @@ -20554,7 +20553,7 @@ local.get $6 return ) - (func $~lib/map/Map#clear (param $this i32) + (func $"~lib/map/Map#clear" (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -20580,7 +20579,7 @@ local.get $1 i32.store offset=4 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -20590,7 +20589,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -20599,9 +20598,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.8 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.8" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.8 + br $"~lib/map/ENTRY_SIZE|inlined.8" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -20610,7 +20609,7 @@ local.get $1 i32.store offset=4 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -20618,7 +20617,7 @@ i32.store local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -20626,7 +20625,7 @@ i32.store local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -20634,13 +20633,13 @@ i32.store local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/map/testNumeric + (func $"std/map/testNumeric" (local $map i32) (local $k i32) (local $k|2 i32) @@ -20665,7 +20664,7 @@ memory.fill global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $map i32.store i32.const 0 @@ -20682,7 +20681,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -20703,7 +20702,7 @@ i32.const 10 local.get $k i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -20712,7 +20711,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -20729,7 +20728,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 10 local.get $k i32.add @@ -20756,7 +20755,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -20782,7 +20781,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -20799,7 +20798,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 10 local.get $k|2 i32.add @@ -20823,7 +20822,7 @@ i32.const 20 local.get $k|2 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -20832,7 +20831,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -20849,7 +20848,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 20 local.get $k|2 i32.add @@ -20876,7 +20875,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -20895,7 +20894,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#keys + call $"~lib/map/Map#keys" local.tee $keys i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -20905,17 +20904,17 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#values + call $"~lib/map/Map#values" local.tee $vals i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $keyMap i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $valMap i32.store offset=20 i32.const 0 @@ -20956,7 +20955,7 @@ i32.store offset=4 local.get $12 local.get $key - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -20975,7 +20974,7 @@ local.get $value i32.const 20 i32.sub - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -20993,7 +20992,7 @@ local.get $12 local.get $key local.get $key - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $valMap local.set $12 @@ -21007,7 +21006,7 @@ local.get $value i32.const 20 i32.sub - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $index i32.const 1 @@ -21022,7 +21021,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -21040,7 +21039,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -21066,7 +21065,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -21083,7 +21082,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 20 local.get $k|10 i32.add @@ -21104,7 +21103,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" drop local.get $map local.set $12 @@ -21113,7 +21112,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -21137,7 +21136,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz @@ -21163,7 +21162,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -21184,7 +21183,7 @@ i32.const 10 local.get $k|11 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -21193,7 +21192,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -21210,7 +21209,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" drop local.get $map local.set $12 @@ -21219,7 +21218,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -21243,7 +21242,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz @@ -21261,14 +21260,14 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#clear + call $"~lib/map/Map#clear" local.get $map local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 0 i32.eq i32.eqz @@ -21285,7 +21284,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $"~lib/map/Map#constructor" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -21324,7 +21323,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -21334,7 +21333,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -21343,9 +21342,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 16 - br $~lib/map/ENTRY_SIZE|inlined.0 + br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -21354,7 +21353,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -21362,7 +21361,7 @@ i32.store offset=4 local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -21370,7 +21369,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -21378,7 +21377,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -21387,7 +21386,7 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $~lib/map/Map#find (param $this i32) (param $key i64) (param $hashCode i32) (result i32) + (func $"~lib/map/Map#find" (param $this i32) (param $key i64) (param $hashCode i32) (result i32) (local $entry i32) (local $taggedNext i32) (local $5 i32) @@ -21405,7 +21404,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $5 @@ -21413,7 +21412,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -21424,7 +21423,7 @@ local.get $entry if local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" local.set $taggedNext local.get $taggedNext i32.const 1 @@ -21432,7 +21431,7 @@ i32.eqz if (result i32) local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.get $key i64.eq else @@ -21466,7 +21465,7 @@ local.get $5 return ) - (func $~lib/map/Map#has (param $this i32) (param $key i64) (result i32) + (func $"~lib/map/Map#has" (param $this i32) (param $key i64) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -21485,7 +21484,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" i32.const 0 i32.ne local.set $2 @@ -21496,7 +21495,7 @@ local.get $2 return ) - (func $~lib/map/Map#rehash (param $this i32) (param $newBucketsMask i32) + (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) (local $newBucketsCapacity i32) (local $newBuckets i32) (local $newEntriesCapacity i32) @@ -21542,9 +21541,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) i32.const 16 - br $~lib/map/ENTRY_SIZE|inlined.1 + br $"~lib/map/ENTRY_SIZE|inlined.1" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -21556,7 +21555,7 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $oldPtr local.get $oldPtr local.get $this @@ -21565,10 +21564,10 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entriesOffset - block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + call $"~lib/map/Map#get:entriesOffset" + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) i32.const 16 - br $~lib/map/ENTRY_SIZE|inlined.2 + br $"~lib/map/ENTRY_SIZE|inlined.2" end i32.mul i32.add @@ -21583,7 +21582,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -21591,15 +21590,15 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" local.get $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" local.get $oldEntryKey call $~lib/util/hash/HASH local.get $newBucketsMask @@ -21614,22 +21613,22 @@ local.get $newEntry local.get $newBucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $newBucketPtrBase local.get $newPtr i32.store local.get $newPtr - block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 16 - br $~lib/map/ENTRY_SIZE|inlined.3 + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add local.set $newPtr end local.get $oldPtr - block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 16 - br $~lib/map/ENTRY_SIZE|inlined.4 + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add local.set $oldPtr @@ -21648,7 +21647,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -21656,7 +21655,7 @@ i32.store offset=8 local.get $14 local.get $newBucketsMask - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -21669,7 +21668,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -21677,7 +21676,7 @@ i32.store offset=8 local.get $14 local.get $newEntriesCapacity - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -21690,14 +21689,14 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#get:entriesCount - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#get:entriesCount" + call $"~lib/map/Map#set:entriesOffset" global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set (param $this i32) (param $key i64) (param $value i32) (result i32) + (func $"~lib/map/Map#set" (param $this i32) (param $key i64) (param $value i32) (result i32) (local $hashCode i32) (local $entry i32) (local $entries i32) @@ -21726,13 +21725,13 @@ local.get $8 local.get $key local.get $hashCode - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry if local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop else @@ -21742,14 +21741,14 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" 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:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.eq if local.get $this @@ -21764,14 +21763,14 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -21784,7 +21783,7 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" else local.get $this local.set $8 @@ -21792,13 +21791,13 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl i32.const 1 i32.or end - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer local.get $this @@ -21807,7 +21806,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=8 local.get $entries @@ -21823,27 +21822,27 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.tee $6 i32.const 1 i32.add - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) i32.const 16 - br $~lib/map/ENTRY_SIZE|inlined.5 + br $"~lib/map/ENTRY_SIZE|inlined.5" end i32.mul i32.add local.set $entry local.get $entry local.get $key - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" i32.const 0 drop local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this @@ -21858,17 +21857,17 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" 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 + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $8 @@ -21876,7 +21875,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -21885,7 +21884,7 @@ local.get $entry local.get $bucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase local.get $entry i32.store @@ -21899,7 +21898,7 @@ local.get $8 return ) - (func $~lib/map/Map#get (param $this i32) (param $key i64) (result i32) + (func $"~lib/map/Map#get" (param $this i32) (param $key i64) (result i32) (local $entry i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -21919,7 +21918,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry i32.eqz @@ -21932,7 +21931,7 @@ unreachable end local.get $entry - call $~lib/map/MapEntry#get:value + call $"~lib/map/MapEntry#get:value" local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -21941,7 +21940,7 @@ local.get $3 return ) - (func $~lib/map/Map#get:size (param $this i32) (result i32) + (func $"~lib/map/Map#get:size" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -21957,7 +21956,7 @@ local.get $1 i32.store local.get $1 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -22201,7 +22200,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#keys (param $this i32) (result i32) + (func $"~lib/map/Map#keys" (param $this i32) (result i32) (local $start i32) (local $size i32) (local $keys i32) @@ -22224,7 +22223,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $start local.get $this local.set $8 @@ -22232,7 +22231,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -22251,15 +22250,15 @@ if local.get $start local.get $i - block $~lib/map/ENTRY_SIZE|inlined.6 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.6" (result i32) i32.const 16 - br $~lib/map/ENTRY_SIZE|inlined.6 + br $"~lib/map/ENTRY_SIZE|inlined.6" end i32.mul i32.add local.set $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -22277,7 +22276,7 @@ local.set $length local.get $7 local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" call $~lib/array/Array#__set end local.get $i @@ -22304,7 +22303,7 @@ local.get $8 return ) - (func $~lib/map/Map#values (param $this i32) (result i32) + (func $"~lib/map/Map#values" (param $this i32) (result i32) (local $start i32) (local $size i32) (local $values i32) @@ -22327,7 +22326,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $start local.get $this local.set $8 @@ -22335,7 +22334,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -22354,15 +22353,15 @@ if local.get $start local.get $i - block $~lib/map/ENTRY_SIZE|inlined.7 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.7" (result i32) i32.const 16 - br $~lib/map/ENTRY_SIZE|inlined.7 + br $"~lib/map/ENTRY_SIZE|inlined.7" end i32.mul i32.add local.set $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -22380,7 +22379,7 @@ local.set $length local.get $7 local.get $entry - call $~lib/map/MapEntry#get:value + call $"~lib/map/MapEntry#get:value" call $~lib/array/Array#__set end local.get $i @@ -22407,7 +22406,7 @@ local.get $8 return ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $"~lib/map/Map#constructor" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -22446,7 +22445,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -22456,7 +22455,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -22465,9 +22464,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 24 - br $~lib/map/ENTRY_SIZE|inlined.0 + br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -22476,7 +22475,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -22484,7 +22483,7 @@ i32.store offset=4 local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -22492,7 +22491,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -22500,7 +22499,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -22587,7 +22586,7 @@ local.get $4 return ) - (func $~lib/map/Map#find (param $this i32) (param $key i64) (param $hashCode i32) (result i32) + (func $"~lib/map/Map#find" (param $this i32) (param $key i64) (param $hashCode i32) (result i32) (local $entry i32) (local $taggedNext i32) (local $5 i32) @@ -22605,7 +22604,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $5 @@ -22613,7 +22612,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -22624,7 +22623,7 @@ local.get $entry if local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" local.set $taggedNext local.get $taggedNext i32.const 1 @@ -22632,7 +22631,7 @@ i32.eqz if (result i32) local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.get $key i64.eq else @@ -22666,7 +22665,7 @@ local.get $5 return ) - (func $~lib/map/Map#rehash (param $this i32) (param $newBucketsMask i32) + (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) (local $newBucketsCapacity i32) (local $newBuckets i32) (local $newEntriesCapacity i32) @@ -22712,9 +22711,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) i32.const 24 - br $~lib/map/ENTRY_SIZE|inlined.1 + br $"~lib/map/ENTRY_SIZE|inlined.1" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -22726,7 +22725,7 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $oldPtr local.get $oldPtr local.get $this @@ -22735,10 +22734,10 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entriesOffset - block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + call $"~lib/map/Map#get:entriesOffset" + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) i32.const 24 - br $~lib/map/ENTRY_SIZE|inlined.2 + br $"~lib/map/ENTRY_SIZE|inlined.2" end i32.mul i32.add @@ -22753,7 +22752,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -22761,15 +22760,15 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" local.get $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" local.get $oldEntryKey call $~lib/util/hash/HASH local.get $newBucketsMask @@ -22784,22 +22783,22 @@ local.get $newEntry local.get $newBucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $newBucketPtrBase local.get $newPtr i32.store local.get $newPtr - block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 24 - br $~lib/map/ENTRY_SIZE|inlined.3 + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add local.set $newPtr end local.get $oldPtr - block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 24 - br $~lib/map/ENTRY_SIZE|inlined.4 + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add local.set $oldPtr @@ -22818,7 +22817,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -22826,7 +22825,7 @@ i32.store offset=8 local.get $14 local.get $newBucketsMask - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -22839,7 +22838,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -22847,7 +22846,7 @@ i32.store offset=8 local.get $14 local.get $newEntriesCapacity - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -22860,14 +22859,14 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#get:entriesCount - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#get:entriesCount" + call $"~lib/map/Map#set:entriesOffset" global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set (param $this i32) (param $key i64) (param $value i64) (result i32) + (func $"~lib/map/Map#set" (param $this i32) (param $key i64) (param $value i64) (result i32) (local $hashCode i32) (local $entry i32) (local $entries i32) @@ -22896,13 +22895,13 @@ local.get $8 local.get $key local.get $hashCode - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry if local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop else @@ -22912,14 +22911,14 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" 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:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.eq if local.get $this @@ -22934,14 +22933,14 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -22954,7 +22953,7 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" else local.get $this local.set $8 @@ -22962,13 +22961,13 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl i32.const 1 i32.or end - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer local.get $this @@ -22977,7 +22976,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=8 local.get $entries @@ -22993,27 +22992,27 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.tee $6 i32.const 1 i32.add - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) i32.const 24 - br $~lib/map/ENTRY_SIZE|inlined.5 + br $"~lib/map/ENTRY_SIZE|inlined.5" end i32.mul i32.add local.set $entry local.get $entry local.get $key - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" i32.const 0 drop local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this @@ -23028,17 +23027,17 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" 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 + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $8 @@ -23046,7 +23045,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -23055,7 +23054,7 @@ local.get $entry local.get $bucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase local.get $entry i32.store @@ -23069,7 +23068,7 @@ local.get $8 return ) - (func $~lib/map/Map#get:size (param $this i32) (result i32) + (func $"~lib/map/Map#get:size" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -23085,7 +23084,7 @@ local.get $1 i32.store local.get $1 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -23094,7 +23093,7 @@ local.get $1 return ) - (func $~lib/map/Map#delete (param $this i32) (param $key i64) (result i32) + (func $"~lib/map/Map#delete" (param $this i32) (param $key i64) (result i32) (local $entry i32) (local $halfBucketsMask i32) (local $4 i32) @@ -23117,7 +23116,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry i32.eqz @@ -23133,10 +23132,10 @@ end local.get $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.or - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer @@ -23149,17 +23148,17 @@ local.get $6 i32.store offset=4 local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.sub - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shr_u local.set $halfBucketsMask @@ -23174,7 +23173,7 @@ local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.tee $5 local.get $4 local.get $5 @@ -23188,14 +23187,14 @@ local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -23212,7 +23211,7 @@ i32.store local.get $6 local.get $halfBucketsMask - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end i32.const 1 local.set $6 @@ -23223,7 +23222,7 @@ local.get $6 return ) - (func $~lib/map/Map#clear (param $this i32) + (func $"~lib/map/Map#clear" (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -23249,7 +23248,7 @@ local.get $1 i32.store offset=4 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -23259,7 +23258,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -23268,9 +23267,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.8 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.8" (result i32) i32.const 16 - br $~lib/map/ENTRY_SIZE|inlined.8 + br $"~lib/map/ENTRY_SIZE|inlined.8" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -23279,7 +23278,7 @@ local.get $1 i32.store offset=4 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -23287,7 +23286,7 @@ i32.store local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -23295,7 +23294,7 @@ i32.store local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -23303,13 +23302,13 @@ i32.store local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/map/testNumeric + (func $"std/map/testNumeric" (local $map i32) (local $k i64) (local $k|2 i64) @@ -23334,7 +23333,7 @@ memory.fill global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $map i32.store i64.const 0 @@ -23351,7 +23350,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -23373,7 +23372,7 @@ local.get $k i32.wrap_i64 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -23382,7 +23381,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -23399,7 +23398,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 10 local.get $k i32.wrap_i64 @@ -23427,7 +23426,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -23453,7 +23452,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -23470,7 +23469,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 10 local.get $k|2 i32.wrap_i64 @@ -23496,7 +23495,7 @@ local.get $k|2 i32.wrap_i64 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -23505,7 +23504,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -23522,7 +23521,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 20 local.get $k|2 i32.wrap_i64 @@ -23550,7 +23549,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -23569,7 +23568,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#keys + call $"~lib/map/Map#keys" local.tee $keys i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -23579,17 +23578,17 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#values + call $"~lib/map/Map#values" local.tee $vals i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $keyMap i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $valMap i32.store offset=20 i32.const 0 @@ -23630,7 +23629,7 @@ i32.store offset=4 local.get $12 local.get $key - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -23650,7 +23649,7 @@ i32.const 20 i32.sub i64.extend_i32_s - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -23668,7 +23667,7 @@ local.get $12 local.get $key local.get $key - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $valMap local.set $12 @@ -23682,7 +23681,7 @@ local.get $value i32.const 20 i32.sub - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $index i32.const 1 @@ -23697,7 +23696,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -23715,7 +23714,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -23741,7 +23740,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -23758,7 +23757,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 20 local.get $k|10 i32.wrap_i64 @@ -23780,7 +23779,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" drop local.get $map local.set $12 @@ -23789,7 +23788,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -23813,7 +23812,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz @@ -23839,7 +23838,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -23861,7 +23860,7 @@ local.get $k|11 i32.wrap_i64 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -23870,7 +23869,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -23887,7 +23886,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" drop local.get $map local.set $12 @@ -23896,7 +23895,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -23920,7 +23919,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz @@ -23938,14 +23937,14 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#clear + call $"~lib/map/Map#clear" local.get $map local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 0 i32.eq i32.eqz @@ -23962,7 +23961,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $"~lib/map/Map#constructor" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -24001,7 +24000,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -24011,7 +24010,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -24020,9 +24019,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 16 - br $~lib/map/ENTRY_SIZE|inlined.0 + br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -24031,7 +24030,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -24039,7 +24038,7 @@ i32.store offset=4 local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -24047,7 +24046,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -24055,7 +24054,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -24064,7 +24063,7 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $~lib/map/Map#find (param $this i32) (param $key i64) (param $hashCode i32) (result i32) + (func $"~lib/map/Map#find" (param $this i32) (param $key i64) (param $hashCode i32) (result i32) (local $entry i32) (local $taggedNext i32) (local $5 i32) @@ -24082,7 +24081,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $5 @@ -24090,7 +24089,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -24101,7 +24100,7 @@ local.get $entry if local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" local.set $taggedNext local.get $taggedNext i32.const 1 @@ -24109,7 +24108,7 @@ i32.eqz if (result i32) local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.get $key i64.eq else @@ -24143,7 +24142,7 @@ local.get $5 return ) - (func $~lib/map/Map#has (param $this i32) (param $key i64) (result i32) + (func $"~lib/map/Map#has" (param $this i32) (param $key i64) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -24162,7 +24161,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" i32.const 0 i32.ne local.set $2 @@ -24173,7 +24172,7 @@ local.get $2 return ) - (func $~lib/map/Map#rehash (param $this i32) (param $newBucketsMask i32) + (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) (local $newBucketsCapacity i32) (local $newBuckets i32) (local $newEntriesCapacity i32) @@ -24219,9 +24218,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) i32.const 16 - br $~lib/map/ENTRY_SIZE|inlined.1 + br $"~lib/map/ENTRY_SIZE|inlined.1" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -24233,7 +24232,7 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $oldPtr local.get $oldPtr local.get $this @@ -24242,10 +24241,10 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entriesOffset - block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + call $"~lib/map/Map#get:entriesOffset" + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) i32.const 16 - br $~lib/map/ENTRY_SIZE|inlined.2 + br $"~lib/map/ENTRY_SIZE|inlined.2" end i32.mul i32.add @@ -24260,7 +24259,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -24268,15 +24267,15 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" local.get $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" local.get $oldEntryKey call $~lib/util/hash/HASH local.get $newBucketsMask @@ -24291,22 +24290,22 @@ local.get $newEntry local.get $newBucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $newBucketPtrBase local.get $newPtr i32.store local.get $newPtr - block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 16 - br $~lib/map/ENTRY_SIZE|inlined.3 + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add local.set $newPtr end local.get $oldPtr - block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 16 - br $~lib/map/ENTRY_SIZE|inlined.4 + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add local.set $oldPtr @@ -24325,7 +24324,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -24333,7 +24332,7 @@ i32.store offset=8 local.get $14 local.get $newBucketsMask - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -24346,7 +24345,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -24354,7 +24353,7 @@ i32.store offset=8 local.get $14 local.get $newEntriesCapacity - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -24367,14 +24366,14 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#get:entriesCount - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#get:entriesCount" + call $"~lib/map/Map#set:entriesOffset" global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set (param $this i32) (param $key i64) (param $value i32) (result i32) + (func $"~lib/map/Map#set" (param $this i32) (param $key i64) (param $value i32) (result i32) (local $hashCode i32) (local $entry i32) (local $entries i32) @@ -24403,13 +24402,13 @@ local.get $8 local.get $key local.get $hashCode - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry if local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop else @@ -24419,14 +24418,14 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" 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:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.eq if local.get $this @@ -24441,14 +24440,14 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -24461,7 +24460,7 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" else local.get $this local.set $8 @@ -24469,13 +24468,13 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl i32.const 1 i32.or end - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer local.get $this @@ -24484,7 +24483,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=8 local.get $entries @@ -24500,27 +24499,27 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.tee $6 i32.const 1 i32.add - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) i32.const 16 - br $~lib/map/ENTRY_SIZE|inlined.5 + br $"~lib/map/ENTRY_SIZE|inlined.5" end i32.mul i32.add local.set $entry local.get $entry local.get $key - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" i32.const 0 drop local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this @@ -24535,17 +24534,17 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" 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 + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $8 @@ -24553,7 +24552,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -24562,7 +24561,7 @@ local.get $entry local.get $bucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase local.get $entry i32.store @@ -24576,7 +24575,7 @@ local.get $8 return ) - (func $~lib/map/Map#get (param $this i32) (param $key i64) (result i32) + (func $"~lib/map/Map#get" (param $this i32) (param $key i64) (result i32) (local $entry i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -24596,7 +24595,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry i32.eqz @@ -24609,7 +24608,7 @@ unreachable end local.get $entry - call $~lib/map/MapEntry#get:value + call $"~lib/map/MapEntry#get:value" local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -24618,7 +24617,7 @@ local.get $3 return ) - (func $~lib/map/Map#get:size (param $this i32) (result i32) + (func $"~lib/map/Map#get:size" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -24634,7 +24633,7 @@ local.get $1 i32.store local.get $1 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -24878,7 +24877,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#keys (param $this i32) (result i32) + (func $"~lib/map/Map#keys" (param $this i32) (result i32) (local $start i32) (local $size i32) (local $keys i32) @@ -24901,7 +24900,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $start local.get $this local.set $8 @@ -24909,7 +24908,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -24928,15 +24927,15 @@ if local.get $start local.get $i - block $~lib/map/ENTRY_SIZE|inlined.6 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.6" (result i32) i32.const 16 - br $~lib/map/ENTRY_SIZE|inlined.6 + br $"~lib/map/ENTRY_SIZE|inlined.6" end i32.mul i32.add local.set $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -24954,7 +24953,7 @@ local.set $length local.get $7 local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" call $~lib/array/Array#__set end local.get $i @@ -24981,7 +24980,7 @@ local.get $8 return ) - (func $~lib/map/Map#values (param $this i32) (result i32) + (func $"~lib/map/Map#values" (param $this i32) (result i32) (local $start i32) (local $size i32) (local $values i32) @@ -25004,7 +25003,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $start local.get $this local.set $8 @@ -25012,7 +25011,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -25031,15 +25030,15 @@ if local.get $start local.get $i - block $~lib/map/ENTRY_SIZE|inlined.7 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.7" (result i32) i32.const 16 - br $~lib/map/ENTRY_SIZE|inlined.7 + br $"~lib/map/ENTRY_SIZE|inlined.7" end i32.mul i32.add local.set $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -25057,7 +25056,7 @@ local.set $length local.get $7 local.get $entry - call $~lib/map/MapEntry#get:value + call $"~lib/map/MapEntry#get:value" call $~lib/array/Array#__set end local.get $i @@ -25084,7 +25083,7 @@ local.get $8 return ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $"~lib/map/Map#constructor" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -25123,7 +25122,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -25133,7 +25132,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -25142,9 +25141,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 24 - br $~lib/map/ENTRY_SIZE|inlined.0 + br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -25153,7 +25152,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -25161,7 +25160,7 @@ i32.store offset=4 local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -25169,7 +25168,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -25177,7 +25176,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -25264,7 +25263,7 @@ local.get $4 return ) - (func $~lib/map/Map#find (param $this i32) (param $key i64) (param $hashCode i32) (result i32) + (func $"~lib/map/Map#find" (param $this i32) (param $key i64) (param $hashCode i32) (result i32) (local $entry i32) (local $taggedNext i32) (local $5 i32) @@ -25282,7 +25281,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $5 @@ -25290,7 +25289,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -25301,7 +25300,7 @@ local.get $entry if local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" local.set $taggedNext local.get $taggedNext i32.const 1 @@ -25309,7 +25308,7 @@ i32.eqz if (result i32) local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.get $key i64.eq else @@ -25343,7 +25342,7 @@ local.get $5 return ) - (func $~lib/map/Map#rehash (param $this i32) (param $newBucketsMask i32) + (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) (local $newBucketsCapacity i32) (local $newBuckets i32) (local $newEntriesCapacity i32) @@ -25389,9 +25388,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) i32.const 24 - br $~lib/map/ENTRY_SIZE|inlined.1 + br $"~lib/map/ENTRY_SIZE|inlined.1" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -25403,7 +25402,7 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $oldPtr local.get $oldPtr local.get $this @@ -25412,10 +25411,10 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entriesOffset - block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + call $"~lib/map/Map#get:entriesOffset" + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) i32.const 24 - br $~lib/map/ENTRY_SIZE|inlined.2 + br $"~lib/map/ENTRY_SIZE|inlined.2" end i32.mul i32.add @@ -25430,7 +25429,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -25438,15 +25437,15 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" local.get $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" local.get $oldEntryKey call $~lib/util/hash/HASH local.get $newBucketsMask @@ -25461,22 +25460,22 @@ local.get $newEntry local.get $newBucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $newBucketPtrBase local.get $newPtr i32.store local.get $newPtr - block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 24 - br $~lib/map/ENTRY_SIZE|inlined.3 + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add local.set $newPtr end local.get $oldPtr - block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 24 - br $~lib/map/ENTRY_SIZE|inlined.4 + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add local.set $oldPtr @@ -25495,7 +25494,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -25503,7 +25502,7 @@ i32.store offset=8 local.get $14 local.get $newBucketsMask - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -25516,7 +25515,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -25524,7 +25523,7 @@ i32.store offset=8 local.get $14 local.get $newEntriesCapacity - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -25537,14 +25536,14 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#get:entriesCount - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#get:entriesCount" + call $"~lib/map/Map#set:entriesOffset" global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set (param $this i32) (param $key i64) (param $value i64) (result i32) + (func $"~lib/map/Map#set" (param $this i32) (param $key i64) (param $value i64) (result i32) (local $hashCode i32) (local $entry i32) (local $entries i32) @@ -25573,13 +25572,13 @@ local.get $8 local.get $key local.get $hashCode - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry if local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop else @@ -25589,14 +25588,14 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" 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:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.eq if local.get $this @@ -25611,14 +25610,14 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -25631,7 +25630,7 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" else local.get $this local.set $8 @@ -25639,13 +25638,13 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl i32.const 1 i32.or end - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer local.get $this @@ -25654,7 +25653,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=8 local.get $entries @@ -25670,27 +25669,27 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.tee $6 i32.const 1 i32.add - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) i32.const 24 - br $~lib/map/ENTRY_SIZE|inlined.5 + br $"~lib/map/ENTRY_SIZE|inlined.5" end i32.mul i32.add local.set $entry local.get $entry local.get $key - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" i32.const 0 drop local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this @@ -25705,17 +25704,17 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" 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 + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $8 @@ -25723,7 +25722,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -25732,7 +25731,7 @@ local.get $entry local.get $bucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase local.get $entry i32.store @@ -25746,7 +25745,7 @@ local.get $8 return ) - (func $~lib/map/Map#get:size (param $this i32) (result i32) + (func $"~lib/map/Map#get:size" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -25762,7 +25761,7 @@ local.get $1 i32.store local.get $1 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -25771,7 +25770,7 @@ local.get $1 return ) - (func $~lib/map/Map#delete (param $this i32) (param $key i64) (result i32) + (func $"~lib/map/Map#delete" (param $this i32) (param $key i64) (result i32) (local $entry i32) (local $halfBucketsMask i32) (local $4 i32) @@ -25794,7 +25793,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry i32.eqz @@ -25810,10 +25809,10 @@ end local.get $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.or - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer @@ -25826,17 +25825,17 @@ local.get $6 i32.store offset=4 local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.sub - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shr_u local.set $halfBucketsMask @@ -25851,7 +25850,7 @@ local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.tee $5 local.get $4 local.get $5 @@ -25865,14 +25864,14 @@ local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -25889,7 +25888,7 @@ i32.store local.get $6 local.get $halfBucketsMask - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end i32.const 1 local.set $6 @@ -25900,7 +25899,7 @@ local.get $6 return ) - (func $~lib/map/Map#clear (param $this i32) + (func $"~lib/map/Map#clear" (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -25926,7 +25925,7 @@ local.get $1 i32.store offset=4 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -25936,7 +25935,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -25945,9 +25944,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.8 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.8" (result i32) i32.const 16 - br $~lib/map/ENTRY_SIZE|inlined.8 + br $"~lib/map/ENTRY_SIZE|inlined.8" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -25956,7 +25955,7 @@ local.get $1 i32.store offset=4 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -25964,7 +25963,7 @@ i32.store local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -25972,7 +25971,7 @@ i32.store local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -25980,13 +25979,13 @@ i32.store local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/map/testNumeric + (func $"std/map/testNumeric" (local $map i32) (local $k i64) (local $k|2 i64) @@ -26011,7 +26010,7 @@ memory.fill global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $map i32.store i64.const 0 @@ -26028,7 +26027,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -26050,7 +26049,7 @@ local.get $k i32.wrap_i64 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -26059,7 +26058,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -26076,7 +26075,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 10 local.get $k i32.wrap_i64 @@ -26104,7 +26103,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -26130,7 +26129,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -26147,7 +26146,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 10 local.get $k|2 i32.wrap_i64 @@ -26173,7 +26172,7 @@ local.get $k|2 i32.wrap_i64 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -26182,7 +26181,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -26199,7 +26198,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 20 local.get $k|2 i32.wrap_i64 @@ -26227,7 +26226,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -26246,7 +26245,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#keys + call $"~lib/map/Map#keys" local.tee $keys i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -26256,17 +26255,17 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#values + call $"~lib/map/Map#values" local.tee $vals i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $keyMap i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $valMap i32.store offset=20 i32.const 0 @@ -26307,7 +26306,7 @@ i32.store offset=4 local.get $12 local.get $key - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -26327,7 +26326,7 @@ i32.const 20 i32.sub i64.extend_i32_s - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -26345,7 +26344,7 @@ local.get $12 local.get $key local.get $key - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $valMap local.set $12 @@ -26359,7 +26358,7 @@ local.get $value i32.const 20 i32.sub - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $index i32.const 1 @@ -26374,7 +26373,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -26392,7 +26391,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -26418,7 +26417,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -26435,7 +26434,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 20 local.get $k|10 i32.wrap_i64 @@ -26457,7 +26456,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" drop local.get $map local.set $12 @@ -26466,7 +26465,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -26490,7 +26489,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz @@ -26516,7 +26515,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -26538,7 +26537,7 @@ local.get $k|11 i32.wrap_i64 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -26547,7 +26546,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -26564,7 +26563,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" drop local.get $map local.set $12 @@ -26573,7 +26572,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -26597,7 +26596,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz @@ -26615,14 +26614,14 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#clear + call $"~lib/map/Map#clear" local.get $map local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 0 i32.eq i32.eqz @@ -26639,7 +26638,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $"~lib/map/Map#constructor" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -26678,7 +26677,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -26688,7 +26687,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -26697,9 +26696,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.0 + br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -26708,7 +26707,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -26716,7 +26715,7 @@ i32.store offset=4 local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -26724,7 +26723,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -26732,7 +26731,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -26741,7 +26740,7 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $~lib/map/Map#find (param $this i32) (param $key f32) (param $hashCode i32) (result i32) + (func $"~lib/map/Map#find" (param $this i32) (param $key f32) (param $hashCode i32) (result i32) (local $entry i32) (local $taggedNext i32) (local $5 i32) @@ -26759,7 +26758,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $5 @@ -26767,7 +26766,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -26778,7 +26777,7 @@ local.get $entry if local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" local.set $taggedNext local.get $taggedNext i32.const 1 @@ -26786,7 +26785,7 @@ i32.eqz if (result i32) local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.get $key f32.eq else @@ -26820,7 +26819,7 @@ local.get $5 return ) - (func $~lib/map/Map#has (param $this i32) (param $key f32) (result i32) + (func $"~lib/map/Map#has" (param $this i32) (param $key f32) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -26839,7 +26838,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" i32.const 0 i32.ne local.set $2 @@ -26850,7 +26849,7 @@ local.get $2 return ) - (func $~lib/map/Map#rehash (param $this i32) (param $newBucketsMask i32) + (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) (local $newBucketsCapacity i32) (local $newBuckets i32) (local $newEntriesCapacity i32) @@ -26896,9 +26895,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.1 + br $"~lib/map/ENTRY_SIZE|inlined.1" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -26910,7 +26909,7 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $oldPtr local.get $oldPtr local.get $this @@ -26919,10 +26918,10 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entriesOffset - block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + call $"~lib/map/Map#get:entriesOffset" + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.2 + br $"~lib/map/ENTRY_SIZE|inlined.2" end i32.mul i32.add @@ -26937,7 +26936,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -26945,15 +26944,15 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" local.get $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" local.get $oldEntryKey call $~lib/util/hash/HASH local.get $newBucketsMask @@ -26968,22 +26967,22 @@ local.get $newEntry local.get $newBucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $newBucketPtrBase local.get $newPtr i32.store local.get $newPtr - block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.3 + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add local.set $newPtr end local.get $oldPtr - block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.4 + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add local.set $oldPtr @@ -27002,7 +27001,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -27010,7 +27009,7 @@ i32.store offset=8 local.get $14 local.get $newBucketsMask - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -27023,7 +27022,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -27031,7 +27030,7 @@ i32.store offset=8 local.get $14 local.get $newEntriesCapacity - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -27044,14 +27043,14 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#get:entriesCount - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#get:entriesCount" + call $"~lib/map/Map#set:entriesOffset" global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set (param $this i32) (param $key f32) (param $value i32) (result i32) + (func $"~lib/map/Map#set" (param $this i32) (param $key f32) (param $value i32) (result i32) (local $hashCode i32) (local $entry i32) (local $entries i32) @@ -27080,13 +27079,13 @@ local.get $8 local.get $key local.get $hashCode - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry if local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop else @@ -27096,14 +27095,14 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" 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:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.eq if local.get $this @@ -27118,14 +27117,14 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -27138,7 +27137,7 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" else local.get $this local.set $8 @@ -27146,13 +27145,13 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl i32.const 1 i32.or end - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer local.get $this @@ -27161,7 +27160,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=8 local.get $entries @@ -27177,27 +27176,27 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.tee $6 i32.const 1 i32.add - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.5 + br $"~lib/map/ENTRY_SIZE|inlined.5" end i32.mul i32.add local.set $entry local.get $entry local.get $key - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" i32.const 0 drop local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this @@ -27212,17 +27211,17 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" 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 + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $8 @@ -27230,7 +27229,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -27239,7 +27238,7 @@ local.get $entry local.get $bucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase local.get $entry i32.store @@ -27253,7 +27252,7 @@ local.get $8 return ) - (func $~lib/map/Map#get (param $this i32) (param $key f32) (result i32) + (func $"~lib/map/Map#get" (param $this i32) (param $key f32) (result i32) (local $entry i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -27273,7 +27272,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry i32.eqz @@ -27286,7 +27285,7 @@ unreachable end local.get $entry - call $~lib/map/MapEntry#get:value + call $"~lib/map/MapEntry#get:value" local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -27295,7 +27294,7 @@ local.get $3 return ) - (func $~lib/map/Map#get:size (param $this i32) (result i32) + (func $"~lib/map/Map#get:size" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -27311,7 +27310,7 @@ local.get $1 i32.store local.get $1 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -27555,7 +27554,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#keys (param $this i32) (result i32) + (func $"~lib/map/Map#keys" (param $this i32) (result i32) (local $start i32) (local $size i32) (local $keys i32) @@ -27578,7 +27577,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $start local.get $this local.set $8 @@ -27586,7 +27585,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -27605,15 +27604,15 @@ if local.get $start local.get $i - block $~lib/map/ENTRY_SIZE|inlined.6 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.6" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.6 + br $"~lib/map/ENTRY_SIZE|inlined.6" end i32.mul i32.add local.set $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -27631,7 +27630,7 @@ local.set $length local.get $7 local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" call $~lib/array/Array#__set end local.get $i @@ -27658,7 +27657,7 @@ local.get $8 return ) - (func $~lib/map/Map#values (param $this i32) (result i32) + (func $"~lib/map/Map#values" (param $this i32) (result i32) (local $start i32) (local $size i32) (local $values i32) @@ -27681,7 +27680,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $start local.get $this local.set $8 @@ -27689,7 +27688,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -27708,15 +27707,15 @@ if local.get $start local.get $i - block $~lib/map/ENTRY_SIZE|inlined.7 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.7" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.7 + br $"~lib/map/ENTRY_SIZE|inlined.7" end i32.mul i32.add local.set $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -27734,7 +27733,7 @@ local.set $length local.get $7 local.get $entry - call $~lib/map/MapEntry#get:value + call $"~lib/map/MapEntry#get:value" call $~lib/array/Array#__set end local.get $i @@ -27761,7 +27760,7 @@ local.get $8 return ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $"~lib/map/Map#constructor" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -27800,7 +27799,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -27810,7 +27809,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -27819,9 +27818,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.0 + br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -27830,7 +27829,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -27838,7 +27837,7 @@ i32.store offset=4 local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -27846,7 +27845,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -27854,7 +27853,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -27941,7 +27940,7 @@ local.get $4 return ) - (func $~lib/map/Map#find (param $this i32) (param $key f32) (param $hashCode i32) (result i32) + (func $"~lib/map/Map#find" (param $this i32) (param $key f32) (param $hashCode i32) (result i32) (local $entry i32) (local $taggedNext i32) (local $5 i32) @@ -27959,7 +27958,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $5 @@ -27967,7 +27966,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -27978,7 +27977,7 @@ local.get $entry if local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" local.set $taggedNext local.get $taggedNext i32.const 1 @@ -27986,7 +27985,7 @@ i32.eqz if (result i32) local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.get $key f32.eq else @@ -28020,7 +28019,7 @@ local.get $5 return ) - (func $~lib/map/Map#rehash (param $this i32) (param $newBucketsMask i32) + (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) (local $newBucketsCapacity i32) (local $newBuckets i32) (local $newEntriesCapacity i32) @@ -28066,9 +28065,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.1 + br $"~lib/map/ENTRY_SIZE|inlined.1" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -28080,7 +28079,7 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $oldPtr local.get $oldPtr local.get $this @@ -28089,10 +28088,10 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entriesOffset - block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + call $"~lib/map/Map#get:entriesOffset" + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.2 + br $"~lib/map/ENTRY_SIZE|inlined.2" end i32.mul i32.add @@ -28107,7 +28106,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -28115,15 +28114,15 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" local.get $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" local.get $oldEntryKey call $~lib/util/hash/HASH local.get $newBucketsMask @@ -28138,22 +28137,22 @@ local.get $newEntry local.get $newBucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $newBucketPtrBase local.get $newPtr i32.store local.get $newPtr - block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.3 + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add local.set $newPtr end local.get $oldPtr - block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.4 + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add local.set $oldPtr @@ -28172,7 +28171,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -28180,7 +28179,7 @@ i32.store offset=8 local.get $14 local.get $newBucketsMask - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -28193,7 +28192,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -28201,7 +28200,7 @@ i32.store offset=8 local.get $14 local.get $newEntriesCapacity - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -28214,14 +28213,14 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#get:entriesCount - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#get:entriesCount" + call $"~lib/map/Map#set:entriesOffset" global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set (param $this i32) (param $key f32) (param $value f32) (result i32) + (func $"~lib/map/Map#set" (param $this i32) (param $key f32) (param $value f32) (result i32) (local $hashCode i32) (local $entry i32) (local $entries i32) @@ -28250,13 +28249,13 @@ local.get $8 local.get $key local.get $hashCode - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry if local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop else @@ -28266,14 +28265,14 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" 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:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.eq if local.get $this @@ -28288,14 +28287,14 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -28308,7 +28307,7 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" else local.get $this local.set $8 @@ -28316,13 +28315,13 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl i32.const 1 i32.or end - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer local.get $this @@ -28331,7 +28330,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=8 local.get $entries @@ -28347,27 +28346,27 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.tee $6 i32.const 1 i32.add - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.5 + br $"~lib/map/ENTRY_SIZE|inlined.5" end i32.mul i32.add local.set $entry local.get $entry local.get $key - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" i32.const 0 drop local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this @@ -28382,17 +28381,17 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" 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 + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $8 @@ -28400,7 +28399,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -28409,7 +28408,7 @@ local.get $entry local.get $bucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase local.get $entry i32.store @@ -28423,7 +28422,7 @@ local.get $8 return ) - (func $~lib/map/Map#get:size (param $this i32) (result i32) + (func $"~lib/map/Map#get:size" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -28439,7 +28438,7 @@ local.get $1 i32.store local.get $1 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -28448,7 +28447,7 @@ local.get $1 return ) - (func $~lib/map/Map#delete (param $this i32) (param $key f32) (result i32) + (func $"~lib/map/Map#delete" (param $this i32) (param $key f32) (result i32) (local $entry i32) (local $halfBucketsMask i32) (local $4 i32) @@ -28471,7 +28470,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry i32.eqz @@ -28487,10 +28486,10 @@ end local.get $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.or - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer @@ -28503,17 +28502,17 @@ local.get $6 i32.store offset=4 local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.sub - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shr_u local.set $halfBucketsMask @@ -28528,7 +28527,7 @@ local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.tee $5 local.get $4 local.get $5 @@ -28542,14 +28541,14 @@ local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -28566,7 +28565,7 @@ i32.store local.get $6 local.get $halfBucketsMask - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end i32.const 1 local.set $6 @@ -28577,7 +28576,7 @@ local.get $6 return ) - (func $~lib/map/Map#clear (param $this i32) + (func $"~lib/map/Map#clear" (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -28603,7 +28602,7 @@ local.get $1 i32.store offset=4 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -28613,7 +28612,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -28622,9 +28621,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.8 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.8" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.8 + br $"~lib/map/ENTRY_SIZE|inlined.8" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -28633,7 +28632,7 @@ local.get $1 i32.store offset=4 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -28641,7 +28640,7 @@ i32.store local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -28649,7 +28648,7 @@ i32.store local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -28657,13 +28656,13 @@ i32.store local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/map/testNumeric + (func $"std/map/testNumeric" (local $map i32) (local $k f32) (local $k|2 f32) @@ -28688,7 +28687,7 @@ memory.fill global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $map i32.store f32.const 0 @@ -28705,7 +28704,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -28727,7 +28726,7 @@ local.get $k i32.trunc_sat_f32_s i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -28736,7 +28735,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -28753,7 +28752,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 10 local.get $k i32.trunc_sat_f32_s @@ -28781,7 +28780,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -28807,7 +28806,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -28824,7 +28823,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 10 local.get $k|2 i32.trunc_sat_f32_s @@ -28850,7 +28849,7 @@ local.get $k|2 i32.trunc_sat_f32_s i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -28859,7 +28858,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -28876,7 +28875,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 20 local.get $k|2 i32.trunc_sat_f32_s @@ -28904,7 +28903,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -28923,7 +28922,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#keys + call $"~lib/map/Map#keys" local.tee $keys i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -28933,17 +28932,17 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#values + call $"~lib/map/Map#values" local.tee $vals i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $keyMap i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $valMap i32.store offset=20 i32.const 0 @@ -28984,7 +28983,7 @@ i32.store offset=4 local.get $12 local.get $key - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -29004,7 +29003,7 @@ i32.const 20 i32.sub f32.convert_i32_s - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -29022,7 +29021,7 @@ local.get $12 local.get $key local.get $key - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $valMap local.set $12 @@ -29036,7 +29035,7 @@ local.get $value i32.const 20 i32.sub - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $index i32.const 1 @@ -29051,7 +29050,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -29069,7 +29068,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -29095,7 +29094,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -29112,7 +29111,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 20 local.get $k|10 i32.trunc_sat_f32_s @@ -29134,7 +29133,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" drop local.get $map local.set $12 @@ -29143,7 +29142,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -29167,7 +29166,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz @@ -29193,7 +29192,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -29215,7 +29214,7 @@ local.get $k|11 i32.trunc_sat_f32_s i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -29224,7 +29223,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -29241,7 +29240,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" drop local.get $map local.set $12 @@ -29250,7 +29249,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -29274,7 +29273,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz @@ -29292,14 +29291,14 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#clear + call $"~lib/map/Map#clear" local.get $map local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 0 i32.eq i32.eqz @@ -29316,7 +29315,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $"~lib/map/Map#constructor" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -29355,7 +29354,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -29365,7 +29364,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -29374,9 +29373,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 16 - br $~lib/map/ENTRY_SIZE|inlined.0 + br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -29385,7 +29384,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -29393,7 +29392,7 @@ i32.store offset=4 local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -29401,7 +29400,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -29409,7 +29408,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -29418,7 +29417,7 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $~lib/map/Map#find (param $this i32) (param $key f64) (param $hashCode i32) (result i32) + (func $"~lib/map/Map#find" (param $this i32) (param $key f64) (param $hashCode i32) (result i32) (local $entry i32) (local $taggedNext i32) (local $5 i32) @@ -29436,7 +29435,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $5 @@ -29444,7 +29443,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -29455,7 +29454,7 @@ local.get $entry if local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" local.set $taggedNext local.get $taggedNext i32.const 1 @@ -29463,7 +29462,7 @@ i32.eqz if (result i32) local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.get $key f64.eq else @@ -29497,7 +29496,7 @@ local.get $5 return ) - (func $~lib/map/Map#has (param $this i32) (param $key f64) (result i32) + (func $"~lib/map/Map#has" (param $this i32) (param $key f64) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -29516,7 +29515,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" i32.const 0 i32.ne local.set $2 @@ -29527,7 +29526,7 @@ local.get $2 return ) - (func $~lib/map/Map#rehash (param $this i32) (param $newBucketsMask i32) + (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) (local $newBucketsCapacity i32) (local $newBuckets i32) (local $newEntriesCapacity i32) @@ -29573,9 +29572,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) i32.const 16 - br $~lib/map/ENTRY_SIZE|inlined.1 + br $"~lib/map/ENTRY_SIZE|inlined.1" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -29587,7 +29586,7 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $oldPtr local.get $oldPtr local.get $this @@ -29596,10 +29595,10 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entriesOffset - block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + call $"~lib/map/Map#get:entriesOffset" + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) i32.const 16 - br $~lib/map/ENTRY_SIZE|inlined.2 + br $"~lib/map/ENTRY_SIZE|inlined.2" end i32.mul i32.add @@ -29614,7 +29613,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -29622,15 +29621,15 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" local.get $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" local.get $oldEntryKey call $~lib/util/hash/HASH local.get $newBucketsMask @@ -29645,22 +29644,22 @@ local.get $newEntry local.get $newBucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $newBucketPtrBase local.get $newPtr i32.store local.get $newPtr - block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 16 - br $~lib/map/ENTRY_SIZE|inlined.3 + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add local.set $newPtr end local.get $oldPtr - block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 16 - br $~lib/map/ENTRY_SIZE|inlined.4 + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add local.set $oldPtr @@ -29679,7 +29678,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -29687,7 +29686,7 @@ i32.store offset=8 local.get $14 local.get $newBucketsMask - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -29700,7 +29699,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -29708,7 +29707,7 @@ i32.store offset=8 local.get $14 local.get $newEntriesCapacity - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -29721,14 +29720,14 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#get:entriesCount - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#get:entriesCount" + call $"~lib/map/Map#set:entriesOffset" global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set (param $this i32) (param $key f64) (param $value i32) (result i32) + (func $"~lib/map/Map#set" (param $this i32) (param $key f64) (param $value i32) (result i32) (local $hashCode i32) (local $entry i32) (local $entries i32) @@ -29757,13 +29756,13 @@ local.get $8 local.get $key local.get $hashCode - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry if local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop else @@ -29773,14 +29772,14 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" 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:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.eq if local.get $this @@ -29795,14 +29794,14 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -29815,7 +29814,7 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" else local.get $this local.set $8 @@ -29823,13 +29822,13 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl i32.const 1 i32.or end - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer local.get $this @@ -29838,7 +29837,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=8 local.get $entries @@ -29854,27 +29853,27 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.tee $6 i32.const 1 i32.add - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) i32.const 16 - br $~lib/map/ENTRY_SIZE|inlined.5 + br $"~lib/map/ENTRY_SIZE|inlined.5" end i32.mul i32.add local.set $entry local.get $entry local.get $key - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" i32.const 0 drop local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this @@ -29889,17 +29888,17 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" 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 + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $8 @@ -29907,7 +29906,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -29916,7 +29915,7 @@ local.get $entry local.get $bucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase local.get $entry i32.store @@ -29930,7 +29929,7 @@ local.get $8 return ) - (func $~lib/map/Map#get (param $this i32) (param $key f64) (result i32) + (func $"~lib/map/Map#get" (param $this i32) (param $key f64) (result i32) (local $entry i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -29950,7 +29949,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry i32.eqz @@ -29963,7 +29962,7 @@ unreachable end local.get $entry - call $~lib/map/MapEntry#get:value + call $"~lib/map/MapEntry#get:value" local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -29972,7 +29971,7 @@ local.get $3 return ) - (func $~lib/map/Map#get:size (param $this i32) (result i32) + (func $"~lib/map/Map#get:size" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -29988,7 +29987,7 @@ local.get $1 i32.store local.get $1 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -30232,7 +30231,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#keys (param $this i32) (result i32) + (func $"~lib/map/Map#keys" (param $this i32) (result i32) (local $start i32) (local $size i32) (local $keys i32) @@ -30255,7 +30254,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $start local.get $this local.set $8 @@ -30263,7 +30262,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -30282,15 +30281,15 @@ if local.get $start local.get $i - block $~lib/map/ENTRY_SIZE|inlined.6 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.6" (result i32) i32.const 16 - br $~lib/map/ENTRY_SIZE|inlined.6 + br $"~lib/map/ENTRY_SIZE|inlined.6" end i32.mul i32.add local.set $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -30308,7 +30307,7 @@ local.set $length local.get $7 local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" call $~lib/array/Array#__set end local.get $i @@ -30335,7 +30334,7 @@ local.get $8 return ) - (func $~lib/map/Map#values (param $this i32) (result i32) + (func $"~lib/map/Map#values" (param $this i32) (result i32) (local $start i32) (local $size i32) (local $values i32) @@ -30358,7 +30357,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $start local.get $this local.set $8 @@ -30366,7 +30365,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -30385,15 +30384,15 @@ if local.get $start local.get $i - block $~lib/map/ENTRY_SIZE|inlined.7 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.7" (result i32) i32.const 16 - br $~lib/map/ENTRY_SIZE|inlined.7 + br $"~lib/map/ENTRY_SIZE|inlined.7" end i32.mul i32.add local.set $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -30411,7 +30410,7 @@ local.set $length local.get $7 local.get $entry - call $~lib/map/MapEntry#get:value + call $"~lib/map/MapEntry#get:value" call $~lib/array/Array#__set end local.get $i @@ -30438,7 +30437,7 @@ local.get $8 return ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $"~lib/map/Map#constructor" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -30477,7 +30476,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -30487,7 +30486,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -30496,9 +30495,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 24 - br $~lib/map/ENTRY_SIZE|inlined.0 + br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -30507,7 +30506,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -30515,7 +30514,7 @@ i32.store offset=4 local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -30523,7 +30522,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -30531,7 +30530,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -30618,7 +30617,7 @@ local.get $4 return ) - (func $~lib/map/Map#find (param $this i32) (param $key f64) (param $hashCode i32) (result i32) + (func $"~lib/map/Map#find" (param $this i32) (param $key f64) (param $hashCode i32) (result i32) (local $entry i32) (local $taggedNext i32) (local $5 i32) @@ -30636,7 +30635,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $5 @@ -30644,7 +30643,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -30655,7 +30654,7 @@ local.get $entry if local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" local.set $taggedNext local.get $taggedNext i32.const 1 @@ -30663,7 +30662,7 @@ i32.eqz if (result i32) local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.get $key f64.eq else @@ -30697,7 +30696,7 @@ local.get $5 return ) - (func $~lib/map/Map#rehash (param $this i32) (param $newBucketsMask i32) + (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) (local $newBucketsCapacity i32) (local $newBuckets i32) (local $newEntriesCapacity i32) @@ -30743,9 +30742,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) i32.const 24 - br $~lib/map/ENTRY_SIZE|inlined.1 + br $"~lib/map/ENTRY_SIZE|inlined.1" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -30757,7 +30756,7 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $oldPtr local.get $oldPtr local.get $this @@ -30766,10 +30765,10 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entriesOffset - block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + call $"~lib/map/Map#get:entriesOffset" + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) i32.const 24 - br $~lib/map/ENTRY_SIZE|inlined.2 + br $"~lib/map/ENTRY_SIZE|inlined.2" end i32.mul i32.add @@ -30784,7 +30783,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -30792,15 +30791,15 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" local.get $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" local.get $oldEntryKey call $~lib/util/hash/HASH local.get $newBucketsMask @@ -30815,22 +30814,22 @@ local.get $newEntry local.get $newBucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $newBucketPtrBase local.get $newPtr i32.store local.get $newPtr - block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 24 - br $~lib/map/ENTRY_SIZE|inlined.3 + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add local.set $newPtr end local.get $oldPtr - block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 24 - br $~lib/map/ENTRY_SIZE|inlined.4 + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add local.set $oldPtr @@ -30849,7 +30848,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -30857,7 +30856,7 @@ i32.store offset=8 local.get $14 local.get $newBucketsMask - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -30870,7 +30869,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -30878,7 +30877,7 @@ i32.store offset=8 local.get $14 local.get $newEntriesCapacity - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -30891,14 +30890,14 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#get:entriesCount - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#get:entriesCount" + call $"~lib/map/Map#set:entriesOffset" global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set (param $this i32) (param $key f64) (param $value f64) (result i32) + (func $"~lib/map/Map#set" (param $this i32) (param $key f64) (param $value f64) (result i32) (local $hashCode i32) (local $entry i32) (local $entries i32) @@ -30927,13 +30926,13 @@ local.get $8 local.get $key local.get $hashCode - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry if local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop else @@ -30943,14 +30942,14 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" 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:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.eq if local.get $this @@ -30965,14 +30964,14 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -30985,7 +30984,7 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" else local.get $this local.set $8 @@ -30993,13 +30992,13 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl i32.const 1 i32.or end - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer local.get $this @@ -31008,7 +31007,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=8 local.get $entries @@ -31024,27 +31023,27 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.tee $6 i32.const 1 i32.add - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) i32.const 24 - br $~lib/map/ENTRY_SIZE|inlined.5 + br $"~lib/map/ENTRY_SIZE|inlined.5" end i32.mul i32.add local.set $entry local.get $entry local.get $key - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" i32.const 0 drop local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this @@ -31059,17 +31058,17 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" 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 + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $8 @@ -31077,7 +31076,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -31086,7 +31085,7 @@ local.get $entry local.get $bucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase local.get $entry i32.store @@ -31100,7 +31099,7 @@ local.get $8 return ) - (func $~lib/map/Map#get:size (param $this i32) (result i32) + (func $"~lib/map/Map#get:size" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -31116,7 +31115,7 @@ local.get $1 i32.store local.get $1 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -31125,7 +31124,7 @@ local.get $1 return ) - (func $~lib/map/Map#delete (param $this i32) (param $key f64) (result i32) + (func $"~lib/map/Map#delete" (param $this i32) (param $key f64) (result i32) (local $entry i32) (local $halfBucketsMask i32) (local $4 i32) @@ -31148,7 +31147,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry i32.eqz @@ -31164,10 +31163,10 @@ end local.get $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.or - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer @@ -31180,17 +31179,17 @@ local.get $6 i32.store offset=4 local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.sub - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shr_u local.set $halfBucketsMask @@ -31205,7 +31204,7 @@ local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.tee $5 local.get $4 local.get $5 @@ -31219,14 +31218,14 @@ local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -31243,7 +31242,7 @@ i32.store local.get $6 local.get $halfBucketsMask - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end i32.const 1 local.set $6 @@ -31254,7 +31253,7 @@ local.get $6 return ) - (func $~lib/map/Map#clear (param $this i32) + (func $"~lib/map/Map#clear" (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -31280,7 +31279,7 @@ local.get $1 i32.store offset=4 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -31290,7 +31289,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -31299,9 +31298,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.8 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.8" (result i32) i32.const 16 - br $~lib/map/ENTRY_SIZE|inlined.8 + br $"~lib/map/ENTRY_SIZE|inlined.8" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -31310,7 +31309,7 @@ local.get $1 i32.store offset=4 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -31318,7 +31317,7 @@ i32.store local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -31326,7 +31325,7 @@ i32.store local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -31334,13 +31333,13 @@ i32.store local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/map/testNumeric + (func $"std/map/testNumeric" (local $map i32) (local $k f64) (local $k|2 f64) @@ -31365,7 +31364,7 @@ memory.fill global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $map i32.store f64.const 0 @@ -31382,7 +31381,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -31404,7 +31403,7 @@ local.get $k i32.trunc_sat_f64_s i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -31413,7 +31412,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -31430,7 +31429,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 10 local.get $k i32.trunc_sat_f64_s @@ -31458,7 +31457,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -31484,7 +31483,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -31501,7 +31500,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 10 local.get $k|2 i32.trunc_sat_f64_s @@ -31527,7 +31526,7 @@ local.get $k|2 i32.trunc_sat_f64_s i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -31536,7 +31535,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -31553,7 +31552,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 20 local.get $k|2 i32.trunc_sat_f64_s @@ -31581,7 +31580,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -31600,7 +31599,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#keys + call $"~lib/map/Map#keys" local.tee $keys i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -31610,17 +31609,17 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#values + call $"~lib/map/Map#values" local.tee $vals i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $keyMap i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $valMap i32.store offset=20 i32.const 0 @@ -31661,7 +31660,7 @@ i32.store offset=4 local.get $12 local.get $key - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -31681,7 +31680,7 @@ i32.const 20 i32.sub f64.convert_i32_s - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -31699,7 +31698,7 @@ local.get $12 local.get $key local.get $key - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $valMap local.set $12 @@ -31713,7 +31712,7 @@ local.get $value i32.const 20 i32.sub - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $index i32.const 1 @@ -31728,7 +31727,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -31746,7 +31745,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -31772,7 +31771,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -31789,7 +31788,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 20 local.get $k|10 i32.trunc_sat_f64_s @@ -31811,7 +31810,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" drop local.get $map local.set $12 @@ -31820,7 +31819,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -31844,7 +31843,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz @@ -31870,7 +31869,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -31892,7 +31891,7 @@ local.get $k|11 i32.trunc_sat_f64_s i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -31901,7 +31900,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -31918,7 +31917,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" drop local.get $map local.set $12 @@ -31927,7 +31926,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -31951,7 +31950,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz @@ -31969,14 +31968,14 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#clear + call $"~lib/map/Map#clear" local.get $map local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 0 i32.eq i32.eqz @@ -31993,7 +31992,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#__visit (param $this i32) (param $cookie i32) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -32010,7 +32009,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $cookie call $~lib/rt/itcms/__visit local.get $this @@ -32019,7 +32018,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $entries i32.const 0 drop @@ -32083,7 +32082,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#__visit (param $this i32) (param $cookie i32) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -32100,7 +32099,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $cookie call $~lib/rt/itcms/__visit local.get $this @@ -32109,7 +32108,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $entries i32.const 0 drop @@ -32121,7 +32120,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#__visit (param $this i32) (param $cookie i32) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -32138,7 +32137,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $cookie call $~lib/rt/itcms/__visit local.get $this @@ -32147,7 +32146,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $entries i32.const 0 drop @@ -32159,7 +32158,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#__visit (param $this i32) (param $cookie i32) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -32176,7 +32175,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $cookie call $~lib/rt/itcms/__visit local.get $this @@ -32185,7 +32184,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $entries i32.const 0 drop @@ -32223,7 +32222,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#__visit (param $this i32) (param $cookie i32) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -32240,7 +32239,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $cookie call $~lib/rt/itcms/__visit local.get $this @@ -32249,7 +32248,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $entries i32.const 0 drop @@ -32261,7 +32260,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#__visit (param $this i32) (param $cookie i32) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -32278,7 +32277,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $cookie call $~lib/rt/itcms/__visit local.get $this @@ -32287,7 +32286,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $entries i32.const 0 drop @@ -32325,7 +32324,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#__visit (param $this i32) (param $cookie i32) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -32342,7 +32341,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $cookie call $~lib/rt/itcms/__visit local.get $this @@ -32351,7 +32350,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $entries i32.const 0 drop @@ -32363,7 +32362,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#__visit (param $this i32) (param $cookie i32) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -32380,7 +32379,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $cookie call $~lib/rt/itcms/__visit local.get $this @@ -32389,7 +32388,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $entries i32.const 0 drop @@ -32427,7 +32426,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#__visit (param $this i32) (param $cookie i32) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -32444,7 +32443,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $cookie call $~lib/rt/itcms/__visit local.get $this @@ -32453,7 +32452,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $entries i32.const 0 drop @@ -32465,7 +32464,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#__visit (param $this i32) (param $cookie i32) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -32482,7 +32481,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $cookie call $~lib/rt/itcms/__visit local.get $this @@ -32491,7 +32490,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $entries i32.const 0 drop @@ -32529,7 +32528,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#__visit (param $this i32) (param $cookie i32) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -32546,7 +32545,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $cookie call $~lib/rt/itcms/__visit local.get $this @@ -32555,7 +32554,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $entries i32.const 0 drop @@ -32567,7 +32566,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#__visit (param $this i32) (param $cookie i32) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -32584,7 +32583,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $cookie call $~lib/rt/itcms/__visit local.get $this @@ -32593,7 +32592,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $entries i32.const 0 drop @@ -32631,7 +32630,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#__visit (param $this i32) (param $cookie i32) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -32648,7 +32647,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $cookie call $~lib/rt/itcms/__visit local.get $this @@ -32657,7 +32656,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $entries i32.const 0 drop @@ -32669,7 +32668,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#__visit (param $this i32) (param $cookie i32) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -32686,7 +32685,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $cookie call $~lib/rt/itcms/__visit local.get $this @@ -32695,7 +32694,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $entries i32.const 0 drop @@ -32733,7 +32732,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#__visit (param $this i32) (param $cookie i32) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -32750,7 +32749,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $cookie call $~lib/rt/itcms/__visit local.get $this @@ -32759,7 +32758,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $entries i32.const 0 drop @@ -32771,7 +32770,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#__visit (param $this i32) (param $cookie i32) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -32788,7 +32787,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $cookie call $~lib/rt/itcms/__visit local.get $this @@ -32797,7 +32796,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $entries i32.const 0 drop @@ -32835,7 +32834,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#__visit (param $this i32) (param $cookie i32) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -32852,7 +32851,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $cookie call $~lib/rt/itcms/__visit local.get $this @@ -32861,7 +32860,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $entries i32.const 0 drop @@ -32873,7 +32872,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#__visit (param $this i32) (param $cookie i32) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -32890,7 +32889,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $cookie call $~lib/rt/itcms/__visit local.get $this @@ -32899,7 +32898,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $entries i32.const 0 drop @@ -32937,7 +32936,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#__visit (param $this i32) (param $cookie i32) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -32954,7 +32953,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $cookie call $~lib/rt/itcms/__visit local.get $this @@ -32963,7 +32962,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $entries i32.const 0 drop diff --git a/tests/compiler/std/map.release.wat b/tests/compiler/std/map.release.wat index 3cd075d0b8..112ed92024 100644 --- a/tests/compiler/std/map.release.wat +++ b/tests/compiler/std/map.release.wat @@ -5,25 +5,25 @@ (type $3 (func)) (type $4 (func (param i32) (result i32))) (type $5 (func (param i32))) - (type $6 (func (param i32 i32 i32) (result i32))) - (type $7 (func (param i32 i64) (result i32))) + (type $6 (func (param i32 i64) (result i32))) + (type $7 (func (param i32 i32 i32) (result 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))) - (type $14 (func (param i32 i64))) - (type $15 (func (param i32 f32) (result i32))) - (type $16 (func (param i32 f64) (result i32))) + (type $9 (func (result i32))) + (type $10 (func (param i32 f64) (result i32))) + (type $11 (func (param i32 f32) (result i32))) + (type $12 (func (param i32 i64 i32) (result i32))) + (type $13 (func (param i32 i64 i32))) + (type $14 (func (param i32 i32 i64))) + (type $15 (func (param i32 i64))) + (type $16 (func (param i32 i64 i64))) (type $17 (func (param i32 f32 i32) (result i32))) - (type $18 (func (param i32 f32 i32))) - (type $19 (func (param i32 f32 f32))) - (type $20 (func (param i32 f32))) - (type $21 (func (param i32 f64 i32) (result i32))) - (type $22 (func (param i32 f64 i32))) + (type $18 (func (param i32 f64 i32) (result i32))) + (type $19 (func (param i32 f64 i32))) + (type $20 (func (param i32 f32 i32))) + (type $21 (func (param i32 f64))) + (type $22 (func (param i32 f32))) (type $23 (func (param i32 f64 f64))) - (type $24 (func (param i32 f64))) + (type $24 (func (param i32 f32 f32))) (import "env" "abort" (func $~lib/builtins/abort (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)) @@ -62,1743 +62,1432 @@ (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/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1248 - call $~lib/rt/itcms/__visit - i32.const 1456 - call $~lib/rt/itcms/__visit - i32.const 1616 - call $~lib/rt/itcms/__visit - i32.const 1056 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace + (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 -4 + i32.const 3 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$1422 - local.get $0 + i32.const 20 + i32.sub i32.load offset=4 - i32.const -4 + i32.const 3 i32.and - local.tee $1 + 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.load offset=8 - i32.eqz - local.get $0 - i32.const 34664 - i32.lt_u + i32.const 3 + i32.eq i32.and - i32.eqz if - i32.const 0 - i32.const 1120 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable + local.get $1 + call $~lib/rt/itcms/Object#makeGray end - br $__inlined_func$~lib/rt/itcms/Object#unlink$1422 - 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) + ) + (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 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 i32.const 1 - else - local.get $1 - i32.const 1760 - i32.load - i32.gt_u - if - i32.const 1248 - i32.const 1312 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.const 1764 - i32.add - i32.load - i32.const 32 - i32.and + i32.const 1 + call $~lib/builtins/abort + unreachable 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 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store local.get $0 - local.get $1 - i32.store offset=8 - local.get $1 + i32.const 1073741820 + i32.gt_u + if + i32.const 1456 + i32.const 1504 + i32.const 52 + i32.const 43 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 ) - (func $~lib/rt/itcms/__visit (param $0 i32) - local.get $0 - i32.eqz + (func $"~lib/map/Map#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 1896 + i32.lt_s if - return + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/white + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer 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 + i32.store + local.get $0 + i32.load offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (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.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + (local $6 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u if - i32.const 0 - i32.const 1392 - i32.const 268 - i32.const 14 + i32.const 1056 + i32.const 1120 + i32.const 261 + i32.const 31 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - i32.const 0 + 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 270 - i32.const 14 + i32.const 461 + i32.const 29 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const 256 - i32.lt_u + local.get $4 + local.get $2 + i32.const 12 + i32.le_u if (result i32) - local.get $3 - i32.const 4 - i32.shr_u + i32.const 12 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 + local.get $2 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 i32.sub - local.set $2 - local.get $3 + end + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + 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 + memory.size + local.tee $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.set $3 + local.get $2 + local.get $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.xor + 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.tee $3 - i32.const 16 - i32.lt_u + local.get $5 local.get $2 - i32.const 23 - i32.lt_u + i32.load + i32.const -4 i32.and - i32.eqz + i32.gt_u if i32.const 0 i32.const 1392 - i32.const 284 + i32.const 501 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 $4 + local.get $2 + call $~lib/rt/tlsf/removeBlock + local.get $2 + i32.load + local.set $6 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 + i32.const 4 + i32.add + i32.const 15 + i32.and if i32.const 0 i32.const 1392 - i32.const 203 + i32.const 361 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load + local.get $6 i32.const -4 i32.and - i32.add - local.tee $4 - i32.load - local.tee $2 - i32.const 1 - i32.and + local.get $5 + i32.sub + local.tee $3 + i32.const 16 + i32.ge_u 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 + local.get $5 + local.get $6 + i32.const 2 i32.and - i32.add - local.tee $3 + i32.or i32.store - local.get $1 + local.get $2 i32.const 4 i32.add - local.get $1 - i32.load - i32.const -4 - i32.and + local.get $5 i32.add - local.tee $4 - i32.load - local.set $2 - end - local.get $3 - i32.const 2 - i32.and - if - local.get $1 + local.tee $5 + local.get $3 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 + 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 $3 + 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 $4 local.get $2 - i32.const 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 + i32.store offset=4 + local.get $2 local.get $3 - i32.const -4 + i32.store offset=8 + local.get $3 + local.get $2 + local.get $3 + i32.load offset=4 + i32.const 3 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 + 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 - i32.ne + local.tee $1 + i32.const 0 + local.get $0 + memory.fill + local.get $1 + ) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 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 1896 + i32.lt_s if - i32.const 0 - i32.const 1392 - i32.const 234 - i32.const 14 + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $4 - i32.const 4 - i32.sub - local.get $1 + 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 - 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 $0 + local.get $1 + 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 $4 + call $"~lib/map/Map#find" + local.tee $3 + if + local.get $3 local.get $2 - i32.const 1073741820 - i32.ge_u - select - local.tee $2 - i32.clz - i32.sub + i32.store offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + 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 + i32.load offset=20 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $3 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + 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 + i32.const 1 + i32.or + end + call $"~lib/map/Map#rehash" + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 local.tee $3 - i32.const 7 - i32.sub - local.set $5 + 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=16 + local.tee $5 + i32.const 1 + i32.add + i32.store offset=16 + local.get $3 + local.get $5 + i32.const 12 + i32.mul + i32.add + local.tee $3 + local.get $1 + i32.store + local.get $3 local.get $2 + i32.store offset=4 + 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=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $3 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor + local.get $1 + local.get $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=8 + local.get $0 + local.get $3 + i32.store end - local.tee $2 - i32.const 16 - i32.lt_u - local.get $5 - i32.const 23 - i32.lt_u - i32.and - i32.eqz + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#constructor" (result i32) + (local $0 i32) + (local $1 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 1896 + i32.lt_s if - i32.const 0 - i32.const 1392 - i32.const 251 - i32.const 14 + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 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.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 24 + 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 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer 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 + i32.store local.get $0 + local.get $1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load - i32.const 1 - local.get $5 - i32.shl - i32.or - i32.store + i32.store offset=4 local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - local.tee $0 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer 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 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer 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 + i32.store offset=8 + local.get $0 local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - local.set $1 + i32.store offset=8 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 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $"~lib/map/Map#has" (param $0 i32) (param $1 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - local.tee $3 - i32.const 20 - i32.lt_u + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s if - return + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable 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 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=4 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 local.get $1 - i32.const 0 - i32.store offset=8 local.get $1 - i32.const 4 - i32.add - local.get $3 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 i32.add - local.tee $3 - i32.const 2 - i32.store + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 local.get $0 - local.get $3 - i32.store offset=1568 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $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 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + call $"~lib/map/Map#find" 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 + i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#has" (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 1896 + i32.lt_s if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort unreachable end - i32.const 34672 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - i32.const 36240 - i32.const 0 + global.get $~lib/memory/__stack_pointer + local.get $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 34672 - 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 34672 - 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 + local.get $0 + local.get $1 + 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 $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + call $"~lib/map/Map#find" + i32.const 0 + i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#has" (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 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - i32.const 34672 - i32.const 36244 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34672 - global.set $~lib/rt/tlsf/ROOT + 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 + 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 $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + call $"~lib/map/Map#find" + i32.const 0 + i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (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 34664 - 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 34664 - 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 34664 - 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.set $1 - 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 $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + (func $"~lib/map/Map#has" (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 1896 + i32.lt_s + if + 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 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + 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.const 65535 i32.and - i32.eqz + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + call $"~lib/map/Map#find" + i32.const 0 + i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#has" (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 1896 + i32.lt_s if - i32.const 0 - i32.const 1392 - i32.const 334 - i32.const 14 + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 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 + 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 - 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 $1 + i32.extend8_s + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 local.get $0 - i32.const 1073741804 - i32.ge_u + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + call $"~lib/map/Map#find" + i32.const 0 + i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#has" (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 1896 + i32.lt_s if - i32.const 1056 - i32.const 1120 - i32.const 261 - i32.const 31 + i32.const 34688 + i32.const 34736 + 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$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 - 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 $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 - 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.store + local.get $0 + local.get $1 + 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 $0 + i32.const 15 + i32.shr_u local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 i32.const 16 + i32.shr_u + local.get $0 + i32.xor + call $"~lib/map/Map#find" + i32.const 0 + i32.ne + 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/map/Map#has" (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 1896 + i32.lt_s if - i32.const 1056 - i32.const 1392 - i32.const 461 - i32.const 29 + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 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 + 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 + 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 $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + call $"~lib/map/Map#find" + i32.const 0 + i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#has" (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 1896 + i32.lt_s if - i32.const 0 - i32.const 1392 - i32.const 501 - i32.const 14 + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 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 + 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 + local.get $1 + i32.extend16_s + i32.const -1028477379 + i32.mul + i32.const 374761395 i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 i32.const 15 - i32.and + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + call $"~lib/map/Map#find" + i32.const 0 + i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#has" (param $0 i32) (param $1 f64) (result i32) + (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 1896 + i32.lt_s if - i32.const 0 - i32.const 1392 - i32.const 361 - i32.const 14 + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 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 + 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.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 + i64.reinterpret_f64 + local.tee $2 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 i32.add - global.set $~lib/rt/itcms/total + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul local.get $2 - i32.const 20 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul i32.add - local.tee $1 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + call $"~lib/map/Map#find" + i32.const 0 + i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#has" (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 1896 + i32.lt_s + if + 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.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $0 - memory.fill local.get $1 - ) - (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) - (local $2 i32) local.get $1 - i32.eqz + 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 $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + call $"~lib/map/Map#find" + i32.const 0 + i32.ne + 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 1896 + i32.lt_s if - return + 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.store + global.get $~lib/memory/__stack_pointer local.get $0 - i32.eqz + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u if - i32.const 0 - i32.const 1120 - i32.const 295 - i32.const 14 + i32.const 1248 + i32.const 1728 + i32.const 114 + i32.const 42 call $~lib/builtins/abort unreachable end - global.get $~lib/rt/itcms/white - local.tee $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 local.get $1 - i32.const 20 + 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) (param $2 i32) (param $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 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 - local.get $2 - 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/__visit_members (param $0 i32) - (local $1 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-inner1 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - 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 1896 - i32.lt_s - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - 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 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~start - memory.size - i32.const 16 - i32.shl - i32.const 34664 - 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/map/testNumeric - call $std/map/testNumeric - call $std/map/testNumeric - call $std/map/testNumeric - call $std/map/testNumeric - call $std/map/testNumeric - call $std/map/testNumeric - call $std/map/testNumeric - call $std/map/testNumeric - call $std/map/testNumeric - global.get $~lib/rt/itcms/state - i32.const 0 - i32.gt_s - if - loop $while-continue|0 - global.get $~lib/rt/itcms/state - 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 - 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 - ) - (func $~lib/map/Map#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s if i32.const 34688 i32.const 34736 @@ -1808,69 +1497,126 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store + local.get $1 local.get $0 - i32.load - local.set $4 - local.get $3 - local.get $0 - i32.store - local.get $4 + i32.load offset=8 + local.tee $5 local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - loop $while-continue|0 + 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 1456 + i32.const 1728 + 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 - local.get $0 - i32.load offset=8 - local.tee $2 + i32.const 1073741820 + local.get $5 i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $0 - i32.load8_u - local.get $1 - i32.const 255 - i32.and - i32.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end + i32.shl + local.tee $2 local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 + 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$1377 + 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$1377 + 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 - i32.const 0 ) - (func $~lib/map/Map#has (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1887,63 +1633,50 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - local.get $1 - local.get $1 - i32.extend8_s - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor - call $~lib/map/Map#find - i32.const 0 - i32.ne - local.set $0 + i32.load offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + ) + (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/map/Map#rehash (param $0 i32) (param $1 i32) + (func $"~lib/map/Map#values" (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -1958,185 +1691,155 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 - i64.const 0 - i64.store offset=8 - local.get $2 - local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $5 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store local.get $0 i32.load offset=8 - local.set $7 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - local.get $7 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=16 - i32.const 12 - i32.mul - i32.add - local.set $4 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $4 - local.get $7 - i32.ne + local.tee $0 + call $~lib/array/Array#constructor + local.tee $5 + i32.store offset=4 + loop $for-loop|0 + local.get $0 + local.get $2 + i32.gt_s if - local.get $7 + local.get $3 + local.get $2 + i32.const 12 + i32.mul + i32.add + local.tee $4 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $2 - local.get $7 - i32.load8_s - local.tee $8 - i32.store8 - local.get $2 - local.get $7 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + local.get $1 + local.get $4 i32.load offset=4 - i32.store offset=4 - local.get $2 - local.get $6 + call $~lib/array/Array#__set local.get $1 - local.get $8 - i32.extend8_s - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $8 - local.get $8 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $8 - local.get $8 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $8 - local.get $8 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $8 - i32.load - i32.store offset=8 - local.get $8 - local.get $2 - i32.store - local.get $2 - i32.const 12 + i32.const 1 i32.add - local.set $2 + local.set $1 end - local.get $7 - i32.const 12 + local.get $2 + i32.const 1 i32.add - local.set $7 - br $while-continue|0 + local.set $2 + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.get $5 + i32.store + local.get $5 + 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 $5 + ) + (func $"~lib/map/Map#clear" (param $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + 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 offset=8 - local.get $2 - local.get $6 - i32.store offset=12 + i32.store + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 local.get $0 - local.get $6 + local.get $1 i32.store local.get $0 - local.get $6 + local.get $1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store local.get $0 - local.get $1 + i32.const 3 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 + local.get $1 + i32.store offset=4 local.get $0 - local.get $3 + local.get $1 i32.store offset=8 local.get $0 - local.get $3 + local.get $1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store local.get $0 - local.get $5 + i32.const 4 i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer + i32.store local.get $0 - i32.store offset=12 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store local.get $0 - i32.load offset=20 - i32.store offset=16 + i32.const 0 + i32.store offset=20 global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set (param $0 i32) (param $1 i32) (param $2 i32) + (func $"~lib/map/Map#find" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -2151,261 +1854,137 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 i32.const 0 - i32.store offset=8 - local.get $3 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - local.get $1 - local.get $1 - i32.extend8_s - i32.const -1028477379 - i32.mul - i32.const 374761394 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl 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 $4 - call $~lib/map/Map#find - local.tee $3 - if - local.get $3 - local.get $2 - i32.store offset=4 - else - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - local.set $5 - local.get $3 - local.get $0 - i32.store - local.get $5 + i32.load + local.set $0 + loop $while-continue|0 local.get $0 - i32.load offset=12 - i32.eq if - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - local.set $5 - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $5 local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s + i32.load offset=8 + local.tee $2 + i32.const 1 + i32.and if (result i32) - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 + i32.const 0 else - global.get $~lib/memory/__stack_pointer + local.get $1 local.get $0 - i32.store offset=4 + i32.load + i32.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or + return end - call $~lib/map/Map#rehash + local.get $2 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $0 - i32.store - local.get $5 - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store offset=8 - local.get $5 - local.get $0 - i32.store - local.get $5 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $6 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 - local.get $6 - i32.const 12 - i32.mul - i32.add - local.tee $3 - local.get $1 - i32.store8 - local.get $3 - local.get $2 - i32.store offset=4 - local.get $5 - local.get $0 - i32.store - local.get $5 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - local.get $5 - local.get $0 - i32.store - local.get $0 - i32.load - local.set $1 - local.get $5 - local.get $0 - i32.store - local.get $3 - local.get $1 - local.get $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=8 - local.get $0 - local.get $3 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (func $"~lib/map/Map#find" (param $0 i32) (param $1 f32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - local.get $1 - local.get $1 - i32.extend8_s - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 + i32.load + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 16 - i32.shr_u - i32.xor - call $~lib/map/Map#find - local.tee $0 - i32.eqz - if - i32.const 1616 - i32.const 1680 - i32.const 105 - i32.const 17 - call $~lib/builtins/abort - unreachable - end + i32.store + local.get $2 local.get $0 i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load local.set $0 + loop $while-continue|0 + local.get $0 + if + local.get $0 + i32.load offset=8 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + local.get $0 + f32.load + f32.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + local.get $2 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0 + end + end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 ) - (func $~lib/map/Map#get:size (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2422,231 +2001,285 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 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 - i32.load offset=20 - local.set $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 - local.get $0 ) - (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 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $4 - i32.const 0 - i32.store - local.get $4 - 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 1456 - i32.const 1728 - 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$1377 - 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$1377 - 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 + (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 34664 + 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 - local.get $2 - local.get $4 + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $0 - local.get $2 - i32.store - local.get $0 - local.get $2 - i32.store offset=4 + 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 - 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 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $3 - 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 1728 - 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 - i32.const 0 - 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 + i32.const 34664 + 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 34664 + 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 - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=4 - i32.add - local.get $2 - i32.store8 - local.get $3 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 0 ) - (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + (func $"~lib/map/Map#get" (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2665,28 +2298,63 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $0 - local.get $1 - i32.const 0 - 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 + local.get $1 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + call $"~lib/map/Map#find" + local.tee $0 + i32.eqz + if + i32.const 1616 + i32.const 1680 + i32.const 105 + i32.const 17 + call $~lib/builtins/abort + unreachable + end + 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/array/Array#constructor (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) + (func $"~lib/map/Map#find" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) 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 @@ -2701,107 +2369,147 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - i64.const 0 - i64.store offset=8 - local.get $1 - i32.const 16 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $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 + local.get $0 i32.store - local.get $2 - i32.const 0 - call $~lib/rt/itcms/__link + local.get $0 + i32.load global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + loop $while-continue|0 + local.get $0 + if + local.get $0 + i32.load offset=8 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $0 + i32.load8_u + local.get $1 + i32.const 255 + i32.and + i32.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + local.get $2 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0 + end + end global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 + ) + (func $"~lib/map/Map#get" (param $0 i32) (param $1 i64) (result i32) global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=12 - local.get $0 - i32.const 268435455 - i32.gt_u + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s if - i32.const 1456 - i32.const 1728 - i32.const 70 - i32.const 60 + 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 8 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $0 - i32.const 8 - i32.le_u - select - i32.const 2 - i32.shl - local.tee $1 - i32.const 1 - call $~lib/rt/itcms/__new - 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 $3 - i32.store offset=12 - local.get $2 - local.get $3 i32.store - local.get $2 - local.get $3 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + local.get $0 local.get $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + 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 $0 + i32.const 15 + i32.shr_u local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 i32.const 16 + i32.shr_u + local.get $0 + i32.xor + call $"~lib/map/Map#find" + local.tee $0 + i32.eqz + if + i32.const 1616 + i32.const 1680 + i32.const 105 + i32.const 17 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + (func $"~lib/map/Map#find" (param $0 i32) (param $1 i64) (param $2 i32) (result i32) (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -2819,61 +2527,63 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + 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 1728 - 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 - 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 + i32.load global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store + local.get $2 local.get $0 i32.load offset=4 - local.get $1 + i32.and i32.const 2 i32.shl i32.add - local.get $2 - i32.store - local.get $3 + i32.load + local.set $0 + loop $while-continue|0 + local.get $0 + if + local.get $0 + i32.load offset=12 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + local.get $0 + i64.load + i64.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + local.get $2 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 ) - (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + (func $"~lib/map/Map#get" (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2892,30 +2602,60 @@ 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 + 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 $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + call $"~lib/map/Map#find" + local.tee $0 + i32.eqz + if + i32.const 1616 + i32.const 1680 + i32.const 105 + i32.const 17 + call $~lib/builtins/abort + unreachable + end + 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/map/Map#values (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) + (func $"~lib/map/Map#get" (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -2930,78 +2670,65 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store - local.get $4 + 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 $3 - local.get $4 + local.get $1 + local.get $1 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 local.get $0 - i32.store - local.get $4 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 local.get $0 - i32.load offset=16 - local.tee $4 - call $~lib/array/Array#constructor - local.tee $5 - 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 $0 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - local.get $1 - local.get $0 - i32.load offset=4 - call $~lib/array/Array#__set - local.get $1 - i32.const 1 - i32.add - local.set $1 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + call $"~lib/map/Map#find" + local.tee $0 + i32.eqz + if + i32.const 1616 + i32.const 1680 + i32.const 105 + i32.const 17 + call $~lib/builtins/abort + unreachable end + local.get $0 + i32.load offset=4 global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - local.get $1 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 ) - (func $~lib/map/Map#constructor (result i32) - (local $0 i32) - (local $1 i32) + (func $"~lib/map/Map#find" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -3016,80 +2743,65 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 24 - 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 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 i32.store local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 + i32.load global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 - local.get $1 - i32.store offset=8 + i32.store + local.get $2 local.get $0 - local.get $1 - call $~lib/rt/itcms/__link + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + loop $while-continue|0 + local.get $0 + if + local.get $0 + i32.load offset=8 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $0 + i32.load16_u + local.get $1 + i32.const 65535 + i32.and + i32.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + local.get $2 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0 + end + end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 i32.const 4 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) - (local $1 i32) + (func $"~lib/map/Map#get" (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -3106,23 +2818,61 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.load offset=12 - local.set $0 local.get $1 + local.get $1 + i32.extend8_s + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + call $"~lib/map/Map#find" + local.tee $0 + i32.eqz + if + i32.const 1616 + i32.const 1680 + i32.const 105 + i32.const 17 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $"~lib/map/Map#get" (param $0 i32) (param $1 i64) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -3139,499 +2889,217 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1728 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $0 - i32.load offset=4 local.get $1 - i32.const 2 - i32.shl + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 i32.add - i32.load - local.set $0 - local.get $2 + 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 $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + call $"~lib/map/Map#find" + local.tee $0 + i32.eqz + if + i32.const 1616 + i32.const 1680 + i32.const 105 + i32.const 17 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/map/Map#set (param $0 i32) (param $1 i32) (param $2 i32) + (func $"~lib/map/Map#find" (param $0 i32) (param $1 i64) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - i32.const 0 - i32.store offset=8 - local.get $3 - local.get $0 - i32.store - local.get $1 - i32.extend8_s - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $4 - i32.const 15 - i32.shr_u - local.get $4 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $4 - i32.const 13 - i32.shr_u - local.get $4 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $4 - i32.const 16 - i32.shr_u - local.get $4 - i32.xor - local.tee $8 - local.set $4 - local.get $3 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store - local.get $0 - i32.load - local.set $5 - local.get $3 - local.get $0 - i32.store - local.get $5 - local.get $4 + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + 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.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 + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + loop $while-continue|0 local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 - block $__inlined_func$~lib/map/Map#find$1378 - loop $while-continue|0 - local.get $3 - if - local.get $3 - i32.load offset=4 - local.tee $4 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $3 - i32.load8_u - local.get $1 - i32.const 255 - i32.and - i32.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/map/Map#find$1378 - end - local.get $4 - i32.const -2 - i32.and - local.set $3 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $3 - end - local.get $3 if - local.get $3 - local.get $2 - i32.store8 offset=1 - else - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - local.set $4 - local.get $3 - local.get $0 - i32.store - local.get $4 local.get $0 i32.load offset=12 - i32.eq - if - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - local.set $4 - local.get $3 - local.get $0 - i32.store offset=4 - local.get $4 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul + i64.load + i64.eq + end + if + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - 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 - i32.const 1 - i32.or - end - 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 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - i64.const 0 - i64.store offset=8 - local.get $3 - local.get $5 - i32.const 1 - i32.add - local.tee $3 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $9 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $7 - i32.const 3 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $10 - local.get $0 - i32.load offset=16 - i32.const 3 - i32.shl - i32.add - local.set $6 - local.get $4 - local.set $3 - loop $while-continue|00 - local.get $6 - local.get $10 - i32.ne - if - local.get $10 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - local.get $3 - local.get $10 - i32.load8_s - local.tee $11 - i32.store8 - local.get $3 - local.get $10 - i32.load8_s offset=1 - i32.store8 offset=1 - local.get $3 - local.get $9 - local.get $5 - local.get $11 - i32.extend8_s - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $11 - local.get $11 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $11 - local.get $11 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $11 - local.get $11 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $11 - i32.load - i32.store offset=4 - local.get $11 - local.get $3 - i32.store - local.get $3 - i32.const 8 - i32.add - local.set $3 - end - local.get $10 - i32.const 8 - i32.add - local.set $10 - br $while-continue|00 - end - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store offset=8 - local.get $3 - local.get $9 - i32.store offset=12 - local.get $0 - local.get $9 - i32.store - local.get $0 - local.get $9 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $5 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $0 - local.get $4 - i32.store offset=8 - local.get $0 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 + return end - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.load offset=8 - local.tee $4 - i32.store offset=8 - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $5 - i32.const 1 - i32.add - i32.store offset=16 - local.get $4 - local.get $5 - i32.const 3 - i32.shl - i32.add - local.tee $4 - local.get $1 - i32.store8 - local.get $4 local.get $2 - i32.store8 offset=1 - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - local.get $3 - local.get $0 - i32.store - local.get $0 - i32.load - local.set $1 - local.get $3 - local.get $0 - i32.store - local.get $4 - local.get $1 - local.get $8 - local.get $0 - i32.load offset=4 + i32.const -2 i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=4 - local.get $0 - local.get $4 - i32.store + local.set $0 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - return end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (func $"~lib/map/Map#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 1896 + i32.lt_s + if + 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.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + 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 $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + call $"~lib/map/Map#find" + local.tee $0 + i32.eqz + if + i32.const 1616 + i32.const 1680 + i32.const 105 + i32.const 17 + call $~lib/builtins/abort + unreachable + end + 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/map/Map#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $"~lib/map/Map#find" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -3648,19 +3116,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load - local.set $4 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 local.get $2 local.get $0 i32.load offset=4 @@ -3707,16 +3172,9 @@ global.set $~lib/memory/__stack_pointer i32.const 0 ) - (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) + (func $"~lib/map/Map#get" (param $0 i32) (param $1 i32) (result i32) 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 @@ -3731,184 +3189,222 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i64.const 0 - i64.store offset=8 - local.get $2 - local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 + i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $5 - i32.const 12 + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.extend16_s + i32.const -1028477379 i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 local.get $0 - i32.store offset=8 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 local.get $0 - i32.load offset=8 - local.set $7 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + call $"~lib/map/Map#find" + local.tee $0 + i32.eqz + if + i32.const 1616 + i32.const 1680 + i32.const 105 + i32.const 17 + call $~lib/builtins/abort + unreachable + end + 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/map/Map#get" (param $0 i32) (param $1 f64) (result i32) + (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 1896 + i32.lt_s + if + 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.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - local.get $7 + i32.store local.get $0 - i32.load offset=16 - i32.const 12 + local.get $1 + local.get $1 + i64.reinterpret_f64 + local.tee $2 + i32.wrap_i64 + i32.const -1028477379 i32.mul + i32.const 374761401 i32.add - local.set $4 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $4 - local.get $7 - i32.ne - if - local.get $7 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $2 - local.get $7 - i32.load - local.tee $8 - i32.store - local.get $2 - local.get $7 - i32.load offset=4 - i32.store offset=4 - local.get $2 - local.get $6 - local.get $1 - local.get $8 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $8 - local.get $8 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $8 - local.get $8 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $8 - local.get $8 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $8 - i32.load - i32.store offset=8 - local.get $8 - local.get $2 - i32.store - local.get $2 - i32.const 12 - i32.add - local.set $2 - end - local.get $7 - i32.const 12 - i32.add - local.set $7 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store offset=8 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul local.get $2 - local.get $6 - i32.store offset=12 + 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 $0 + i32.const 15 + i32.shr_u local.get $0 - local.get $6 - i32.store + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u local.get $0 - local.get $6 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u local.get $0 - i32.store offset=8 + i32.xor + call $"~lib/map/Map#find" + local.tee $0 + i32.eqz + if + i32.const 1616 + i32.const 1680 + i32.const 105 + i32.const 17 + call $~lib/builtins/abort + unreachable + end local.get $0 - local.get $1 - i32.store offset=4 + i32.load offset=8 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#find" (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $3 - call $~lib/rt/itcms/__link + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $5 - i32.store offset=12 + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store local.get $0 + i32.load + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=20 - i32.store offset=16 + i32.store + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + loop $while-continue|0 + local.get $0 + if + local.get $0 + i32.load offset=12 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + local.get $0 + f64.load + f64.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + local.get $2 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0 + end + end global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 ) - (func $~lib/map/Map#set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) + (func $"~lib/map/Map#get" (param $0 i32) (param $1 f32) (result i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -3923,18 +3419,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 i32.const 0 - i32.store offset=8 - local.get $3 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.get $1 local.get $1 + i32.reinterpret_f32 i32.const -1028477379 i32.mul i32.const 374761397 @@ -3943,168 +3436,47 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $3 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $3 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $3 i32.xor - local.tee $4 - call $~lib/map/Map#find - local.tee $3 + call $"~lib/map/Map#find" + local.tee $0 + i32.eqz if - local.get $3 - local.get $2 - i32.store offset=4 - else - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - local.set $5 - local.get $3 - local.get $0 - i32.store - local.get $5 - local.get $0 - i32.load offset=12 - i32.eq - if - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - local.set $5 - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $5 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - 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 - i32.const 1 - i32.or - end - call $~lib/map/Map#rehash - end - global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $0 - i32.store - local.get $5 - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store offset=8 - local.get $5 - local.get $0 - i32.store - local.get $5 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $6 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 - local.get $6 - i32.const 12 - i32.mul - i32.add - local.tee $3 - local.get $1 - i32.store - local.get $3 - local.get $2 - i32.store offset=4 - local.get $5 - local.get $0 - i32.store - local.get $5 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - local.get $5 - local.get $0 - i32.store - local.get $0 - i32.load - local.set $1 - local.get $5 - local.get $0 - i32.store - local.get $3 - local.get $1 - local.get $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=8 - local.get $0 - local.get $3 - i32.store + i32.const 1616 + i32.const 1680 + i32.const 105 + i32.const 17 + call $~lib/builtins/abort + unreachable end + local.get $0 + i32.load offset=4 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#delete (param $0 i32) (param $1 i32) - (local $2 i32) + (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 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -4119,1137 +3491,1073 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - local.get $0 + i32.const 0 i32.store - local.get $0 - local.get $1 - local.get $1 - i32.extend8_s - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - i32.const 15 - i32.shr_u - local.get $1 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - i32.const 13 - i32.shr_u - local.get $1 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - i32.const 16 - i32.shr_u - local.get $1 - i32.xor - call $~lib/map/Map#find - local.tee $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - local.get $1 - local.get $1 - i32.load offset=8 - i32.const 1 - i32.or - i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store local.get $1 local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 - local.get $1 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $2 - local.get $1 - local.get $0 - i32.store - local.get $2 - i32.const 1 - i32.add - i32.const 4 - local.get $0 - i32.load offset=20 - local.tee $3 - local.get $3 - i32.const 4 - i32.lt_u - select + i32.load offset=12 i32.ge_u - if (result i32) + if local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 1248 + i32.const 1728 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.store - local.get $0 - i32.load offset=20 - local.set $3 local.get $1 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - else - i32.const 0 - end - if + 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 $2 - call $~lib/map/Map#rehash + local.get $3 + i32.store offset=12 end global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/map/Map#clear (param $0 i32) - (local $1 i32) + local.get $2 + i32.store global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub + i32.const 4 + i32.add global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s + ) + (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 34688 - i32.const 34736 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1392 + i32.const 268 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - local.get $0 - i32.store + 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 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer + 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.store offset=4 - local.get $0 + i32.load offset=8 + local.set $5 local.get $1 - i32.store offset=8 - local.get $0 + 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 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 + local.get $2 i32.const 4 - 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 - local.get $0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.shl + local.get $3 i32.add - global.set $~lib/memory/__stack_pointer + 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 $std/map/testNumeric - (local $0 i32) - (local $1 i32) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) - (local $8 i32) - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $2 + local.get $1 + i32.eqz + if i32.const 0 - i32.const 24 - memory.fill - local.get $2 - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 + i32.const 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.store offset=8 + 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 24 i32.const 4 - call $~lib/rt/itcms/__new + i32.add + local.get $2 + i32.const -4 + i32.and + i32.add local.tee $3 i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $3 - local.get $4 - i32.store - local.get $3 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $3 - local.get $4 - i32.store offset=8 - local.get $3 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 + local.get $1 i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $3 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 100 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#has - if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - local.get $0 - i32.const 10 - i32.add - call $~lib/map/Map#set - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#get - local.get $0 - i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 9 - 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 $3 - i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size - i32.const 100 - i32.ne + 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 1568 - i32.const 11 - i32.const 3 + i32.const 1392 + i32.const 221 + i32.const 16 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 $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 15 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#get - local.get $0 - i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - local.get $0 - i32.const 20 - i32.add - call $~lib/map/Map#set - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#get - local.get $0 - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 19 - 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 $3 - i32.store offset=4 + 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 - call $~lib/map/Map#get:size - i32.const 100 - i32.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.tee $2 - local.get $3 - i32.store offset=4 + 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 8 + 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 - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store - local.get $4 - local.get $3 - i32.store - local.get $3 - i32.load offset=8 local.set $5 - local.get $4 - local.get $3 - i32.store + local.get $2 local.get $3 - i32.load offset=16 - local.set $6 - 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 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 + i32.shr_u i32.const 16 - i32.const 5 - 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.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.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 + 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 - local.get $7 - i32.const 0 - i32.store offset=12 - local.get $6 - i32.const 1073741820 - i32.gt_u + 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/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 1456 - i32.const 1728 - i32.const 70 - i32.const 60 + i32.const 0 + i32.const 1120 + i32.const 148 + i32.const 30 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 - 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 $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$1422 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 + 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 34664 + 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$1422 + end 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.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 - global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $2 + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or i32.store offset=4 - local.get $7 - local.get $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 + 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 1760 + i32.load + i32.gt_u + if + i32.const 1248 + i32.const 1312 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1764 i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $7 - i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $1 - local.get $6 - i32.lt_s - if - local.get $5 - local.get $1 - i32.const 12 - i32.mul - i32.add - local.tee $4 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - local.get $4 - i32.load8_s - call $~lib/array/Array#__set + 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/__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-inner1 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $invalid + end + return + end + return + end + return + end local.get $0 - i32.const 1 - i32.add - local.set $0 + i32.load + call $~lib/rt/itcms/__visit + return end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|00 + 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 1896 + 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 + 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 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 $2 - local.get $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - call $~lib/map/Map#values - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1896 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 i32.const 0 - i32.store offset=8 - local.get $2 - i32.const 24 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $2 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $2 - local.get $4 + local.get $0 i32.store - local.get $2 - local.get $4 - call $~lib/rt/itcms/__link + 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 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 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 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + 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 + local.get $0 + local.get $1 + local.get $1 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + 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 $4 + call $"~lib/map/Map#find" + local.tee $3 + if + local.get $3 local.get $2 i32.store offset=4 - local.get $2 - i32.const 3 - i32.store offset=4 + else global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 + local.get $0 + i32.store + local.get $0 + i32.load offset=16 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $2 - local.get $4 + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + 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 + i32.load offset=20 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $3 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + 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 + i32.const 1 + i32.or + end + call $"~lib/map/Map#rehash" + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 i32.store offset=8 - local.get $2 - local.get $4 - call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 4 - i32.store offset=12 + local.get $0 + i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 - local.get $2 - i32.const 0 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $5 + i32.const 1 + i32.add i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer + local.get $3 + local.get $5 i32.const 12 + i32.mul i32.add - global.set $~lib/memory/__stack_pointer + local.tee $3 local.get $1 + i32.store8 + local.get $3 local.get $2 - i32.store offset=16 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - call $~lib/map/Map#constructor - local.tee $4 + 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=20 + i32.const 1 + i32.add i32.store offset=20 - i32.const 0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load local.set $1 - loop $for-loop|2 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/array/Array#get:length - local.get $1 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $7 - 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 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $5 - i32.const 0 - i32.store - local.get $5 - local.get $7 - i32.store - local.get $1 - local.get $7 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1728 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $7 - i32.store - local.get $1 - local.get $7 - i32.load offset=4 - i32.add - i32.load8_s - local.set $6 - local.get $5 - 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 - local.get $1 - call $~lib/array/Array#__get - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $6 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $5 - i32.const 20 - i32.sub - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 32 - 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 $6 - local.get $6 - call $~lib/map/Map#set - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $5 - i32.const 20 - i32.sub - local.tee $5 - local.get $5 - call $~lib/map/Map#set - 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 + local.get $3 + local.get $1 + local.get $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=8 + local.get $0 + local.get $3 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i64) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 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 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + 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 + local.get $0 + local.get $1 + 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 $4 + call $"~lib/map/Map#find" + local.tee $3 + if + local.get $3 local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/map/Map#get:size - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.store offset=8 + else global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/map/Map#get:size - i32.const 100 - i32.ne + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq if - i32.const 0 - i32.const 1568 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|3 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 50 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=20 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $3 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s i32.lt_s - if + if (result i32) global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 local.get $0 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 i32.store offset=4 - local.get $3 local.get $0 - call $~lib/map/Map#get - local.get $0 - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 42 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + i32.load offset=4 + else global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 local.get $0 - call $~lib/map/Map#delete - global.get $~lib/memory/__stack_pointer - local.get $3 i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#has - if - i32.const 0 - i32.const 1568 - i32.const 44 - i32.const 5 - call $~lib/builtins/abort - unreachable - end local.get $0 + i32.load offset=4 i32.const 1 - i32.add - local.set $0 - br $for-loop|3 - end - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 46 - i32.const 3 - call $~lib/builtins/abort - unreachable - 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 $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#has - if - i32.const 0 - i32.const 1568 - i32.const 50 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - local.get $0 - i32.const 10 - i32.add - call $~lib/map/Map#set - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 52 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#delete - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#has - if - i32.const 0 - i32.const 1568 - i32.const 54 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 + i32.shl i32.const 1 - i32.add - local.set $0 - br $for-loop|4 + i32.or end + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + local.get $0 + i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 + i32.load offset=8 + local.tee $3 + 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=16 + local.tee $5 + i32.const 1 + i32.add + i32.store offset=16 local.get $3 - call $~lib/map/Map#clear - global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 4 + i32.shl + i32.add + local.tee $3 + local.get $1 + i64.store local.get $3 + local.get $2 + 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 $3 - call $~lib/map/Map#get:size - if - i32.const 0 - i32.const 1568 - i32.const 60 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 global.get $~lib/memory/__stack_pointer - i32.const 24 + local.get $0 + i32.store + local.get $0 + i32.load + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $2 + local.get $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - return + local.tee $0 + i32.load + i32.store offset=12 + local.get $0 + local.get $3 + i32.store end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#has (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -5264,348 +4572,78 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store - local.get $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.get $1 local.get $1 - i32.const 255 - i32.and i32.const -1028477379 i32.mul - i32.const 374761394 + i32.const 374761397 i32.add i32.const 17 i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $3 i32.const 15 i32.shr_u + local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $3 i32.const 13 i32.shr_u + local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $3 i32.const 16 i32.shr_u + local.get $3 i32.xor - call $~lib/map/Map#find - i32.const 0 - i32.ne - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i64.const 0 - i64.store offset=8 - local.get $2 - local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $5 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $7 - local.get $0 - i32.load offset=16 - i32.const 12 - i32.mul - i32.add - local.set $4 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $4 - local.get $7 - i32.ne - if - local.get $7 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $2 - local.get $7 - i32.load8_u - local.tee $8 - i32.store8 - local.get $2 - local.get $7 - i32.load offset=4 - i32.store offset=4 - local.get $2 - local.get $6 - local.get $1 - local.get $8 - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $8 - local.get $8 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $8 - local.get $8 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $8 - local.get $8 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $8 - i32.load - i32.store offset=8 - local.get $8 - local.get $2 - i32.store - local.get $2 - i32.const 12 - i32.add - local.set $2 - end - local.get $7 - i32.const 12 - i32.add - local.set $7 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store offset=8 - local.get $2 - local.get $6 - i32.store offset=12 - local.get $0 - local.get $6 - i32.store - local.get $0 - local.get $6 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $3 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/map/Map#set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 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 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - i32.const 0 - i32.store offset=8 - local.get $3 - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - 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 $4 - call $~lib/map/Map#find - local.tee $3 + local.tee $4 + call $"~lib/map/Map#find" + local.tee $3 if local.get $3 local.get $2 i32.store offset=4 else global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 i32.load offset=16 - local.set $5 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 local.get $0 i32.load offset=12 i32.eq if - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=20 - local.set $5 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - local.get $5 + local.get $3 local.get $0 i32.load offset=12 i32.const 3 @@ -5614,7 +4652,7 @@ i32.div_s i32.lt_s if (result i32) - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -5630,45 +4668,44 @@ i32.const 1 i32.or end - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=8 local.tee $3 i32.store offset=8 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 local.get $0 i32.load offset=16 - local.tee $6 + local.tee $5 i32.const 1 i32.add i32.store offset=16 local.get $3 - local.get $6 + local.get $5 i32.const 12 i32.mul i32.add local.tee $3 local.get $1 - i32.store8 + i32.store local.get $3 local.get $2 i32.store offset=4 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -5677,13 +4714,13 @@ i32.const 1 i32.add i32.store offset=20 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load local.set $1 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $3 @@ -5707,10 +4744,12 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -5725,147 +4764,161 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store - local.get $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.get $1 local.get $1 - i32.const 255 + i32.const 65535 i32.and i32.const -1028477379 i32.mul - i32.const 374761394 + i32.const 374761395 i32.add i32.const 17 i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $3 i32.const 15 i32.shr_u + local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $3 i32.const 13 i32.shr_u + local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $3 i32.const 16 i32.shr_u + local.get $3 i32.xor - call $~lib/map/Map#find - local.tee $0 - i32.eqz + local.tee $4 + call $"~lib/map/Map#find" + local.tee $3 if - i32.const 1616 - i32.const 1680 - i32.const 105 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/map/Map#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 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 + local.get $3 + local.get $2 + i32.store offset=4 + else global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + 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 + i32.load offset=20 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $3 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + 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 + i32.const 1 + i32.or + end + call $"~lib/map/Map#rehash" + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 local.tee $3 - i64.const 0 - i64.store - local.get $3 - i32.const 0 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $5 + i32.const 1 i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $4 - i32.const 15 - i32.shr_u - local.get $4 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $4 - i32.const 13 - i32.shr_u - local.get $4 - i32.xor - i32.const -1028477379 + i32.store offset=16 + local.get $3 + local.get $5 + i32.const 12 i32.mul - local.tee $4 - i32.const 16 - i32.shr_u - local.get $4 - i32.xor - local.tee $8 - local.set $4 + i32.add + local.tee $3 + local.get $1 + i32.store16 local.get $3 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 + local.get $2 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 + local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load - local.set $5 - local.get $3 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + local.get $3 + local.get $1 local.get $4 local.get $0 i32.load offset=4 @@ -5873,373 +4926,217 @@ i32.const 2 i32.shl i32.add + local.tee $0 i32.load - local.set $3 - block $__inlined_func$~lib/map/Map#find$1383 - loop $while-continue|0 - local.get $3 - if - local.get $3 - i32.load offset=4 - local.tee $4 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $3 - i32.load8_u - local.get $1 - i32.const 255 - i32.and - i32.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/map/Map#find$1383 - end - local.get $4 - i32.const -2 - i32.and - local.set $3 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $3 - end + i32.store offset=8 + local.get $0 + local.get $3 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 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 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + 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 + local.get $0 + local.get $1 + local.get $1 + i32.extend8_s + i32.const -1028477379 + i32.mul + i32.const 374761394 + 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 $4 + call $"~lib/map/Map#find" + local.tee $3 + if local.get $3 + local.get $2 + i32.store offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq if - local.get $3 - local.get $2 - i32.store8 offset=1 - else global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=16 - local.set $4 - local.get $3 + i32.store offset=4 local.get $0 - i32.store - local.get $4 + i32.load offset=20 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $3 local.get $0 i32.load offset=12 - i32.eq - if - local.get $3 - local.get $0 - i32.store - local.get $3 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - i32.load offset=20 - local.set $4 - local.get $3 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $4 local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - 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 - i32.const 1 - i32.or - end - 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 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - i64.const 0 - i64.store offset=8 - local.get $3 - local.get $5 + i32.load offset=4 i32.const 1 - i32.add - local.tee $3 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $9 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $7 - i32.const 3 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $10 - local.get $0 - i32.load offset=16 - i32.const 3 i32.shl - i32.add - local.set $6 - local.get $4 - local.set $3 - loop $while-continue|00 - local.get $6 - local.get $10 - i32.ne - if - local.get $10 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - local.get $3 - local.get $10 - i32.load8_u - local.tee $11 - i32.store8 - local.get $3 - local.get $10 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get $3 - local.get $9 - local.get $5 - local.get $11 - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $11 - local.get $11 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $11 - local.get $11 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $11 - local.get $11 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $11 - i32.load - i32.store offset=4 - local.get $11 - local.get $3 - i32.store - local.get $3 - i32.const 8 - i32.add - local.set $3 - end - local.get $10 - i32.const 8 - i32.add - local.set $10 - br $while-continue|00 - end - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store offset=8 - local.get $3 - local.get $9 - i32.store offset=12 - local.get $0 - local.get $9 - i32.store - local.get $0 - local.get $9 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $5 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $0 - local.get $4 - i32.store offset=8 - local.get $0 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 1 + i32.or end - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.load offset=8 - local.tee $4 - i32.store offset=8 - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $5 - i32.const 1 - i32.add - i32.store offset=16 - local.get $4 - local.get $5 - i32.const 3 - i32.shl - i32.add - local.tee $4 - local.get $1 - i32.store8 - local.get $4 - local.get $2 - i32.store8 offset=1 - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - local.get $3 - local.get $0 - i32.store - local.get $0 - i32.load - local.set $1 - local.get $3 - local.get $0 - i32.store - local.get $4 - local.get $1 - local.get $8 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=4 - local.get $0 - local.get $4 - i32.store + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + 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=16 + local.tee $5 + i32.const 1 + i32.add + i32.store offset=16 + local.get $3 + local.get $5 i32.const 12 + i32.mul i32.add - global.set $~lib/memory/__stack_pointer - return + local.tee $3 + local.get $1 + i32.store8 + local.get $3 + local.get $2 + i32.store offset=4 + 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=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $1 + local.get $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=8 + local.get $0 + local.get $3 + i32.store end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#delete (param $0 i32) (param $1 i32) + (func $"~lib/map/Map#values" (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 @@ -6256,1200 +5153,1474 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - local.get $1 - local.get $1 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - i32.const 15 - i32.shr_u - local.get $1 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - i32.const 13 - i32.shr_u - local.get $1 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - i32.const 16 - i32.shr_u - local.get $1 - i32.xor - call $~lib/map/Map#find - local.tee $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - local.get $1 - local.get $1 i32.load offset=8 - i32.const 1 - i32.or - i32.store offset=8 + local.set $3 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 + i32.load offset=16 + local.tee $0 + call $~lib/array/Array#constructor + local.tee $5 i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 + loop $for-loop|0 + local.get $0 + local.get $2 + i32.gt_s + if + local.get $3 + local.get $2 + i32.const 4 + i32.shl + i32.add + local.tee $4 + i32.load offset=12 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + local.get $1 + local.get $4 + i32.load offset=8 + call $~lib/array/Array#__set + local.get $1 + i32.const 1 + i32.add + local.set $1 + 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 $5 + i32.store + local.get $5 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 $5 + ) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i64) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 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 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + 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 local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $2 local.get $1 - local.get $0 - i32.store - local.get $2 - i32.const 1 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 i32.add - i32.const 4 - local.get $0 - i32.load offset=20 + 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.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) - local.get $1 + 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 $4 + call $"~lib/map/Map#find" + local.tee $3 + if + local.get $3 + local.get $2 + i32.store offset=8 + else + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.load offset=20 - local.set $3 - local.get $1 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $0 i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - else - i32.const 0 - end - if + 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 + i32.load offset=20 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $3 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + 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 + i32.const 1 + i32.or + end + call $"~lib/map/Map#rehash" + end global.get $~lib/memory/__stack_pointer local.get $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $2 - call $~lib/map/Map#rehash - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/map/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 24 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 + i32.load offset=8 + local.tee $3 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.const 24 - memory.fill - local.get $2 - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 + 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 + local.tee $5 + i32.const 1 + i32.add + i32.store offset=16 + local.get $3 + local.get $5 + i32.const 4 + i32.shl + i32.add local.tee $3 - i64.const 0 + local.get $1 i64.store local.get $3 - i32.const 0 + local.get $2 i32.store offset=8 - local.get $3 - i32.const 24 - i32.const 9 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $3 - local.get $4 + local.get $0 i32.store - local.get $3 - local.get $4 - call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 3 + local.get $0 i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 + local.get $0 + i32.store + local.get $0 + i32.load + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $3 - local.get $4 - i32.store offset=8 + local.get $0 + i32.store local.get $3 + local.get $2 local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 + local.get $0 local.get $3 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#clear" (param $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + 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 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 64 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 4 + 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 + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 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 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + 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 + local.get $0 + local.get $1 + local.get $1 + i32.extend16_s + i32.const -1028477379 + i32.mul + i32.const 374761395 + 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 $4 + call $"~lib/map/Map#find" + local.tee $3 + if local.get $3 + local.get $2 i32.store offset=4 - local.get $3 - i32.const 0 - i32.store offset=20 + else global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $3 + local.get $0 i32.store - loop $for-loop|0 - local.get $0 - i32.const 100 - i32.lt_u - if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#has - if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - local.get $0 - i32.const 10 - i32.add - call $~lib/map/Map#set - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#get - local.get $0 - i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 9 - 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 + local.get $0 + i32.load offset=16 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size - i32.const 100 - i32.ne + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq if - i32.const 0 - i32.const 1568 - i32.const 11 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|1 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 100 - i32.lt_u - if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 15 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=20 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $3 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#get local.get $0 - i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 i32.store offset=4 - local.get $3 local.get $0 - local.get $0 - i32.const 20 - i32.add - call $~lib/map/Map#set + i32.load offset=4 + else global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 local.get $0 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#get - local.get $0 - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 19 - i32.const 5 - call $~lib/builtins/abort - unreachable - end local.get $0 + i32.load offset=4 i32.const 1 - i32.add - local.set $0 - br $for-loop|1 + i32.shl + i32.const 1 + i32.or end + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size - i32.const 100 - i32.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.tee $2 - local.get $3 - i32.store offset=4 - local.get $2 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store - local.get $4 - local.get $3 + 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 + local.tee $5 + i32.const 1 + i32.add + i32.store offset=16 local.get $3 - i32.load offset=8 - local.set $5 - local.get $4 - local.get $3 - i32.store + local.get $5 + i32.const 12 + i32.mul + i32.add + local.tee $3 + local.get $1 + i32.store16 local.get $3 - i32.load offset=16 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 + local.get $0 + i32.store global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store local.get $0 - i64.const 0 - i64.store offset=8 + i32.store offset=4 local.get $0 - i32.const 16 - i32.const 10 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 + local.get $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 + local.get $0 + i32.load + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 + local.get $0 + i32.store + local.get $3 + local.get $1 + local.get $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load i32.store offset=8 - 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 1073741820 - i32.gt_u - if - i32.const 1456 - i32.const 1728 - i32.const 70 - 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 - local.tee $8 + local.get $0 + local.get $3 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 f64) (param $2 i32) + (local $3 i64) + (local $4 i32) + (local $5 i32) + (local $6 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 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 + 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 + local.get $0 + local.get $1 + local.get $1 + i64.reinterpret_f64 + local.tee $3 + 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 $3 + 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 $4 + i32.const 15 + i32.shr_u + local.get $4 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $4 + i32.const 13 + i32.shr_u + local.get $4 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $4 + i32.const 16 + i32.shr_u + local.get $4 + i32.xor + local.tee $5 + call $"~lib/map/Map#find" + local.tee $4 + if + local.get $4 + local.get $2 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 + else global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 - local.get $7 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $7 local.get $0 - call $~lib/rt/itcms/__link + i32.load offset=12 + 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 + i32.load offset=20 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $4 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + 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 + i32.const 1 + i32.or + end + call $"~lib/map/Map#rehash" + end global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 local.get $0 - i32.store offset=4 + i32.store global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $8 + local.get $0 + i32.load offset=8 + local.tee $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=4 - local.get $7 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $6 + i32.const 1 + i32.add + i32.store offset=16 + local.get $4 local.get $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 4 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer + local.tee $4 + local.get $1 + f64.store local.get $4 - local.get $7 + local.get $2 + 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 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $1 - local.get $6 - i32.lt_s - if - local.get $5 - local.get $1 - i32.const 12 - i32.mul - i32.add - local.tee $4 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - local.get $4 - i32.load8_u - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|00 - end - end + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $0 i32.store - local.get $7 local.get $0 - call $~lib/array/Array#set:length + i32.load + local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $4 local.get $2 - local.get $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - call $~lib/map/Map#values + local.get $5 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add local.tee $0 + i32.load i32.store offset=12 + local.get $0 + local.get $4 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 f32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 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 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + 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 + local.get $0 + local.get $1 + 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 $4 + call $"~lib/map/Map#find" + local.tee $3 + if + local.get $3 + local.get $2 + i32.store offset=4 + else global.get $~lib/memory/__stack_pointer - local.set $1 + local.get $0 + i32.store + local.get $0 + i32.load offset=16 global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + 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 + i32.load offset=20 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $3 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + 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 + i32.const 1 + i32.or + end + call $"~lib/map/Map#rehash" + end global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 + local.get $0 + i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i32.const 0 + local.get $0 + i32.load offset=8 + local.tee $3 i32.store offset=8 - local.get $2 - i32.const 24 - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $2 + 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 + local.tee $5 + i32.const 1 + i32.add + i32.store offset=16 + local.get $3 + local.get $5 + i32.const 12 + i32.mul + i32.add + local.tee $3 + local.get $1 + f32.store + local.get $3 local.get $2 i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $2 - local.get $4 + local.get $0 i32.store - local.get $2 - local.get $4 - call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 + local.get $0 i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 + local.get $0 + i32.store + local.get $0 + i32.load + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $2 - local.get $4 - i32.store offset=8 + local.get $0 + i32.store + local.get $3 local.get $2 local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 4 - 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 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer + local.tee $0 + i32.load + i32.store offset=8 + local.get $0 + local.get $3 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + 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 1896 + i32.lt_s + if + 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.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/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 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + 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 6 + 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 1456 + i32.const 1728 + i32.const 70 + 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/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 - local.get $2 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - call $~lib/map/Map#constructor - local.tee $4 - i32.store offset=20 - i32.const 0 + i32.const 4 + i32.shr_u local.set $1 - loop $for-loop|2 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/array/Array#get:length + else + local.get $1 + i32.const 536870910 + i32.lt_u + if local.get $1 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $7 - 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 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $5 - i32.const 0 - i32.store - local.get $5 - local.get $7 - i32.store - local.get $1 - local.get $7 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1728 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $7 - i32.store - local.get $1 - local.get $7 - i32.load offset=4 - i32.add - i32.load8_u - local.set $6 - local.get $5 - 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 - local.get $1 - call $~lib/array/Array#__get - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $6 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $5 - i32.const 20 - i32.sub - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 32 - 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 $6 - local.get $6 - call $~lib/map/Map#set - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $5 - i32.const 20 - i32.sub - local.tee $5 - local.get $5 - call $~lib/map/Map#set - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|2 - end + 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 - global.get $~lib/memory/__stack_pointer + 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.store offset=4 + 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 - call $~lib/map/Map#get:size - i32.const 100 - i32.ne - 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 $4 - i32.store offset=4 - local.get $4 - call $~lib/map/Map#get:size - i32.const 100 - i32.ne - if + 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 - i32.const 1568 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable end + end + ) + (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 - local.set $0 - loop $for-loop|3 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 34672 + i32.const 0 + i32.store + i32.const 36240 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if local.get $0 - i32.const 50 - i32.lt_u - if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#get - local.get $0 - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 42 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#delete - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#has + i32.const 2 + i32.shl + i32.const 34672 + 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 34672 + i32.add i32.const 0 - i32.const 1568 - i32.const 44 - i32.const 5 - call $~lib/builtins/abort - unreachable + i32.store offset=96 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|3 end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 + end + i32.const 34672 + i32.const 36244 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34672 + global.set $~lib/rt/tlsf/ROOT + ) + (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 - call $~lib/map/Map#get:size - i32.const 50 - i32.ne + i32.const 4 + i32.add + local.get $1 + i32.gt_u if i32.const 0 - i32.const 1568 - i32.const 46 - i32.const 3 + i32.const 1392 + i32.const 389 + i32.const 16 call $~lib/builtins/abort unreachable 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 $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#has - if - i32.const 0 - i32.const 1568 - i32.const 50 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - local.get $0 - i32.const 10 - i32.add - call $~lib/map/Map#set - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 52 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#delete - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#has - if - i32.const 0 - i32.const 1568 - i32.const 54 - 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 $3 - i32.store offset=4 local.get $3 - call $~lib/map/Map#get:size - i32.const 50 - i32.ne + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq if - i32.const 0 - i32.const 1568 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $3 + i32.load + local.set $4 + local.get $5 + local.set $1 end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - call $~lib/map/Map#clear - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size + else + local.get $0 + i32.const 1572 + i32.add + local.get $1 + i32.gt_u if i32.const 0 - i32.const 1568 - i32.const 60 - i32.const 3 + i32.const 1392 + i32.const 402 + i32.const 5 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer + 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 - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/map/Map#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer local.tee $3 - i32.const 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 $3 - local.get $0 + i32.add + local.tee $3 + i32.const 2 i32.store local.get $0 - i32.load - local.set $4 local.get $3 + i32.store offset=1568 local.get $0 - i32.store - local.get $4 - local.get $2 - local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1248 + call $~lib/rt/itcms/__visit + i32.const 1456 + call $~lib/rt/itcms/__visit + i32.const 1616 + 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 - i32.const 2 - i32.shl - i32.add - i32.load local.set $0 loop $while-continue|0 local.get $0 + local.get $1 + i32.ne if local.get $0 - i32.load offset=8 - local.tee $2 - i32.const 1 + i32.load offset=4 + i32.const 3 i32.and - if (result i32) - i32.const 0 - else - local.get $0 - i32.load16_u - local.get $1 - i32.const 65535 - i32.and - i32.eq - end + i32.const 3 + i32.ne if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return + i32.const 0 + i32.const 1120 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end - local.get $2 - i32.const -2 + 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $~lib/map/Map#has (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.extend16_s - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor - call $~lib/map/Map#find - i32.const 0 - i32.ne - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7473,13 +6644,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.const 1 i32.add @@ -7532,9 +6702,9 @@ if local.get $2 local.get $7 - i32.load16_s + i32.load8_u local.tee $8 - i32.store16 + i32.store8 local.get $2 local.get $7 i32.load offset=4 @@ -7543,10 +6713,9 @@ local.get $6 local.get $1 local.get $8 - i32.extend16_s i32.const -1028477379 i32.mul - i32.const 374761395 + i32.const 374761394 i32.add i32.const 17 i32.rotl @@ -7594,10 +6763,9 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=12 local.get $0 @@ -7645,13 +6813,10 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) + (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -7666,188 +6831,137 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 - i32.const 0 - i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.get $1 local.get $1 - i32.extend16_s + i32.const 255 + i32.and i32.const -1028477379 i32.mul - i32.const 374761395 + i32.const 374761394 i32.add i32.const 17 i32.rotl i32.const 668265263 i32.mul - local.tee $3 + local.tee $1 i32.const 15 i32.shr_u - local.get $3 + local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $3 + local.tee $1 i32.const 13 i32.shr_u - local.get $3 + local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $3 + local.tee $1 i32.const 16 i32.shr_u - local.get $3 + local.get $1 i32.xor - local.tee $4 - call $~lib/map/Map#find - local.tee $3 + call $"~lib/map/Map#find" + local.tee $1 + i32.eqz if - local.get $3 - local.get $2 - i32.store offset=4 - else global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - local.set $5 - local.get $3 - local.get $0 - i32.store - local.get $5 - local.get $0 - i32.load offset=12 - i32.eq - if - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - local.set $5 - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $5 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - 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 - i32.const 1 - i32.or - end - call $~lib/map/Map#rehash - end + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + local.get $1 + local.get $1 + i32.load offset=8 + i32.const 1 + i32.or + 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=20 + i32.const 1 + i32.sub + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.const 1 + i32.add + i32.const 4 + local.get $0 + i32.load offset=20 + local.tee $2 + local.get $2 + i32.const 4 + i32.lt_u + select + i32.ge_u + if (result i32) global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $0 i32.store - local.get $5 local.get $0 - i32.load offset=8 - local.tee $3 - i32.store offset=8 - local.get $5 + i32.load offset=20 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 - local.get $0 - i32.store offset=4 - local.get $0 local.get $0 - i32.load offset=16 - local.tee $6 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 - local.get $6 - i32.const 12 + i32.load offset=12 + i32.const 3 i32.mul - i32.add - local.tee $3 - local.get $1 - i32.store16 - local.get $3 - local.get $2 - i32.store offset=4 - local.get $5 - local.get $0 - i32.store - local.get $5 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - local.get $5 + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.load - local.set $1 - local.get $5 - local.get $0 - i32.store - local.get $3 local.get $1 - local.get $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=8 - local.get $0 - local.get $3 - i32.store + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i64) + (local $7 i32) + (local $8 i32) + (local $9 i32) 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 @@ -7862,138 +6976,192 @@ 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 + local.get $1 + i32.const 1 + i32.add local.tee $2 - i32.const 0 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $7 i32.store + global.get $~lib/memory/__stack_pointer local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $5 + i32.const 4 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.extend16_s - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 + i32.store offset=8 local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 + i32.load offset=8 + local.set $8 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 16 - i32.shr_u - i32.xor - call $~lib/map/Map#find - local.tee $0 - i32.eqz - if - i32.const 1616 - i32.const 1680 - i32.const 105 - i32.const 17 - call $~lib/builtins/abort - unreachable - end + i32.store offset=8 + local.get $8 local.get $0 - i32.load offset=4 - local.set $0 - global.get $~lib/memory/__stack_pointer + i32.load offset=16 i32.const 4 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (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 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store + local.set $4 local.get $3 - 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 + local.set $2 + loop $while-continue|0 + local.get $4 + local.get $8 + i32.ne if - i32.const 1248 - i32.const 1728 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable + local.get $8 + i32.load offset=12 + i32.const 1 + i32.and + i32.eqz + if + local.get $2 + local.get $8 + i64.load + local.tee $6 + i64.store + local.get $2 + local.get $8 + i32.load offset=8 + i32.store offset=8 + local.get $2 + local.get $7 + local.get $1 + local.get $6 + 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 $6 + 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 $9 + i32.const 15 + i32.shr_u + local.get $9 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $9 + i32.const 13 + i32.shr_u + local.get $9 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $9 + i32.const 16 + i32.shr_u + local.get $9 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $9 + i32.load + i32.store offset=12 + local.get $9 + local.get $2 + i32.store + local.get $2 + i32.const 16 + i32.add + local.set $2 + end + local.get $8 + i32.const 16 + i32.add + local.set $8 + br $while-continue|0 end - local.get $0 - local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 - 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.tee $3 local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $0 + local.get $7 i32.store local.get $0 - i32.load offset=4 + local.get $7 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $2 - i32.store16 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $3 - i32.const 4 + i32.store offset=12 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i64) + (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 @@ -8008,481 +7176,331 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store local.get $0 local.get $1 + 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 + call $"~lib/map/Map#find" + local.tee $2 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + local.get $2 + local.get $2 + i32.load offset=12 i32.const 1 - i32.const 0 - call $~lib/array/ensureCapacity + i32.or + i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.store offset=12 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/map/Map#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 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 + i32.const 4 + local.get $0 + i32.load offset=20 + local.tee $3 + local.get $3 + i32.const 4 + i32.lt_u + select + i32.ge_u + if (result i32) global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 + local.get $0 + i32.store + local.get $0 + i32.load offset=20 global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - i32.const 0 - i32.store offset=8 - local.get $3 local.get $0 i32.store - local.get $1 - i32.extend16_s - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $4 - i32.const 15 - i32.shr_u - local.get $4 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $4 - i32.const 13 - i32.shr_u - local.get $4 - i32.xor - i32.const -1028477379 + local.get $0 + i32.load offset=12 + i32.const 3 i32.mul - local.tee $4 - i32.const 16 - i32.shr_u - local.get $4 - i32.xor - local.tee $8 - local.set $4 - local.get $3 i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.div_s i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $3 + else i32.const 0 - i32.store - local.get $3 + end + if + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.load - local.set $5 - local.get $3 - local.get $0 - i32.store - local.get $5 + local.get $2 + call $"~lib/map/Map#rehash" + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + 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 + local.get $1 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $5 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $7 + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + local.set $4 + local.get $3 + local.set $2 + loop $while-continue|0 local.get $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 - block $__inlined_func$~lib/map/Map#find$1388 - loop $while-continue|0 - local.get $3 - if - local.get $3 - i32.load offset=4 - local.tee $4 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $3 - i32.load16_u - local.get $1 - i32.const 65535 - i32.and - i32.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/map/Map#find$1388 - end - local.get $4 - i32.const -2 - i32.and - local.set $3 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $3 - end - local.get $3 + local.get $7 + i32.ne if - local.get $3 - local.get $2 - i32.store16 offset=2 - else - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - local.set $4 - local.get $3 - local.get $0 - i32.store - local.get $4 - local.get $0 - i32.load offset=12 - i32.eq + local.get $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz if - local.get $3 - local.get $0 + local.get $2 + local.get $7 + i32.load + local.tee $8 i32.store - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - local.set $4 - local.get $3 - local.get $0 + local.get $2 + local.get $7 + i32.load offset=4 i32.store offset=4 - local.get $4 - local.get $0 - i32.load offset=12 - i32.const 3 + local.get $2 + local.get $6 + local.get $1 + local.get $8 + i32.const -1028477379 i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - 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 - i32.const 1 - i32.or - end - 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 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - i64.const 0 - i64.store offset=8 - local.get $3 - local.get $5 - i32.const 1 + i32.const 374761397 i32.add - local.tee $3 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $8 + local.get $8 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $8 + local.get $8 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $8 + local.get $8 + i32.const 16 + i32.shr_u + i32.xor + i32.and i32.const 2 i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $9 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $7 - i32.const 3 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $10 - local.get $0 - i32.load offset=16 - i32.const 3 - i32.shl i32.add - local.set $6 - local.get $4 - local.set $3 - loop $while-continue|00 - local.get $6 - local.get $10 - i32.ne - if - local.get $10 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - local.get $3 - local.get $10 - i32.load16_s - local.tee $11 - i32.store16 - local.get $3 - local.get $10 - i32.load16_s offset=2 - i32.store16 offset=2 - local.get $3 - local.get $9 - local.get $5 - local.get $11 - i32.extend16_s - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $11 - local.get $11 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $11 - local.get $11 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $11 - local.get $11 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $11 - i32.load - i32.store offset=4 - local.get $11 - local.get $3 - i32.store - local.get $3 - i32.const 8 - i32.add - local.set $3 - end - local.get $10 - i32.const 8 - i32.add - local.set $10 - br $while-continue|00 - end - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 + local.tee $8 + i32.load i32.store offset=8 - local.get $3 - local.get $9 - i32.store offset=12 - local.get $0 - local.get $9 + local.get $8 + local.get $2 i32.store - local.get $0 - local.get $9 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $5 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $0 - local.get $4 - i32.store offset=8 - local.get $0 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 + local.get $2 + i32.const 12 i32.add - global.set $~lib/memory/__stack_pointer + local.set $2 end - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.load offset=8 - local.tee $4 - i32.store offset=8 - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $5 - i32.const 1 + local.get $7 + i32.const 12 i32.add - i32.store offset=16 - local.get $4 - local.get $5 - i32.const 3 - i32.shl - i32.add - local.tee $4 - local.get $1 - i32.store16 - local.get $4 - local.get $2 - i32.store16 offset=2 - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - local.get $3 - local.get $0 - i32.store - local.get $0 - i32.load - local.set $1 - local.get $3 - local.get $0 - i32.store - local.get $4 - local.get $1 - local.get $8 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=4 - local.get $0 - local.get $4 - i32.store + local.set $7 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - return end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + local.get $0 + local.get $6 + i32.store + local.get $0 + local.get $6 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#delete (param $0 i32) (param $1 i32) + (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -8499,19 +7517,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.get $1 local.get $1 - i32.extend16_s i32.const -1028477379 i32.mul - i32.const 374761395 + i32.const 374761397 i32.add i32.const 17 i32.rotl @@ -8536,7 +7552,7 @@ i32.shr_u local.get $1 i32.xor - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.tee $1 i32.eqz if @@ -8553,10 +7569,9 @@ i32.or i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -8565,40 +7580,38 @@ i32.const 1 i32.sub i32.store offset=20 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 i32.const 1 i32.shr_u - local.set $2 - local.get $1 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + local.get $1 i32.const 1 i32.add i32.const 4 local.get $0 i32.load offset=20 - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.const 4 i32.lt_u select i32.ge_u if (result i32) - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=20 - local.set $3 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $0 i32.load offset=12 i32.const 3 @@ -8614,17 +7627,15 @@ local.get $0 i32.store local.get $0 - local.get $2 - call $~lib/map/Map#rehash + local.get $1 + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/map/testNumeric - (local $0 i32) - (local $1 i32) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8633,927 +7644,869 @@ (local $7 i32) (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.const 24 - memory.fill - local.get $2 - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - i32.const 0 - i32.store offset=8 - local.get $3 - i32.const 24 - i32.const 12 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $3 - local.get $4 - i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + 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 + local.get $1 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $5 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $7 + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + local.set $4 + local.get $3 + local.set $2 + loop $while-continue|0 local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $3 - local.get $4 - i32.store offset=8 - local.get $3 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $3 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 100 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#has - if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - local.get $0 - i32.const 10 - i32.add - call $~lib/map/Map#set - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#get - local.get $0 - i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 9 - 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 $3 - i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size - i32.const 100 + local.get $7 i32.ne if - i32.const 0 - i32.const 1568 - i32.const 11 - 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 + local.get $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 15 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#get - local.get $0 - i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 + local.get $7 + i32.load16_u + local.tee $8 + i32.store16 + local.get $2 + local.get $7 + i32.load offset=4 i32.store offset=4 - local.get $3 - local.get $0 - local.get $0 - i32.const 20 + local.get $2 + local.get $6 + local.get $1 + local.get $8 + i32.const -1028477379 + i32.mul + i32.const 374761395 i32.add - call $~lib/map/Map#set - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#get - local.get $0 - i32.const 20 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $8 + local.get $8 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $8 + local.get $8 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $8 + local.get $8 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 19 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 + local.tee $8 + i32.load + i32.store offset=8 + local.get $8 + local.get $2 + i32.store + local.get $2 + i32.const 12 i32.add - local.set $0 - br $for-loop|1 + local.set $2 end + local.get $7 + i32.const 12 + i32.add + local.set $7 + br $while-continue|0 end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + local.get $0 + local.get $6 + i32.store + local.get $0 + local.get $6 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#delete" (param $0 i32) (param $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 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + 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 + local.get $1 + local.get $1 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + call $"~lib/map/Map#find" + local.tee $1 + i32.eqz + if global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size - i32.const 100 - i32.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.tee $2 - local.get $3 - i32.store offset=4 - local.get $2 i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store - local.get $4 - local.get $3 - i32.store - local.get $3 - i32.load offset=8 - local.set $5 - local.get $4 - local.get $3 - i32.store - local.get $3 - i32.load offset=16 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub + i32.add global.set $~lib/memory/__stack_pointer + return + end + local.get $1 + local.get $1 + i32.load offset=8 + i32.const 1 + i32.or + 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=20 + i32.const 1 + i32.sub + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.const 1 + i32.add + i32.const 4 + local.get $0 + i32.load offset=20 + local.tee $2 + local.get $2 + i32.const 4 + i32.lt_u + select + i32.ge_u + if (result i32) global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 local.get $0 - i32.const 16 - i32.const 13 - call $~lib/rt/itcms/__new - local.tee $7 i32.store + local.get $0 + i32.load offset=20 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 + local.get $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 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else i32.const 0 - i32.store offset=12 - local.get $6 - i32.const 536870910 - i32.gt_u - if - i32.const 1456 - i32.const 1728 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end + end + if global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $6 - local.get $6 - i32.const 8 - i32.le_u - select - i32.const 1 - 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 $1 + call $"~lib/map/Map#rehash" + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + 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 + local.get $1 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $5 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $7 + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + local.set $4 + local.get $3 + local.set $2 + loop $while-continue|0 local.get $4 local.get $7 - i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $1 - local.get $6 - i32.lt_s + i32.ne + if + local.get $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz if - local.get $5 + local.get $2 + local.get $7 + i32.load8_s + local.tee $8 + i32.store8 + local.get $2 + local.get $7 + i32.load offset=4 + i32.store offset=4 + local.get $2 + local.get $6 local.get $1 - i32.const 12 + local.get $8 + i32.const -1028477379 i32.mul + i32.const 374761394 i32.add - local.tee $4 - i32.load offset=8 - i32.const 1 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $8 + local.get $8 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $8 + local.get $8 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $8 + local.get $8 + i32.const 16 + i32.shr_u + i32.xor i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - local.get $4 - i32.load16_s - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - end - local.get $1 - i32.const 1 + i32.const 2 + i32.shl i32.add - local.set $1 - br $for-loop|00 + local.tee $8 + i32.load + i32.store offset=8 + local.get $8 + local.get $2 + i32.store + local.get $2 + i32.const 12 + i32.add + local.set $2 end + local.get $7 + i32.const 12 + i32.add + local.set $7 + br $while-continue|0 end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + local.get $0 + local.get $6 + i32.store + local.get $0 + local.get $6 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#delete" (param $0 i32) (param $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 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + 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 + local.get $1 + local.get $1 + i32.extend8_s + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + call $"~lib/map/Map#find" + local.tee $1 + i32.eqz + if 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 $2 - local.get $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - call $~lib/map/Map#values - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.set $1 - 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 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i32.const 0 - i32.store offset=8 - local.get $2 - i32.const 24 - i32.const 14 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $2 - local.get $4 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + local.get $1 + local.get $1 + i32.load offset=8 + i32.const 1 + i32.or + 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=20 + i32.const 1 + i32.sub + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.const 1 + i32.add + i32.const 4 + local.get $0 + i32.load offset=20 + local.tee $2 + local.get $2 + i32.const 4 + i32.lt_u + select + i32.ge_u + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $2 - local.get $4 - call $~lib/rt/itcms/__link + local.get $0 + i32.load offset=20 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + local.get $0 + i32.store + local.get $0 + i32.load offset=12 i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $2 - local.get $4 - i32.store offset=8 - local.get $2 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + i32.mul i32.const 4 - 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 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + i32.div_s + i32.lt_s + else i32.const 0 - i32.store offset=20 + end + if global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 local.get $1 - local.get $2 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - call $~lib/map/Map#constructor - local.tee $4 - i32.store offset=20 - i32.const 0 - local.set $1 - loop $for-loop|2 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/array/Array#get:length - local.get $1 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $7 - 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 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $5 - i32.const 0 - i32.store - local.get $5 - local.get $7 - i32.store - local.get $1 - local.get $7 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1728 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $7 - i32.store + call $"~lib/map/Map#rehash" + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i64) + (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 + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + 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 + local.get $1 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $5 + i32.const 4 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $8 + local.get $0 + i32.load offset=16 + i32.const 4 + i32.shl + i32.add + local.set $4 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $4 + local.get $8 + i32.ne + if + local.get $8 + i32.load offset=12 + i32.const 1 + i32.and + i32.eqz + if + local.get $2 + local.get $8 + i64.load + local.tee $6 + i64.store + local.get $2 + local.get $8 + i32.load offset=8 + i32.store offset=8 + local.get $2 local.get $7 - i32.load offset=4 local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $6 - local.get $5 - i32.const 4 + local.get $6 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $1 - call $~lib/array/Array#__get - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul local.get $6 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $5 - i32.const 20 - i32.sub - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 32 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + 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 $9 + i32.const 15 + i32.shr_u + local.get $9 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $9 + i32.const 13 + i32.shr_u + local.get $9 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $9 + i32.const 16 + i32.shr_u + local.get $9 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $9 + i32.load + i32.store offset=12 + local.get $9 local.get $2 - i32.store offset=4 + i32.store local.get $2 - local.get $6 - local.get $6 - call $~lib/map/Map#set - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $5 - i32.const 20 - i32.sub - local.tee $5 - local.get $5 - call $~lib/map/Map#set - local.get $1 - i32.const 1 + i32.const 16 i32.add - local.set $1 - br $for-loop|2 + local.set $2 end + local.get $8 + i32.const 16 + i32.add + local.set $8 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/map/Map#get:size - i32.const 100 - i32.ne - 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 $4 - i32.store offset=4 - local.get $4 - call $~lib/map/Map#get:size - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|3 - local.get $0 - i32.const 50 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#get - local.get $0 - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 42 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#delete - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#has - if - i32.const 0 - i32.const 1568 - 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|3 - end - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 46 - i32.const 3 - call $~lib/builtins/abort - unreachable - 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 $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#has - if - i32.const 0 - i32.const 1568 - i32.const 50 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - local.get $0 - i32.const 10 - i32.add - call $~lib/map/Map#set - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 52 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#delete - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#has - if - i32.const 0 - i32.const 1568 - i32.const 54 - 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 $3 - i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - call $~lib/map/Map#clear - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size - if - i32.const 0 - i32.const 1568 - i32.const 60 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - return end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $0 + local.get $7 + i32.store + local.get $0 + local.get $7 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#has (param $0 i32) (param $1 i32) (result i32) + (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i64) (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 @@ -9568,55 +8521,137 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.get $1 local.get $1 - i32.const 65535 - i32.and + i32.wrap_i64 i32.const -1028477379 i32.mul - i32.const 374761395 + i32.const 374761401 i32.add i32.const 17 i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 + 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 $0 - local.get $0 + local.tee $2 i32.const 16 i32.shr_u + local.get $2 i32.xor - call $~lib/map/Map#find - i32.const 0 - i32.ne - local.set $0 + call $"~lib/map/Map#find" + local.tee $2 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + local.get $2 + local.get $2 + i32.load offset=12 + i32.const 1 + i32.or + 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=20 + i32.const 1 + i32.sub + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $2 global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 + i32.const 1 + i32.add + i32.const 4 + local.get $0 + i32.load offset=20 + local.tee $3 + local.get $3 i32.const 4 + i32.lt_u + select + i32.ge_u + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $2 + call $"~lib/map/Map#rehash" + end + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9640,13 +8675,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.const 1 i32.add @@ -9699,9 +8733,9 @@ if local.get $2 local.get $7 - i32.load16_u + i32.load local.tee $8 - i32.store16 + i32.store local.get $2 local.get $7 i32.load offset=4 @@ -9712,7 +8746,7 @@ local.get $8 i32.const -1028477379 i32.mul - i32.const 374761395 + i32.const 374761397 i32.add i32.const 17 i32.rotl @@ -9760,10 +8794,9 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=12 local.get $0 @@ -9811,13 +8844,10 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) + (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -9832,189 +8862,134 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 - i32.const 0 - i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.get $1 local.get $1 - i32.const 65535 - i32.and i32.const -1028477379 i32.mul - i32.const 374761395 + i32.const 374761397 i32.add i32.const 17 i32.rotl i32.const 668265263 i32.mul - local.tee $3 + local.tee $1 i32.const 15 i32.shr_u - local.get $3 + local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $3 + local.tee $1 i32.const 13 i32.shr_u - local.get $3 + local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $3 + local.tee $1 i32.const 16 i32.shr_u - local.get $3 + local.get $1 i32.xor - local.tee $4 - call $~lib/map/Map#find - local.tee $3 + call $"~lib/map/Map#find" + local.tee $1 + i32.eqz if - local.get $3 - local.get $2 - i32.store offset=4 - else global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - local.set $5 - local.get $3 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + local.get $1 + local.get $1 + i32.load offset=8 + i32.const 1 + i32.or + 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=20 + i32.const 1 + i32.sub + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.const 1 + i32.add + i32.const 4 + local.get $0 + i32.load offset=20 + local.tee $2 + local.get $2 + i32.const 4 + i32.lt_u + select + i32.ge_u + if (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 local.get $0 - i32.load offset=12 - i32.eq - if - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - local.set $5 - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $5 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - 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 - i32.const 1 - i32.or - end - call $~lib/map/Map#rehash - end + i32.load offset=20 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $0 i32.store - local.get $5 local.get $0 - i32.load offset=8 - local.tee $3 - i32.store offset=8 - local.get $5 - local.get $0 - i32.store - local.get $5 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $6 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 - local.get $6 - i32.const 12 + i32.load offset=12 + i32.const 3 i32.mul - i32.add - local.tee $3 - local.get $1 - i32.store16 - local.get $3 - local.get $2 - i32.store offset=4 - local.get $5 - local.get $0 - i32.store - local.get $5 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - local.get $5 + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.load - local.set $1 - local.get $5 - local.get $0 - i32.store - local.get $3 local.get $1 - local.get $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=8 - local.get $0 - local.get $3 - i32.store + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -10029,521 +9004,525 @@ 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 + local.get $1 + i32.const 1 + i32.add local.tee $2 - i32.const 0 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $6 i32.store + global.get $~lib/memory/__stack_pointer local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $5 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=8 local.get $0 - local.get $1 - local.get $1 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 + i32.load offset=8 + local.set $7 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 + i32.store offset=8 + local.get $7 local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 + i32.load offset=16 + i32.const 12 i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor - call $~lib/map/Map#find - local.tee $0 - i32.eqz - if - i32.const 1616 - i32.const 1680 - i32.const 105 - i32.const 17 - call $~lib/builtins/abort - unreachable + i32.add + local.set $4 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $4 + local.get $7 + i32.ne + if + local.get $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $2 + local.get $7 + i32.load16_s + local.tee $8 + i32.store16 + local.get $2 + local.get $7 + i32.load offset=4 + i32.store offset=4 + local.get $2 + local.get $6 + local.get $1 + local.get $8 + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $8 + local.get $8 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $8 + local.get $8 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $8 + local.get $8 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $8 + i32.load + i32.store offset=8 + local.get $8 + local.get $2 + i32.store + local.get $2 + i32.const 12 + i32.add + local.set $2 + end + local.get $7 + i32.const 12 + i32.add + local.set $7 + br $while-continue|0 + end end + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=4 - local.set $0 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 local.get $0 - ) - (func $~lib/map/Map#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) + local.get $6 + i32.store + local.get $0 + local.get $6 + call $~lib/rt/itcms/__link 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 1896 - i32.lt_s - br_if $folding-inner1 + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#delete" (param $0 i32) (param $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 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + 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 + local.get $1 + local.get $1 + i32.extend16_s + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + call $"~lib/map/Map#find" + local.tee $1 + i32.eqz + if global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - i32.const 0 - i32.store offset=8 - local.get $3 - local.get $0 - i32.store - local.get $1 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 + i32.const 8 i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $4 - i32.const 15 - i32.shr_u - local.get $4 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $4 - i32.const 13 - i32.shr_u - local.get $4 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $4 - i32.const 16 - i32.shr_u - local.get $4 - i32.xor - local.tee $8 - local.set $4 - local.get $3 - i32.const 4 - i32.sub global.set $~lib/memory/__stack_pointer + return + end + local.get $1 + local.get $1 + i32.load offset=8 + i32.const 1 + i32.or + 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=20 + i32.const 1 + i32.sub + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.const 1 + i32.add + i32.const 4 + local.get $0 + i32.load offset=20 + local.tee $2 + local.get $2 + i32.const 4 + i32.lt_u + select + i32.ge_u + if (result i32) global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 + local.get $0 i32.store - local.get $3 + local.get $0 + i32.load offset=20 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.load - local.set $5 - local.get $3 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 - local.get $4 local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 - block $__inlined_func$~lib/map/Map#find$1393 - loop $while-continue|0 - local.get $3 - if - local.get $3 - i32.load offset=4 - local.tee $4 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $3 - i32.load16_u - local.get $1 - i32.const 65535 - i32.and - i32.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/map/Map#find$1393 - end - local.get $4 - i32.const -2 - i32.and - local.set $3 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $3 - end - local.get $3 + local.get $1 + call $"~lib/map/Map#rehash" + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i64) + (local $5 f64) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 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 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + 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 + local.get $1 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $8 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $7 + i32.const 4 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $9 + local.get $0 + i32.load offset=16 + i32.const 4 + i32.shl + i32.add + local.set $6 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $6 + local.get $9 + i32.ne if - local.get $3 - local.get $2 - i32.store16 offset=2 - else - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - local.set $4 - local.get $3 - local.get $0 - i32.store - local.get $4 - local.get $0 + local.get $9 i32.load offset=12 - i32.eq + i32.const 1 + i32.and + i32.eqz if - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - local.set $4 - local.get $3 - local.get $0 - i32.store offset=4 + local.get $2 + local.get $9 + f64.load + local.tee $5 + f64.store + local.get $2 + local.get $9 + i32.load offset=8 + i32.store offset=8 + local.get $2 + local.get $8 + local.get $1 + local.get $5 + 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 - local.get $0 - i32.load offset=12 - i32.const 3 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - 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 - i32.const 1 - i32.or - end - 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 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - i64.const 0 - i64.store offset=8 - local.get $3 - local.get $5 - i32.const 1 i32.add - local.tee $3 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $10 + i32.const 15 + i32.shr_u + local.get $10 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $10 + i32.const 13 + i32.shr_u + local.get $10 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $10 + i32.const 16 + i32.shr_u + local.get $10 + i32.xor + i32.and i32.const 2 i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $9 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $7 - i32.const 3 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 + i32.add + local.tee $10 + i32.load + i32.store offset=12 local.get $10 - local.get $0 - i32.load offset=16 - i32.const 3 - i32.shl + local.get $2 + i32.store + local.get $2 + i32.const 16 i32.add - local.set $6 - local.get $4 - local.set $3 - loop $while-continue|00 - local.get $6 - local.get $10 - i32.ne - if - local.get $10 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - local.get $3 - local.get $10 - i32.load16_u - local.tee $11 - i32.store16 - local.get $3 - local.get $10 - i32.load16_u offset=2 - i32.store16 offset=2 - local.get $3 - local.get $9 - local.get $5 - local.get $11 - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $11 - local.get $11 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $11 - local.get $11 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $11 - local.get $11 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $11 - i32.load - i32.store offset=4 - local.get $11 - local.get $3 - i32.store - local.get $3 - i32.const 8 - i32.add - local.set $3 - end - local.get $10 - i32.const 8 - i32.add - local.set $10 - br $while-continue|00 - end - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store offset=8 - local.get $3 - local.get $9 - i32.store offset=12 - local.get $0 - local.get $9 - i32.store - local.get $0 - local.get $9 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $5 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $0 - local.get $4 - i32.store offset=8 - local.get $0 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer + local.set $2 end - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.load offset=8 - local.tee $4 - i32.store offset=8 - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $5 - i32.const 1 - i32.add - i32.store offset=16 - local.get $4 - local.get $5 - i32.const 3 - i32.shl - i32.add - local.tee $4 - local.get $1 - i32.store16 - local.get $4 - local.get $2 - i32.store16 offset=2 - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - local.get $3 - local.get $0 - i32.store - local.get $0 - i32.load - local.set $1 - local.get $3 - local.get $0 - i32.store - local.get $4 - local.get $1 - local.get $8 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl + local.get $9 + i32.const 16 i32.add - local.tee $0 - i32.load - i32.store offset=4 - local.get $0 - local.get $4 - i32.store + local.set $9 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - return end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=12 + local.get $0 + local.get $8 + i32.store + local.get $0 + local.get $8 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $7 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#delete (param $0 i32) (param $1 i32) - (local $2 i32) + (func $"~lib/map/Map#delete" (param $0 i32) (param $1 f64) + (local $2 i64) (local $3 i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -10560,46 +9539,57 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.get $1 local.get $1 - i32.const 65535 - i32.and + i64.reinterpret_f64 + local.tee $2 + i32.wrap_i64 i32.const -1028477379 i32.mul - i32.const 374761395 + i32.const 374761401 i32.add i32.const 17 i32.rotl i32.const 668265263 i32.mul - local.tee $1 + local.get $2 + 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 $1 + local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $1 + local.tee $3 i32.const 13 i32.shr_u - local.get $1 + local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $1 + local.tee $3 i32.const 16 i32.shr_u - local.get $1 + local.get $3 i32.xor - call $~lib/map/Map#find - local.tee $1 + call $"~lib/map/Map#find" + local.tee $3 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -10608,17 +9598,16 @@ global.set $~lib/memory/__stack_pointer return end - local.get $1 - local.get $1 - i32.load offset=8 + local.get $3 + local.get $3 + i32.load offset=12 i32.const 1 i32.or - i32.store offset=8 + i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -10627,40 +9616,38 @@ i32.const 1 i32.sub i32.store offset=20 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 i32.const 1 i32.shr_u - local.set $2 - local.get $1 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + local.get $3 i32.const 1 i32.add i32.const 4 local.get $0 i32.load offset=20 - local.tee $3 - local.get $3 + local.tee $4 + local.get $4 i32.const 4 i32.lt_u select i32.ge_u if (result i32) - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=20 - local.set $3 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $0 i32.load offset=12 i32.const 3 @@ -10676,17 +9663,15 @@ local.get $0 i32.store local.get $0 - local.get $2 - call $~lib/map/Map#rehash + local.get $3 + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/map/testNumeric - (local $0 i32) - (local $1 i32) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10695,2435 +9680,4726 @@ (local $7 i32) (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.const 24 - memory.fill - local.get $2 - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - i32.const 0 - i32.store offset=8 - local.get $3 - i32.const 24 - i32.const 15 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $3 - local.get $4 - i32.store - local.get $3 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $3 - local.get $4 - i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + 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 + local.get $1 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $5 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $7 + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + local.set $4 + local.get $3 + local.set $2 + loop $while-continue|0 local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $3 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 100 - i32.lt_u + local.get $7 + i32.ne + if + local.get $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#has - if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 + i32.load + local.set $8 + local.get $2 + local.get $7 + f32.load + f32.store + local.get $2 + local.get $7 + i32.load offset=4 i32.store offset=4 - local.get $3 - local.get $0 - local.get $0 - i32.const 10 + local.get $2 + local.get $6 + local.get $1 + local.get $8 + i32.const -1028477379 + i32.mul + i32.const 374761397 i32.add - call $~lib/map/Map#set - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#get - local.get $0 - i32.const 10 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $8 + local.get $8 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $8 + local.get $8 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $8 + local.get $8 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 9 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 + local.tee $8 + i32.load + i32.store offset=8 + local.get $8 + local.get $2 + i32.store + local.get $2 + i32.const 12 i32.add - local.set $0 - br $for-loop|0 + local.set $2 end + local.get $7 + i32.const 12 + i32.add + local.set $7 + br $while-continue|0 end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + local.get $0 + local.get $6 + i32.store + local.get $0 + local.get $6 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#delete" (param $0 i32) (param $1 f32) + (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 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + 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 + local.get $1 + 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 + call $"~lib/map/Map#find" + local.tee $2 + i32.eqz + if global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 11 - 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 $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 15 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#get - local.get $0 - i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - local.get $0 - i32.const 20 - i32.add - call $~lib/map/Map#set - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#get - local.get $0 - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 19 - 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 $3 - i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size - i32.const 100 - i32.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.tee $2 - local.get $3 - i32.store offset=4 - local.get $2 i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store - local.get $4 - local.get $3 - i32.store - local.get $3 - i32.load offset=8 - local.set $5 - local.get $4 - local.get $3 - i32.store - local.get $3 - i32.load offset=16 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub + i32.add global.set $~lib/memory/__stack_pointer + return + end + local.get $2 + local.get $2 + i32.load offset=8 + i32.const 1 + i32.or + 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=20 + i32.const 1 + i32.sub + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 + i32.const 1 + i32.add + i32.const 4 + local.get $0 + i32.load offset=20 + local.tee $3 + local.get $3 + i32.const 4 + i32.lt_u + select + i32.ge_u + if (result i32) global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 local.get $0 - i32.const 16 - i32.const 16 - call $~lib/rt/itcms/__new - local.tee $7 i32.store + local.get $0 + i32.load offset=20 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 + local.get $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 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else i32.const 0 - i32.store offset=8 + end + if global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 + local.get $0 + i32.store + local.get $0 + local.get $2 + call $"~lib/map/Map#rehash" + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + 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 1896 + i32.lt_s + if + 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.store + local.get $0 + local.get $1 + i32.const 0 + 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/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 1896 + i32.lt_s + if + 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.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.store offset=12 - local.get $6 - i32.const 536870910 - i32.gt_u + i32.lt_s if - i32.const 1456 + i32.const 1248 i32.const 1728 - i32.const 70 - i32.const 60 + i32.const 130 + i32.const 22 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 + local.get $0 + local.get $1 i32.const 1 - i32.shl - local.tee $8 + i32.add + local.tee $3 + i32.const 0 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 + call $~lib/array/ensureCapacity 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 + local.get $3 i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $7 - i32.store offset=4 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=4 + i32.add + local.get $2 + i32.store8 + 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 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 1896 + i32.lt_s + if + 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.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 - local.set $0 - loop $for-loop|00 - local.get $1 - local.get $6 - i32.lt_s - if - local.get $5 - local.get $1 - i32.const 12 - i32.mul - i32.add - local.tee $4 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - local.get $4 - i32.load16_u - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|00 - end + i32.lt_s + if + i32.const 1248 + i32.const 1728 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable 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 + local.get $1 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 + 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 - call $~lib/map/Map#values - local.tee $0 i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.set $1 - 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 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 + 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 1896 + i32.lt_s + if + 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.store + local.get $0 + local.get $1 + i32.const 1 + 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/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 1896 + i32.lt_s + if + 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.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.store offset=8 - local.get $2 - i32.const 24 - i32.const 17 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 + i32.lt_s + if + i32.const 1248 + i32.const 1728 + 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 + i32.const 1 + i32.const 1 + call $~lib/array/ensureCapacity global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $2 - local.get $4 + local.get $0 i32.store - local.get $2 - local.get $4 - call $~lib/rt/itcms/__link + 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 1 + i32.shl + i32.add + local.get $2 + i32.store16 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~start + memory.size + i32.const 16 + i32.shl + i32.const 34664 + 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/map/testNumeric" + call $"std/map/testNumeric" + call $"std/map/testNumeric" + call $"std/map/testNumeric" + call $"std/map/testNumeric" + call $"std/map/testNumeric" + call $"std/map/testNumeric" + call $"std/map/testNumeric" + call $"std/map/testNumeric" + call $"std/map/testNumeric" + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + global.get $~lib/rt/itcms/state + 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 + 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 + ) + (func $"~lib/map/Map#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 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - i32.store offset=4 + i32.const 1896 + i32.lt_s + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $2 - local.get $4 + i32.const 0 i32.store offset=8 - local.get $2 - local.get $4 - call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + local.get $0 + i32.store + local.get $1 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + 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 $8 + local.set $3 + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.store offset=12 + i32.sub + global.set $~lib/memory/__stack_pointer 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 1896 + i32.lt_s + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 0 - i32.store offset=20 + i32.store global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $2 - i32.store offset=16 + local.get $0 + i32.store + local.get $0 + i32.load global.get $~lib/memory/__stack_pointer - call $~lib/map/Map#constructor - local.tee $4 - i32.store offset=20 - i32.const 0 - local.set $1 - loop $for-loop|2 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/array/Array#get:length - local.get $1 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $7 - 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 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $5 - i32.const 0 - i32.store - local.get $5 - local.get $7 - i32.store - local.get $1 - local.get $7 - i32.load offset=12 - i32.ge_u + local.get $0 + i32.store + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + block $"__inlined_func$~lib/map/Map#find$1383" + loop $while-continue|0 + local.get $3 if - i32.const 1248 - i32.const 1728 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable + local.get $3 + i32.load offset=4 + local.tee $4 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $3 + i32.load8_u + local.get $1 + i32.const 255 + i32.and + i32.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $"__inlined_func$~lib/map/Map#find$1383" + end + local.get $4 + i32.const -2 + i32.and + local.set $3 + br $while-continue|0 end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $3 + end + local.get $3 + if + local.get $3 + local.get $2 + i32.store8 offset=1 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq + if global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $7 + local.get $0 i32.store - local.get $7 - i32.load offset=4 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $6 - local.get $5 - 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 - local.get $1 - call $~lib/array/Array#__get - local.set $5 + i32.load offset=20 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 - local.get $6 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + 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 + i32.const 1 + i32.or end + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $5 - i32.const 20 + i32.const 16 i32.sub - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 32 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $6 - local.get $6 - call $~lib/map/Map#set + i32.const 1896 + i32.lt_s + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $5 - i32.const 20 - i32.sub - local.tee $5 - local.get $5 - call $~lib/map/Map#set - local.get $1 + 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 $7 i32.const 1 i32.add - local.set $1 - br $for-loop|2 - end - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/map/Map#get:size - i32.const 100 - i32.ne - 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 $4 - i32.store offset=4 - local.get $4 - call $~lib/map/Map#get:size - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|3 - local.get $0 - i32.const 50 - i32.lt_u - if + local.tee $3 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $6 + i32.store global.get $~lib/memory/__stack_pointer local.get $3 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $9 + i32.const 3 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $4 i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 local.get $0 - call $~lib/map/Map#get + i32.store offset=8 local.get $0 - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 42 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + i32.load offset=8 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 local.get $0 - call $~lib/map/Map#delete - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 + i32.store offset=8 + local.get $5 local.get $0 - call $~lib/map/Map#has - if - i32.const 0 - i32.const 1568 - i32.const 44 - i32.const 5 - call $~lib/builtins/abort - unreachable + i32.load offset=16 + i32.const 3 + i32.shl + i32.add + local.set $10 + local.get $4 + local.set $3 + loop $while-continue|00 + local.get $5 + local.get $10 + i32.ne + if + local.get $5 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $5 + i32.load8_u + local.tee $11 + i32.store8 + local.get $3 + local.get $5 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $3 + local.get $6 + local.get $7 + local.get $11 + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $11 + local.get $11 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $11 + local.get $11 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $11 + local.get $11 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $11 + i32.load + i32.store offset=4 + local.get $11 + local.get $3 + i32.store + local.get $3 + i32.const 8 + i32.add + local.set $3 + end + local.get $5 + i32.const 8 + i32.add + local.set $5 + br $while-continue|00 + end end + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|3 - end - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 46 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|4 - local.get $0 - i32.const 50 - i32.lt_u - if + i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 + local.get $6 + i32.store offset=12 local.get $0 - call $~lib/map/Map#has - if - i32.const 0 - i32.const 1568 - i32.const 50 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + local.get $6 + i32.store + local.get $0 + local.get $6 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 + i32.store offset=8 + local.get $0 + local.get $7 i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 local.get $0 + local.get $4 + i32.store offset=8 local.get $0 - i32.const 10 - i32.add - call $~lib/map/Map#set + local.get $4 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 local.get $0 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 52 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + i32.store offset=8 + local.get $0 + local.get $9 + i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 local.get $0 - call $~lib/map/Map#delete + i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 local.get $0 - call $~lib/map/Map#has - if - i32.const 0 - i32.const 1568 - i32.const 54 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + i32.store offset=12 local.get $0 - i32.const 1 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add - local.set $0 - br $for-loop|4 + global.set $~lib/memory/__stack_pointer end - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - call $~lib/map/Map#clear - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size - if - i32.const 0 - i32.const 1568 - i32.const 60 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + 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=16 + local.tee $4 + i32.const 1 + i32.add + i32.store offset=16 + local.get $3 + local.get $4 i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 34688 - i32.const 34736 + i32.shl + i32.add + local.tee $3 + local.get $1 + i32.store8 + local.get $3 + local.get $2 + i32.store8 offset=1 + 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=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $1 + local.get $8 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=4 + local.get $0 + local.get $3 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable ) - (func $~lib/map/Map#has (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $0 - local.get $1 - 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 $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor - call $~lib/map/Map#find - i32.const 0 - i32.ne - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $0 - local.get $1 - 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 $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor - call $~lib/map/Map#find - local.tee $0 - i32.eqz - if - i32.const 1616 - i32.const 1680 - i32.const 105 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/map/Map#delete (param $0 i32) (param $1 i32) - (local $2 i32) + (func $"~lib/map/Map#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 i64) + (local $10 i32) + (local $11 i32) + (local $12 i32) 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 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - local.get $0 - i32.store - local.get $0 - local.get $1 - 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 $1 - i32.const 15 - i32.shr_u - local.get $1 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - i32.const 13 - i32.shr_u - local.get $1 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - i32.const 16 - i32.shr_u - local.get $1 - i32.xor - call $~lib/map/Map#find - local.tee $1 - i32.eqz - if + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 1896 + 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 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + 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 8 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - local.get $1 - local.get $1 - i32.load offset=8 - i32.const 1 - i32.or - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 - local.get $1 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $2 - local.get $1 - local.get $0 - i32.store - local.get $2 - i32.const 1 - i32.add - i32.const 4 - local.get $0 - i32.load offset=20 - local.tee $3 - local.get $3 - i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) - local.get $1 local.get $0 i32.store local.get $0 - i32.load offset=20 - local.set $3 - local.get $1 + i32.load + 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 local.get $3 - local.get $0 - i32.load offset=12 - i32.const 3 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 i32.mul - i32.const 4 - i32.div_s - i32.lt_s - else - i32.const 0 - end - if + local.tee $3 + local.get $3 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + local.get $3 + i32.const 16 + i32.shr_u + i32.xor + local.tee $8 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + block $"__inlined_func$~lib/map/Map#find$1408" + loop $while-continue|0 + local.get $3 + if + local.get $3 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + local.get $3 + i64.load + i64.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $"__inlined_func$~lib/map/Map#find$1408" + end + local.get $4 + i32.const -2 + i32.and + local.set $3 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $3 + end + local.get $3 + if + local.get $3 + local.get $2 + i64.store offset=8 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + 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 + i32.load offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + 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 + i32.const 1 + i32.or + end + 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 1896 + 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 $5 + i32.const 1 + i32.add + local.tee $3 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $10 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $7 + i32.const 24 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $11 + local.get $0 + i32.load offset=16 + i32.const 24 + i32.mul + i32.add + local.set $6 + local.get $4 + local.set $3 + loop $while-continue|00 + local.get $6 + local.get $11 + i32.ne + if + local.get $11 + i32.load offset=16 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $11 + i64.load + local.tee $9 + i64.store + local.get $3 + local.get $11 + i64.load offset=8 + i64.store offset=8 + local.get $3 + local.get $10 + local.get $5 + local.get $9 + 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 $9 + 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 $12 + local.get $12 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $12 + local.get $12 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $12 + local.get $12 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $12 + i32.load + i32.store offset=16 + local.get $12 + local.get $3 + i32.store + local.get $3 + i32.const 24 + i32.add + local.set $3 + end + local.get $11 + i32.const 24 + i32.add + local.set $11 + br $while-continue|00 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store offset=12 + local.get $0 + local.get $10 + i32.store + local.get $0 + local.get $10 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $5 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $0 + local.get $4 + i32.store offset=8 + local.get $0 + local.get $4 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $7 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + 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=16 + local.tee $4 + i32.const 1 + i32.add + i32.store offset=16 + local.get $3 + local.get $4 + i32.const 24 + i32.mul + i32.add + local.tee $3 + local.get $1 + i64.store + local.get $3 + local.get $2 + 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=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $4 + local.get $8 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=16 + local.get $0 + local.get $3 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"~lib/map/Map#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 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1896 + 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 + local.get $0 + i32.store + local.get $0 + local.get $1 + 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 $7 + call $"~lib/map/Map#find" + local.tee $3 + if + local.get $3 + local.get $2 + i32.store offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + 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 + i32.load offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + 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 + i32.const 1 + i32.or + end + local.set $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 1896 + 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 + local.get $8 + i32.const 1 + i32.add + local.tee $3 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $9 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $6 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $10 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $10 + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + local.set $5 + local.get $4 + local.set $3 + loop $while-continue|0 + local.get $5 + local.get $10 + i32.ne + if + local.get $10 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $10 + i32.load + local.tee $11 + i32.store + local.get $3 + local.get $10 + i32.load offset=4 + i32.store offset=4 + local.get $3 + local.get $9 + local.get $8 + local.get $11 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $11 + local.get $11 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $11 + local.get $11 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $11 + local.get $11 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $11 + i32.load + i32.store offset=8 + local.get $11 + local.get $3 + i32.store + local.get $3 + i32.const 12 + i32.add + local.set $3 + end + local.get $10 + i32.const 12 + i32.add + local.set $10 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=12 + local.get $0 + local.get $9 + i32.store + local.get $0 + local.get $9 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $0 + local.get $4 + i32.store offset=8 + local.get $0 + local.get $4 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $6 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + 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=16 + local.tee $4 + i32.const 1 + i32.add + i32.store offset=16 + local.get $3 + local.get $4 + i32.const 12 + i32.mul + i32.add + local.tee $3 + local.get $1 + i32.store + local.get $3 + local.get $2 + i32.store offset=4 + 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=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $1 + local.get $7 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=8 + local.get $0 + local.get $3 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"~lib/map/Map#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 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 1896 + 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 + local.get $1 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + 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 $8 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + block $"__inlined_func$~lib/map/Map#find$1393" + loop $while-continue|0 + local.get $3 + if + local.get $3 + i32.load offset=4 + local.tee $4 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $3 + i32.load16_u + local.get $1 + i32.const 65535 + i32.and + i32.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $"__inlined_func$~lib/map/Map#find$1393" + end + local.get $4 + i32.const -2 + i32.and + local.set $3 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $3 + end + local.get $3 + if + local.get $3 + local.get $2 + i32.store16 offset=2 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + 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 + i32.load offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + 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 + i32.const 1 + i32.or + end + 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 1896 + 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 $7 + i32.const 1 + i32.add + local.tee $3 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $9 + i32.const 3 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $5 + local.get $0 + i32.load offset=16 + i32.const 3 + i32.shl + i32.add + local.set $10 + local.get $4 + local.set $3 + loop $while-continue|00 + local.get $5 + local.get $10 + i32.ne + if + local.get $5 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $5 + i32.load16_u + local.tee $11 + i32.store16 + local.get $3 + local.get $5 + i32.load16_u offset=2 + i32.store16 offset=2 + local.get $3 + local.get $6 + local.get $7 + local.get $11 + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $11 + local.get $11 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $11 + local.get $11 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $11 + local.get $11 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $11 + i32.load + i32.store offset=4 + local.get $11 + local.get $3 + i32.store + local.get $3 + i32.const 8 + i32.add + local.set $3 + end + local.get $5 + i32.const 8 + i32.add + local.set $5 + br $while-continue|00 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + local.get $0 + local.get $6 + i32.store + local.get $0 + local.get $6 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $0 + local.get $4 + i32.store offset=8 + local.get $0 + local.get $4 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $9 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + 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=16 + local.tee $4 + i32.const 1 + i32.add + i32.store offset=16 + local.get $3 + local.get $4 + i32.const 3 + i32.shl + i32.add + local.tee $3 + local.get $1 + i32.store16 + local.get $3 + local.get $2 + i32.store16 offset=2 + 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=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $1 + local.get $8 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=4 + local.get $0 + local.get $3 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"~lib/map/Map#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 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 1896 + 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 + local.get $1 + i32.extend8_s + i32.const -1028477379 + i32.mul + i32.const 374761394 + 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 $8 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + block $"__inlined_func$~lib/map/Map#find$1378" + loop $while-continue|0 + local.get $3 + if + local.get $3 + i32.load offset=4 + local.tee $4 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $3 + i32.load8_u + local.get $1 + i32.const 255 + i32.and + i32.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $"__inlined_func$~lib/map/Map#find$1378" + end + local.get $4 + i32.const -2 + i32.and + local.set $3 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $3 + end + local.get $3 + if + local.get $3 + local.get $2 + i32.store8 offset=1 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + 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 + i32.load offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + 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 + i32.const 1 + i32.or + end + 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 1896 + 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 $7 + i32.const 1 + i32.add + local.tee $3 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $9 + i32.const 3 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $5 + local.get $0 + i32.load offset=16 + i32.const 3 + i32.shl + i32.add + local.set $10 + local.get $4 + local.set $3 + loop $while-continue|00 + local.get $5 + local.get $10 + i32.ne + if + local.get $5 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $5 + i32.load8_s + local.tee $11 + i32.store8 + local.get $3 + local.get $5 + i32.load8_s offset=1 + i32.store8 offset=1 + local.get $3 + local.get $6 + local.get $7 + local.get $11 + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $11 + local.get $11 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $11 + local.get $11 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $11 + local.get $11 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $11 + i32.load + i32.store offset=4 + local.get $11 + local.get $3 + i32.store + local.get $3 + i32.const 8 + i32.add + local.set $3 + end + local.get $5 + i32.const 8 + i32.add + local.set $5 + br $while-continue|00 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + local.get $0 + local.get $6 + i32.store + local.get $0 + local.get $6 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $0 + local.get $4 + i32.store offset=8 + local.get $0 + local.get $4 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $9 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + 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=16 + local.tee $4 + i32.const 1 + i32.add + i32.store offset=16 + local.get $3 + local.get $4 + i32.const 3 + i32.shl + i32.add + local.tee $3 + local.get $1 + i32.store8 + local.get $3 + local.get $2 + i32.store8 offset=1 + 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=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $1 + local.get $8 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=4 + local.get $0 + local.get $3 + i32.store + end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $2 - call $~lib/map/Map#rehash + i32.const 12 + 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 + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $std/map/testNumeric - (local $0 i32) - (local $1 i32) - (local $2 i32) + (func $"~lib/map/Map#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 i64) + (local $10 i32) + (local $11 i32) + (local $12 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 + block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 1896 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 - local.tee $3 i32.const 0 - i32.const 24 - memory.fill - local.get $3 - call $~lib/map/Map#constructor - local.tee $5 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + 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 + 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 + local.get $3 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + local.get $3 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + local.get $3 + i32.const 16 + i32.shr_u + i32.xor + local.tee $8 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + block $"__inlined_func$~lib/map/Map#find$1403" + loop $while-continue|0 + local.get $3 + if + local.get $3 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + local.get $3 + i64.load + i64.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $"__inlined_func$~lib/map/Map#find$1403" + end + local.get $4 + i32.const -2 + i32.and + local.set $3 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $3 + end + local.get $3 + if + local.get $3 + local.get $2 + i64.store offset=8 + else + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 100 - i32.lt_s + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq if global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=4 - local.get $5 local.get $0 - call $~lib/map/Map#has - if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable + i32.load offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + 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 + i32.const 1 + i32.or end + 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 1896 + 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 $5 + i32.const 1 + i32.add + local.tee $3 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $10 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $7 + i32.const 24 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $4 i32.store offset=4 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store offset=8 local.get $0 - i32.const 10 - i32.add - call $~lib/map/Map#set + i32.load offset=8 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 local.get $0 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable + i32.store offset=8 + local.get $11 + local.get $0 + i32.load offset=16 + i32.const 24 + i32.mul + i32.add + local.set $6 + local.get $4 + local.set $3 + loop $while-continue|00 + local.get $6 + local.get $11 + i32.ne + if + local.get $11 + i32.load offset=16 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $11 + i64.load + local.tee $9 + i64.store + local.get $3 + local.get $11 + i64.load offset=8 + i64.store offset=8 + local.get $3 + local.get $10 + local.get $5 + local.get $9 + 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 $9 + 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 $12 + local.get $12 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $12 + local.get $12 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $12 + local.get $12 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $12 + i32.load + i32.store offset=16 + local.get $12 + local.get $3 + i32.store + local.get $3 + i32.const 24 + i32.add + local.set $3 + end + local.get $11 + i32.const 24 + i32.add + local.set $11 + br $while-continue|00 + end end global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 local.get $0 - call $~lib/map/Map#get + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store offset=12 local.get $0 - i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 9 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + local.get $10 + i32.store 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 $5 - i32.store offset=4 - local.get $5 - call $~lib/map/Map#get:size - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 11 - 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 + local.get $10 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 local.get $5 i32.store offset=4 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 15 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + 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 local.get $0 - call $~lib/map/Map#get + local.get $4 + i32.store offset=8 local.get $0 - i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + local.get $4 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 local.get $0 + i32.store offset=8 local.get $0 - i32.const 20 - i32.add - call $~lib/map/Map#set + local.get $7 + i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 local.get $0 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 local.get $0 - call $~lib/map/Map#get + i32.store offset=12 local.get $0 - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 19 - i32.const 5 - call $~lib/builtins/abort - unreachable - end local.get $0 - i32.const 1 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add - local.set $0 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - call $~lib/map/Map#get:size - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 21 - i32.const 3 - call $~lib/builtins/abort - unreachable + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + 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=16 + local.tee $4 + i32.const 1 + i32.add + i32.store offset=16 + local.get $3 + local.get $4 + i32.const 24 + i32.mul + i32.add + local.tee $3 + local.get $1 + i64.store + local.get $3 + local.get $2 + 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=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $4 + local.get $8 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=16 + local.get $0 + local.get $3 + i32.store end global.get $~lib/memory/__stack_pointer - local.tee $6 - local.get $5 - i32.store offset=4 - local.get $6 - i32.const 8 - i32.sub + i32.const 12 + i32.add global.set $~lib/memory/__stack_pointer + return + end + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"~lib/map/Map#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 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 1896 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $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 local.get $0 - local.get $5 - i32.store - local.get $5 - i32.load offset=8 - local.set $7 - local.get $0 - local.get $5 i32.store - local.get $0 - local.get $5 - i32.load offset=16 - local.tee $8 - call $~lib/array/Array#constructor + local.get $1 + i32.extend16_s + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul local.tee $3 - i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $2 - local.get $8 - i32.lt_s - if - local.get $7 - local.get $2 - i32.const 12 - i32.mul - i32.add - local.tee $4 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - local.get $0 - local.get $4 - i32.load - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|00 - end - end - global.get $~lib/memory/__stack_pointer + i32.const 15 + i32.shr_u local.get $3 - i32.store + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u local.get $3 - local.get $0 - call $~lib/array/Array#set:length + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $8 + local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add + i32.const 4 + i32.sub global.set $~lib/memory/__stack_pointer - local.get $6 - local.get $3 - i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 + i32.const 1896 + i32.lt_s + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.get $5 - call $~lib/map/Map#values - local.tee $0 - i32.store offset=12 + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer - call $~lib/map/Map#constructor - local.tee $2 - i32.store offset=16 + local.get $0 + i32.store + local.get $0 + i32.load global.get $~lib/memory/__stack_pointer - call $~lib/map/Map#constructor - local.tee $4 - i32.store offset=20 - loop $for-loop|2 + local.get $0 + i32.store + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + block $"__inlined_func$~lib/map/Map#find$1388" + loop $while-continue|0 + local.get $3 + if + local.get $3 + i32.load offset=4 + local.tee $4 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $3 + i32.load16_u + local.get $1 + i32.const 65535 + i32.and + i32.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $"__inlined_func$~lib/map/Map#find$1388" + end + local.get $4 + i32.const -2 + i32.and + local.set $3 + br $while-continue|0 + end + end global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $3 + end + local.get $3 + if local.get $3 - i32.store offset=4 - local.get $3 - call $~lib/array/Array#get:length - local.get $1 - i32.gt_s + local.get $2 + i32.store16 offset=2 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq if global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $1 - call $~lib/array/Array#__get - local.set $6 + local.get $0 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - local.get $1 - call $~lib/array/Array#__get - local.set $7 + i32.load offset=20 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $0 i32.store offset=4 - local.get $5 - local.get $6 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + 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 + i32.const 1 + i32.or end + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $7 - i32.const 20 + i32.const 16 i32.sub - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 32 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $6 - local.get $6 - call $~lib/map/Map#set + i32.const 1896 + 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 $4 - i32.store offset=4 - local.get $4 local.get $7 - i32.const 20 - i32.sub - local.tee $6 - local.get $6 - call $~lib/map/Map#set - 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 $2 - i32.store offset=4 - local.get $2 - call $~lib/map/Map#get:size - i32.const 100 - i32.ne - 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 $4 - i32.store offset=4 - local.get $4 - call $~lib/map/Map#get:size - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|3 - local.get $0 - i32.const 50 - i32.lt_s - if + local.tee $3 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $6 + i32.store global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $3 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $9 + i32.const 3 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $4 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 local.get $5 local.get $0 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable + i32.load offset=16 + i32.const 3 + i32.shl + i32.add + local.set $10 + local.get $4 + local.set $3 + loop $while-continue|00 + local.get $5 + local.get $10 + i32.ne + if + local.get $5 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $5 + i32.load16_s + local.tee $11 + i32.store16 + local.get $3 + local.get $5 + i32.load16_s offset=2 + i32.store16 offset=2 + local.get $3 + local.get $6 + local.get $7 + local.get $11 + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $11 + local.get $11 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $11 + local.get $11 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $11 + local.get $11 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $11 + i32.load + i32.store offset=4 + local.get $11 + local.get $3 + i32.store + local.get $3 + i32.const 8 + i32.add + local.set $3 + end + local.get $5 + i32.const 8 + i32.add + local.set $5 + br $while-continue|00 + end end global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 local.get $0 - call $~lib/map/Map#get - local.get $0 - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 42 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 + local.get $6 + i32.store offset=12 + local.get $0 + local.get $6 + i32.store local.get $0 - call $~lib/map/Map#delete + local.get $6 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 local.get $0 - call $~lib/map/Map#has - if - i32.const 0 - i32.const 1568 - i32.const 44 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + i32.store offset=8 local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|3 - end - end - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - call $~lib/map/Map#get:size - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 46 - i32.const 3 - call $~lib/builtins/abort - unreachable - 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 $5 + local.get $7 i32.store offset=4 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 - call $~lib/map/Map#has - if - i32.const 0 - i32.const 1568 - i32.const 50 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + 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 local.get $0 + local.get $4 + i32.store offset=8 local.get $0 - i32.const 10 - i32.add - call $~lib/map/Map#set + local.get $4 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 local.get $0 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 52 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + i32.store offset=8 + local.get $0 + local.get $9 + i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 local.get $0 - call $~lib/map/Map#delete + i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 local.get $0 - call $~lib/map/Map#has - if - i32.const 0 - i32.const 1568 - i32.const 54 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + i32.store offset=12 local.get $0 - i32.const 1 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add - local.set $0 - br $for-loop|4 + global.set $~lib/memory/__stack_pointer end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + 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=16 + local.tee $4 + i32.const 1 + i32.add + i32.store offset=16 + local.get $3 + local.get $4 + i32.const 3 + i32.shl + i32.add + local.tee $3 + local.get $1 + i32.store16 + local.get $3 + local.get $2 + i32.store16 offset=2 + 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=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $1 + local.get $8 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=4 + local.get $0 + local.get $3 + i32.store end global.get $~lib/memory/__stack_pointer - local.get $5 + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"~lib/map/Map#keys" (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 f64) + (local $5 i32) + (local $6 i32) + (local $7 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 1896 + 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=8 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + local.set $5 + global.get $~lib/memory/__stack_pointer + 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 1896 + 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 31 + 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 + 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 - call $~lib/map/Map#get:size - i32.const 50 - i32.ne + i32.const 134217727 + i32.gt_u if - i32.const 0 - i32.const 1568 - i32.const 56 - i32.const 3 + i32.const 1456 + i32.const 1728 + i32.const 70 + i32.const 60 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + i32.const 8 local.get $5 - i32.store offset=4 local.get $5 - call $~lib/map/Map#clear + i32.const 8 + i32.le_u + select + i32.const 3 + i32.shl + local.tee $0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $6 + local.get $7 + i32.store + local.get $6 + local.get $7 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 i32.store offset=4 + local.get $6 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 local.get $5 - call $~lib/map/Map#get:size - if - i32.const 0 - i32.const 1568 - i32.const 60 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.store offset=12 global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - return - end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/map/Map#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store - local.get $0 - i32.load - local.set $4 - local.get $3 - local.get $0 - i32.store - local.get $4 - local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - loop $while-continue|0 - local.get $0 - if - local.get $0 - i32.load offset=8 - local.tee $2 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $1 - local.get $0 - i32.load - i32.eq - end + local.get $6 + i32.store offset=4 + loop $for-loop|0 + local.get $2 + local.get $5 + i32.lt_s if - global.get $~lib/memory/__stack_pointer + local.get $3 + local.get $2 i32.const 4 + i32.shl + i32.add + local.tee $7 + i32.load offset=12 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $1 + local.tee $0 + i32.const 1 + i32.add + local.set $1 + local.get $7 + f64.load + 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 1896 + 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 $6 + i32.store + local.get $0 + local.get $6 + i32.load offset=12 + i32.ge_u + if + local.get $0 + i32.const 0 + i32.lt_s + if + i32.const 1248 + i32.const 1728 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $6 + local.get $0 + i32.const 1 + i32.add + local.tee $7 + i32.const 3 + i32.const 1 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $7 + i32.store offset=12 + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + i32.load offset=4 + local.get $0 + i32.const 3 + i32.shl + i32.add + local.get $4 + 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 - global.set $~lib/memory/__stack_pointer - local.get $0 - return + local.set $2 + br $for-loop|0 end - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + 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 $6 + return end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $~lib/map/Map#has (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $0 - local.get $1 - 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 $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor - call $~lib/map/Map#find - i32.const 0 - i32.ne - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) - (local $2 i32) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 f64) (param $2 f64) (local $3 i32) (local $4 i32) - (local $5 i32) + (local $5 i64) (local $6 i32) - (local $7 i32) + (local $7 f64) (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 16 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i64.const 0 - i64.store offset=8 - local.get $2 - local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $5 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $7 - local.get $0 - i32.load offset=16 - i32.const 12 - i32.mul - i32.add - local.set $4 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $4 - local.get $7 - i32.ne + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 1896 + 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 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + 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 + 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 + local.get $3 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + local.get $3 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + local.get $3 + i32.const 16 + i32.shr_u + i32.xor + local.tee $10 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + block $"__inlined_func$~lib/map/Map#find$1418" + loop $while-continue|0 + local.get $3 + if + local.get $3 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + local.get $3 + f64.load + f64.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $"__inlined_func$~lib/map/Map#find$1418" + end + local.get $4 + i32.const -2 + i32.and + local.set $3 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $3 + end + local.get $3 if - local.get $7 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz + local.get $3 + local.get $2 + f64.store offset=8 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq if - local.get $2 - local.get $7 - i32.load - local.tee $8 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $2 - local.get $7 - i32.load offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=4 - local.get $2 - local.get $6 - local.get $1 - local.get $8 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $8 - local.get $8 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $8 - local.get $8 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 + local.get $0 + i32.load offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=12 + i32.const 3 i32.mul - local.tee $8 - local.get $8 + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + 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 + i32.const 1 + i32.or + end + local.set $6 + global.get $~lib/memory/__stack_pointer i32.const 16 - i32.shr_u - i32.xor - i32.and + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + 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 $6 + i32.const 1 + i32.add + local.tee $3 i32.const 2 i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $11 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $9 + i32.const 24 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $12 + local.get $0 + i32.load offset=16 + i32.const 24 + i32.mul i32.add - local.tee $8 - i32.load + local.set $8 + local.get $4 + local.set $3 + loop $while-continue|00 + local.get $8 + local.get $12 + i32.ne + if + local.get $12 + i32.load offset=16 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $12 + f64.load + local.tee $7 + f64.store + local.get $3 + local.get $12 + f64.load offset=8 + f64.store offset=8 + local.get $3 + local.get $11 + local.get $6 + local.get $7 + 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 $13 + local.get $13 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $13 + local.get $13 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $13 + local.get $13 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $13 + i32.load + i32.store offset=16 + local.get $13 + local.get $3 + i32.store + local.get $3 + i32.const 24 + i32.add + local.set $3 + end + local.get $12 + i32.const 24 + i32.add + local.set $12 + br $while-continue|00 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=8 - local.get $8 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=12 + local.get $0 + local.get $11 i32.store - local.get $2 - i32.const 12 + local.get $0 + local.get $11 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $0 + local.get $4 + i32.store offset=8 + local.get $0 + local.get $4 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $9 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add - local.set $2 + global.set $~lib/memory/__stack_pointer end - local.get $7 - i32.const 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 + local.tee $3 + 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=16 + local.tee $4 + i32.const 1 i32.add - local.set $7 - br $while-continue|0 + i32.store offset=16 + local.get $3 + local.get $4 + i32.const 24 + i32.mul + i32.add + local.tee $3 + local.get $1 + f64.store + local.get $3 + local.get $2 + 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=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $4 + local.get $10 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=16 + local.get $0 + local.get $3 + i32.store end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store offset=8 - local.get $2 - local.get $6 - i32.store offset=12 - local.get $0 - local.get $6 - i32.store - local.get $0 - local.get $6 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $3 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/map/Map#set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 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 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - i32.const 0 - i32.store offset=8 - local.get $3 - local.get $0 - i32.store - local.get $0 - local.get $1 - 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 $4 - call $~lib/map/Map#find - local.tee $3 - if - local.get $3 - local.get $2 - i32.store offset=4 - else + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"~lib/map/Map#keys" (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 f32) + (local $5 i32) + (local $6 i32) + (local $7 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 1896 + 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=8 + local.set $3 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 i32.load offset=16 local.set $5 - local.get $3 - local.get $0 + global.get $~lib/memory/__stack_pointer + 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 1896 + 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 28 + 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 + 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 - local.get $0 - i32.load offset=12 - i32.eq + i32.const 268435455 + i32.gt_u if - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - local.set $5 - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 + i32.const 1456 + i32.const 1728 + i32.const 70 + 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 $0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $6 + local.get $7 + i32.store + local.get $6 + local.get $7 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + 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 $6 + i32.store offset=4 + loop $for-loop|0 + local.get $2 local.get $5 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s i32.lt_s - if (result i32) + if local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 + local.get $2 + i32.const 12 + i32.mul + i32.add + local.tee $7 + i32.load offset=8 i32.const 1 - i32.shl + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $1 + local.tee $0 + i32.const 1 + i32.add + local.set $1 + local.get $7 + f32.load + 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 1896 + 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 $6 + i32.store + local.get $0 + local.get $6 + i32.load offset=12 + i32.ge_u + if + local.get $0 + i32.const 0 + i32.lt_s + if + i32.const 1248 + i32.const 1728 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $6 + local.get $0 + i32.const 1 + i32.add + local.tee $7 + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $7 + i32.store offset=12 + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + i32.load offset=4 + local.get $0 + i32.const 2 + i32.shl + i32.add + local.get $4 + 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.or + i32.add + local.set $2 + br $for-loop|0 end - call $~lib/map/Map#rehash end global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $0 - i32.store - local.get $5 - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store offset=8 - local.get $5 - local.get $0 - i32.store - local.get $5 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $6 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 local.get $6 - i32.const 12 - i32.mul - i32.add - local.tee $3 - local.get $1 - i32.store - local.get $3 - local.get $2 - i32.store offset=4 - local.get $5 - local.get $0 - i32.store - local.get $5 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - local.get $5 - local.get $0 - i32.store - local.get $0 - i32.load - local.set $1 - local.get $5 - local.get $0 i32.store - local.get $3 + local.get $6 local.get $1 - local.get $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.tee $0 - i32.load - i32.store offset=8 - local.get $0 - local.get $3 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $0 - local.get $1 - 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 $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor - call $~lib/map/Map#find - local.tee $0 - i32.eqz - if - i32.const 1616 - i32.const 1680 - i32.const 105 - i32.const 17 - call $~lib/builtins/abort - unreachable + global.set $~lib/memory/__stack_pointer + local.get $6 + return end - local.get $0 - i32.load offset=4 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/map/Map#set (param $0 i32) (param $1 i32) (param $2 i32) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 f32) (param $2 f32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -13143,18 +14419,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.get $1 local.get $1 + i32.reinterpret_f32 i32.const -1028477379 i32.mul i32.const 374761397 @@ -13164,60 +14440,55 @@ i32.const 668265263 i32.mul local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $3 i32.xor i32.const -2048144777 i32.mul local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $3 i32.xor i32.const -1028477379 i32.mul local.tee $3 + local.get $3 i32.const 16 i32.shr_u - local.get $3 i32.xor - local.tee $8 - call $~lib/map/Map#find + local.tee $7 + call $"~lib/map/Map#find" local.tee $3 if local.get $3 local.get $2 - i32.store offset=4 + f32.store offset=4 else global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 i32.load offset=16 - local.set $4 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 local.get $0 i32.load offset=12 i32.eq if - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=20 - local.set $4 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $4 local.get $0 i32.load offset=12 i32.const 3 @@ -13226,7 +14497,7 @@ i32.div_s i32.lt_s if (result i32) - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -13242,7 +14513,7 @@ i32.const 1 i32.or end - local.set $5 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -13252,14 +14523,13 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $3 - local.get $5 + global.get $~lib/memory/__stack_pointer + local.get $8 i32.const 1 i32.add local.tee $3 @@ -13274,7 +14544,7 @@ i32.shl i32.const 3 i32.div_s - local.tee $7 + local.tee $6 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -13295,11 +14565,11 @@ i32.const 12 i32.mul i32.add - local.set $6 + local.set $5 local.get $4 local.set $3 loop $while-continue|0 - local.get $6 + local.get $5 local.get $10 i32.ne if @@ -13309,18 +14579,20 @@ i32.and i32.eqz if - local.get $3 local.get $10 i32.load - local.tee $11 - i32.store + local.set $11 local.get $3 local.get $10 - i32.load offset=4 - i32.store offset=4 + f32.load + f32.store + local.get $3 + local.get $10 + f32.load offset=4 + f32.store offset=4 local.get $3 local.get $9 - local.get $5 + local.get $8 local.get $11 i32.const -1028477379 i32.mul @@ -13331,23 +14603,23 @@ i32.const 668265263 i32.mul local.tee $11 - local.get $11 i32.const 15 i32.shr_u + local.get $11 i32.xor i32.const -2048144777 i32.mul local.tee $11 - local.get $11 i32.const 13 i32.shr_u + local.get $11 i32.xor i32.const -1028477379 i32.mul local.tee $11 - local.get $11 i32.const 16 i32.shr_u + local.get $11 i32.xor i32.and i32.const 2 @@ -13372,10 +14644,9 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $9 i32.store offset=12 local.get $0 @@ -13388,7 +14659,7 @@ local.get $0 i32.store offset=8 local.get $0 - local.get $5 + local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 @@ -13406,7 +14677,7 @@ local.get $0 i32.store offset=8 local.get $0 - local.get $7 + local.get $6 i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $0 @@ -13424,42 +14695,41 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=8 - local.tee $4 + local.tee $3 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 local.get $0 i32.load offset=16 - local.tee $5 + local.tee $4 i32.const 1 i32.add i32.store offset=16 + local.get $3 local.get $4 - local.get $5 i32.const 12 i32.mul i32.add - local.tee $4 + local.tee $3 local.get $1 - i32.store - local.get $4 - local.get $2 - i32.store offset=4 + f32.store local.get $3 + local.get $2 + f32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -13468,18 +14738,18 @@ i32.const 1 i32.add i32.store offset=20 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load - local.set $1 - local.get $3 + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store + local.get $3 local.get $4 - local.get $1 - local.get $8 + local.get $7 local.get $0 i32.load offset=4 i32.and @@ -13490,7 +14760,7 @@ i32.load i32.store offset=8 local.get $0 - local.get $4 + local.get $3 i32.store end global.get $~lib/memory/__stack_pointer @@ -13506,148 +14776,7 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/map/Map#delete (param $0 i32) (param $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 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - local.get $0 - i32.store - local.get $0 - local.get $1 - 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 $1 - i32.const 15 - i32.shr_u - local.get $1 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - i32.const 13 - i32.shr_u - local.get $1 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - i32.const 16 - i32.shr_u - local.get $1 - i32.xor - call $~lib/map/Map#find - local.tee $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - local.get $1 - local.get $1 - i32.load offset=8 - i32.const 1 - i32.or - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 - local.get $1 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $2 - local.get $1 - local.get $0 - i32.store - local.get $2 - i32.const 1 - i32.add - i32.const 4 - local.get $0 - i32.load offset=20 - local.tee $3 - local.get $3 - i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) - local.get $1 - local.get $0 - i32.store - local.get $0 - i32.load offset=20 - local.set $3 - local.get $1 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - else - i32.const 0 - end - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $2 - call $~lib/map/Map#rehash - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/map/testNumeric + (func $"std/map/testNumeric" (local $0 i32) (local $1 i32) (local $2 i32) @@ -13667,11 +14796,11 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.const 24 memory.fill - local.get $2 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -13680,78 +14809,76 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 24 - i32.const 18 + i32.const 9 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=8 - local.get $3 - local.get $4 + local.get $1 + local.get $5 i32.store - local.get $3 - local.get $4 + local.get $1 + local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 i32.const 3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=8 - local.get $3 - local.get $4 + local.get $1 + local.get $5 i32.store offset=8 - local.get $3 - local.get $4 + local.get $1 + local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 i32.const 4 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 i32.const 0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $3 + local.get $1 i32.store loop $for-loop|0 local.get $0 @@ -13759,11 +14886,11 @@ i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -13773,20 +14900,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 local.get $0 i32.const 10 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -13797,11 +14924,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#get + call $"~lib/map/Map#get" local.get $0 i32.const 10 i32.add @@ -13822,10 +14949,10 @@ end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size + local.get $1 + call $"~lib/map/Map#get:size" i32.const 100 i32.ne if @@ -13844,11 +14971,11 @@ i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -13859,11 +14986,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#get + call $"~lib/map/Map#get" local.get $0 i32.const 10 i32.add @@ -13877,20 +15004,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 local.get $0 i32.const 20 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -13901,11 +15028,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#get + call $"~lib/map/Map#get" local.get $0 i32.const 20 i32.add @@ -13926,10 +15053,10 @@ end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size + local.get $1 + call $"~lib/map/Map#get:size" i32.const 100 i32.ne if @@ -13941,10 +15068,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $3 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -13953,22 +15080,22 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 - local.get $3 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $3 + local.get $1 i32.load offset=8 local.set $5 - local.get $4 - local.get $3 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $3 + local.get $1 i32.load offset=16 local.set $6 global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer @@ -13977,15 +15104,14 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 19 + i32.const 10 call $~lib/rt/itcms/__new local.tee $7 i32.store @@ -14017,7 +15143,7 @@ i32.const 0 i32.store offset=12 local.get $6 - i32.const 268435455 + i32.const 1073741820 i32.gt_u if i32.const 1456 @@ -14034,36 +15160,34 @@ i32.const 8 i32.le_u select - i32.const 2 - i32.shl - local.tee $8 + local.tee $0 i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $8 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 + local.get $8 i32.store offset=12 local.get $7 - local.get $0 + local.get $8 i32.store local.get $7 - local.get $0 + local.get $8 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=4 local.get $7 - local.get $0 + local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=4 local.get $7 - local.get $8 + local.get $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $7 @@ -14075,22 +15199,21 @@ i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 local.get $7 i32.store offset=4 i32.const 0 local.set $0 loop $for-loop|00 - local.get $1 + local.get $3 local.get $6 i32.lt_s if local.get $5 - local.get $1 + local.get $3 i32.const 12 i32.mul i32.add - local.tee $4 + local.tee $8 i32.load offset=8 i32.const 1 i32.and @@ -14101,18 +15224,18 @@ i32.store local.get $7 local.get $0 - local.get $4 - i32.load - call $~lib/array/Array#__set + local.get $8 + i32.load8_u + call $~lib/array/Array#__set local.get $0 i32.const 1 i32.add local.set $0 end - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|00 end end @@ -14121,24 +15244,22 @@ i32.store local.get $7 local.get $0 - call $~lib/array/Array#set:length + 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 local.get $7 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 - call $~lib/map/Map#values + local.get $1 + call $"~lib/map/Map#values" local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -14148,92 +15269,88 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 24 - i32.const 20 + i32.const 11 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $4 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=8 - local.get $2 local.get $4 + local.get $5 i32.store - local.get $2 local.get $4 + local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 i32.const 3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - i32.const 48 + i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=8 - local.get $2 local.get $4 + local.get $5 i32.store offset=8 - local.get $2 local.get $4 + local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 i32.const 4 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 i32.const 0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $2 + local.get $4 i32.store offset=16 global.get $~lib/memory/__stack_pointer - call $~lib/map/Map#constructor - local.tee $4 + call $"~lib/map/Map#constructor" + local.tee $3 i32.store offset=20 - i32.const 0 - local.set $1 loop $for-loop|2 global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=4 local.get $7 call $~lib/array/Array#get:length - local.get $1 + local.get $2 i32.gt_s if global.get $~lib/memory/__stack_pointer @@ -14248,1200 +15365,1266 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $5 i32.const 0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $7 i32.store - local.get $1 + local.get $2 local.get $7 i32.load offset=12 i32.ge_u if - i32.const 1248 - i32.const 1728 - i32.const 114 + i32.const 1248 + i32.const 1728 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $2 + local.get $7 + i32.load offset=4 + i32.add + i32.load8_u + local.set $5 + 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 + local.get $2 + call $~lib/array/Array#__get + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $5 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 31 + 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 $6 + i32.const 20 + i32.sub + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $5 + local.get $5 + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $6 + i32.const 20 + i32.sub + local.tee $5 + local.get $5 + call $"~lib/map/Map#set" + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|2 + end + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + 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 $3 + i32.store offset=4 + local.get $3 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|3 + local.get $0 + i32.const 50 + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + 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 $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 i32.const 42 + i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $7 - i32.store - local.get $7 - i32.load offset=4 local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $6 - local.get $5 - 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 $1 local.get $0 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer local.get $1 - call $~lib/array/Array#__get - local.set $5 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + 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|3 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + 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 $3 + local.get $1 i32.store offset=4 - local.get $3 - local.get $6 - call $~lib/map/Map#has - i32.eqz + local.get $1 + local.get $0 + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 - i32.const 31 + i32.const 50 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - local.get $5 - i32.const 20 - i32.sub - call $~lib/map/Map#has + local.get $1 + local.get $0 + local.get $0 + i32.const 10 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" i32.eqz if i32.const 0 i32.const 1568 - i32.const 32 + i32.const 52 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 - local.get $2 - local.get $6 - local.get $6 - call $~lib/map/Map#set + local.get $1 + local.get $0 + call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 - local.get $5 - i32.const 20 - i32.sub - local.tee $5 - local.get $5 - call $~lib/map/Map#set local.get $1 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 54 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|2 + local.set $0 + br $for-loop|4 end end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 - local.get $2 - call $~lib/map/Map#get:size - i32.const 100 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 50 i32.ne if i32.const 0 i32.const 1568 - i32.const 36 + i32.const 56 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 - call $~lib/map/Map#get:size - i32.const 100 - i32.ne + local.get $1 + call $"~lib/map/Map#clear" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" if i32.const 0 i32.const 1568 - i32.const 37 + i32.const 60 i32.const 3 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"std/map/testNumeric" + (local $0 i32) + (local $1 i32) + (local $2 i64) + (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 24 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + 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 1896 + 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 24 + i32.const 24 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + i32.store + local.get $1 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 64 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 4 + 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 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 i32.const 0 - local.set $0 - loop $for-loop|3 - local.get $0 - i32.const 50 - i32.lt_u + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store + loop $for-loop|0 + local.get $2 + i64.const 100 + i64.lt_u if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#has - i32.eqz + local.get $1 + local.get $2 + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 - i32.const 41 + i32.const 6 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#get - local.get $0 - i32.const 20 + local.get $1 + local.get $2 + local.get $2 + i32.wrap_i64 + i32.const 10 i32.add - i32.ne + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#has" + i32.eqz if i32.const 0 i32.const 1568 - i32.const 42 + i32.const 8 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#delete - global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#has + local.get $1 + local.get $2 + call $"~lib/map/Map#get" + local.get $2 + i32.wrap_i64 + i32.const 10 + i32.add + i32.ne if i32.const 0 i32.const 1568 - i32.const 44 + i32.const 9 i32.const 5 call $~lib/builtins/abort unreachable end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|3 + 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 $3 + local.get $1 i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size - i32.const 50 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 100 i32.ne if i32.const 0 i32.const 1568 - i32.const 46 + i32.const 11 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 0 - local.set $0 - loop $for-loop|4 - local.get $0 - i32.const 50 - i32.lt_u + i64.const 0 + local.set $2 + loop $for-loop|1 + local.get $2 + i64.const 100 + i64.lt_u if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#has + local.get $1 + local.get $2 + call $"~lib/map/Map#has" + i32.eqz if i32.const 0 i32.const 1568 - i32.const 50 + i32.const 15 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - local.get $0 - local.get $0 + local.get $1 + local.get $2 + call $"~lib/map/Map#get" + local.get $2 + i32.wrap_i64 i32.const 10 i32.add - call $~lib/map/Map#set - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#has - i32.eqz + i32.ne if i32.const 0 i32.const 1568 - i32.const 52 + i32.const 16 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#delete + local.get $1 + local.get $2 + local.get $2 + i32.wrap_i64 + i32.const 20 + i32.add + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/map/Map#has + local.get $1 + local.get $2 + call $"~lib/map/Map#has" + i32.eqz if i32.const 0 i32.const 1568 - i32.const 54 + i32.const 18 i32.const 5 call $~lib/builtins/abort unreachable end - local.get $0 - i32.const 1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#get" + local.get $2 + i32.wrap_i64 + i32.const 20 i32.add - local.set $0 - br $for-loop|4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 19 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 1 + i64.add + local.set $2 + br $for-loop|1 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size - i32.const 50 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 100 i32.ne if i32.const 0 i32.const 1568 - i32.const 56 + i32.const 21 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $3 - call $~lib/map/Map#clear global.get $~lib/memory/__stack_pointer - local.get $3 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + 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 offset=8 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=16 + local.set $7 + global.get $~lib/memory/__stack_pointer + 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 1896 + 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 25 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $8 i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size + local.get $8 + i32.const 0 + i32.store + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + i32.store offset=12 + local.get $7 + i32.const 134217727 + i32.gt_u if - i32.const 0 - i32.const 1568 + i32.const 1456 + i32.const 1728 + i32.const 70 i32.const 60 - i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/map/Map#find (param $0 i32) (param $1 i64) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store - local.get $0 - i32.load - local.set $4 - local.get $3 - local.get $0 - i32.store - local.get $4 - local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - loop $while-continue|0 - local.get $0 - if - local.get $0 - i32.load offset=12 - local.tee $2 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $1 - local.get $0 - i64.load - i64.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $~lib/map/Map#has (param $0 i32) (param $1 i64) (result 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 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $0 - local.get $1 - 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 $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - call $~lib/map/Map#find - i32.const 0 - i32.ne - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i64) - (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 - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 + i32.const 8 + local.get $7 + local.get $7 + i32.const 8 + i32.le_u + select + i32.const 3 + i32.shl + local.tee $9 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i64.const 0 - i64.store offset=8 - local.get $2 - local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $5 - i32.const 4 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $8 - local.get $0 - i32.load offset=16 - i32.const 4 - i32.shl - i32.add - local.set $4 - local.get $3 - local.set $2 - loop $while-continue|0 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $8 + local.get $4 + i32.store + local.get $8 local.get $4 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer local.get $8 - i32.ne - if - local.get $8 - i32.load offset=12 - i32.const 1 - i32.and - i32.eqz + i32.store offset=4 + local.get $8 + local.get $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $9 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + 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 $8 + i32.store offset=4 + loop $for-loop|00 + local.get $3 + local.get $7 + i32.lt_s if - local.get $2 - local.get $8 - i64.load - local.tee $6 - i64.store - local.get $2 - local.get $8 - i32.load offset=8 - i32.store offset=8 - local.get $2 - local.get $7 - local.get $1 - local.get $6 - 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 $6 - 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 $9 - i32.const 15 - i32.shr_u - local.get $9 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $9 - i32.const 13 - i32.shr_u - local.get $9 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $9 - i32.const 16 - i32.shr_u - local.get $9 - i32.xor - i32.and - i32.const 2 + local.get $3 + i32.const 4 i32.shl i32.add - local.tee $9 - i32.load - i32.store offset=12 - local.get $9 - local.get $2 - i32.store - local.get $2 - i32.const 16 - i32.add - local.set $2 - end - local.get $8 - i32.const 16 - i32.add - local.set $8 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store offset=8 - local.get $2 - local.get $7 - i32.store offset=12 - local.get $0 - local.get $7 - i32.store - local.get $0 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $3 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/map/Map#set (param $0 i32) (param $1 i64) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 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 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - i32.const 0 - i32.store offset=8 - local.get $3 - local.get $0 - i32.store - local.get $0 - local.get $1 - 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 $4 - call $~lib/map/Map#find - local.tee $3 - if - local.get $3 - local.get $2 - i32.store offset=8 - else + local.tee $4 + i32.load offset=12 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + local.get $4 + i64.load + 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.tee $3 - local.get $0 + local.get $8 i32.store + local.get $8 local.get $0 - i32.load offset=16 + 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=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $"~lib/map/Map#values" + local.tee $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + 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 1896 + 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 24 + i32.const 26 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor local.set $5 - local.get $3 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 i32.store + local.get $4 local.get $5 - local.get $0 - i32.load offset=12 - i32.eq - if - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + i32.const 96 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + call $"~lib/map/Map#constructor" + local.tee $5 + i32.store offset=20 + i32.const 0 + local.set $3 + loop $for-loop|2 + global.get $~lib/memory/__stack_pointer + local.get $8 i32.store offset=4 - local.get $0 - i32.load offset=20 - local.set $5 + local.get $8 + call $~lib/array/Array#get:length local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $5 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - local.get $3 - local.get $0 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $8 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + 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 $8 + i32.store + local.get $3 + local.get $8 + i32.load offset=12 + i32.ge_u + if + i32.const 1248 + i32.const 1728 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 i32.load offset=4 - else + local.get $3 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $2 + 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 - i32.load offset=4 - i32.const 1 - i32.shl + local.get $3 + call $~lib/array/Array#__get + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 31 + 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 $6 + i32.const 20 + i32.sub + i64.extend_i32_s + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $2 + local.get $2 + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $6 + i32.const 20 + i32.sub + local.tee $6 + local.get $6 + call $"~lib/map/Map#set" + local.get $3 i32.const 1 - i32.or + i32.add + local.set $3 + br $for-loop|2 end - call $~lib/map/Map#rehash end global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $0 - i32.store - local.get $5 - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store offset=8 - local.get $5 - local.get $0 - i32.store - local.get $5 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $6 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 - local.get $6 - i32.const 4 - i32.shl - i32.add - local.tee $3 - local.get $1 - i64.store - local.get $3 - local.get $2 - i32.store offset=8 - local.get $5 - local.get $0 - i32.store + local.get $4 + i32.store offset=4 + local.get $4 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + 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 $5 - local.get $0 i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 local.get $5 - local.get $0 - i32.store - local.get $0 - i32.load + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 local.set $2 - local.get $5 - local.get $0 - i32.store - local.get $3 - local.get $2 - local.get $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=12 - local.get $0 - local.get $3 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/map/Map#get (param $0 i32) (param $1 i64) (result 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 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $0 - local.get $1 - 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 $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - call $~lib/map/Map#find - local.tee $0 - i32.eqz - if - i32.const 1616 - i32.const 1680 - i32.const 105 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/array/Array#__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 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if + loop $for-loop|3 + local.get $2 + 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 $2 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + 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 $2 + call $"~lib/map/Map#get" + local.get $2 + i32.wrap_i64 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 42 + 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 $2 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 1 + i64.add + local.set $2 + br $for-loop|3 + end + end + global.get $~lib/memory/__stack_pointer local.get $1 - i32.const 0 - i32.lt_s + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne if - i32.const 1248 - i32.const 1728 - i32.const 130 - i32.const 22 + i32.const 0 + i32.const 1568 + i32.const 46 + i32.const 3 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.tee $3 - 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 - local.get $3 - 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 1896 - i32.lt_s - if - 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.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/map/Map#values (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 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store - local.get $4 - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - local.set $3 - local.get $4 - local.get $0 - i32.store - local.get $4 - local.get $0 - i32.load offset=16 - local.tee $4 - call $~lib/array/Array#constructor - local.tee $5 - i32.store offset=4 - loop $for-loop|0 - local.get $2 - local.get $4 - i32.lt_s - if - local.get $3 + i64.const 0 + local.set $2 + loop $for-loop|4 local.get $2 - i32.const 4 - i32.shl - i32.add - local.tee $0 - i32.load offset=12 - i32.const 1 - i32.and - i32.eqz + i64.const 50 + i64.lt_u if global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 local.get $1 - local.get $0 - i32.load offset=8 - call $~lib/array/Array#__set + i32.store offset=4 local.get $1 - i32.const 1 + local.get $2 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 50 + 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 $2 + local.get $2 + i32.wrap_i64 + i32.const 10 i32.add - local.set $1 + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + 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 $2 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 54 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 1 + i64.add + local.set $2 + br $for-loop|4 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 $5 - i32.store - local.get $5 - 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 $5 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 56 + 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/map/Map#clear" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + if + i32.const 0 + i32.const 1568 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/map/Map#set (param $0 i32) (param $1 i64) (param $2 i64) + (func $"std/map/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) - (local $9 i64) - (local $10 i32) - (local $11 i32) - (local $12 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 @@ -15450,18 +16633,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 i32.const 0 - i32.store offset=8 + i32.const 24 + memory.fill global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store - local.get $3 - i32.const 4 + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -15469,700 +16646,460 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 + 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 24 + i32.const 18 + call $~lib/rt/itcms/__new + local.tee $1 i32.store - local.get $3 - local.get $0 - i32.store - local.get $0 - i32.load - local.set $4 - local.get $3 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 i32.store - local.get $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 $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer 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 - local.get $3 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - local.get $3 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - local.get $3 - i32.const 16 - i32.shr_u - i32.xor - local.tee $8 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 - block $__inlined_func$~lib/map/Map#find$1403 - loop $while-continue|0 - local.get $3 - if - local.get $3 - i32.load offset=16 - local.tee $4 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $1 - local.get $3 - i64.load - i64.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/map/Map#find$1403 - end - local.get $4 - i32.const -2 - i32.and - local.set $3 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $3 - end - local.get $3 - if - local.get $3 - local.get $2 - i64.store offset=8 - else - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - local.set $4 - local.get $3 - local.get $0 - i32.store - local.get $4 - local.get $0 - i32.load offset=12 - i32.eq - if - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - local.set $4 - local.get $3 - local.get $0 - i32.store offset=4 - local.get $4 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - 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 - i32.const 1 - i32.or - end - 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 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - i64.const 0 - i64.store offset=8 - local.get $3 - local.get $5 - i32.const 1 - i32.add - local.tee $3 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $10 - i32.store + i32.store offset=4 + local.get $1 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 4 + 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 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 100 + i32.lt_u + if global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $7 - i32.const 24 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 + local.get $1 local.get $0 - i32.load offset=8 - local.set $11 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 6 + 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 $0 - i32.store offset=8 - local.get $11 local.get $0 - i32.load offset=16 - i32.const 24 - i32.mul + i32.const 10 i32.add - local.set $6 - local.get $4 - local.set $3 - loop $while-continue|00 - local.get $6 - local.get $11 - i32.ne - if - local.get $11 - i32.load offset=16 - i32.const 1 - i32.and - i32.eqz - if - local.get $3 - local.get $11 - i64.load - local.tee $9 - i64.store - local.get $3 - local.get $11 - i64.load offset=8 - i64.store offset=8 - local.get $3 - local.get $10 - local.get $5 - local.get $9 - 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 $9 - 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 $12 - local.get $12 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $12 - local.get $12 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $12 - local.get $12 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $12 - i32.load - i32.store offset=16 - local.get $12 - local.get $3 - i32.store - local.get $3 - i32.const 24 - i32.add - local.set $3 - end - local.get $11 - i32.const 24 - i32.add - local.set $11 - br $while-continue|00 - end + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.store offset=8 - local.get $3 - local.get $10 - i32.store offset=12 + call $"~lib/map/Map#get" local.get $0 - local.get $10 - i32.store + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $0 - local.get $10 - call $~lib/rt/itcms/__link + 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/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 11 + 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 $0 - i32.store offset=8 - local.get $0 - local.get $5 + local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer + local.get $1 local.get $0 - i32.store offset=8 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 15 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - local.get $4 - i32.store offset=8 + call $"~lib/map/Map#get" local.get $0 - local.get $4 - call $~lib/rt/itcms/__link + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 16 + 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 $0 - i32.store offset=8 local.get $0 - local.get $7 - i32.store offset=12 + i32.const 20 + i32.add + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.store offset=8 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 18 + 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 $0 - i32.store offset=12 + call $"~lib/map/Map#get" local.get $0 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 19 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer + local.set $0 + br $for-loop|1 end - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.load offset=8 - local.tee $4 - i32.store offset=8 - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $5 - i32.const 1 - i32.add - i32.store offset=16 - local.get $4 - local.get $5 - i32.const 24 - i32.mul - i32.add - local.tee $4 - local.get $1 - i64.store - local.get $4 - local.get $2 - i64.store offset=8 - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - local.get $3 - local.get $0 - i32.store - local.get $0 - i32.load - local.set $5 - local.get $3 - local.get $0 - i32.store - local.get $4 - local.get $5 - local.get $8 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=16 - local.get $0 - local.get $4 - i32.store end global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/map/Map#delete (param $0 i32) (param $1 i64) - (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 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - local.get $0 - i32.store - local.get $0 - local.get $1 - 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 - call $~lib/map/Map#find - local.tee $2 - i32.eqz - if + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.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 + 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 - return - end - local.get $2 - local.get $2 - i32.load offset=12 - i32.const 1 - i32.or - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 - local.get $2 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $3 - local.get $2 - local.get $0 - i32.store - local.get $3 - i32.const 1 - i32.add - i32.const 4 - local.get $0 - i32.load offset=20 - local.tee $4 - local.get $4 - i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) - local.get $2 - local.get $0 + global.get $~lib/memory/__stack_pointer + i32.const 1896 + 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 $0 - i32.load offset=20 - local.set $4 - local.get $2 - local.get $0 + local.get $1 + i32.load offset=8 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $4 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s + local.get $1 + i32.load offset=16 + local.set $6 + global.get $~lib/memory/__stack_pointer + 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 1896 i32.lt_s - else + 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 19 + 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 - end - if + i32.store + local.get $7 + i32.const 0 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $0 + 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 1456 + i32.const 1728 + i32.const 70 + 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 $0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $8 + 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 $8 + i32.store offset=12 + local.get $7 + local.get $8 i32.store + local.get $7 + local.get $8 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 local.get $0 - local.get $3 - call $~lib/map/Map#rehash - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/map/Map#clear (param $0 i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - local.get $0 - i32.store - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - i32.const 64 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 4 - 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 - local.get $0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/map/testNumeric - (local $0 i32) - (local $1 i64) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 + 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 $3 + local.get $6 + i32.lt_s + if + local.get $5 + local.get $3 + i32.const 12 + i32.mul + i32.add + local.tee $8 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $0 + local.get $8 + i32.load + 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 $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $"~lib/map/Map#values" + local.tee $0 + i32.store offset=12 global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.const 24 - memory.fill - local.get $3 i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -16171,15 +17108,14 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 24 - i32.const 21 + i32.const 20 call $~lib/rt/itcms/__new local.tee $4 i32.store @@ -16207,7 +17143,7 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 - i32.const 64 + i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor local.set $5 global.get $~lib/memory/__stack_pointer @@ -16241,398 +17177,382 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $4 - i32.store - loop $for-loop|0 - local.get $1 - i64.const 100 - i64.lt_s + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + call $"~lib/map/Map#constructor" + local.tee $3 + i32.store offset=20 + loop $for-loop|2 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/array/Array#get:length + local.get $2 + i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 + 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 1896 + 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 $2 + local.get $7 + i32.load offset=12 + i32.ge_u + if + i32.const 1248 + i32.const 1728 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $5 + 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 + local.get $2 + call $~lib/array/Array#__get + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#has + local.get $5 + call $"~lib/map/Map#has" + i32.eqz if i32.const 0 i32.const 1568 - i32.const 6 + i32.const 31 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 local.get $1 + i32.store offset=4 local.get $1 - i32.wrap_i64 - i32.const 10 - i32.add - call $~lib/map/Map#set + local.get $6 + i32.const 20 + i32.sub + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 + local.get $5 + local.get $5 + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $6 + i32.const 20 + i32.sub + local.tee $5 + local.get $5 + call $"~lib/map/Map#set" + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|2 + end + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + 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 $3 + i32.store offset=4 + local.get $3 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|3 + local.get $0 + i32.const 50 + i32.lt_u + if + global.get $~lib/memory/__stack_pointer local.get $1 - call $~lib/map/Map#has + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" i32.eqz if i32.const 0 i32.const 1568 - i32.const 8 + i32.const 41 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#get + i32.store offset=4 local.get $1 - i32.wrap_i64 - i32.const 10 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 20 i32.add i32.ne if i32.const 0 i32.const 1568 - i32.const 9 + i32.const 42 i32.const 5 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer local.get $1 - i64.const 1 - i64.add - local.set $1 - br $for-loop|0 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + 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|3 end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 - call $~lib/map/Map#get:size - i32.const 100 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 50 i32.ne if i32.const 0 i32.const 1568 - i32.const 11 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i64.const 0 - local.set $1 - loop $for-loop|1 - local.get $1 - i64.const 100 - i64.lt_s + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + 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 $4 + local.get $1 i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#has - i32.eqz + local.get $0 + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 - i32.const 15 + i32.const 50 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#get + i32.store offset=4 local.get $1 - i32.wrap_i64 + local.get $0 + local.get $0 i32.const 10 i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 local.get $1 - local.get $1 - i32.wrap_i64 - i32.const 20 - i32.add - call $~lib/map/Map#set - global.get $~lib/memory/__stack_pointer - local.get $4 i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#has + local.get $0 + call $"~lib/map/Map#has" i32.eqz if i32.const 0 i32.const 1568 - i32.const 18 + i32.const 52 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#get + local.get $0 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer local.get $1 - i32.wrap_i64 - i32.const 20 - i32.add - i32.ne + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 - i32.const 19 + i32.const 54 i32.const 5 call $~lib/builtins/abort unreachable end - local.get $1 - i64.const 1 - i64.add - local.set $1 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/map/Map#get:size - i32.const 100 - i32.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.tee $5 - local.get $4 - i32.store offset=4 - local.get $5 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - local.get $4 - i32.store - local.get $4 - i32.load offset=8 - local.set $6 - local.get $3 - local.get $4 - i32.store - local.get $4 - i32.load offset=16 - local.set $7 - local.get $3 - 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 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - i64.const 0 - i64.store offset=8 - local.get $3 - i32.const 16 - i32.const 22 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.store - local.get $8 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.store offset=12 - local.get $7 - i32.const 134217727 - i32.gt_u - if - i32.const 1456 - i32.const 1728 - i32.const 70 - 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 3 - i32.shl - local.tee $9 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $8 - local.get $3 - i32.store - local.get $8 - local.get $3 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - local.get $9 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - 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 $8 - i32.store offset=4 - loop $for-loop|00 - local.get $2 - local.get $7 - i32.lt_s - if - local.get $6 - local.get $2 - i32.const 4 - i32.shl - i32.add - local.tee $3 - i32.load offset=12 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - local.get $0 - local.get $3 - i64.load - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - end - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 - br $for-loop|00 + local.set $0 + br $for-loop|4 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 + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 56 + 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/map/Map#clear" global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + if + i32.const 0 + i32.const 1568 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 - local.get $8 - i32.store offset=8 + return + end + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"std/map/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 24 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 + i32.const 1896 + i32.lt_s + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.get $4 - call $~lib/map/Map#values - local.tee $0 - i32.store offset=12 + i32.const 0 + i32.const 24 + memory.fill global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -16642,20 +17562,19 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 24 - i32.const 23 + i32.const 15 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor @@ -16663,1704 +17582,872 @@ global.get $~lib/memory/__stack_pointer local.get $5 i32.store offset=8 - local.get $3 + local.get $1 local.get $5 i32.store - local.get $3 + local.get $1 local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 i32.const 3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - i32.const 96 + i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store offset=8 - local.get $3 + local.get $1 local.get $5 i32.store offset=8 - local.get $3 + local.get $1 local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 i32.const 4 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $3 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - call $~lib/map/Map#constructor - local.tee $5 - i32.store offset=20 - i32.const 0 - local.set $2 - loop $for-loop|2 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $~lib/array/Array#get:length - local.get $2 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $8 - 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 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $6 - i32.const 0 - i32.store - local.get $6 - local.get $8 - i32.store - local.get $2 - local.get $8 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1728 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $6 - local.get $8 - i32.store - local.get $8 - i32.load offset=4 - local.get $2 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $1 - local.get $6 - 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 - local.get $2 - call $~lib/array/Array#__get - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $1 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $6 - i32.const 20 - i32.sub - i64.extend_i32_s - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 32 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $1 - local.get $1 - call $~lib/map/Map#set - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $6 - i32.const 20 - i32.sub - local.tee $6 - local.get $6 - call $~lib/map/Map#set - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|2 - end - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store offset=4 - local.get $5 - call $~lib/map/Map#get:size - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i64.const 0 - local.set $1 - loop $for-loop|3 - local.get $1 - i64.const 50 - i64.lt_s + local.get $1 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 100 + i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#has - i32.eqz + local.get $0 + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 - i32.const 41 + i32.const 6 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#get + i32.store offset=4 local.get $1 - i32.wrap_i64 - i32.const 20 + local.get $0 + local.get $0 + i32.const 10 i32.add - i32.ne + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz if i32.const 0 i32.const 1568 - i32.const 42 + i32.const 8 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#delete - global.get $~lib/memory/__stack_pointer - local.get $4 i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#has + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 10 + i32.add + i32.ne if i32.const 0 i32.const 1568 - i32.const 44 + i32.const 9 i32.const 5 call $~lib/builtins/abort unreachable end - local.get $1 - i64.const 1 - i64.add - local.set $1 - br $for-loop|3 + 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 $4 + local.get $1 i32.store offset=4 - local.get $4 - call $~lib/map/Map#get:size - i32.const 50 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 100 i32.ne if i32.const 0 i32.const 1568 - i32.const 46 + i32.const 11 i32.const 3 call $~lib/builtins/abort unreachable end - i64.const 0 - local.set $1 - loop $for-loop|4 - local.get $1 - i64.const 50 - i64.lt_s + 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 $4 + local.get $1 i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#has + local.get $0 + call $"~lib/map/Map#has" + i32.eqz if i32.const 0 i32.const 1568 - i32.const 50 + i32.const 15 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 local.get $1 + i32.store offset=4 local.get $1 - i32.wrap_i64 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 i32.const 10 i32.add - call $~lib/map/Map#set - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $1 - call $~lib/map/Map#has - i32.eqz + i32.ne if i32.const 0 i32.const 1568 - i32.const 52 + i32.const 16 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#delete + local.get $0 + local.get $0 + i32.const 20 + i32.add + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#has + local.get $0 + call $"~lib/map/Map#has" + i32.eqz if i32.const 0 i32.const 1568 - i32.const 54 + i32.const 18 i32.const 5 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer local.get $1 - i64.const 1 - i64.add - local.set $1 - br $for-loop|4 - end - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/map/Map#get:size - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/map/Map#clear - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/map/Map#get:size - if - i32.const 0 - i32.const 1568 - i32.const 60 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/map/Map#find (param $0 i32) (param $1 i64) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store - local.get $0 - i32.load - local.set $4 - local.get $3 - local.get $0 - i32.store - local.get $4 - local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - loop $while-continue|0 - local.get $0 - if - local.get $0 - i32.load offset=12 - local.tee $2 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else + i32.store offset=4 local.get $1 local.get $0 - i64.load - i64.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 + call $"~lib/map/Map#get" + local.get $0 + i32.const 20 i32.add - global.set $~lib/memory/__stack_pointer + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 19 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $0 - return + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 end - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $~lib/map/Map#has (param $0 i32) (param $1 i64) (result 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 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $0 - local.get $1 - 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 $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - call $~lib/map/Map#find - i32.const 0 - i32.ne - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i64) - (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 - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i64.const 0 - i64.store offset=8 - local.get $2 - local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $5 - i32.const 4 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $8 - local.get $0 - i32.load offset=16 - i32.const 4 - i32.shl - i32.add - local.set $4 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $4 - local.get $8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 100 i32.ne if - local.get $8 - i32.load offset=12 - i32.const 1 - i32.and - i32.eqz - if - local.get $2 - local.get $8 - i64.load - local.tee $6 - i64.store - local.get $2 - local.get $8 - i32.load offset=8 - i32.store offset=8 - local.get $2 - local.get $7 - local.get $1 - local.get $6 - 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 $6 - 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 $9 - i32.const 15 - i32.shr_u - local.get $9 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $9 - i32.const 13 - i32.shr_u - local.get $9 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $9 - i32.const 16 - i32.shr_u - local.get $9 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $9 - i32.load - i32.store offset=12 - local.get $9 - local.get $2 - i32.store - local.get $2 - i32.const 16 - i32.add - local.set $2 - end - local.get $8 - i32.const 16 - i32.add - local.set $8 - br $while-continue|0 + i32.const 0 + i32.const 1568 + 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 $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + 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 offset=8 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=16 + local.set $6 + global.get $~lib/memory/__stack_pointer + 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 1896 + 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 16 + 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 536870910 + i32.gt_u + if + i32.const 1456 + i32.const 1728 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable end - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store offset=8 - local.get $2 - local.get $7 - i32.store offset=12 - local.get $0 - local.get $7 - i32.store - local.get $0 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $3 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/map/Map#set (param $0 i32) (param $1 i64) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 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 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $6 + local.get $6 + i32.const 8 + i32.le_u + select i32.const 1 + i32.shl + local.tee $0 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - i32.const 0 - i32.store offset=8 - local.get $3 - local.get $0 - i32.store - local.get $0 - local.get $1 - 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 $4 - call $~lib/map/Map#find - local.tee $3 - if - local.get $3 - local.get $2 + call $~lib/rt/itcms/__new + local.tee $8 i32.store offset=8 - else global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - local.set $5 - local.get $3 - local.get $0 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=12 + local.get $7 + local.get $8 i32.store - local.get $5 + local.get $7 + local.get $8 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 local.get $0 - i32.load offset=12 - i32.eq - if - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - local.set $5 + 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 $3 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $5 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s + local.get $6 i32.lt_s - if (result i32) + if + local.get $5 local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 + i32.const 12 + i32.mul + i32.add + local.tee $8 + i32.load offset=8 i32.const 1 - i32.shl + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $0 + local.get $8 + i32.load16_u + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $3 i32.const 1 - i32.or + i32.add + local.set $3 + br $for-loop|00 end - call $~lib/map/Map#rehash end global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $0 - i32.store - local.get $5 - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store offset=8 - local.get $5 - local.get $0 + local.get $7 i32.store - local.get $5 - local.get $0 - i32.store offset=4 - local.get $0 + local.get $7 local.get $0 - i32.load offset=16 - local.tee $6 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 - local.get $6 - i32.const 4 - i32.shl + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.tee $3 - local.get $1 - i64.store - local.get $3 - local.get $2 + global.set $~lib/memory/__stack_pointer + local.get $7 i32.store offset=8 - local.get $5 - local.get $0 - i32.store - local.get $5 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - local.get $5 - local.get $0 - i32.store - local.get $0 - i32.load - local.set $2 - local.get $5 - local.get $0 - i32.store - local.get $3 - local.get $2 - local.get $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=12 - local.get $0 - local.get $3 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/map/Map#get (param $0 i32) (param $1 i64) (result 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 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $0 - local.get $1 - 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 $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - call $~lib/map/Map#find - local.tee $0 - i32.eqz - if - i32.const 1616 - i32.const 1680 - i32.const 105 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/map/Map#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 i64) - (local $10 i32) - (local $11 i32) - (local $12 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 + local.get $1 + call $"~lib/map/Map#values" + local.tee $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + 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 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 + i32.const 24 + i32.const 17 + call $~lib/rt/itcms/__new + local.tee $4 i32.store - local.get $3 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 + local.get $4 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store - local.get $0 - i32.load - local.set $4 - local.get $3 - local.get $0 + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 i32.store local.get $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 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + i32.const 32 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - local.get $3 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - local.get $3 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul + global.set $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + call $"~lib/map/Map#constructor" local.tee $3 - local.get $3 - i32.const 16 - i32.shr_u - i32.xor - local.tee $8 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 - block $__inlined_func$~lib/map/Map#find$1408 - loop $while-continue|0 - local.get $3 - if - local.get $3 - i32.load offset=16 - local.tee $4 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $1 - local.get $3 - i64.load - i64.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/map/Map#find$1408 - end - local.get $4 - i32.const -2 - i32.and - local.set $3 - br $while-continue|0 - end - end + i32.store offset=20 + loop $for-loop|2 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $3 - end - local.get $3 - if - local.get $3 + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/array/Array#get:length local.get $2 - i64.store offset=8 - else - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - local.set $4 - local.get $3 - local.get $0 - i32.store - local.get $4 - local.get $0 - i32.load offset=12 - i32.eq + i32.gt_s if - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - local.set $4 - local.get $3 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $7 i32.store offset=4 - local.get $4 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.div_s + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 i32.lt_s - if (result i32) - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - 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 - i32.const 1 - i32.or + 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 $2 + local.get $7 + i32.load offset=12 + i32.ge_u + if + i32.const 1248 + i32.const 1728 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + i32.load offset=4 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.load16_u local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub + i32.const 4 + i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $2 + call $~lib/array/Array#__get + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $5 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 31 + 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 $6 + i32.const 20 + i32.sub + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $5 + local.get $5 + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store local.get $3 - i64.const 0 - i64.store offset=8 + i32.store offset=4 local.get $3 + local.get $6 + i32.const 20 + i32.sub + local.tee $5 local.get $5 + call $"~lib/map/Map#set" + local.get $2 i32.const 1 i32.add - local.tee $3 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $10 - i32.store + local.set $2 + br $for-loop|2 + end + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + 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 $3 + i32.store offset=4 + local.get $3 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|3 + local.get $0 + i32.const 50 + i32.lt_u + if global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $7 - i32.const 24 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $11 + local.get $1 local.get $0 - i32.load offset=16 - i32.const 24 - i32.mul - i32.add - local.set $6 - local.get $4 - local.set $3 - loop $while-continue|00 - local.get $6 - local.get $11 - i32.ne - if - local.get $11 - i32.load offset=16 - i32.const 1 - i32.and - i32.eqz - if - local.get $3 - local.get $11 - i64.load - local.tee $9 - i64.store - local.get $3 - local.get $11 - i64.load offset=8 - i64.store offset=8 - local.get $3 - local.get $10 - local.get $5 - local.get $9 - 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 $9 - 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 $12 - local.get $12 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $12 - local.get $12 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $12 - local.get $12 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $12 - i32.load - i32.store offset=16 - local.get $12 - local.get $3 - i32.store - local.get $3 - i32.const 24 - i32.add - local.set $3 - end - local.get $11 - i32.const 24 - i32.add - local.set $11 - br $while-continue|00 - end + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store offset=8 - local.get $3 - local.get $10 - i32.store offset=12 + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - local.get $10 - i32.store + call $"~lib/map/Map#get" local.get $0 - local.get $10 - call $~lib/rt/itcms/__link + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $5 + local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer + local.get $1 local.get $0 - i32.store offset=8 + call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - local.get $4 - i32.store offset=8 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $0 - local.get $4 - call $~lib/rt/itcms/__link + i32.const 1 + i32.add + local.set $0 + br $for-loop|3 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + 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 $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.store offset=8 - local.get $0 - local.get $7 - i32.store offset=12 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 50 + 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 $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.const 10 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + 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 $0 - i32.load offset=20 - i32.store offset=16 + call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.load offset=8 - local.tee $4 - i32.store offset=8 - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $5 - i32.const 1 - i32.add - i32.store offset=16 - local.get $4 - local.get $5 - i32.const 24 - i32.mul - i32.add - local.tee $4 - local.get $1 - i64.store - local.get $4 - local.get $2 - i64.store offset=8 - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - local.get $3 - local.get $0 - i32.store - local.get $0 - i32.load - local.set $5 - local.get $3 - local.get $0 - i32.store - local.get $4 - local.get $5 - local.get $8 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=16 - local.get $0 - local.get $4 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/map/Map#delete (param $0 i32) (param $1 i64) - (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 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - local.get $0 - i32.store - local.get $0 - local.get $1 - 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 - call $~lib/map/Map#find - local.tee $2 - i32.eqz - if + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 54 + 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 - i32.const 8 + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 56 + 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/map/Map#clear" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + if + i32.const 0 + i32.const 1568 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer return end - local.get $2 - local.get $2 - i32.load offset=12 - i32.const 1 - i32.or - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 - local.get $2 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 + i32.const 34688 + i32.const 34736 i32.const 1 - i32.shr_u - local.set $3 - local.get $2 - local.get $0 - i32.store - local.get $3 i32.const 1 - i32.add - i32.const 4 - local.get $0 - i32.load offset=20 - local.tee $4 - local.get $4 - i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) - local.get $2 - local.get $0 - i32.store - local.get $0 - i32.load offset=20 - local.set $4 - local.get $2 - local.get $0 - i32.store - local.get $4 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - else - i32.const 0 - end - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $3 - call $~lib/map/Map#rehash - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + call $~lib/builtins/abort + unreachable ) - (func $std/map/testNumeric + (func $"std/map/testNumeric" (local $0 i32) - (local $1 i64) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -18368,7 +18455,6 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub @@ -18379,11 +18465,11 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.const 24 memory.fill - local.get $3 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -18392,20 +18478,19 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $4 - i32.const 24 + global.get $~lib/memory/__stack_pointer i32.const 24 + i32.const 4 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor @@ -18413,69 +18498,68 @@ global.get $~lib/memory/__stack_pointer local.get $5 i32.store offset=8 - local.get $4 + local.get $1 local.get $5 i32.store - local.get $4 + local.get $1 local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 + local.get $1 i32.const 3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - i32.const 64 + i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store offset=8 - local.get $4 + local.get $1 local.get $5 i32.store offset=8 - local.get $4 + local.get $1 local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 + local.get $1 i32.const 4 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 + local.get $1 i32.const 0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 + local.get $1 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $4 + local.get $1 i32.store loop $for-loop|0 - local.get $1 - i64.const 100 - i64.lt_u + local.get $0 + i32.const 100 + i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#has + local.get $0 + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -18485,21 +18569,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 local.get $1 + i32.store offset=4 local.get $1 - i32.wrap_i64 + local.get $0 + local.get $0 i32.const 10 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#has + local.get $0 + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -18510,13 +18593,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#get + i32.store offset=4 local.get $1 - i32.wrap_i64 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 i32.const 10 i32.add i32.ne @@ -18528,18 +18610,18 @@ call $~lib/builtins/abort unreachable end - local.get $1 - i64.const 1 - i64.add - local.set $1 + 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 $4 + local.get $1 i32.store offset=4 - local.get $4 - call $~lib/map/Map#get:size + local.get $1 + call $"~lib/map/Map#get:size" i32.const 100 i32.ne if @@ -18550,19 +18632,19 @@ call $~lib/builtins/abort unreachable end - i64.const 0 - local.set $1 + i32.const 0 + local.set $0 loop $for-loop|1 - local.get $1 - i64.const 100 - i64.lt_u + local.get $0 + i32.const 100 + i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#has + local.get $0 + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -18573,13 +18655,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#get + i32.store offset=4 local.get $1 - i32.wrap_i64 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 i32.const 10 i32.add i32.ne @@ -18592,21 +18673,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 local.get $1 + i32.store offset=4 local.get $1 - i32.wrap_i64 + local.get $0 + local.get $0 i32.const 20 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#has + local.get $0 + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -18617,13 +18697,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#get + i32.store offset=4 local.get $1 - i32.wrap_i64 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 i32.const 20 i32.add i32.ne @@ -18634,19 +18713,19 @@ i32.const 5 call $~lib/builtins/abort unreachable - end - local.get $1 - i64.const 1 - i64.add - local.set $1 + 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 $4 + local.get $1 i32.store offset=4 - local.get $4 - call $~lib/map/Map#get:size + local.get $1 + call $"~lib/map/Map#get:size" i32.const 100 i32.ne if @@ -18658,10 +18737,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $4 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -18670,22 +18749,21 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 - local.get $4 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $4 + local.get $1 i32.load offset=8 - local.set $6 - local.get $3 - local.get $4 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $4 + local.get $1 i32.load offset=16 - local.set $7 - local.get $3 + local.set $6 + global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -18695,47 +18773,46 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 25 + i32.const 5 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $7 i32.store global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=4 - local.get $8 + local.get $7 i32.const 0 i32.store - local.get $8 + local.get $7 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=4 - local.get $8 + local.get $7 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=4 - local.get $8 + local.get $7 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=4 - local.get $8 + local.get $7 i32.const 0 i32.store offset=12 - local.get $7 - i32.const 134217727 + local.get $6 + i32.const 1073741820 i32.gt_u if i32.const 1456 @@ -18747,113 +18824,111 @@ end global.get $~lib/memory/__stack_pointer i32.const 8 - local.get $7 - local.get $7 + local.get $6 + local.get $6 i32.const 8 i32.le_u select - i32.const 3 - i32.shl - local.tee $9 + local.tee $0 i32.const 1 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $8 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $8 i32.store offset=12 + local.get $7 local.get $8 - local.get $3 i32.store + local.get $7 local.get $8 - local.get $3 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=4 + local.get $7 local.get $8 - local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=4 - local.get $8 - local.get $9 + local.get $7 + local.get $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=4 - local.get $8 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 $8 + local.get $7 i32.store offset=4 + i32.const 0 + local.set $0 loop $for-loop|00 - local.get $2 - local.get $7 + local.get $3 + local.get $6 i32.lt_s if - local.get $6 - local.get $2 - i32.const 4 - i32.shl + local.get $5 + local.get $3 + i32.const 12 + i32.mul i32.add - local.tee $3 - i32.load offset=12 + local.tee $8 + i32.load offset=8 i32.const 1 i32.and i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store - local.get $8 + local.get $7 local.get $0 - local.get $3 - i64.load - call $~lib/array/Array#__set + local.get $8 + i32.load8_s + call $~lib/array/Array#__set local.get $0 i32.const 1 i32.add local.set $0 end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|00 end end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store - local.get $8 + local.get $7 local.get $0 - call $~lib/array/Array#set:length + 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 $5 - local.get $8 + local.get $7 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $4 - call $~lib/map/Map#values + local.get $1 + call $"~lib/map/Map#values" local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -18863,20 +18938,19 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 24 - i32.const 26 + i32.const 7 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $4 i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor @@ -18884,75 +18958,72 @@ global.get $~lib/memory/__stack_pointer local.get $5 i32.store offset=8 - local.get $3 + local.get $4 local.get $5 i32.store - local.get $3 + local.get $4 local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 - local.get $3 + local.get $4 i32.const 3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 - i32.const 96 + i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store offset=8 - local.get $3 + local.get $4 local.get $5 i32.store offset=8 - local.get $3 + local.get $4 local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 - local.get $3 + local.get $4 i32.const 4 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 - local.get $3 + local.get $4 i32.const 0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 - local.get $3 + local.get $4 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $3 + local.get $4 i32.store offset=16 global.get $~lib/memory/__stack_pointer - call $~lib/map/Map#constructor - local.tee $5 + call $"~lib/map/Map#constructor" + local.tee $3 i32.store offset=20 - i32.const 0 - local.set $2 loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=4 - local.get $8 + local.get $7 call $~lib/array/Array#get:length local.get $2 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -18963,14 +19034,13 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $6 i32.const 0 i32.store - local.get $6 - local.get $8 + global.get $~lib/memory/__stack_pointer + local.get $7 i32.store local.get $2 - local.get $8 + local.get $7 i32.load offset=12 i32.ge_u if @@ -18982,18 +19052,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 - local.get $8 + local.get $7 i32.store - local.get $8 - i32.load offset=4 local.get $2 - i32.const 3 - i32.shl + local.get $7 + i32.load offset=4 i32.add - i64.load - local.set $1 - local.get $6 + i32.load8_s + local.set $5 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -19005,11 +19072,11 @@ call $~lib/array/Array#__get local.set $6 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#has + local.get $5 + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -19020,14 +19087,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 + local.get $1 local.get $6 i32.const 20 i32.sub - i64.extend_i32_s - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -19038,22 +19104,22 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 - local.get $3 - local.get $1 - local.get $1 - call $~lib/map/Map#set - global.get $~lib/memory/__stack_pointer + local.get $4 local.get $5 - i32.store offset=4 local.get $5 + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 local.get $6 i32.const 20 i32.sub - local.tee $6 - local.get $6 - call $~lib/map/Map#set + local.tee $5 + local.get $5 + call $"~lib/map/Map#set" local.get $2 i32.const 1 i32.add @@ -19062,10 +19128,10 @@ end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size + local.get $4 + call $"~lib/map/Map#get:size" i32.const 100 i32.ne if @@ -19077,10 +19143,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $3 i32.store offset=4 - local.get $5 - call $~lib/map/Map#get:size + local.get $3 + call $"~lib/map/Map#get:size" i32.const 100 i32.ne if @@ -19091,19 +19157,19 @@ call $~lib/builtins/abort unreachable end - i64.const 0 - local.set $1 + i32.const 0 + local.set $0 loop $for-loop|3 - local.get $1 - i64.const 50 - i64.lt_u + local.get $0 + i32.const 50 + i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#has + local.get $0 + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -19114,13 +19180,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#get + i32.store offset=4 local.get $1 - i32.wrap_i64 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 i32.const 20 i32.add i32.ne @@ -19133,17 +19198,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#delete + local.get $0 + call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#has + local.get $0 + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -19152,18 +19217,18 @@ call $~lib/builtins/abort unreachable end - local.get $1 - i64.const 1 - i64.add - local.set $1 + local.get $0 + i32.const 1 + i32.add + local.set $0 br $for-loop|3 end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 - call $~lib/map/Map#get:size + local.get $1 + call $"~lib/map/Map#get:size" i32.const 50 i32.ne if @@ -19174,19 +19239,19 @@ call $~lib/builtins/abort unreachable end - i64.const 0 - local.set $1 + i32.const 0 + local.set $0 loop $for-loop|4 - local.get $1 - i64.const 50 - i64.lt_u + local.get $0 + i32.const 50 + i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#has + local.get $0 + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -19196,21 +19261,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 local.get $1 + i32.store offset=4 local.get $1 - i32.wrap_i64 + local.get $0 + local.get $0 i32.const 10 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#has + local.get $0 + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -19221,17 +19285,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#delete + local.get $0 + call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#has + local.get $0 + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -19240,707 +19304,384 @@ call $~lib/builtins/abort unreachable end - local.get $1 - i64.const 1 - i64.add - local.set $1 + 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 $4 + local.get $1 i32.store offset=4 - local.get $4 - call $~lib/map/Map#get:size + local.get $1 + call $"~lib/map/Map#get:size" i32.const 50 i32.ne if i32.const 0 - i32.const 1568 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/map/Map#clear - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/map/Map#get:size - if - i32.const 0 - i32.const 1568 - i32.const 60 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/map/Map#find (param $0 i32) (param $1 f32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store - local.get $0 - i32.load - local.set $4 - local.get $3 - local.get $0 - i32.store - local.get $4 - local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - loop $while-continue|0 - local.get $0 - if - local.get $0 - i32.load offset=8 - local.tee $2 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $1 - local.get $0 - f32.load - f32.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $~lib/map/Map#has (param $0 i32) (param $1 f32) (result 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 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $0 - local.get $1 - 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 $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor - call $~lib/map/Map#find - i32.const 0 - i32.ne - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 1568 + i32.const 56 + 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/map/Map#clear" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + if + i32.const 0 + i32.const 1568 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) - (local $2 i32) + (func $"std/map/testNumeric" + (local $0 i32) + (local $1 i32) + (local $2 i64) (local $3 i32) - (local $4 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.const 24 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i64.const 0 - i64.store offset=8 - local.get $2 - local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $6 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $8 - local.get $0 - i32.load offset=16 - i32.const 12 - i32.mul - i32.add - local.set $5 - local.get $3 - local.set $2 - loop $while-continue|0 + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + 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 1896 + 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 24 + i32.const 21 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer local.get $5 - local.get $8 - i32.ne - if - local.get $8 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz + i32.store offset=8 + local.get $1 + local.get $5 + i32.store + local.get $1 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 64 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 4 + 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 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store + loop $for-loop|0 + local.get $2 + i64.const 100 + i64.lt_s if - local.get $2 - local.get $8 - f32.load - local.tee $4 - f32.store - local.get $2 - local.get $8 - i32.load offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 + local.get $1 local.get $2 - local.get $7 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $4 - 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 $9 - local.get $9 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $9 - local.get $9 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $9 - local.get $9 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl + i32.store offset=4 + local.get $1 + local.get $2 + local.get $2 + i32.wrap_i64 + i32.const 10 i32.add - local.tee $9 - i32.load - i32.store offset=8 - local.get $9 + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $2 - i32.store + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 8 + 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 $2 - i32.const 12 + call $"~lib/map/Map#get" + local.get $2 + i32.wrap_i64 + i32.const 10 i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 1 + i64.add local.set $2 + br $for-loop|0 end - local.get $8 - i32.const 12 - i32.add - local.set $8 - br $while-continue|0 end - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store offset=8 - local.get $2 - local.get $7 - i32.store offset=12 - local.get $0 - local.get $7 - i32.store - local.get $0 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $3 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/map/Map#set (param $0 i32) (param $1 f32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 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 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - i32.const 0 - i32.store offset=8 - local.get $3 - local.get $0 - i32.store - local.get $0 - local.get $1 - 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 $4 - call $~lib/map/Map#find - local.tee $3 - if - local.get $3 - local.get $2 - i32.store offset=4 - else global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - local.set $5 - local.get $3 - local.get $0 - i32.store - local.get $5 - local.get $0 - i32.load offset=12 - i32.eq + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne if - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - local.set $5 - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $5 - local.get $0 - i32.load offset=12 + i32.const 0 + i32.const 1568 + i32.const 11 i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - local.get $3 - local.get $0 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $2 + loop $for-loop|1 + local.get $2 + 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 $2 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 15 + 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 $2 + call $"~lib/map/Map#get" + local.get $2 + i32.wrap_i64 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 16 + 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 $2 + local.get $2 + i32.wrap_i64 + i32.const 20 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $0 - i32.load offset=4 - else + local.get $1 + local.get $2 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 18 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or + local.get $1 + local.get $2 + call $"~lib/map/Map#get" + local.get $2 + i32.wrap_i64 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 19 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 1 + i64.add + local.set $2 + br $for-loop|1 end - call $~lib/map/Map#rehash end global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $0 - i32.store - local.get $5 - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store offset=8 - local.get $5 - local.get $0 - i32.store - local.get $5 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $6 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 - local.get $6 - i32.const 12 - i32.mul - i32.add - local.tee $3 local.get $1 - f32.store - local.get $3 - local.get $2 i32.store offset=4 - local.get $5 - local.get $0 - i32.store - local.get $5 - local.get $0 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.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 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - local.get $5 - local.get $0 - i32.store - local.get $0 - i32.load - local.set $2 - local.get $5 - local.get $0 - i32.store - local.get $3 - local.get $2 - local.get $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=8 - local.get $0 - local.get $3 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/map/Map#get (param $0 i32) (param $1 f32) (result 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 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $0 - local.get $1 - 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 $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor - call $~lib/map/Map#find - local.tee $0 - i32.eqz - if - i32.const 1616 - i32.const 1680 - i32.const 105 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/map/Map#keys (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 8 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $6 i64.const 0 i64.store - local.get $6 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $0 + local.get $1 i32.load offset=8 - local.set $4 - local.get $6 - local.get $0 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $0 + local.get $1 i32.load offset=16 - local.set $2 + local.set $7 + global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -19950,47 +19691,46 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 28 + i32.const 22 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 0 i32.store - local.get $7 + local.get $8 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 0 i32.store offset=12 - local.get $2 - i32.const 268435455 + local.get $7 + i32.const 134217727 i32.gt_u if i32.const 1456 @@ -20002,548 +19742,535 @@ end global.get $~lib/memory/__stack_pointer i32.const 8 - local.get $2 - local.get $2 + local.get $7 + local.get $7 i32.const 8 i32.le_u select - i32.const 2 + i32.const 3 i32.shl - local.tee $0 + local.tee $9 i32.const 1 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.store offset=12 - local.get $7 local.get $8 + local.get $4 i32.store - local.get $7 local.get $8 + local.get $4 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 local.get $8 + local.get $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 - local.get $0 + local.get $8 + local.get $9 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 + local.get $8 local.get $7 - local.get $2 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 $7 + local.get $8 i32.store offset=4 - loop $for-loop|0 - local.get $2 + loop $for-loop|00 local.get $3 - i32.gt_s + local.get $7 + i32.lt_s if - local.get $4 + local.get $6 local.get $3 - i32.const 12 - i32.mul + i32.const 4 + i32.shl i32.add - local.tee $6 - i32.load offset=8 + local.tee $4 + i32.load offset=12 i32.const 1 i32.and i32.eqz if global.get $~lib/memory/__stack_pointer - local.tee $8 - local.get $7 - i32.store - local.get $1 - local.tee $0 - i32.const 1 - i32.add - local.set $1 - local.get $6 - f32.load - local.set $5 local.get $8 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $6 - i32.const 0 - i32.store - local.get $6 - local.get $7 i32.store + local.get $8 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 1728 - i32.const 130 - 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.tee $6 - local.get $7 - i32.store - local.get $7 - i32.load offset=4 + local.get $4 + i64.load + call $~lib/array/Array#__set local.get $0 - i32.const 2 - i32.shl - i32.add - local.get $5 - f32.store - local.get $6 - i32.const 4 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer + local.set $0 end local.get $3 i32.const 1 i32.add local.set $3 - br $for-loop|0 + br $for-loop|00 end end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 - local.get $1 - call $~lib/array/Array#set:length + 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 $7 - return - end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/map/Map#set (param $0 i32) (param $1 f32) (param $2 f32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 f32) - (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 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 + local.get $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 $1 + call $"~lib/map/Map#values" + local.tee $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + 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 1896 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $3 - local.get $0 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 23 + call $~lib/rt/itcms/__new + local.tee $4 i32.store - local.get $0 - local.get $1 - local.get $1 - i32.reinterpret_f32 - i32.const -1028477379 - i32.mul - i32.const 374761397 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + i32.store + local.get $4 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + i32.const 96 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 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 $9 - call $~lib/map/Map#find - local.tee $3 - if - local.get $3 - local.get $2 - f32.store offset=4 - else + global.set $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + call $"~lib/map/Map#constructor" + local.tee $5 + i32.store offset=20 + i32.const 0 + local.set $3 + loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - local.set $4 + local.get $8 + i32.store offset=4 + local.get $8 + call $~lib/array/Array#get:length local.get $3 - local.get $0 - i32.store - local.get $4 - local.get $0 - i32.load offset=12 - i32.eq + i32.gt_s if - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - local.set $4 - local.get $3 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $8 i32.store offset=4 - local.get $4 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - 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 - i32.const 1 - i32.or - end - local.set $5 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 1896 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - i64.const 0 - i64.store offset=8 - local.get $3 - local.get $5 - i32.const 1 - i32.add - local.tee $3 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $10 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $8 i32.store + local.get $3 + local.get $8 + i32.load offset=12 + i32.ge_u + if + i32.const 1248 + i32.const 1728 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + i32.load offset=4 local.get $3 i32.const 3 i32.shl - i32.const 3 - i32.div_s - local.tee $8 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $11 - local.get $0 - i32.load offset=16 - i32.const 12 - i32.mul i32.add - local.set $7 - local.get $4 - local.set $3 - loop $while-continue|0 - local.get $7 - local.get $11 - i32.ne - if - local.get $11 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $3 - local.get $11 - f32.load - local.tee $6 - f32.store - local.get $3 - local.get $11 - f32.load offset=4 - f32.store offset=4 - local.get $3 - local.get $10 - local.get $5 - local.get $6 - 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 $12 - local.get $12 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $12 - local.get $12 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $12 - local.get $12 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $12 - i32.load - i32.store offset=8 - local.get $12 - local.get $3 - i32.store - local.get $3 - i32.const 12 - i32.add - local.set $3 - end - local.get $11 - i32.const 12 - i32.add - local.set $11 - br $while-continue|0 - end - end + i64.load + local.set $2 global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store offset=8 - local.get $3 - local.get $10 - i32.store offset=12 - local.get $0 - local.get $10 - i32.store - local.get $0 - local.get $10 - call $~lib/rt/itcms/__link + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 - local.get $5 + local.get $3 + call $~lib/array/Array#__get + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 + local.get $1 + i32.store offset=4 + local.get $1 + local.get $6 + i32.const 20 + i32.sub + i64.extend_i32_s + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=12 - local.get $0 - local.get $4 - i32.store offset=8 - local.get $0 + i32.store offset=4 local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $8 - i32.store offset=12 + local.get $2 + local.get $2 + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 + local.get $5 + i32.store offset=4 + local.get $5 + local.get $6 + i32.const 20 + i32.sub + local.tee $6 + local.get $6 + call $"~lib/map/Map#set" + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|2 + end + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + 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 $5 + i32.store offset=4 + local.get $5 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $2 + loop $for-loop|3 + local.get $2 + i64.const 50 + i64.lt_s + if global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 16 + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#get" + local.get $2 + i32.wrap_i64 + i32.const 20 i32.add - global.set $~lib/memory/__stack_pointer + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 42 + 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 $2 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 1 + i64.add + local.set $2 + br $for-loop|3 end - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.load offset=8 - local.tee $4 - i32.store offset=8 - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $5 - i32.const 1 - i32.add - i32.store offset=16 - local.get $4 - local.get $5 - i32.const 12 - i32.mul - i32.add - local.tee $4 - local.get $1 - f32.store - local.get $4 + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $2 + loop $for-loop|4 local.get $2 - f32.store offset=4 - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - local.get $3 - local.get $0 - i32.store - local.get $0 - i32.load - local.set $5 - local.get $3 - local.get $0 - i32.store - local.get $4 - local.get $5 - local.get $9 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=8 - local.get $0 - local.get $4 - i32.store + 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 $2 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 50 + 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 $2 + local.get $2 + i32.wrap_i64 + i32.const 10 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + 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 $2 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 54 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 1 + i64.add + local.set $2 + br $for-loop|4 + end end global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 56 + 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/map/Map#clear" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + if + i32.const 0 + i32.const 1568 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer return @@ -20555,174 +20282,225 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/map/Map#delete (param $0 i32) (param $1 f32) + (func $"std/map/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) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - local.get $0 - i32.store - local.get $0 - local.get $1 - 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 - call $~lib/map/Map#find - local.tee $2 - i32.eqz - if + block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - local.get $2 - local.get $2 - i32.load offset=8 - i32.const 1 - i32.or - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 - local.get $2 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $3 - local.get $2 - local.get $0 - i32.store - local.get $3 - i32.const 1 - i32.add - i32.const 4 - local.get $0 - i32.load offset=20 - local.tee $4 - local.get $4 - i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) - local.get $2 - local.get $0 - i32.store - local.get $0 - i32.load offset=20 - local.set $4 - local.get $2 - local.get $0 - i32.store - local.get $4 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s + i32.const 1896 i32.lt_s - else + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + call $"~lib/map/Map#constructor" + local.tee $1 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 100 + 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/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 6 + 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 $0 + local.get $0 + i32.const 10 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 8 + 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 $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 9 + 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 $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 11 + i32.const 3 + call $~lib/builtins/abort + unreachable + end i32.const 0 - end - if + 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 $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 15 + 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 $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 16 + 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 $0 + local.get $0 + i32.const 20 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 18 + 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 $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 19 + 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 $0 - i32.store - local.get $0 - local.get $3 - call $~lib/map/Map#rehash - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/map/testNumeric - (local $0 i32) - (local $1 f32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.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 - i32.const 1896 - i32.lt_s - br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.const 24 - memory.fill - local.get $2 - i32.const 12 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -20730,290 +20508,425 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 - i32.const 0 - i32.store offset=8 - local.get $3 - i32.const 24 - i32.const 27 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 + local.get $1 + i32.store + local.get $1 + i32.load offset=8 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $3 - local.get $4 + local.get $1 i32.store - local.get $3 - local.get $4 - call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 3 + local.get $1 + i32.load offset=16 + local.tee $6 + call $~lib/array/Array#constructor + local.tee $2 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.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $0 + local.get $7 + i32.load + 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 $3 - i32.store offset=4 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 + local.get $2 + i32.store + local.get $2 + local.get $0 + call $~lib/array/Array#set:length global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $3 - local.get $4 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 i32.store offset=8 - local.get $3 - local.get $4 - call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - i32.const 4 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $"~lib/map/Map#values" + local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 + call $"~lib/map/Map#constructor" + local.tee $4 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 + call $"~lib/map/Map#constructor" + local.tee $5 i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $3 - i32.store - loop $for-loop|0 - local.get $1 - f32.const 100 - f32.lt + i32.const 0 + local.set $3 + loop $for-loop|2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/array/Array#get:length + local.get $3 + i32.gt_s if global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 local.get $3 + call $~lib/array/Array#__get + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=4 + local.get $0 local.get $3 + call $~lib/array/Array#__get + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 local.get $1 - call $~lib/map/Map#has + local.get $6 + call $"~lib/map/Map#has" + i32.eqz if i32.const 0 i32.const 1568 - i32.const 6 + i32.const 31 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 local.get $1 - local.get $1 - i32.trunc_sat_f32_s - i32.const 10 - i32.add - call $~lib/map/Map#set - global.get $~lib/memory/__stack_pointer - local.get $3 i32.store offset=4 - local.get $3 local.get $1 - call $~lib/map/Map#has + local.get $7 + i32.const 20 + i32.sub + call $"~lib/map/Map#has" i32.eqz if i32.const 0 i32.const 1568 - i32.const 8 + i32.const 32 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 + i32.store offset=4 + local.get $4 + local.get $6 + local.get $6 + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $5 i32.store offset=4 + local.get $5 + local.get $7 + i32.const 20 + i32.sub + local.tee $6 + local.get $6 + call $"~lib/map/Map#set" local.get $3 - local.get $1 - call $~lib/map/Map#get - local.get $1 - i32.trunc_sat_f32_s - i32.const 10 + i32.const 1 i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 9 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - f32.const 1 - f32.add - local.set $1 - br $for-loop|0 + local.set $3 + br $for-loop|2 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size + local.get $4 + call $"~lib/map/Map#get:size" i32.const 100 i32.ne if i32.const 0 i32.const 1568 - i32.const 11 + i32.const 36 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 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|3 + local.get $0 + i32.const 50 + i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 local.get $1 - call $~lib/map/Map#has + local.get $0 + call $"~lib/map/Map#has" i32.eqz if i32.const 0 i32.const 1568 - i32.const 15 + i32.const 41 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 local.get $1 - call $~lib/map/Map#get + i32.store offset=4 local.get $1 - i32.trunc_sat_f32_s - i32.const 10 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 20 i32.add i32.ne if i32.const 0 i32.const 1568 - i32.const 16 + i32.const 42 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 local.get $1 + local.get $0 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer local.get $1 - i32.trunc_sat_f32_s - i32.const 20 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 i32.add - call $~lib/map/Map#set + local.set $0 + br $for-loop|3 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + 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 $3 + local.get $1 i32.store offset=4 - local.get $3 local.get $1 - call $~lib/map/Map#has - i32.eqz + local.get $0 + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 - i32.const 18 + i32.const 50 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 local.get $1 - call $~lib/map/Map#get + i32.store offset=4 local.get $1 - i32.trunc_sat_f32_s - i32.const 20 + local.get $0 + local.get $0 + i32.const 10 i32.add - i32.ne + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz if i32.const 0 i32.const 1568 - i32.const 19 + i32.const 52 i32.const 5 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer local.get $1 - f32.const 1 - f32.add - local.set $1 - br $for-loop|1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 54 + 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 $3 + local.get $1 i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size - i32.const 100 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 50 i32.ne if i32.const 0 i32.const 1568 - i32.const 21 + i32.const 56 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $3 + local.get $1 i32.store offset=4 - local.get $2 - local.get $3 - call $~lib/map/Map#keys - local.tee $4 - i32.store offset=8 + local.get $1 + call $"~lib/map/Map#clear" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + if + i32.const 0 + i32.const 1568 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $3 - call $~lib/map/Map#values - local.tee $2 - i32.store offset=12 + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"std/map/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 24 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill global.get $~lib/memory/__stack_pointer - local.set $5 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -21021,1836 +20934,1625 @@ global.get $~lib/memory/__stack_pointer i32.const 1896 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $6 i64.const 0 i64.store - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 24 - i32.const 29 + i32.const 12 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $7 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $5 i32.store offset=8 - local.get $6 - local.get $7 + local.get $1 + local.get $5 i32.store - local.get $6 - local.get $7 + local.get $1 + local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 + local.get $1 i32.const 3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $7 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $5 i32.store offset=8 - local.get $6 - local.get $7 + local.get $1 + local.get $5 i32.store offset=8 - local.get $6 - local.get $7 + local.get $1 + local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 + local.get $1 i32.const 4 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - local.get $6 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - call $~lib/map/Map#constructor - local.tee $5 - i32.store offset=20 - loop $for-loop|2 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/array/Array#get:length - local.get $0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $4 - 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 1896 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $7 - i32.const 0 - i32.store - local.get $7 - local.get $4 - i32.store - local.get $0 - local.get $4 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1728 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $7 - local.get $4 - i32.store - local.get $4 - i32.load offset=4 - local.get $0 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $1 - local.get $7 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $0 - call $~lib/array/Array#__get - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $1 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $7 - i32.const 20 - i32.sub - f32.convert_i32_s - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 32 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - local.get $1 - call $~lib/map/Map#set - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $7 - i32.const 20 - i32.sub - local.tee $7 - local.get $7 - call $~lib/map/Map#set - 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 $6 + local.get $1 i32.store offset=4 - local.get $6 - call $~lib/map/Map#get:size - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + local.get $1 + i32.const 0 + i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store offset=4 - local.get $5 - call $~lib/map/Map#get:size - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - f32.const 0 - local.set $1 - loop $for-loop|3 - local.get $1 - f32.const 50 - f32.lt + local.get $1 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 100 + i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 local.get $1 - call $~lib/map/Map#has - i32.eqz + local.get $0 + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 - i32.const 41 + i32.const 6 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 local.get $1 - call $~lib/map/Map#get + i32.store offset=4 local.get $1 - i32.trunc_sat_f32_s - i32.const 20 + local.get $0 + local.get $0 + i32.const 10 i32.add - i32.ne + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz if i32.const 0 i32.const 1568 - i32.const 42 + i32.const 8 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 local.get $1 - call $~lib/map/Map#delete - global.get $~lib/memory/__stack_pointer - local.get $3 i32.store offset=4 - local.get $3 local.get $1 - call $~lib/map/Map#has + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 10 + i32.add + i32.ne if i32.const 0 i32.const 1568 - i32.const 44 + i32.const 9 i32.const 5 call $~lib/builtins/abort unreachable end - local.get $1 - f32.const 1 - f32.add - local.set $1 - br $for-loop|3 + 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 $3 + local.get $1 i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size - i32.const 50 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 100 i32.ne if i32.const 0 i32.const 1568 - i32.const 46 + i32.const 11 i32.const 3 call $~lib/builtins/abort unreachable end - f32.const 0 - local.set $1 - loop $for-loop|4 - local.get $1 - f32.const 50 - f32.lt + 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 $3 + local.get $1 i32.store offset=4 - local.get $3 local.get $1 - call $~lib/map/Map#has + local.get $0 + call $"~lib/map/Map#has" + i32.eqz if i32.const 0 i32.const 1568 - i32.const 50 + i32.const 15 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 local.get $1 + i32.store offset=4 local.get $1 - i32.trunc_sat_f32_s + local.get $0 + call $"~lib/map/Map#get" + local.get $0 i32.const 10 i32.add - call $~lib/map/Map#set - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $1 - call $~lib/map/Map#has - i32.eqz + i32.ne if i32.const 0 i32.const 1568 - i32.const 52 + i32.const 16 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 local.get $1 - call $~lib/map/Map#delete + local.get $0 + local.get $0 + i32.const 20 + i32.add + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 local.get $1 - call $~lib/map/Map#has + local.get $0 + call $"~lib/map/Map#has" + i32.eqz if i32.const 0 i32.const 1568 - i32.const 54 - 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 $3 - i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - call $~lib/map/Map#clear - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size - if - i32.const 0 - i32.const 1568 - i32.const 60 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/map/Map#find (param $0 i32) (param $1 f64) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store - local.get $0 - i32.load - local.set $4 - local.get $3 - local.get $0 - i32.store - local.get $4 - local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - loop $while-continue|0 - local.get $0 - if - local.get $0 - i32.load offset=12 - local.tee $2 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else + i32.const 18 + 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 $0 - f64.load - f64.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 + call $"~lib/map/Map#get" + local.get $0 + i32.const 20 i32.add - global.set $~lib/memory/__stack_pointer + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 19 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $0 - return + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 end - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $~lib/map/Map#has (param $0 i32) (param $1 f64) (result i32) - (local $2 i32) - (local $3 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 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i64.reinterpret_f64 - local.tee $3 - 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 $3 - 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 $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - call $~lib/map/Map#find - i32.const 0 - i32.ne - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i64) - (local $5 f64) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 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 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i64.const 0 - i64.store offset=8 - local.get $2 - local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $8 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $7 - i32.const 4 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $9 - local.get $0 - i32.load offset=16 - i32.const 4 - i32.shl - i32.add - local.set $6 - local.get $3 - local.set $2 - loop $while-continue|0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.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 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + 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 offset=8 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=16 + local.set $6 + global.get $~lib/memory/__stack_pointer + 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 1896 + 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 - local.get $9 - i32.ne + i32.const 536870910 + i32.gt_u if - local.get $9 - i32.load offset=12 - i32.const 1 - i32.and - i32.eqz + i32.const 1456 + i32.const 1728 + i32.const 70 + 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 1 + 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 $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=12 + local.get $7 + local.get $8 + i32.store + local.get $7 + local.get $8 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $0 + 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 $3 + local.get $6 + i32.lt_s if - local.get $2 - local.get $9 - f64.load - local.tee $5 - f64.store - local.get $2 - local.get $9 - i32.load offset=8 - i32.store offset=8 - local.get $2 - local.get $8 - local.get $1 local.get $5 - 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 + local.get $3 + i32.const 12 i32.mul i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $10 - i32.const 15 - i32.shr_u - local.get $10 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $10 - i32.const 13 - i32.shr_u - local.get $10 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $10 - i32.const 16 - i32.shr_u - local.get $10 - i32.xor + local.tee $8 + i32.load offset=8 + i32.const 1 i32.and - i32.const 2 - i32.shl + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $0 + local.get $8 + i32.load16_s + 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.tee $10 - i32.load - i32.store offset=12 - local.get $10 + 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 $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $"~lib/map/Map#values" + local.tee $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + 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 1896 + 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 24 + i32.const 14 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + i32.store + local.get $4 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + i32.const 32 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + call $"~lib/map/Map#constructor" + local.tee $3 + i32.store offset=20 + loop $for-loop|2 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/array/Array#get:length + local.get $2 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $7 + 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 1896 + 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 $2 + local.get $7 + i32.load offset=12 + i32.ge_u + if + i32.const 1248 + i32.const 1728 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 i32.store + local.get $7 + i32.load offset=4 local.get $2 - i32.const 16 + i32.const 1 + i32.shl i32.add - local.set $2 - end - local.get $9 - i32.const 16 - i32.add - local.set $9 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store offset=8 - local.get $2 - local.get $8 - i32.store offset=12 - local.get $0 - local.get $8 - i32.store - local.get $0 - local.get $8 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $3 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/map/Map#set (param $0 i32) (param $1 f64) (param $2 i32) - (local $3 i64) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store - local.get $4 - i32.const 0 - i32.store offset=8 - local.get $4 - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i64.reinterpret_f64 - local.tee $3 - 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 $3 - 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 $4 - i32.const 15 - i32.shr_u - local.get $4 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $4 - i32.const 13 - i32.shr_u - local.get $4 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $4 - i32.const 16 - i32.shr_u - local.get $4 - i32.xor - local.tee $5 - call $~lib/map/Map#find - local.tee $4 - if - local.get $4 - local.get $2 - i32.store offset=8 - else + i32.load16_s + local.set $5 + 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 + local.get $2 + call $~lib/array/Array#__get + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $5 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 31 + 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 $6 + i32.const 20 + i32.sub + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $5 + local.get $5 + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $6 + i32.const 20 + i32.sub + local.tee $5 + local.get $5 + call $"~lib/map/Map#set" + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|2 + end + end global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - local.set $6 local.get $4 - local.get $0 - i32.store - local.get $6 - local.get $0 - i32.load offset=12 - i32.eq + i32.store offset=4 + local.get $4 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne if - local.get $4 - local.get $0 - i32.store - local.get $4 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - local.set $6 - local.get $4 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $6 - local.get $0 - i32.load offset=12 + i32.const 0 + i32.const 1568 + i32.const 36 i32.const 3 - i32.mul - i32.const 4 - i32.div_s + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|3 + local.get $0 + i32.const 50 i32.lt_s - if (result i32) - local.get $4 + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + 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 $0 - i32.load offset=4 - else + call $"~lib/map/Map#get" + local.get $0 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 42 + 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 $0 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.load offset=4 i32.const 1 - i32.shl + i32.add + local.set $0 + br $for-loop|3 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + 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 $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 50 + 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 $0 + local.get $0 + i32.const 10 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + 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 $0 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 54 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 i32.const 1 - i32.or + i32.add + local.set $0 + br $for-loop|4 end - call $~lib/map/Map#rehash end global.get $~lib/memory/__stack_pointer - local.tee $6 - local.get $0 - i32.store - local.get $6 - local.get $0 - i32.load offset=8 - local.tee $4 - i32.store offset=8 - local.get $6 - local.get $0 - i32.store - local.get $6 - local.get $0 + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $7 - i32.const 1 - i32.add - i32.store offset=16 - local.get $4 - local.get $7 - i32.const 4 - i32.shl - i32.add - local.tee $4 local.get $1 - f64.store - local.get $4 - local.get $2 - i32.store offset=8 - local.get $6 - local.get $0 - i32.store - local.get $6 - local.get $0 + call $"~lib/map/Map#clear" + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - local.get $6 - local.get $0 - i32.store - local.get $0 - i32.load - local.set $2 - local.get $6 - local.get $0 - i32.store - local.get $4 - local.get $2 - local.get $5 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl + local.get $1 + call $"~lib/map/Map#get:size" + if + i32.const 0 + i32.const 1568 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 24 i32.add - local.tee $0 - i32.load - i32.store offset=12 - local.get $0 - local.get $4 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/map/Map#get (param $0 i32) (param $1 f64) (result i32) - (local $2 i32) - (local $3 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 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i64.reinterpret_f64 - local.tee $3 - 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 $3 - 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 $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - call $~lib/map/Map#find - local.tee $0 - i32.eqz - if - i32.const 1616 - i32.const 1680 - i32.const 105 - i32.const 17 - call $~lib/builtins/abort - unreachable + global.set $~lib/memory/__stack_pointer + return end - local.get $0 - i32.load offset=8 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/map/Map#keys (param $0 i32) (result i32) - (local $1 i32) + (func $"std/map/testNumeric" + (local $0 i32) + (local $1 f64) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 f64) + (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 1896 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $6 - i64.const 0 - i64.store - local.get $6 - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - local.set $4 - local.get $6 - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - local.set $2 + i32.const 0 + i32.const 24 + memory.fill global.get $~lib/memory/__stack_pointer - i32.const 16 + 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 1896 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 16 - i32.const 31 - 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 $2 - i32.const 134217727 - i32.gt_u - if - i32.const 1456 - i32.const 1728 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $2 - local.get $2 - i32.const 8 - i32.le_u - select - i32.const 3 - i32.shl - local.tee $0 - i32.const 1 + i32.const 24 + i32.const 30 call $~lib/rt/itcms/__new - local.tee $8 - i32.store offset=8 + local.tee $0 + i32.store global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $0 i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $7 - local.get $8 + local.get $4 + i32.store offset=8 + local.get $0 + local.get $4 i32.store - local.get $7 - local.get $8 + local.get $0 + local.get $4 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $0 i32.store offset=4 - local.get $7 - local.get $8 + local.get $0 + i32.const 3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $0 i32.store offset=4 - local.get $7 + i32.const 64 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 local.get $0 + local.get $4 i32.store offset=8 + local.get $0 + local.get $4 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $0 i32.store offset=4 - local.get $7 - local.get $2 + local.get $0 + i32.const 4 i32.store offset=12 global.get $~lib/memory/__stack_pointer - i32.const 16 + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 - local.get $7 - i32.store offset=4 + local.get $0 + i32.store loop $for-loop|0 - local.get $2 - local.get $3 - i32.gt_s + local.get $1 + f64.const 100 + f64.lt if - local.get $4 - local.get $3 - i32.const 4 - i32.shl + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 6 + 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 + local.get $1 + i32.trunc_sat_f64_s + i32.const 10 i32.add - local.tee $6 - i32.load offset=12 - i32.const 1 - i32.and + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $"~lib/map/Map#has" i32.eqz if - global.get $~lib/memory/__stack_pointer - local.tee $8 - local.get $7 - i32.store - local.get $1 - local.tee $0 - i32.const 1 - i32.add - local.set $1 - local.get $6 - f64.load - local.set $5 - local.get $8 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $6 i32.const 0 - i32.store - local.get $6 - 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 1728 - i32.const 130 - 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.tee $6 - 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 - local.get $6 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 1568 + i32.const 8 + 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/map/Map#get" + local.get $1 + i32.trunc_sat_f64_s + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 9 + 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/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 11 + 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/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 15 + 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/map/Map#get" + local.get $1 + i32.trunc_sat_f64_s + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 16 + 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 + local.get $1 + i32.trunc_sat_f64_s + i32.const 20 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 18 + i32.const 5 + call $~lib/builtins/abort + unreachable end - local.get $3 - i32.const 1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $"~lib/map/Map#get" + local.get $1 + i32.trunc_sat_f64_s + i32.const 20 i32.add - local.set $3 - br $for-loop|0 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 19 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + 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 $7 - i32.store - local.get $7 - local.get $1 - call $~lib/array/Array#set:length + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.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 - i32.const 8 - i32.add + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $"~lib/map/Map#keys" + local.tee $4 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $"~lib/map/Map#values" + local.tee $3 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub global.set $~lib/memory/__stack_pointer - local.get $7 - return - end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/map/Map#set (param $0 i32) (param $1 f64) (param $2 f64) - (local $3 i32) - (local $4 i32) - (local $5 i64) - (local $6 i32) - (local $7 f64) - (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 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 1896 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 + i32.const 24 + i32.const 32 + call $~lib/rt/itcms/__new + local.tee $6 i32.store - local.get $3 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 + local.get $6 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $7 global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store - local.get $0 - i32.load - local.set $4 - local.get $3 - local.get $0 + local.get $7 + i32.store offset=8 + local.get $6 + local.get $7 i32.store - local.get $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 $3 - local.get $3 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - local.get $3 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - local.get $3 - i32.const 16 - i32.shr_u - i32.xor - local.tee $10 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 - block $__inlined_func$~lib/map/Map#find$1418 - loop $while-continue|0 - local.get $3 - if - local.get $3 - i32.load offset=16 - local.tee $4 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $1 - local.get $3 - f64.load - f64.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/map/Map#find$1418 - end - local.get $4 - i32.const -2 - i32.and - local.set $3 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $3 - end - local.get $3 - if - local.get $3 - local.get $2 - f64.store offset=8 - else + local.get $6 + local.get $7 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 96 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $6 + local.get $7 + i32.store offset=8 + local.get $6 + local.get $7 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + call $"~lib/map/Map#constructor" + local.tee $5 + i32.store offset=20 + loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - local.set $4 - local.get $3 - local.get $0 - i32.store local.get $4 - local.get $0 - i32.load offset=12 - i32.eq + i32.store offset=4 + local.get $4 + call $~lib/array/Array#get:length + local.get $2 + i32.gt_s if - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - local.set $4 - local.get $3 - local.get $0 - i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $4 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - 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 - i32.const 1 - i32.or - end - local.set $6 + 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 1896 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - i64.const 0 - i64.store offset=8 - local.get $3 - local.get $6 - i32.const 1 - i32.add - local.tee $3 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $11 + i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 + i32.store + local.get $2 + local.get $4 + i32.load offset=12 + i32.ge_u + if + i32.const 1248 + i32.const 1728 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.load offset=4 + local.get $2 i32.const 3 i32.shl - i32.const 3 - i32.div_s - local.tee $9 - i32.const 24 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $12 + i32.add + f64.load + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $12 - local.get $0 - i32.load offset=16 - i32.const 24 - i32.mul + i32.const 4 i32.add - local.set $8 - local.get $4 - local.set $3 - loop $while-continue|00 - local.get $8 - local.get $12 - i32.ne - if - local.get $12 - i32.load offset=16 - i32.const 1 - i32.and - i32.eqz - if - local.get $3 - local.get $12 - f64.load - local.tee $7 - f64.store - local.get $3 - local.get $12 - f64.load offset=8 - f64.store offset=8 - local.get $3 - local.get $11 - local.get $6 - local.get $7 - 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 $13 - local.get $13 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $13 - local.get $13 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $13 - local.get $13 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $13 - i32.load - i32.store offset=16 - local.get $13 - local.get $3 - i32.store - local.get $3 - i32.const 24 - i32.add - local.set $3 - end - local.get $12 - i32.const 24 - i32.add - local.set $12 - br $while-continue|00 - end - end + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store offset=8 local.get $3 - local.get $11 - i32.store offset=12 + i32.store offset=4 + local.get $3 + local.get $2 + call $~lib/array/Array#__get + local.set $7 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $11 - i32.store + i32.store offset=4 local.get $0 - local.get $11 - call $~lib/rt/itcms/__link + local.get $1 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 + local.get $7 + i32.const 20 + i32.sub + f64.convert_i32_s + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=4 + local.get $6 + local.get $1 + local.get $1 + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 + local.get $5 + i32.store offset=4 + local.get $5 + local.get $7 + i32.const 20 + i32.sub + local.tee $7 + local.get $7 + call $"~lib/map/Map#set" + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|2 + end + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + 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 $5 + i32.store offset=4 + local.get $5 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + local.set $1 + loop $for-loop|3 + local.get $1 + f64.const 50 + f64.lt + if global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 local.get $0 - local.get $4 - i32.store offset=8 + i32.store offset=4 local.get $0 - local.get $4 - call $~lib/rt/itcms/__link + local.get $1 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 - local.get $9 - i32.store offset=12 + local.get $1 + call $"~lib/map/Map#get" + local.get $1 + i32.trunc_sat_f64_s + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 + local.get $0 + local.get $1 + call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=4 + local.get $0 + local.get $1 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + 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|3 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + 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 - i32.load offset=20 - i32.store offset=16 + local.get $1 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 50 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 16 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + local.get $1 + i32.trunc_sat_f64_s + i32.const 10 i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.load offset=8 - local.tee $4 - i32.store offset=8 - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $6 - i32.const 1 - i32.add - i32.store offset=16 - local.get $4 - local.get $6 - i32.const 24 - i32.mul - i32.add - local.tee $4 - local.get $1 - f64.store - local.get $4 - local.get $2 - f64.store offset=8 - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - local.get $3 - local.get $0 - i32.store - local.get $0 - i32.load - local.set $6 - local.get $3 - local.get $0 - i32.store - local.get $4 - local.get $6 - local.get $10 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=16 - local.get $0 - local.get $4 - i32.store + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 52 + 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/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 54 + 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 - i32.const 12 + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 56 + 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/map/Map#clear" + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/map/Map#get:size" + if + i32.const 0 + i32.const 1568 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer return @@ -22862,166 +22564,9 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/map/Map#delete (param $0 i32) (param $1 f64) - (local $2 i64) - (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 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i64.reinterpret_f64 - local.tee $2 - 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 $2 - 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 - call $~lib/map/Map#find - local.tee $3 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - local.get $3 - local.get $3 - i32.load offset=12 - i32.const 1 - i32.or - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 - local.get $3 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $4 - local.get $3 - local.get $0 - i32.store - local.get $4 - i32.const 1 - i32.add - i32.const 4 - local.get $0 - i32.load offset=20 - local.tee $5 - local.get $5 - i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) - local.get $3 - local.get $0 - i32.store - local.get $0 - i32.load offset=20 - local.set $5 - local.get $3 - local.get $0 - i32.store - local.get $5 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - else - i32.const 0 - end - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $4 - call $~lib/map/Map#rehash - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/map/testNumeric + (func $"std/map/testNumeric" (local $0 i32) - (local $1 f64) + (local $1 f32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -23038,11 +22583,11 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.const 24 memory.fill - local.get $2 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -23051,20 +22596,19 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 24 - i32.const 30 + i32.const 27 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor @@ -23072,69 +22616,68 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 - local.get $3 + local.get $0 local.get $4 i32.store - local.get $3 + local.get $0 local.get $4 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 i32.const 3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - i32.const 64 + i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 - local.get $3 + local.get $0 local.get $4 i32.store offset=8 - local.get $3 + local.get $0 local.get $4 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 i32.const 4 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 i32.const 0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $3 + local.get $0 i32.store loop $for-loop|0 local.get $1 - f64.const 100 - f64.lt + f32.const 100 + f32.lt if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 - call $~lib/map/Map#has + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -23144,21 +22687,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 local.get $1 - i32.trunc_sat_f64_s + i32.trunc_sat_f32_s i32.const 10 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -23169,13 +22712,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 - call $~lib/map/Map#get + call $"~lib/map/Map#get" local.get $1 - i32.trunc_sat_f64_s + i32.trunc_sat_f32_s i32.const 10 i32.add i32.ne @@ -23188,17 +22731,17 @@ unreachable end local.get $1 - f64.const 1 - f64.add + f32.const 1 + f32.add local.set $1 br $for-loop|0 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size + local.get $0 + call $"~lib/map/Map#get:size" i32.const 100 i32.ne if @@ -23209,19 +22752,19 @@ call $~lib/builtins/abort unreachable end - f64.const 0 + f32.const 0 local.set $1 loop $for-loop|1 local.get $1 - f64.const 100 - f64.lt + f32.const 100 + f32.lt if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -23232,13 +22775,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 - call $~lib/map/Map#get + call $"~lib/map/Map#get" local.get $1 - i32.trunc_sat_f64_s + i32.trunc_sat_f32_s i32.const 10 i32.add i32.ne @@ -23251,21 +22794,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 local.get $1 - i32.trunc_sat_f64_s + i32.trunc_sat_f32_s i32.const 20 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -23276,13 +22819,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 - call $~lib/map/Map#get + call $"~lib/map/Map#get" local.get $1 - i32.trunc_sat_f64_s + i32.trunc_sat_f32_s i32.const 20 i32.add i32.ne @@ -23295,17 +22838,17 @@ unreachable end local.get $1 - f64.const 1 - f64.add + f32.const 1 + f32.add local.set $1 br $for-loop|1 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size + local.get $0 + call $"~lib/map/Map#get:size" i32.const 100 i32.ne if @@ -23317,24 +22860,22 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $3 + local.get $0 i32.store offset=4 - local.get $2 - local.get $3 - call $~lib/map/Map#keys + global.get $~lib/memory/__stack_pointer + local.get $0 + call $"~lib/map/Map#keys" local.tee $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 - call $~lib/map/Map#values - local.tee $2 + local.get $0 + call $"~lib/map/Map#values" + local.tee $3 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.set $5 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -23344,15 +22885,14 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $6 i64.const 0 i64.store - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 24 - i32.const 32 + i32.const 29 call $~lib/rt/itcms/__new local.tee $6 i32.store @@ -23380,7 +22920,7 @@ global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=4 - i32.const 96 + i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor local.set $7 global.get $~lib/memory/__stack_pointer @@ -23414,11 +22954,10 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 local.get $6 i32.store offset=16 global.get $~lib/memory/__stack_pointer - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $5 i32.store offset=20 loop $for-loop|2 @@ -23427,7 +22966,7 @@ i32.store offset=4 local.get $4 call $~lib/array/Array#get:length - local.get $0 + local.get $2 i32.gt_s if global.get $~lib/memory/__stack_pointer @@ -23442,13 +22981,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $7 i32.const 0 i32.store - local.get $7 + global.get $~lib/memory/__stack_pointer local.get $4 i32.store - local.get $0 + local.get $2 local.get $4 i32.load offset=12 i32.ge_u @@ -23461,34 +22999,33 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $7 local.get $4 i32.store local.get $4 i32.load offset=4 - local.get $0 - i32.const 3 + local.get $2 + i32.const 2 i32.shl i32.add - f64.load + f32.load local.set $1 - local.get $7 + 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 $2 + local.get $3 i32.store offset=4 + local.get $3 local.get $2 - local.get $0 call $~lib/array/Array#__get local.set $7 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -23499,14 +23036,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $7 i32.const 20 i32.sub - f64.convert_i32_s - call $~lib/map/Map#has + f32.convert_i32_s + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -23522,7 +23059,7 @@ local.get $6 local.get $1 local.get $1 - call $~lib/map/Map#set + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer local.get $5 i32.store offset=4 @@ -23532,11 +23069,11 @@ i32.sub local.tee $7 local.get $7 - call $~lib/map/Map#set - local.get $0 + call $"~lib/map/Map#set" + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|2 end end @@ -23544,7 +23081,7 @@ local.get $6 i32.store offset=4 local.get $6 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.ne if @@ -23559,7 +23096,7 @@ local.get $5 i32.store offset=4 local.get $5 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.ne if @@ -23570,19 +23107,19 @@ call $~lib/builtins/abort unreachable end - f64.const 0 + f32.const 0 local.set $1 loop $for-loop|3 local.get $1 - f64.const 50 - f64.lt + f32.const 50 + f32.lt if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -23593,13 +23130,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 - call $~lib/map/Map#get + call $"~lib/map/Map#get" local.get $1 - i32.trunc_sat_f64_s + i32.trunc_sat_f32_s i32.const 20 i32.add i32.ne @@ -23612,17 +23149,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 - call $~lib/map/Map#has + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -23632,17 +23169,17 @@ unreachable end local.get $1 - f64.const 1 - f64.add + f32.const 1 + f32.add local.set $1 br $for-loop|3 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size + local.get $0 + call $"~lib/map/Map#get:size" i32.const 50 i32.ne if @@ -23653,19 +23190,19 @@ call $~lib/builtins/abort unreachable end - f64.const 0 + f32.const 0 local.set $1 loop $for-loop|4 local.get $1 - f64.const 50 - f64.lt + f32.const 50 + f32.lt if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 - call $~lib/map/Map#has + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -23675,21 +23212,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 local.get $1 - i32.trunc_sat_f64_s + i32.trunc_sat_f32_s i32.const 10 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -23700,17 +23237,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 - call $~lib/map/Map#has + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -23720,17 +23257,17 @@ unreachable end local.get $1 - f64.const 1 - f64.add + f32.const 1 + f32.add local.set $1 br $for-loop|4 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size + local.get $0 + call $"~lib/map/Map#get:size" i32.const 50 i32.ne if @@ -23742,15 +23279,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 - call $~lib/map/Map#clear + local.get $0 + call $"~lib/map/Map#clear" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size + local.get $0 + call $"~lib/map/Map#get:size" if i32.const 0 i32.const 1568 @@ -23772,46 +23309,4 @@ call $~lib/builtins/abort unreachable ) - (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 1896 - i32.lt_s - if - 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.store - local.get $0 - i32.const 1073741820 - i32.gt_u - if - i32.const 1456 - i32.const 1504 - i32.const 52 - i32.const 43 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) ) diff --git a/tests/compiler/std/math.release.wat b/tests/compiler/std/math.release.wat index 4007713b0e..244d0cc93e 100644 --- a/tests/compiler/std/math.release.wat +++ b/tests/compiler/std/math.release.wat @@ -6,19 +6,18 @@ (type $4 (func (param f64 f64) (result f64))) (type $5 (func (param f32 f32) (result f32))) (type $6 (func (param f64 f64 f64 f64) (result i32))) - (type $7 (func (result f64))) - (type $8 (func (param f64 f64) (result i32))) - (type $9 (func (param f32 f32) (result i32))) + (type $7 (func (param f64 f64) (result i32))) + (type $8 (func (param f32 f32) (result i32))) + (type $9 (func (result f64))) (type $10 (func)) - (type $11 (func (param f64 i32) (result f64))) - (type $12 (func (param i32 i32 i32 i32))) - (type $13 (func (param i64) (result i32))) + (type $11 (func (param i32 i32 i32 i32))) + (type $12 (func (param f64 i32) (result f64))) + (type $13 (func (param i64 i64) (result i64))) (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))) + (type $15 (func (param f64))) + (type $16 (func (param i64) (result i32))) + (type $17 (func (param i64))) + (type $18 (func (param f64 f64 i32) (result f64))) (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)) @@ -27,38 +26,38 @@ (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 (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))) - (import "env" "Math.asin" (func $~lib/bindings/dom/Math.asin (param f64) (result f64))) - (import "env" "Math.asinh" (func $~lib/bindings/dom/Math.asinh (param f64) (result f64))) - (import "env" "Math.atan" (func $~lib/bindings/dom/Math.atan (param f64) (result f64))) - (import "env" "Math.atanh" (func $~lib/bindings/dom/Math.atanh (param f64) (result f64))) - (import "env" "Math.atan2" (func $~lib/bindings/dom/Math.atan2 (param f64 f64) (result f64))) - (import "env" "Math.cbrt" (func $~lib/bindings/dom/Math.cbrt (param f64) (result f64))) - (import "env" "Math.ceil" (func $~lib/bindings/dom/Math.ceil (param f64) (result f64))) (import "env" "Math.cos" (func $~lib/bindings/dom/Math.cos (param f64) (result f64))) - (import "env" "Math.cosh" (func $~lib/bindings/dom/Math.cosh (param f64) (result f64))) + (import "env" "Math.sqrt" (func $~lib/bindings/dom/Math.sqrt (param f64) (result f64))) + (import "env" "Math.tan" (func $~lib/bindings/dom/Math.tan (param f64) (result f64))) + (import "env" "Math.ceil" (func $~lib/bindings/dom/Math.ceil (param f64) (result f64))) + (import "env" "Math.sin" (func $~lib/bindings/dom/Math.sin (param f64) (result f64))) (import "env" "Math.exp" (func $~lib/bindings/dom/Math.exp (param f64) (result f64))) - (import "env" "Math.expm1" (func $~lib/bindings/dom/Math.expm1 (param f64) (result f64))) - (import "env" "Math.pow" (func $~lib/bindings/dom/Math.pow (param f64 f64) (result f64))) + (import "env" "Math.trunc" (func $~lib/bindings/dom/Math.trunc (param f64) (result f64))) (import "env" "Math.floor" (func $~lib/bindings/dom/Math.floor (param f64) (result f64))) - (import "env" "Math.log" (func $~lib/bindings/dom/Math.log (param f64) (result f64))) - (import "env" "Math.log10" (func $~lib/bindings/dom/Math.log10 (param f64) (result f64))) - (import "env" "Math.log1p" (func $~lib/bindings/dom/Math.log1p (param f64) (result f64))) + (import "env" "Math.asin" (func $~lib/bindings/dom/Math.asin (param f64) (result f64))) + (import "env" "Math.acos" (func $~lib/bindings/dom/Math.acos (param f64) (result f64))) + (import "env" "Math.expm1" (func $~lib/bindings/dom/Math.expm1 (param f64) (result f64))) (import "env" "Math.log2" (func $~lib/bindings/dom/Math.log2 (param f64) (result f64))) - (import "env" "Math.max" (func $~lib/bindings/dom/Math.max (param f64 f64) (result f64))) - (import "env" "Math.min" (func $~lib/bindings/dom/Math.min (param f64 f64) (result f64))) - (import "math" "mod" (func $std/math/mod (param f64 f64) (result f64))) - (import "env" "Math.random" (func $~lib/bindings/dom/Math.random (result f64))) + (import "env" "Math.log1p" (func $~lib/bindings/dom/Math.log1p (param f64) (result f64))) + (import "env" "Math.log" (func $~lib/bindings/dom/Math.log (param f64) (result f64))) + (import "env" "Math.atan" (func $~lib/bindings/dom/Math.atan (param f64) (result f64))) + (import "env" "Math.abs" (func $~lib/bindings/dom/Math.abs (param f64) (result f64))) (import "env" "seed" (func $~lib/builtins/seed (result f64))) - (import "env" "Math.sign" (func $~lib/bindings/dom/Math.sign (param f64) (result f64))) - (import "env" "Math.sin" (func $~lib/bindings/dom/Math.sin (param f64) (result f64))) - (import "env" "Math.sinh" (func $~lib/bindings/dom/Math.sinh (param f64) (result f64))) - (import "env" "Math.sqrt" (func $~lib/bindings/dom/Math.sqrt (param f64) (result f64))) - (import "env" "Math.tan" (func $~lib/bindings/dom/Math.tan (param f64) (result f64))) + (import "env" "Math.random" (func $~lib/bindings/dom/Math.random (result f64))) + (import "env" "Math.pow" (func $~lib/bindings/dom/Math.pow (param f64 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))) + (import "env" "Math.sinh" (func $~lib/bindings/dom/Math.sinh (param f64) (result f64))) + (import "env" "Math.sign" (func $~lib/bindings/dom/Math.sign (param f64) (result f64))) + (import "env" "Math.min" (func $~lib/bindings/dom/Math.min (param f64 f64) (result f64))) + (import "env" "Math.max" (func $~lib/bindings/dom/Math.max (param f64 f64) (result f64))) + (import "env" "Math.log10" (func $~lib/bindings/dom/Math.log10 (param f64) (result f64))) + (import "env" "Math.cosh" (func $~lib/bindings/dom/Math.cosh (param f64) (result f64))) + (import "env" "Math.cbrt" (func $~lib/bindings/dom/Math.cbrt (param f64) (result f64))) + (import "env" "Math.atanh" (func $~lib/bindings/dom/Math.atanh (param f64) (result f64))) + (import "env" "Math.atan2" (func $~lib/bindings/dom/Math.atan2 (param f64 f64) (result f64))) + (import "env" "Math.asinh" (func $~lib/bindings/dom/Math.asinh (param f64) (result f64))) + (import "env" "Math.acosh" (func $~lib/bindings/dom/Math.acosh (param f64) (result f64))) + (import "math" "mod" (func $std/math/mod (param f64 f64) (result f64))) (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)) @@ -69,8 +68,6 @@ (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 $~lib/math/NativeMath.sincos_sin (mut f64) (f64.const 0)) - (global $~lib/math/NativeMath.sincos_cos (mut f64) (f64.const 0)) (memory $0 1) (data $0 (i32.const 1036) ",") (data $0.1 (i32.const 1048) "\02\00\00\00\16\00\00\00s\00t\00d\00/\00m\00a\00t\00h\00.\00t\00s") @@ -215,83 +212,6 @@ (data $11.128 (i32.const 14353) "`Y\df\bd\d5\d5?\dce\a4\08*\0b\n\bd") (export "memory" (memory $0)) (start $~start) - (func $~lib/math/NativeMath.scalbn (param $0 f64) (param $1 i32) (result f64) - local.get $1 - i32.const 1023 - i32.gt_s - if (result f64) - local.get $0 - f64.const 8988465674311579538646525e283 - f64.mul - local.set $0 - local.get $1 - i32.const 1023 - i32.sub - local.tee $1 - i32.const 1023 - i32.gt_s - if (result f64) - i32.const 1023 - local.get $1 - i32.const 1023 - i32.sub - local.tee $1 - local.get $1 - i32.const 1023 - i32.ge_s - select - local.set $1 - local.get $0 - f64.const 8988465674311579538646525e283 - f64.mul - else - local.get $0 - end - else - local.get $1 - i32.const -1022 - i32.lt_s - if (result f64) - local.get $0 - f64.const 2.004168360008973e-292 - f64.mul - local.set $0 - local.get $1 - i32.const 969 - i32.add - local.tee $1 - i32.const -1022 - i32.lt_s - if (result f64) - i32.const -1022 - local.get $1 - i32.const 969 - i32.add - local.tee $1 - local.get $1 - i32.const -1022 - i32.le_s - select - local.set $1 - local.get $0 - f64.const 2.004168360008973e-292 - f64.mul - else - local.get $0 - end - else - local.get $0 - end - end - local.get $1 - i64.extend_i32_s - i64.const 1023 - i64.add - i64.const 52 - i64.shl - f64.reinterpret_i64 - f64.mul - ) (func $std/math/check (param $0 f64) (param $1 f64) (param $2 f64) (result i32) (local $3 i32) local.get $0 @@ -555,4193 +475,6660 @@ end i32.const 1 ) - (func $~lib/math/NativeMath.acos (param $0 f64) (result f64) - (local $1 i32) + (func $~lib/math/NativeMathf.pow (param $0 f32) (param $1 f32) (result f32) (local $2 i32) - (local $3 i64) - (local $4 f64) - (local $5 f64) - local.get $0 - i64.reinterpret_f64 - local.tee $3 - i64.const 32 - i64.shr_u - i32.wrap_i64 - local.tee $2 - i32.const 2147483647 - i32.and - local.tee $1 - i32.const 1072693248 - i32.ge_u + (local $3 f64) + (local $4 i32) + (local $5 i64) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 f64) + local.get $1 + f32.abs + f32.const 2 + f32.le if - local.get $3 - i32.wrap_i64 local.get $1 - i32.const 1072693248 + f32.const 2 + f32.eq + if + local.get $0 + local.get $0 + f32.mul + return + end + local.get $1 + f32.const 0.5 + f32.eq + if + local.get $0 + f32.sqrt + f32.abs + f32.const inf + local.get $0 + f32.const -inf + f32.ne + select + return + end + local.get $1 + f32.const -1 + f32.eq + if + f32.const 1 + local.get $0 + f32.div + return + end + local.get $1 + f32.const 1 + f32.eq + if + local.get $0 + return + end + local.get $1 + f32.const 0 + f32.eq + if + f32.const 1 + return + end + end + block $~lib/util/math/powf_lut|inlined.0 (result f32) + local.get $1 + i32.reinterpret_f32 + local.tee $8 + i32.const 1 + i32.shl + local.tee $6 + i32.const 1 + i32.sub + i32.const -16777217 + i32.ge_u + local.tee $7 + local.get $0 + i32.reinterpret_f32 + local.tee $2 + i32.const 8388608 i32.sub + i32.const 2130706432 + i32.ge_u i32.or - i32.eqz if + local.get $7 + if + f32.const 1 + local.get $6 + i32.eqz + br_if $~lib/util/math/powf_lut|inlined.0 + drop + f32.const nan:0x400000 + local.get $2 + i32.const 1065353216 + i32.eq + br_if $~lib/util/math/powf_lut|inlined.0 + drop + local.get $0 + local.get $1 + f32.add + local.get $6 + i32.const -16777216 + i32.gt_u + local.get $2 + i32.const 1 + i32.shl + local.tee $2 + i32.const -16777216 + i32.gt_u + i32.or + br_if $~lib/util/math/powf_lut|inlined.0 + drop + f32.const nan:0x400000 + local.get $2 + i32.const 2130706432 + i32.eq + br_if $~lib/util/math/powf_lut|inlined.0 + drop + f32.const 0 + local.get $8 + i32.const 31 + i32.shr_u + i32.eqz + local.get $2 + i32.const 2130706432 + i32.lt_u + i32.eq + br_if $~lib/util/math/powf_lut|inlined.0 + drop + local.get $1 + local.get $1 + f32.mul + br $~lib/util/math/powf_lut|inlined.0 + end + local.get $2 + i32.const 1 + i32.shl + i32.const 1 + i32.sub + i32.const -16777217 + i32.ge_u + if + f32.const 1 + local.get $0 + local.get $0 + f32.mul + local.tee $0 + f32.neg + local.get $0 + local.get $2 + i32.const 31 + i32.shr_u + if (result i32) + block $~lib/util/math/checkintf|inlined.0 (result i32) + i32.const 0 + local.get $8 + i32.const 23 + i32.shr_u + i32.const 255 + i32.and + local.tee $2 + i32.const 127 + i32.lt_u + br_if $~lib/util/math/checkintf|inlined.0 + drop + i32.const 2 + local.get $2 + i32.const 150 + i32.gt_u + br_if $~lib/util/math/checkintf|inlined.0 + drop + i32.const 0 + local.get $8 + i32.const 1 + i32.const 150 + local.get $2 + i32.sub + i32.shl + local.tee $2 + i32.const 1 + i32.sub + i32.and + br_if $~lib/util/math/checkintf|inlined.0 + drop + i32.const 1 + local.get $2 + local.get $8 + i32.and + br_if $~lib/util/math/checkintf|inlined.0 + drop + i32.const 2 + end + i32.const 1 + i32.eq + else + i32.const 0 + end + select + local.tee $0 + f32.div + local.get $0 + local.get $8 + i32.const 0 + i32.lt_s + select + br $~lib/util/math/powf_lut|inlined.0 + end local.get $2 i32.const 0 i32.lt_s if - f64.const 3.141592653589793 - return + block $~lib/util/math/checkintf|inlined.1 (result i32) + i32.const 0 + local.get $8 + i32.const 23 + i32.shr_u + i32.const 255 + i32.and + local.tee $4 + i32.const 127 + i32.lt_u + br_if $~lib/util/math/checkintf|inlined.1 + drop + i32.const 2 + local.get $4 + i32.const 150 + i32.gt_u + br_if $~lib/util/math/checkintf|inlined.1 + drop + i32.const 0 + local.get $8 + i32.const 1 + i32.const 150 + local.get $4 + i32.sub + i32.shl + local.tee $4 + i32.const 1 + i32.sub + i32.and + br_if $~lib/util/math/checkintf|inlined.1 + drop + i32.const 1 + local.get $4 + local.get $8 + i32.and + br_if $~lib/util/math/checkintf|inlined.1 + drop + i32.const 2 + end + local.tee $4 + i32.eqz + if + local.get $0 + local.get $0 + f32.sub + local.tee $0 + local.get $0 + f32.div + br $~lib/util/math/powf_lut|inlined.0 + end + i32.const 65536 + i32.const 0 + local.get $4 + i32.const 1 + i32.eq + select + local.set $4 + local.get $2 + i32.const 2147483647 + i32.and + local.set $2 + end + local.get $2 + i32.const 8388608 + i32.lt_u + if + local.get $0 + f32.const 8388608 + f32.mul + i32.reinterpret_f32 + i32.const 2147483647 + i32.and + i32.const 192937984 + i32.sub + local.set $2 end - f64.const 0 - return - end - f64.const 0 - local.get $0 - local.get $0 - f64.sub - f64.div - return - end - local.get $1 - i32.const 1071644672 - i32.lt_u - if - local.get $1 - i32.const 1012924416 - i32.le_u - if - f64.const 1.5707963267948966 - return end - f64.const 1.5707963267948966 - local.get $0 - f64.const 6.123233995736766e-17 - local.get $0 - local.get $0 - local.get $0 - f64.mul - local.tee $0 - local.get $0 - local.get $0 - local.get $0 - local.get $0 - local.get $0 - f64.const 3.479331075960212e-05 + local.get $2 + local.get $2 + i32.const 1060306944 + i32.sub + local.tee $2 + i32.const -8388608 + i32.and + local.tee $6 + i32.sub + f32.reinterpret_i32 + f64.promote_f32 + local.get $2 + i32.const 19 + i32.shr_u + i32.const 15 + i32.and + i32.const 4 + i32.shl + i32.const 10016 + i32.add + local.tee $2 + f64.load f64.mul - f64.const 7.915349942898145e-04 + f64.const -1 f64.add + local.tee $3 + local.get $3 f64.mul - f64.const -0.04005553450067941 - f64.add + local.set $9 + local.get $1 + f64.promote_f32 + local.get $3 + f64.const 0.288457581109214 f64.mul - f64.const 0.20121253213486293 + f64.const -0.36092606229713164 f64.add + local.get $9 + local.get $9 f64.mul - f64.const -0.3255658186224009 - f64.add f64.mul - f64.const 0.16666666666666666 + local.get $3 + f64.const 1.4426950408774342 + f64.mul + local.get $2 + f64.load offset=8 + local.get $6 + i32.const 23 + i32.shr_s + f64.convert_i32_s + f64.add f64.add + local.get $3 + f64.const 0.480898481472577 f64.mul - local.get $0 - local.get $0 - local.get $0 - local.get $0 - f64.const 0.07703815055590194 - f64.mul - f64.const -0.6882839716054533 + f64.const -0.7213474675006291 f64.add + local.get $9 f64.mul - f64.const 2.0209457602335057 + f64.add f64.add f64.mul - f64.const -2.403394911734414 + local.tee $3 + i64.reinterpret_f64 + i64.const 47 + i64.shr_u + i64.const 65535 + i64.and + i64.const 32959 + i64.ge_u + if + f32.const -inf + f32.const inf + local.get $4 + select + local.get $3 + f64.const 127.99999995700433 + f64.gt + br_if $~lib/util/math/powf_lut|inlined.0 + drop + f32.const -0 + f32.const 0 + local.get $4 + select + local.get $3 + f64.const -150 + f64.le + br_if $~lib/util/math/powf_lut|inlined.0 + drop + end + local.get $3 + f64.const 211106232532992 + f64.add + local.tee $9 + i64.reinterpret_f64 + local.set $5 + local.get $3 + local.get $9 + f64.const -211106232532992 f64.add + f64.sub + local.tee $3 + f64.const 0.6931471806916203 f64.mul f64.const 1 f64.add - f64.div + local.get $3 + f64.const 0.05550361559341535 + f64.mul + f64.const 0.2402284522445722 + f64.add + local.get $3 + local.get $3 + f64.mul + f64.mul + f64.add + local.get $5 + i32.wrap_i64 + i32.const 31 + i32.and + i32.const 3 + i32.shl + i32.const 7712 + i32.add + i64.load + local.get $5 + local.get $4 + i64.extend_i32_u + i64.add + i64.const 47 + i64.shl + i64.add + f64.reinterpret_i64 + f64.mul + f32.demote_f64 + end + ) + (func $~lib/math/NativeMath.cos (param $0 f64) (result f64) + (local $1 f64) + (local $2 f64) + (local $3 i32) + (local $4 i32) + (local $5 i64) + (local $6 i32) + (local $7 f64) + (local $8 f64) + (local $9 f64) + local.get $0 + i64.reinterpret_f64 + local.tee $5 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.tee $3 + i32.const 31 + i32.shr_u + local.set $6 + local.get $3 + i32.const 2147483647 + i32.and + local.tee $3 + i32.const 1072243195 + i32.le_u + if + local.get $3 + i32.const 1044816030 + i32.lt_u + if + f64.const 1 + return + end + local.get $0 + local.get $0 + f64.mul + local.tee $1 + local.get $1 + f64.mul + local.set $2 + f64.const 1 + local.get $1 + f64.const 0.5 f64.mul + local.tee $7 f64.sub + local.tee $8 + f64.const 1 + local.get $8 + f64.sub + local.get $7 f64.sub + local.get $1 + local.get $1 + local.get $1 + local.get $1 + f64.const 2.480158728947673e-05 + f64.mul + f64.const -0.001388888888887411 + f64.add + f64.mul + f64.const 0.0416666666666666 + f64.add + f64.mul + local.get $2 + local.get $2 + f64.mul + local.get $1 + local.get $1 + f64.const -1.1359647557788195e-11 + f64.mul + f64.const 2.087572321298175e-09 + f64.add + f64.mul + f64.const -2.7557314351390663e-07 + f64.add + f64.mul + f64.add + f64.mul + local.get $0 + f64.const 0 + f64.mul f64.sub + f64.add + f64.add return end - local.get $2 - i32.const 0 - i32.lt_s + local.get $3 + i32.const 2146435072 + i32.ge_u if - f64.const 1.5707963267948966 local.get $0 - f64.const 0.5 + local.get $0 + f64.sub + return + end + block $~lib/math/rempio2|inlined.0 (result i32) + local.get $5 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const 2147483647 + i32.and + local.tee $4 + i32.const 1073928572 + i32.lt_u + if + i32.const 1 + local.set $3 + local.get $6 + if (result f64) + local.get $0 + f64.const 1.5707963267341256 + f64.add + local.set $0 + i32.const -1 + local.set $3 + local.get $4 + i32.const 1073291771 + i32.ne + if (result f64) + local.get $0 + local.get $0 + f64.const 6.077100506506192e-11 + f64.add + local.tee $0 + f64.sub + f64.const 6.077100506506192e-11 + f64.add + else + local.get $0 + f64.const 6.077100506303966e-11 + f64.add + local.tee $1 + f64.const 2.0222662487959506e-21 + f64.add + local.set $0 + local.get $1 + local.get $0 + f64.sub + f64.const 2.0222662487959506e-21 + f64.add + end + else + local.get $0 + f64.const -1.5707963267341256 + f64.add + local.set $0 + local.get $4 + i32.const 1073291771 + i32.ne + if (result f64) + local.get $0 + local.get $0 + f64.const -6.077100506506192e-11 + f64.add + local.tee $0 + f64.sub + f64.const -6.077100506506192e-11 + f64.add + else + local.get $0 + f64.const -6.077100506303966e-11 + f64.add + local.tee $1 + f64.const -2.0222662487959506e-21 + f64.add + local.set $0 + local.get $1 + local.get $0 + f64.sub + f64.const -2.0222662487959506e-21 + f64.add + end + end + local.get $0 + global.set $~lib/math/rempio2_y0 + global.set $~lib/math/rempio2_y1 + local.get $3 + br $~lib/math/rempio2|inlined.0 + end + local.get $4 + i32.const 1094263291 + i32.lt_u + if + local.get $4 + i32.const 20 + i32.shr_u + local.tee $3 + local.get $0 + local.get $0 + f64.const 0.6366197723675814 + f64.mul + f64.nearest + local.tee $7 + f64.const 1.5707963267341256 + f64.mul + f64.sub + local.tee $0 + local.get $7 + f64.const 6.077100506506192e-11 + f64.mul + local.tee $2 + f64.sub + local.tee $1 + i64.reinterpret_f64 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const 20 + i32.shr_u + i32.const 2047 + i32.and + i32.sub + i32.const 16 + i32.gt_u + if + local.get $7 + f64.const 2.0222662487959506e-21 + f64.mul + local.get $0 + local.get $0 + local.get $7 + f64.const 6.077100506303966e-11 + f64.mul + local.tee $1 + f64.sub + local.tee $0 + f64.sub + local.get $1 + f64.sub + f64.sub + local.set $2 + local.get $3 + local.get $0 + local.get $2 + f64.sub + local.tee $1 + i64.reinterpret_f64 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const 20 + i32.shr_u + i32.const 2047 + i32.and + i32.sub + i32.const 49 + i32.gt_u + if + local.get $7 + f64.const 8.4784276603689e-32 + f64.mul + local.get $0 + local.get $0 + local.get $7 + f64.const 2.0222662487111665e-21 + f64.mul + local.tee $1 + f64.sub + local.tee $0 + f64.sub + local.get $1 + f64.sub + f64.sub + local.set $2 + local.get $0 + local.get $2 + f64.sub + local.set $1 + end + end + local.get $1 + global.set $~lib/math/rempio2_y0 + local.get $0 + local.get $1 + f64.sub + local.get $2 + f64.sub + global.set $~lib/math/rempio2_y1 + local.get $7 + i32.trunc_sat_f64_s + br $~lib/math/rempio2|inlined.0 + end + i32.const 0 + local.get $5 + call $~lib/math/pio2_large_quot + local.tee $3 + i32.sub + local.get $3 + local.get $6 + select + end + local.set $3 + global.get $~lib/math/rempio2_y0 + local.set $1 + global.get $~lib/math/rempio2_y1 + local.set $2 + local.get $3 + i32.const 1 + i32.and + if (result f64) + local.get $1 + local.get $1 f64.mul - f64.const 0.5 - f64.add local.tee $0 - f64.sqrt - local.tee $4 + local.get $1 + f64.mul + local.set $7 + local.get $1 local.get $0 + local.get $2 + f64.const 0.5 + f64.mul + local.get $7 local.get $0 local.get $0 + f64.const 2.7557313707070068e-06 + f64.mul + f64.const -1.984126982985795e-04 + f64.add + f64.mul + f64.const 0.00833333333332249 + f64.add local.get $0 local.get $0 local.get $0 - f64.const 3.479331075960212e-05 f64.mul - f64.const 7.915349942898145e-04 - f64.add f64.mul - f64.const -0.04005553450067941 - f64.add + local.get $0 + f64.const 1.58969099521155e-10 f64.mul - f64.const 0.20121253213486293 + f64.const -2.5050760253406863e-08 f64.add f64.mul - f64.const -0.3255658186224009 f64.add f64.mul - f64.const 0.16666666666666666 - f64.add + f64.sub f64.mul + local.get $2 + f64.sub + local.get $7 + f64.const -0.16666666666666632 + f64.mul + f64.sub + f64.sub + else + local.get $1 + local.get $1 + f64.mul + local.tee $7 + local.get $7 + f64.mul + local.set $8 + f64.const 1 + local.get $7 + f64.const 0.5 + f64.mul + local.tee $0 + f64.sub + local.tee $9 + f64.const 1 + local.get $9 + f64.sub local.get $0 - local.get $0 - local.get $0 - local.get $0 - f64.const 0.07703815055590194 + f64.sub + local.get $7 + local.get $7 + local.get $7 + local.get $7 + f64.const 2.480158728947673e-05 f64.mul - f64.const -0.6882839716054533 + f64.const -0.001388888888887411 f64.add f64.mul - f64.const 2.0209457602335057 + f64.const 0.0416666666666666 f64.add f64.mul - f64.const -2.403394911734414 - f64.add + local.get $8 + local.get $8 f64.mul - f64.const 1 + local.get $7 + local.get $7 + f64.const -1.1359647557788195e-11 + f64.mul + f64.const 2.087572321298175e-09 f64.add - f64.div - local.get $4 f64.mul - f64.const -6.123233995736766e-17 + f64.const -2.7557314351390663e-07 f64.add + f64.mul f64.add - f64.sub - f64.const 2 f64.mul - return + local.get $1 + local.get $2 + f64.mul + f64.sub + f64.add + f64.add end - f64.const 0.5 - local.get $0 - f64.const 0.5 - f64.mul - f64.sub - local.tee $4 - f64.sqrt - local.tee $5 - i64.reinterpret_f64 - i64.const -4294967296 - i64.and - f64.reinterpret_i64 local.tee $0 - local.get $4 - local.get $4 - local.get $4 - local.get $4 - local.get $4 - local.get $4 - f64.const 3.479331075960212e-05 - f64.mul - f64.const 7.915349942898145e-04 - f64.add - f64.mul - f64.const -0.04005553450067941 - f64.add - f64.mul - f64.const 0.20121253213486293 - f64.add - f64.mul - f64.const -0.3255658186224009 - f64.add - f64.mul - f64.const 0.16666666666666666 - f64.add - f64.mul - local.get $4 - local.get $4 - local.get $4 - local.get $4 - f64.const 0.07703815055590194 - f64.mul - f64.const -0.6882839716054533 - f64.add - f64.mul - f64.const 2.0209457602335057 - f64.add - f64.mul - f64.const -2.403394911734414 - f64.add - f64.mul - f64.const 1 - f64.add - f64.div - local.get $5 - f64.mul - local.get $4 - local.get $0 - local.get $0 - f64.mul - f64.sub - local.get $5 - local.get $0 - f64.add - f64.div - f64.add - f64.add - f64.const 2 - f64.mul - ) - (func $~lib/math/NativeMathf.acos (param $0 f32) (result f32) - (local $1 i32) - (local $2 i32) - (local $3 f32) - (local $4 f32) + f64.neg local.get $0 - i32.reinterpret_f32 - local.tee $2 - i32.const 2147483647 + local.get $3 + i32.const 1 + i32.add + i32.const 2 i32.and - local.tee $1 - i32.const 1065353216 - i32.ge_u - if - local.get $1 - i32.const 1065353216 - i32.eq - if - f32.const 3.141592502593994 - f32.const 0 - local.get $2 - i32.const 0 - i32.lt_s - select - return - end - f32.const 0 - local.get $0 - local.get $0 - f32.sub - f32.div - return - end - local.get $1 - i32.const 1056964608 - i32.lt_u - if - local.get $1 - i32.const 847249408 - i32.le_u - if - f32.const 1.570796251296997 - return - end - f32.const 1.570796251296997 - local.get $0 - f32.const 7.549789415861596e-08 - local.get $0 - local.get $0 - local.get $0 - f32.mul - local.tee $0 - local.get $0 - local.get $0 - f32.const -0.008656363002955914 - f32.mul - f32.const -0.04274342209100723 - f32.add - f32.mul - f32.const 0.16666586697101593 - f32.add - f32.mul - local.get $0 - f32.const -0.7066296339035034 - f32.mul - f32.const 1 - f32.add - f32.div - f32.mul - f32.sub - f32.sub - f32.sub - return - end - local.get $2 - i32.const 0 - i32.lt_s - if - f32.const 1.570796251296997 - local.get $0 - f32.const 0.5 - f32.mul - f32.const 0.5 - f32.add - local.tee $0 - f32.sqrt - local.tee $3 + select + ) + (func $std/math/test_mod (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (local $3 i64) + (local $4 i64) + (local $5 i64) + (local $6 i64) + (local $7 i64) + (local $8 f64) + (local $9 i64) + (local $10 i64) + block $__inlined_func$~lib/math/NativeMath.mod$2 (result f64) local.get $0 local.get $0 + f64.trunc + f64.sub local.get $0 - f32.const -0.008656363002955914 - f32.mul - f32.const -0.04274342209100723 - f32.add - f32.mul - f32.const 0.16666586697101593 - f32.add - f32.mul + f64.copysign + local.get $1 + f64.abs + f64.const 1 + f64.eq + br_if $__inlined_func$~lib/math/NativeMath.mod$2 + drop + local.get $1 + i64.reinterpret_f64 + local.tee $7 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + local.set $9 + local.get $7 + i64.const 1 + i64.shl + local.tee $5 + i64.eqz local.get $0 - f32.const -0.7066296339035034 - f32.mul - f32.const 1 - f32.add - f32.div - local.get $3 - f32.mul - f32.const -7.549789415861596e-08 - f32.add - f32.add - f32.sub - f32.const 2 - f32.mul - return - end - f32.const 0.5 - local.get $0 - f32.const 0.5 - f32.mul - f32.sub - local.tee $3 - f32.sqrt - local.tee $4 - i32.reinterpret_f32 - i32.const -4096 - i32.and - f32.reinterpret_i32 - local.tee $0 - local.get $3 - local.get $3 - local.get $3 - f32.const -0.008656363002955914 - f32.mul - f32.const -0.04274342209100723 - f32.add - f32.mul - f32.const 0.16666586697101593 - f32.add - f32.mul - local.get $3 - f32.const -0.7066296339035034 - f32.mul - f32.const 1 - f32.add - f32.div - local.get $4 - f32.mul - local.get $3 - local.get $0 - local.get $0 - f32.mul - f32.sub - local.get $4 - local.get $0 - f32.add - f32.div - f32.add - f32.add - f32.const 2 - f32.mul - ) - (func $~lib/math/NativeMath.log1p (param $0 f64) (result f64) - (local $1 f64) - (local $2 i32) - (local $3 i64) - (local $4 f64) - (local $5 i32) - (local $6 f64) - (local $7 f64) - i32.const 1 - local.set $2 - local.get $0 - i64.reinterpret_f64 - i64.const 32 - i64.shr_u - i32.wrap_i64 - local.tee $5 - i32.const 31 - i32.shr_u - local.get $5 - i32.const 1071284858 - i32.lt_u - i32.or - if - local.get $5 - i32.const -1074790400 - i32.ge_u + i64.reinterpret_f64 + local.tee $4 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + local.tee $10 + i64.const 2047 + i64.eq + i32.or + local.get $1 + local.get $1 + f64.ne + i32.or if local.get $0 - f64.const -1 - f64.eq - if - local.get $0 - f64.const 0 - f64.div - return - end - local.get $0 - local.get $0 - f64.sub - f64.const 0 + local.get $1 + f64.mul + local.tee $8 + local.get $8 f64.div - return + br $__inlined_func$~lib/math/NativeMath.mod$2 end + local.get $4 + i64.const 1 + i64.shl + local.tee $3 local.get $5 - i32.const 1 - i32.shl - i32.const 2034237440 - i32.lt_u + i64.le_u if local.get $0 - return + local.get $3 + local.get $5 + i64.ne + f64.convert_i32_u + f64.mul + br $__inlined_func$~lib/math/NativeMath.mod$2 end - local.get $5 - i32.const -1076707644 - i32.le_u - if (result f64) - i32.const 0 - local.set $2 - local.get $0 + local.get $4 + i64.const 63 + i64.shr_u + local.set $6 + local.get $10 + i64.eqz + if (result i64) + local.get $4 + i64.const 1 + local.get $10 + local.get $4 + i64.const 12 + i64.shl + i64.clz + i64.sub + local.tee $10 + i64.sub + i64.shl else - f64.const 0 + local.get $4 + i64.const 4503599627370495 + i64.and + i64.const 4503599627370496 + i64.or end - local.set $1 - else - local.get $5 - i32.const 2146435072 - i32.ge_u - if - local.get $0 - return + local.set $3 + local.get $9 + i64.eqz + if (result i64) + local.get $7 + i64.const 1 + local.get $9 + local.get $7 + i64.const 12 + i64.shl + i64.clz + i64.sub + local.tee $9 + i64.sub + i64.shl + else + local.get $7 + i64.const 4503599627370495 + i64.and + i64.const 4503599627370496 + i64.or end - end - local.get $2 - if - local.get $0 - f64.const 1 - f64.add - i64.reinterpret_f64 - local.tee $3 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const 614242 - i32.add - local.tee $5 - i32.const 20 - i32.shr_u - i32.const 1023 - i32.sub - local.tee $2 - i32.const 54 - i32.lt_s - if (result f64) - f64.const 1 - local.get $3 - f64.reinterpret_i64 - local.tee $1 - local.get $0 - f64.sub - f64.sub + local.set $4 + loop $while-continue|0 + local.get $9 + local.get $10 + i64.lt_s + if + local.get $3 + local.get $4 + i64.ge_u + if (result i64) + local.get $0 + f64.const 0 + f64.mul + local.get $3 + local.get $4 + i64.eq + br_if $__inlined_func$~lib/math/NativeMath.mod$2 + drop + local.get $3 + local.get $4 + i64.sub + else + local.get $3 + end + i64.const 1 + i64.shl + local.set $3 + local.get $10 + i64.const 1 + i64.sub + local.set $10 + br $while-continue|0 + end + end + local.get $3 + local.get $4 + i64.ge_u + if local.get $0 - local.get $1 - f64.const -1 - f64.add - f64.sub - local.get $2 - i32.const 2 - i32.ge_s - select - local.get $1 - f64.div - else f64.const 0 + f64.mul + local.get $3 + local.get $4 + i64.eq + br_if $__inlined_func$~lib/math/NativeMath.mod$2 + drop + local.get $3 + local.get $4 + i64.sub + local.set $3 end + local.get $10 + local.get $3 + i64.const 11 + i64.shl + i64.clz + local.tee $5 + i64.sub local.set $4 local.get $3 - i64.const 4294967295 - i64.and local.get $5 - i32.const 1048575 - i32.and - i32.const 1072079006 - i32.add - i64.extend_i32_u - i64.const 32 + i64.shl + local.set $3 + local.get $4 + i64.const 0 + i64.gt_s + if (result i64) + local.get $3 + i64.const 4503599627370496 + i64.sub + local.get $4 + i64.const 52 + i64.shl + i64.or + else + local.get $3 + i64.const 1 + local.get $4 + i64.sub + i64.shr_u + end + local.get $6 + i64.const 63 i64.shl i64.or f64.reinterpret_i64 - f64.const -1 - f64.add - local.set $1 - end - local.get $1 - local.get $1 - f64.const 2 - f64.add - f64.div - local.tee $6 - local.get $6 - f64.mul - local.tee $7 - local.get $7 - f64.mul - local.set $0 - local.get $6 - local.get $1 - f64.const 0.5 - f64.mul - local.get $1 - f64.mul - local.tee $6 - local.get $7 - local.get $0 - local.get $0 - local.get $0 - f64.const 0.14798198605116586 - f64.mul - f64.const 0.1818357216161805 - f64.add - f64.mul - f64.const 0.2857142874366239 - f64.add - f64.mul - f64.const 0.6666666666666735 - f64.add - f64.mul - local.get $0 - local.get $0 - local.get $0 - f64.const 0.15313837699209373 - f64.mul - f64.const 0.22222198432149784 - f64.add - f64.mul - f64.const 0.3999999999940942 - f64.add - f64.mul - f64.add - f64.add - f64.mul - local.get $2 - f64.convert_i32_s - local.tee $0 - f64.const 1.9082149292705877e-10 - f64.mul - local.get $4 - f64.add - f64.add - local.get $6 - f64.sub - local.get $1 - f64.add - local.get $0 - f64.const 0.6931471803691238 - f64.mul - f64.add - ) - (func $~lib/math/NativeMath.log (param $0 f64) (result f64) - (local $1 i64) - (local $2 i32) - (local $3 i64) - (local $4 f64) - (local $5 f64) - (local $6 f64) - (local $7 i32) - block $~lib/util/math/log_lut|inlined.0 (result f64) - local.get $0 - i64.reinterpret_f64 - local.tee $1 - i64.const 4606619468846596096 - i64.sub - i64.const 854320534781952 - i64.lt_u - if - local.get $0 - f64.const -1 - f64.add - local.tee $0 - local.get $0 - f64.mul - local.tee $4 - local.get $0 - f64.mul - local.tee $5 - local.get $0 - f64.const -0.24999999999998432 - f64.mul - f64.const 0.3333333333333352 - f64.add - local.get $4 - f64.const 0.19999999999320328 - f64.mul - f64.add - local.get $5 - local.get $0 - f64.const 0.14285715076560868 - f64.mul - f64.const -0.16666666669929706 - f64.add - local.get $4 - f64.const -0.12499997863982555 - f64.mul - f64.add - local.get $5 - local.get $0 - f64.const -0.10000486757818193 - f64.mul - f64.const 0.11110712032936046 - f64.add - local.get $4 - f64.const 0.09181994006195467 - f64.mul - f64.add - local.get $5 - f64.const -0.08328363062289341 - f64.mul - f64.add - f64.mul - f64.add - f64.mul - f64.add - f64.mul - local.get $0 - local.get $0 - local.get $0 - local.get $0 - f64.const 134217728 - f64.mul - local.tee $4 - f64.add - local.get $4 - f64.sub - local.tee $4 - local.get $4 - f64.mul - f64.const -0.5 - f64.mul - local.tee $5 - f64.add - local.tee $6 - f64.sub - local.get $5 - f64.add - local.get $0 - local.get $4 - f64.sub - f64.const -0.5 - f64.mul - local.get $4 - local.get $0 - f64.add - f64.mul - f64.add - f64.add - local.get $6 - f64.add - br $~lib/util/math/log_lut|inlined.0 - end - local.get $1 - i64.const 48 - i64.shr_u - i32.wrap_i64 - local.tee $2 - i32.const 16 - i32.sub - i32.const 32736 - i32.ge_u - if - f64.const -1 - local.get $0 - local.get $0 - f64.mul - f64.div - local.get $1 - i64.const 1 - i64.shl - i64.eqz - br_if $~lib/util/math/log_lut|inlined.0 - drop - local.get $0 - local.get $1 - i64.const 9218868437227405312 - i64.eq - br_if $~lib/util/math/log_lut|inlined.0 - drop - i32.const 1 - local.get $2 - i32.const 32752 - i32.and - i32.const 32752 - i32.eq - local.get $2 - i32.const 32768 - i32.and - select - if - local.get $0 - local.get $0 - f64.sub - local.tee $0 - local.get $0 - f64.div - br $~lib/util/math/log_lut|inlined.0 - end - local.get $0 - f64.const 4503599627370496 - f64.mul - i64.reinterpret_f64 - i64.const 234187180623265792 - i64.sub - local.set $1 - end - local.get $1 - i64.const 4604367669032910848 - i64.sub - local.tee $3 - i64.const 45 - i64.shr_u - i64.const 127 - i64.and - i32.wrap_i64 - i32.const 4 - i32.shl - local.tee $2 - i32.const 1088 - i32.add - local.set $7 - local.get $3 - i64.const 52 - i64.shr_s - f64.convert_i64_s - local.tee $0 - f64.const 0.6931471805598903 - f64.mul - local.get $7 - f64.load offset=8 - f64.add - local.tee $4 - local.get $1 - local.get $3 - i64.const -4503599627370496 - i64.and - i64.sub - f64.reinterpret_i64 - local.get $2 - i32.const 3136 - i32.add - local.tee $2 - f64.load - f64.sub - local.get $2 - f64.load offset=8 - f64.sub - local.get $7 - f64.load - f64.mul - local.tee $5 - f64.add - local.set $6 - local.get $4 - local.get $6 - f64.sub - local.get $5 - f64.add - local.get $0 - f64.const 5.497923018708371e-14 - f64.mul - f64.add - local.get $5 - local.get $5 - f64.mul - local.tee $0 - f64.const -0.5000000000000001 - f64.mul - f64.add - local.get $5 - local.get $0 - f64.mul - local.get $5 - f64.const -0.2499999999622955 - f64.mul - f64.const 0.33333333331825593 - f64.add - local.get $0 - local.get $5 - f64.const -0.16667054827627667 - f64.mul - f64.const 0.20000304511814496 - f64.add - f64.mul - f64.add - f64.mul - f64.add - local.get $6 - f64.add - end - ) - (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$8 (result f64) - local.get $0 - local.get $0 - f64.sub - f64.const 0 - f64.div - local.get $0 - i64.reinterpret_f64 - local.tee $4 - i64.const 4607182418800017408 - i64.lt_s - br_if $__inlined_func$~lib/math/NativeMath.acosh$8 - drop - local.get $4 - i64.const 52 - i64.shr_u - i64.const 2047 - i64.and - local.tee $4 - i64.const 1024 - i64.lt_u - if - local.get $0 - f64.const -1 - f64.add - local.tee $3 - local.get $3 - local.get $3 - f64.mul - local.get $3 - local.get $3 - f64.add - f64.add - f64.sqrt - f64.add - call $~lib/math/NativeMath.log1p - br $__inlined_func$~lib/math/NativeMath.acosh$8 - end - local.get $4 - i64.const 1049 - i64.lt_u - if - local.get $0 - local.get $0 - f64.add - f64.const 1 - local.get $0 - local.get $0 - local.get $0 - f64.mul - f64.const -1 - f64.add - f64.sqrt - f64.add - f64.div - f64.sub - call $~lib/math/NativeMath.log - br $__inlined_func$~lib/math/NativeMath.acosh$8 - end - local.get $0 - call $~lib/math/NativeMath.log - f64.const 0.6931471805599453 - f64.add end + local.get $2 + f64.const 0 + call $std/math/check + if (result i32) + local.get $0 + local.get $1 + call $std/math/mod + local.get $2 + f64.const 0 + call $std/math/check + else + i32.const 0 + end + ) + (func $std/math/test_pow (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) + local.get $0 local.get $1 + call $~lib/math/NativeMath.pow local.get $2 + local.get $3 call $std/math/check if (result i32) local.get $0 - call $~lib/bindings/dom/Math.acosh local.get $1 + call $~lib/bindings/dom/Math.pow local.get $2 + local.get $3 call $std/math/check else i32.const 0 end ) - (func $~lib/math/NativeMathf.log1p (param $0 f32) (result f32) - (local $1 f32) + (func $~lib/math/NativeMathf.rem (param $0 f32) (param $1 f32) (result f32) (local $2 i32) - (local $3 f32) + (local $3 i32) (local $4 i32) - (local $5 f32) - (local $6 f32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 f32) + local.get $1 + i32.reinterpret_f32 + local.tee $7 + i32.const 23 + i32.shr_u + i32.const 255 + i32.and + local.set $4 + local.get $7 i32.const 1 - local.set $2 + i32.shl + i32.eqz local.get $0 i32.reinterpret_f32 - local.tee $4 - i32.const 31 + local.tee $6 + i32.const 23 i32.shr_u - local.get $4 - i32.const 1054086096 - i32.lt_u + i32.const 255 + i32.and + local.tee $3 + i32.const 255 + i32.eq + i32.or + local.get $1 + local.get $1 + f32.ne i32.or if - local.get $4 - i32.const -1082130432 - i32.ge_u - if - local.get $0 - f32.const -1 - f32.eq - if - local.get $0 - f32.const 0 - f32.div - return - end - local.get $0 - local.get $0 - f32.sub - f32.const 0 - f32.div - return - end - local.get $4 + local.get $0 + local.get $1 + f32.mul + local.tee $0 + local.get $0 + f32.div + return + end + local.get $6 + i32.const 1 + i32.shl + i32.eqz + if + local.get $0 + return + end + local.get $3 + if (result i32) + local.get $6 + i32.const 8388607 + i32.and + i32.const 8388608 + i32.or + else + local.get $6 i32.const 1 + local.get $3 + local.get $6 + i32.const 9 i32.shl - i32.const 1728053248 - i32.lt_u + i32.clz + i32.sub + local.tee $3 + i32.sub + i32.shl + end + local.set $2 + local.get $4 + if (result i32) + local.get $7 + i32.const 8388607 + i32.and + i32.const 8388608 + i32.or + else + local.get $7 + i32.const 1 + local.get $4 + local.get $7 + i32.const 9 + i32.shl + i32.clz + i32.sub + local.tee $4 + i32.sub + i32.shl + end + local.set $7 + block $do-break|0 + local.get $3 + local.get $4 + i32.lt_s if + local.get $3 + i32.const 1 + i32.add + local.get $4 + i32.eq + br_if $do-break|0 local.get $0 return end - local.get $4 - i32.const -1097468391 - i32.le_u - if (result f32) - i32.const 0 - local.set $2 - local.get $0 - else - f32.const 0 - end - local.set $1 - else - local.get $4 - i32.const 2139095040 + loop $while-continue|1 + local.get $3 + local.get $4 + i32.gt_s + if + local.get $2 + local.get $7 + i32.ge_u + if (result i32) + local.get $5 + i32.const 1 + i32.add + local.set $5 + local.get $2 + local.get $7 + i32.sub + else + local.get $2 + end + i32.const 1 + i32.shl + local.set $2 + local.get $5 + i32.const 1 + i32.shl + local.set $5 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|1 + end + end + local.get $2 + local.get $7 i32.ge_u if - local.get $0 - return + local.get $5 + i32.const 1 + i32.add + local.set $5 + local.get $2 + local.get $7 + i32.sub + local.set $2 end - end - local.get $2 - if - local.get $0 - f32.const 1 - f32.add - local.tee $1 - i32.reinterpret_f32 - i32.const 4913933 - i32.add - local.tee $4 - i32.const 23 - i32.shr_u - i32.const 127 - i32.sub - local.tee $2 - i32.const 25 - i32.lt_s - if (result f32) - f32.const 1 - local.get $1 - local.get $0 - f32.sub - f32.sub - local.get $0 - local.get $1 - f32.const -1 - f32.add - f32.sub + local.get $2 + if + local.get $3 local.get $2 - i32.const 2 - i32.ge_s - select - local.get $1 - f32.div + i32.const 8 + i32.shl + i32.clz + local.tee $7 + i32.sub + local.set $3 + local.get $2 + local.get $7 + i32.shl + local.set $2 else - f32.const 0 + i32.const -30 + local.set $3 end - local.set $3 - local.get $4 - i32.const 8388607 - i32.and - i32.const 1060439283 - i32.add - f32.reinterpret_i32 - f32.const -1 - f32.add - local.set $1 end local.get $1 - local.get $1 - f32.const 2 - f32.add - f32.div - local.tee $5 - local.get $5 - f32.mul + f32.abs + local.set $1 + local.get $3 + i32.const 0 + i32.gt_s + if (result i32) + local.get $2 + i32.const 8388608 + i32.sub + local.get $3 + i32.const 23 + i32.shl + i32.or + else + local.get $2 + i32.const 1 + local.get $3 + i32.sub + i32.shr_u + end + f32.reinterpret_i32 local.tee $0 local.get $0 - f32.mul - local.set $6 - local.get $5 - local.get $1 - f32.const 0.5 - f32.mul - local.get $1 - f32.mul - local.tee $5 - local.get $0 - local.get $6 - f32.const 0.2849878668785095 - f32.mul - f32.const 0.6666666269302368 - f32.add - f32.mul - local.get $6 - local.get $6 - f32.const 0.24279078841209412 - f32.mul - f32.const 0.40000972151756287 - f32.add - f32.mul - f32.add f32.add - f32.mul - local.get $2 - f32.convert_i32_s - local.tee $0 - f32.const 9.05800061445916e-06 - f32.mul - local.get $3 - f32.add - f32.add - local.get $5 - f32.sub + local.set $8 + local.get $0 local.get $1 - f32.add + f32.sub local.get $0 - f32.const 0.6931381225585938 - f32.mul - f32.add - ) - (func $~lib/math/NativeMathf.log (param $0 f32) (result f32) - (local $1 i32) - (local $2 f64) - (local $3 f64) - (local $4 i32) - (local $5 i32) - block $~lib/util/math/logf_lut|inlined.0 (result f32) - local.get $0 - i32.reinterpret_f32 - local.tee $1 - i32.const 8388608 - i32.sub - i32.const 2130706432 - i32.ge_u - if - f32.const -inf - local.get $1 + local.get $3 + local.get $4 + i32.eq + if (result i32) + i32.const 1 + else + local.get $3 + i32.const 1 + i32.add + local.get $4 + i32.eq + if (result i32) + local.get $5 i32.const 1 - i32.shl - local.tee $4 - i32.eqz - br_if $~lib/util/math/logf_lut|inlined.0 - drop - local.get $0 + i32.and local.get $1 - i32.const 2139095040 - i32.eq - br_if $~lib/util/math/logf_lut|inlined.0 - drop + local.get $8 + f32.eq + i32.and local.get $1 - i32.const 31 - i32.shr_u - local.get $4 - i32.const -16777216 - i32.ge_u + local.get $8 + f32.lt i32.or - if - local.get $0 - local.get $0 - f32.sub - local.tee $0 - local.get $0 - f32.div - br $~lib/util/math/logf_lut|inlined.0 - end - local.get $0 - f32.const 8388608 - f32.mul - i32.reinterpret_f32 - i32.const 192937984 - i32.sub - local.set $1 - end - local.get $1 - i32.const 1060306944 - i32.sub - local.tee $4 - i32.const 19 - i32.shr_u - i32.const 15 - i32.and - i32.const 4 - i32.shl - i32.const 5184 - i32.add - local.set $5 - local.get $1 - local.get $4 - i32.const -8388608 - i32.and - i32.sub - f32.reinterpret_i32 - f64.promote_f32 - local.get $5 - f64.load - f64.mul - f64.const -1 - f64.add - local.tee $2 - local.get $2 - f64.mul - local.set $3 - local.get $2 - f64.const 0.333456765744066 - f64.mul - f64.const -0.4999997485802103 - f64.add - local.get $3 - f64.const -0.25089342214237154 - f64.mul - f64.add - local.get $3 - f64.mul - local.get $5 - f64.load offset=8 - local.get $4 - i32.const 23 - i32.shr_s - f64.convert_i32_s - f64.const 0.6931471805599453 - f64.mul - f64.add - local.get $2 - f64.add - f64.add - f32.demote_f64 - end - ) - (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$9 (result f32) - local.get $0 - i32.reinterpret_f32 - local.tee $3 - i32.const 2147483647 - i32.and - i32.const 1073741824 - i32.lt_u - if - local.get $0 - f32.const -1 - f32.add - local.tee $0 - local.get $0 - local.get $0 - f32.const 2 - f32.add - f32.mul - f32.sqrt - f32.add - call $~lib/math/NativeMathf.log1p - br $__inlined_func$~lib/math/NativeMathf.acosh$9 - end - local.get $3 - i32.const 1166016512 - i32.lt_u - if - local.get $0 - local.get $0 - f32.add - f32.const 1 - local.get $0 - local.get $0 - local.get $0 - f32.mul - f32.const -1 - f32.add - f32.sqrt - f32.add - f32.div - f32.sub - call $~lib/math/NativeMathf.log - br $__inlined_func$~lib/math/NativeMathf.acosh$9 + else + i32.const 0 end - local.get $0 - call $~lib/math/NativeMathf.log - f32.const 0.6931471824645996 - f32.add end - local.get $1 - local.get $2 - call $std/math/check + select + local.tee $0 + f32.neg + local.get $0 + local.get $6 + i32.const 0 + i32.lt_s + select ) - (func $~lib/math/NativeMath.asin (param $0 f64) (result f64) - (local $1 i32) + (func $~lib/math/NativeMath.rem (param $0 f64) (param $1 f64) (result f64) (local $2 i64) - (local $3 i32) - (local $4 f64) - (local $5 f64) + (local $3 i64) + (local $4 i64) + (local $5 i32) + (local $6 i64) + (local $7 i64) + (local $8 f64) + local.get $1 + i64.reinterpret_f64 + local.tee $7 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + local.set $4 + local.get $7 + i64.const 1 + i64.shl + i64.eqz local.get $0 i64.reinterpret_f64 - local.tee $2 - i64.const 32 + local.tee $6 + i64.const 52 i64.shr_u - i32.wrap_i64 + i64.const 2047 + i64.and local.tee $3 - i32.const 2147483647 - i32.and - local.tee $1 - i32.const 1072693248 - i32.ge_u + i64.const 2047 + i64.eq + i32.or + local.get $1 + local.get $1 + f64.ne + i32.or if - local.get $2 - i32.wrap_i64 - local.get $1 - i32.const 1072693248 - i32.sub - i32.or - i32.eqz - if - local.get $0 - f64.const 1.5707963267948966 - f64.mul - f64.const 7.52316384526264e-37 - f64.add - return - end - f64.const 0 local.get $0 + local.get $1 + f64.mul + local.tee $0 local.get $0 - f64.sub f64.div return end - local.get $1 - i32.const 1071644672 - i32.lt_u + local.get $6 + i64.const 1 + i64.shl + i64.eqz if - local.get $1 - i32.const 1045430272 - i32.lt_u - local.get $1 - i32.const 1048576 - i32.ge_u - i32.and + local.get $0 + return + end + local.get $3 + i64.eqz + if (result i64) + local.get $6 + i64.const 1 + local.get $3 + local.get $6 + i64.const 12 + i64.shl + i64.clz + i64.sub + local.tee $3 + i64.sub + i64.shl + else + local.get $6 + i64.const 4503599627370495 + i64.and + i64.const 4503599627370496 + i64.or + end + local.set $2 + local.get $4 + i64.eqz + if (result i64) + local.get $7 + i64.const 1 + local.get $4 + local.get $7 + i64.const 12 + i64.shl + i64.clz + i64.sub + local.tee $4 + i64.sub + i64.shl + else + local.get $7 + i64.const 4503599627370495 + i64.and + i64.const 4503599627370496 + i64.or + end + local.set $7 + block $do-break|0 + local.get $3 + local.get $4 + i64.lt_s if + local.get $3 + i64.const 1 + i64.add + local.get $4 + i64.eq + br_if $do-break|0 local.get $0 return end - local.get $0 - local.get $0 - local.get $0 - local.get $0 - f64.mul - local.tee $0 - local.get $0 - local.get $0 - local.get $0 - local.get $0 - local.get $0 - f64.const 3.479331075960212e-05 - f64.mul - f64.const 7.915349942898145e-04 - f64.add - f64.mul - f64.const -0.04005553450067941 - f64.add - f64.mul - f64.const 0.20121253213486293 - f64.add - f64.mul - f64.const -0.3255658186224009 - f64.add - f64.mul - f64.const 0.16666666666666666 - f64.add - f64.mul - local.get $0 - local.get $0 - local.get $0 - local.get $0 - f64.const 0.07703815055590194 - f64.mul - f64.const -0.6882839716054533 - f64.add - f64.mul - f64.const 2.0209457602335057 - f64.add - f64.mul - f64.const -2.403394911734414 - f64.add - f64.mul - f64.const 1 - f64.add - f64.div - f64.mul - f64.add - return + loop $while-continue|1 + local.get $3 + local.get $4 + i64.gt_s + if + local.get $2 + local.get $7 + i64.ge_u + if (result i64) + local.get $5 + i32.const 1 + i32.add + local.set $5 + local.get $2 + local.get $7 + i64.sub + else + local.get $2 + end + i64.const 1 + i64.shl + local.set $2 + local.get $5 + i32.const 1 + i32.shl + local.set $5 + local.get $3 + i64.const 1 + i64.sub + local.set $3 + br $while-continue|1 + end + end + local.get $2 + local.get $7 + i64.ge_u + if + local.get $5 + i32.const 1 + i32.add + local.set $5 + local.get $2 + local.get $7 + i64.sub + local.set $2 + end + local.get $2 + i64.eqz + if + i64.const -60 + local.set $3 + else + local.get $3 + local.get $2 + i64.const 11 + i64.shl + i64.clz + local.tee $7 + i64.sub + local.set $3 + local.get $2 + local.get $7 + i64.shl + local.set $2 + end end - f64.const 0.5 - local.get $0 + local.get $1 f64.abs - f64.const 0.5 - f64.mul - f64.sub + local.set $1 + local.get $3 + i64.const 0 + i64.gt_s + if (result i64) + local.get $2 + i64.const 4503599627370496 + i64.sub + local.get $3 + i64.const 52 + i64.shl + i64.or + else + local.get $2 + i64.const 1 + local.get $3 + i64.sub + i64.shr_u + end + f64.reinterpret_i64 local.tee $0 - f64.sqrt - local.set $4 local.get $0 - local.get $0 - local.get $0 - local.get $0 - local.get $0 - local.get $0 - f64.const 3.479331075960212e-05 - f64.mul - f64.const 7.915349942898145e-04 - f64.add - f64.mul - f64.const -0.04005553450067941 - f64.add - f64.mul - f64.const 0.20121253213486293 - f64.add - f64.mul - f64.const -0.3255658186224009 - f64.add - f64.mul - f64.const 0.16666666666666666 f64.add - f64.mul - local.get $0 - local.get $0 - local.get $0 + local.set $8 local.get $0 - f64.const 0.07703815055590194 - f64.mul - f64.const -0.6882839716054533 - f64.add - f64.mul - f64.const 2.0209457602335057 - f64.add - f64.mul - f64.const -2.403394911734414 - f64.add - f64.mul - f64.const 1 - f64.add - f64.div - local.set $5 local.get $1 - i32.const 1072640819 - i32.ge_u - if (result f64) - f64.const 1.5707963267948966 - local.get $4 - local.get $4 - local.get $5 - f64.mul - f64.add - f64.const 2 - f64.mul - f64.const -6.123233995736766e-17 - f64.add - f64.sub + f64.sub + local.get $0 + local.get $3 + local.get $4 + i64.eq + if (result i32) + i32.const 1 else - f64.const 0.7853981633974483 - local.get $4 - local.get $4 - f64.add - local.get $5 - f64.mul - f64.const 6.123233995736766e-17 - local.get $0 - local.get $4 - i64.reinterpret_f64 - i64.const -4294967296 - i64.and - f64.reinterpret_i64 - local.tee $0 - local.get $0 - f64.mul - f64.sub + local.get $3 + i64.const 1 + i64.add local.get $4 - local.get $0 - f64.add - f64.div - f64.const 2 - f64.mul - f64.sub - f64.sub - f64.const 0.7853981633974483 - local.get $0 - local.get $0 - f64.add - f64.sub - f64.sub - f64.sub + i64.eq + if (result i32) + local.get $5 + i32.const 1 + i32.and + local.get $1 + local.get $8 + f64.eq + i32.and + local.get $1 + local.get $8 + f64.lt + i32.or + else + i32.const 0 + end end + select local.tee $0 f64.neg local.get $0 - local.get $3 - i32.const 0 - i32.lt_s + local.get $6 + i64.const 0 + i64.lt_s select ) - (func $~lib/math/NativeMathf.asin (param $0 f32) (result f32) - (local $1 i32) - (local $2 f64) - (local $3 f32) - local.get $0 - i32.reinterpret_f32 - i32.const 2147483647 - i32.and - local.tee $1 - i32.const 1065353216 - i32.ge_u + (func $~lib/math/NativeMathf.mod (param $0 f32) (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.get $1 + f32.abs + f32.const 1 + f32.eq if - local.get $1 - i32.const 1065353216 - i32.eq - if - local.get $0 - f32.const 1.5707963705062866 - f32.mul - f32.const 7.52316384526264e-37 - f32.add - return - end - f32.const 0 local.get $0 local.get $0 + f32.trunc f32.sub - f32.div + local.get $0 + f32.copysign return end local.get $1 - i32.const 1056964608 - i32.lt_u + i32.reinterpret_f32 + local.tee $6 + i32.const 23 + i32.shr_u + i32.const 255 + i32.and + local.set $7 + local.get $6 + i32.const 1 + i32.shl + local.tee $4 + i32.eqz + local.get $0 + i32.reinterpret_f32 + local.tee $3 + i32.const 23 + i32.shr_u + i32.const 255 + i32.and + local.tee $8 + i32.const 255 + i32.eq + i32.or + local.get $1 + local.get $1 + f32.ne + i32.or if - local.get $1 - i32.const 964689920 - i32.lt_u - local.get $1 - i32.const 8388608 - i32.ge_u - i32.and - if - local.get $0 - return - end - local.get $0 - local.get $0 - local.get $0 local.get $0 + local.get $1 f32.mul local.tee $0 local.get $0 - local.get $0 - f32.const -0.008656363002955914 - f32.mul - f32.const -0.04274342209100723 - f32.add - f32.mul - f32.const 0.16666586697101593 - f32.add - f32.mul - local.get $0 - f32.const -0.7066296339035034 - f32.mul - f32.const 1 - f32.add f32.div - f32.mul - f32.add return end - f64.const 1.5707963705062866 - f32.const 0.5 - local.get $0 - f32.abs - f32.const 0.5 - f32.mul - f32.sub - local.tee $3 - f64.promote_f32 - f64.sqrt - local.tee $2 - local.get $2 - local.get $3 - local.get $3 - local.get $3 - f32.const -0.008656363002955914 - f32.mul - f32.const -0.04274342209100723 - f32.add - f32.mul - f32.const 0.16666586697101593 - f32.add - f32.mul local.get $3 - f32.const -0.7066296339035034 - f32.mul - f32.const 1 - f32.add - f32.div - f64.promote_f32 - f64.mul - f64.add - f64.const 2 - f64.mul - f64.sub - f32.demote_f64 - local.get $0 - f32.copysign - ) - (func $std/math/test_asinh (param $0 f64) (param $1 f64) (param $2 f64) (result i32) - (local $3 i64) - (local $4 i64) - (local $5 f64) - local.get $0 - i64.reinterpret_f64 - local.tee $4 - i64.const 52 - i64.shr_u - i64.const 2047 - i64.and - local.set $3 + i32.const 1 + i32.shl + local.tee $2 local.get $4 - i64.const 9223372036854775807 - i64.and - f64.reinterpret_i64 - local.set $5 + i32.le_u + if + local.get $0 + local.get $2 + local.get $4 + i32.ne + f32.convert_i32_u + f32.mul + return + end local.get $3 - i64.const 1049 - i64.ge_u - if (result f64) - local.get $5 - call $~lib/math/NativeMath.log - f64.const 0.6931471805599453 - f64.add + i32.const -2147483648 + i32.and + local.set $5 + local.get $8 + if (result i32) + local.get $3 + i32.const 8388607 + i32.and + i32.const 8388608 + i32.or else local.get $3 - i64.const 1024 - i64.ge_u - if (result f64) - local.get $5 - local.get $5 - f64.add - f64.const 1 - local.get $5 - local.get $5 - f64.mul - f64.const 1 - f64.add - f64.sqrt - local.get $5 - f64.add - f64.div - f64.add - call $~lib/math/NativeMath.log - else - local.get $3 - i64.const 997 - i64.ge_u - if (result f64) - local.get $5 - local.get $5 - local.get $5 - f64.mul - local.tee $5 - local.get $5 - f64.const 1 - f64.add - f64.sqrt - f64.const 1 - f64.add - f64.div - f64.add - call $~lib/math/NativeMath.log1p - else - local.get $5 - end - end + i32.const 1 + local.get $8 + local.get $3 + i32.const 9 + i32.shl + i32.clz + i32.sub + local.tee $8 + i32.sub + i32.shl end - local.get $0 - f64.copysign - local.get $1 - local.get $2 - call $std/math/check + local.set $2 + local.get $7 if (result i32) - local.get $0 - call $~lib/bindings/dom/Math.asinh - local.get $1 - local.get $2 - call $std/math/check + local.get $6 + i32.const 8388607 + i32.and + i32.const 8388608 + i32.or else - i32.const 0 + local.get $6 + i32.const 1 + local.get $7 + local.get $6 + i32.const 9 + i32.shl + i32.clz + i32.sub + local.tee $7 + i32.sub + i32.shl end - ) - (func $std/math/test_asinhf (param $0 f32) (param $1 f32) (param $2 f32) (result i32) - (local $3 i32) - (local $4 f32) - local.get $0 - i32.reinterpret_f32 - i32.const 2147483647 - i32.and - local.tee $3 - f32.reinterpret_i32 - local.set $4 - local.get $3 - i32.const 1166016512 - i32.ge_u - if (result f32) - local.get $4 - call $~lib/math/NativeMathf.log - f32.const 0.6931471824645996 - f32.add - else - local.get $3 - i32.const 1073741824 - i32.ge_u - if (result f32) - local.get $4 - local.get $4 - f32.add - f32.const 1 - local.get $4 - local.get $4 - f32.mul - f32.const 1 - f32.add - f32.sqrt - local.get $4 - f32.add - f32.div - f32.add - call $~lib/math/NativeMathf.log - else + local.set $3 + loop $while-continue|0 + local.get $7 + local.get $8 + i32.lt_s + if + local.get $2 local.get $3 - i32.const 964689920 i32.ge_u - if (result f32) - local.get $4 - local.get $4 - local.get $4 - f32.mul - local.tee $4 - local.get $4 - f32.const 1 - f32.add - f32.sqrt - f32.const 1 - f32.add - f32.div - f32.add - call $~lib/math/NativeMathf.log1p + if (result i32) + local.get $2 + local.get $3 + i32.eq + if + local.get $0 + f32.const 0 + f32.mul + return + end + local.get $2 + local.get $3 + i32.sub else - local.get $4 + local.get $2 end + i32.const 1 + i32.shl + local.set $2 + local.get $8 + i32.const 1 + i32.sub + local.set $8 + br $while-continue|0 end end - local.get $0 - f32.copysign - local.get $1 local.get $2 - call $std/math/check + local.get $3 + i32.ge_u + if + local.get $2 + local.get $3 + i32.eq + if + local.get $0 + f32.const 0 + f32.mul + return + end + local.get $2 + local.get $3 + i32.sub + local.set $2 + end + local.get $8 + local.get $2 + i32.const 8 + i32.shl + i32.clz + local.tee $4 + i32.sub + local.set $3 + local.get $2 + local.get $4 + i32.shl + local.set $2 + local.get $3 + i32.const 0 + i32.gt_s + if (result i32) + local.get $2 + i32.const 8388608 + i32.sub + local.get $3 + i32.const 23 + i32.shl + i32.or + else + local.get $2 + i32.const 1 + local.get $3 + i32.sub + i32.shr_u + end + local.get $5 + i32.or + f32.reinterpret_i32 ) - (func $~lib/math/NativeMath.atan (param $0 f64) (result f64) + (func $~lib/math/NativeMath.sin (param $0 f64) (result f64) (local $1 f64) - (local $2 i32) + (local $2 f64) (local $3 i32) - (local $4 f64) - (local $5 f64) - local.get $0 - local.set $1 + (local $4 i32) + (local $5 i64) + (local $6 i32) + (local $7 f64) + (local $8 f64) + (local $9 f64) local.get $0 i64.reinterpret_f64 + local.tee $5 i64.const 32 i64.shr_u i32.wrap_i64 + local.tee $3 + i32.const 31 + i32.shr_u + local.set $6 + local.get $3 i32.const 2147483647 i32.and - local.tee $2 - i32.const 1141899264 - i32.ge_u + local.tee $3 + i32.const 1072243195 + i32.le_u if - local.get $0 - local.get $0 - f64.ne + local.get $3 + i32.const 1045430272 + i32.lt_u if local.get $0 return end - f64.const 1.5707963267948966 + local.get $0 + local.get $0 + local.get $0 + f64.mul + local.tee $1 + local.get $0 + f64.mul local.get $1 - f64.copysign + local.get $1 + local.get $1 + f64.const 2.7557313707070068e-06 + f64.mul + f64.const -1.984126982985795e-04 + f64.add + f64.mul + f64.const 0.00833333333332249 + f64.add + local.get $1 + local.get $1 + local.get $1 + f64.mul + f64.mul + local.get $1 + f64.const 1.58969099521155e-10 + f64.mul + f64.const -2.5050760253406863e-08 + f64.add + f64.mul + f64.add + f64.mul + f64.const -0.16666666666666632 + f64.add + f64.mul + f64.add return end - local.get $2 - i32.const 1071382528 - i32.lt_u + local.get $3 + i32.const 2146435072 + i32.ge_u if - local.get $2 - i32.const 1044381696 - i32.lt_u - if - local.get $0 - return - end - i32.const -1 - local.set $3 - else local.get $0 - f64.abs - local.set $0 - local.get $2 - i32.const 1072889856 + local.get $0 + f64.sub + return + end + block $~lib/math/rempio2|inlined.1 (result i32) + local.get $5 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const 2147483647 + i32.and + local.tee $4 + i32.const 1073928572 i32.lt_u - if (result f64) - local.get $2 - i32.const 1072037888 - i32.lt_u - if (result f64) - local.get $0 - local.get $0 - f64.add - f64.const -1 - f64.add - local.get $0 - f64.const 2 - f64.add - f64.div - else - i32.const 1 - local.set $3 - local.get $0 - f64.const -1 - f64.add - local.get $0 - f64.const 1 - f64.add - f64.div - end - else - local.get $2 - i32.const 1073971200 - i32.lt_u + if + i32.const 1 + local.set $3 + local.get $6 if (result f64) - i32.const 2 - local.set $3 local.get $0 - f64.const -1.5 - f64.add - local.get $0 - f64.const 1.5 - f64.mul - f64.const 1 + f64.const 1.5707963267341256 f64.add - f64.div - else - i32.const 3 + local.set $0 + i32.const -1 local.set $3 - f64.const -1 - local.get $0 - f64.div - end - end - local.set $0 - end - local.get $0 - local.get $0 - f64.mul - local.tee $5 - local.get $5 - f64.mul - local.set $4 - local.get $0 - local.get $5 - local.get $4 - local.get $4 - local.get $4 - local.get $4 - local.get $4 - f64.const 0.016285820115365782 - f64.mul - f64.const 0.049768779946159324 - f64.add - f64.mul - f64.const 0.06661073137387531 - f64.add - f64.mul - f64.const 0.09090887133436507 - f64.add - f64.mul - f64.const 0.14285714272503466 - f64.add - f64.mul - f64.const 0.3333333333333293 - f64.add - f64.mul - local.get $4 - local.get $4 - local.get $4 - local.get $4 - local.get $4 - f64.const -0.036531572744216916 - f64.mul - f64.const -0.058335701337905735 - f64.add - f64.mul - f64.const -0.0769187620504483 - f64.add - f64.mul - f64.const -0.11111110405462356 - f64.add - f64.mul - f64.const -0.19999999999876483 - f64.add - f64.mul - f64.add - f64.mul - local.set $4 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $0 - local.get $4 - f64.sub - return - end - block $break|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $3 - br_table $case0|0 $case1|0 $case2|0 $case3|0 $case4|0 - end - f64.const 0.4636476090008061 - local.get $4 - f64.const -2.2698777452961687e-17 - f64.add - local.get $0 - f64.sub - f64.sub - local.set $0 - br $break|0 - end - f64.const 0.7853981633974483 - local.get $4 - f64.const -3.061616997868383e-17 - f64.add + local.get $4 + i32.const 1073291771 + i32.ne + if (result f64) local.get $0 + local.get $0 + f64.const 6.077100506506192e-11 + f64.add + local.tee $0 f64.sub - f64.sub + f64.const 6.077100506506192e-11 + f64.add + else + local.get $0 + f64.const 6.077100506303966e-11 + f64.add + local.tee $1 + f64.const 2.0222662487959506e-21 + f64.add local.set $0 - br $break|0 + local.get $1 + local.get $0 + f64.sub + f64.const 2.0222662487959506e-21 + f64.add end - f64.const 0.982793723247329 - local.get $4 - f64.const -1.3903311031230998e-17 - f64.add + else local.get $0 - f64.sub - f64.sub + f64.const -1.5707963267341256 + f64.add local.set $0 - br $break|0 + local.get $4 + i32.const 1073291771 + i32.ne + if (result f64) + local.get $0 + local.get $0 + f64.const -6.077100506506192e-11 + f64.add + local.tee $0 + f64.sub + f64.const -6.077100506506192e-11 + f64.add + else + local.get $0 + f64.const -6.077100506303966e-11 + f64.add + local.tee $1 + f64.const -2.0222662487959506e-21 + f64.add + local.set $0 + local.get $1 + local.get $0 + f64.sub + f64.const -2.0222662487959506e-21 + f64.add + end end - f64.const 1.5707963267948966 - local.get $4 - f64.const -6.123233995736766e-17 - f64.add - local.get $0 - f64.sub - f64.sub - local.set $0 - br $break|0 - end - unreachable - end - local.get $0 - local.get $1 - f64.copysign - ) - (func $~lib/math/NativeMathf.atan (param $0 f32) (result f32) - (local $1 f32) - (local $2 i32) - (local $3 i32) - (local $4 f32) - (local $5 f32) - local.get $0 - local.set $1 - local.get $0 - i32.reinterpret_f32 - i32.const 2147483647 - i32.and - local.tee $2 - i32.const 1283457024 - i32.ge_u - if - local.get $0 - local.get $0 - f32.ne - if local.get $0 - return + global.set $~lib/math/rempio2_y0 + global.set $~lib/math/rempio2_y1 + local.get $3 + br $~lib/math/rempio2|inlined.1 end - f32.const 1.570796251296997 - local.get $1 - f32.copysign - return - end - local.get $2 - i32.const 1054867456 - i32.lt_u - if - local.get $2 - i32.const 964689920 + local.get $4 + i32.const 1094263291 i32.lt_u if + local.get $4 + i32.const 20 + i32.shr_u + local.tee $3 local.get $0 - return - end - i32.const -1 - local.set $3 - else - local.get $0 - f32.abs - local.set $0 - local.get $2 - i32.const 1066926080 - i32.lt_u - if (result f32) - local.get $2 - i32.const 1060110336 - i32.lt_u - if (result f32) - local.get $0 - local.get $0 - f32.add - f32.const -1 - f32.add - local.get $0 - f32.const 2 - f32.add - f32.div - else - i32.const 1 - local.set $3 - local.get $0 - f32.const -1 - f32.add - local.get $0 - f32.const 1 - f32.add - f32.div - end - else - local.get $2 - i32.const 1075576832 - i32.lt_u - if (result f32) - i32.const 2 - local.set $3 + local.get $0 + f64.const 0.6366197723675814 + f64.mul + f64.nearest + local.tee $7 + f64.const 1.5707963267341256 + f64.mul + f64.sub + local.tee $0 + local.get $7 + f64.const 6.077100506506192e-11 + f64.mul + local.tee $2 + f64.sub + local.tee $1 + i64.reinterpret_f64 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const 20 + i32.shr_u + i32.const 2047 + i32.and + i32.sub + i32.const 16 + i32.gt_u + if + local.get $7 + f64.const 2.0222662487959506e-21 + f64.mul local.get $0 - f32.const -1.5 - f32.add local.get $0 - f32.const 1.5 - f32.mul - f32.const 1 - f32.add - f32.div - else - i32.const 3 - local.set $3 - f32.const -1 + local.get $7 + f64.const 6.077100506303966e-11 + f64.mul + local.tee $1 + f64.sub + local.tee $0 + f64.sub + local.get $1 + f64.sub + f64.sub + local.set $2 + local.get $3 local.get $0 - f32.div - end - end - local.set $0 - end - local.get $0 - local.get $0 - f32.mul - local.tee $5 - local.get $5 - f32.mul - local.set $4 - local.get $0 - local.get $5 - local.get $4 - local.get $4 - f32.const 0.06168760731816292 - f32.mul - f32.const 0.14253635704517365 - f32.add - f32.mul - f32.const 0.333333283662796 - f32.add - f32.mul - local.get $4 - local.get $4 - f32.const -0.106480173766613 - f32.mul - f32.const -0.19999158382415771 - f32.add - f32.mul - f32.add - f32.mul - local.set $4 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $0 - local.get $4 - f32.sub - return - end - block $break|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $3 - br_table $case0|0 $case1|0 $case2|0 $case3|0 $case4|0 - end - f32.const 0.46364760398864746 - local.get $4 - f32.const -5.01215824399992e-09 - f32.add - local.get $0 - f32.sub - f32.sub - local.set $0 - br $break|0 - end - f32.const 0.7853981256484985 - local.get $4 - f32.const -3.774894707930798e-08 - f32.add + local.get $2 + f64.sub + local.tee $1 + i64.reinterpret_f64 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const 20 + i32.shr_u + i32.const 2047 + i32.and + i32.sub + i32.const 49 + i32.gt_u + if + local.get $7 + f64.const 8.4784276603689e-32 + f64.mul local.get $0 - f32.sub - f32.sub - local.set $0 - br $break|0 + local.get $0 + local.get $7 + f64.const 2.0222662487111665e-21 + f64.mul + local.tee $1 + f64.sub + local.tee $0 + f64.sub + local.get $1 + f64.sub + f64.sub + local.set $2 + local.get $0 + local.get $2 + f64.sub + local.set $1 end - f32.const 0.9827936887741089 - local.get $4 - f32.const -3.447321716976148e-08 - f32.add - local.get $0 - f32.sub - f32.sub - local.set $0 - br $break|0 end - f32.const 1.570796251296997 - local.get $4 - f32.const -7.549789415861596e-08 - f32.add + local.get $1 + global.set $~lib/math/rempio2_y0 local.get $0 - f32.sub - f32.sub - local.set $0 - br $break|0 - end - unreachable - end - local.get $0 - local.get $1 - f32.copysign - ) - (func $std/math/test_atanh (param $0 f64) (param $1 f64) (param $2 f64) (result i32) - (local $3 i64) - (local $4 f64) - (local $5 f64) - local.get $0 - f64.abs - local.set $5 - local.get $0 - i64.reinterpret_f64 - i64.const 52 - i64.shr_u - i64.const 2047 - i64.and - local.tee $3 - i64.const 1022 - i64.lt_u - if (result f64) - local.get $3 - i64.const 991 - i64.ge_u - if (result f64) - local.get $5 - local.get $5 - f64.add - local.tee $4 - local.get $4 - local.get $5 - f64.mul - f64.const 1 - local.get $5 + local.get $1 f64.sub - f64.div - f64.add - call $~lib/math/NativeMath.log1p - f64.const 0.5 - f64.mul - else - local.get $5 + local.get $2 + f64.sub + global.set $~lib/math/rempio2_y1 + local.get $7 + i32.trunc_sat_f64_s + br $~lib/math/rempio2|inlined.1 end - else - local.get $5 - f64.const 1 + i32.const 0 local.get $5 - f64.sub - f64.div - f64.const 2 + call $~lib/math/pio2_large_quot + local.tee $3 + i32.sub + local.get $3 + local.get $6 + select + end + local.set $3 + global.get $~lib/math/rempio2_y0 + local.set $2 + global.get $~lib/math/rempio2_y1 + local.set $7 + local.get $3 + i32.const 1 + i32.and + if (result f64) + local.get $2 + local.get $2 f64.mul - call $~lib/math/NativeMath.log1p + local.tee $0 + local.get $0 + f64.mul + local.set $1 + f64.const 1 + local.get $0 f64.const 0.5 f64.mul - end - local.get $0 - f64.copysign - local.get $1 - local.get $2 - call $std/math/check - if (result i32) + local.tee $8 + f64.sub + local.tee $9 + f64.const 1 + local.get $9 + f64.sub + local.get $8 + f64.sub local.get $0 - call $~lib/bindings/dom/Math.atanh + local.get $0 + local.get $0 + local.get $0 + f64.const 2.480158728947673e-05 + f64.mul + f64.const -0.001388888888887411 + f64.add + f64.mul + f64.const 0.0416666666666666 + f64.add + f64.mul + local.get $1 local.get $1 + f64.mul + local.get $0 + local.get $0 + f64.const -1.1359647557788195e-11 + f64.mul + f64.const 2.087572321298175e-09 + f64.add + f64.mul + f64.const -2.7557314351390663e-07 + f64.add + f64.mul + f64.add + f64.mul local.get $2 - call $std/math/check + local.get $7 + f64.mul + f64.sub + f64.add + f64.add else - i32.const 0 + local.get $2 + local.get $2 + f64.mul + local.tee $0 + local.get $2 + f64.mul + local.set $1 + local.get $2 + local.get $0 + local.get $7 + f64.const 0.5 + f64.mul + local.get $1 + local.get $0 + local.get $0 + f64.const 2.7557313707070068e-06 + f64.mul + f64.const -1.984126982985795e-04 + f64.add + f64.mul + f64.const 0.00833333333332249 + f64.add + local.get $0 + local.get $0 + local.get $0 + f64.mul + f64.mul + local.get $0 + f64.const 1.58969099521155e-10 + f64.mul + f64.const -2.5050760253406863e-08 + f64.add + f64.mul + f64.add + f64.mul + f64.sub + f64.mul + local.get $7 + f64.sub + local.get $1 + f64.const -0.16666666666666632 + f64.mul + f64.sub + f64.sub end - ) - (func $std/math/test_atanhf (param $0 f32) (param $1 f32) (param $2 f32) (result i32) - (local $3 f32) - (local $4 i32) + local.tee $0 + f64.neg local.get $0 - f32.abs - local.set $3 + local.get $3 + i32.const 2 + i32.and + select + ) + (func $~lib/math/NativeMath.tan (param $0 f64) (result f64) + (local $1 f64) + (local $2 i32) + (local $3 i64) + (local $4 f64) + (local $5 f64) + (local $6 i32) + (local $7 i32) local.get $0 - i32.reinterpret_f32 - local.tee $4 - i32.const 1056964608 - i32.lt_u - if (result f32) - local.get $4 - i32.const 796917760 - i32.ge_u - if (result f32) - local.get $3 - local.get $3 - f32.add - local.get $3 - f32.const 1 - local.get $3 - f32.sub - f32.div - f32.const 1 - f32.add - f32.mul - call $~lib/math/NativeMathf.log1p - f32.const 0.5 - f32.mul - else - local.get $3 + i64.reinterpret_f64 + local.tee $3 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.tee $2 + i32.const 31 + i32.shr_u + local.set $6 + local.get $2 + i32.const 2147483647 + i32.and + local.tee $2 + i32.const 1072243195 + i32.le_u + if + local.get $2 + i32.const 1044381696 + i32.lt_u + if + local.get $0 + return end - else - local.get $3 - f32.const 1 - local.get $3 - f32.sub - f32.div - f32.const 2 - f32.mul - call $~lib/math/NativeMathf.log1p - f32.const 0.5 - f32.mul + local.get $0 + f64.const 0 + i32.const 1 + call $~lib/math/tan_kern + return end - local.get $0 - f32.copysign - local.get $1 local.get $2 - call $std/math/check - ) - (func $std/math/test_atan2 (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) - (local $4 i32) - (local $5 i64) - (local $6 i32) - (local $7 i64) - (local $8 i32) - (local $9 i32) - (local $10 f64) - block $__inlined_func$~lib/math/NativeMath.atan2 (result f64) - local.get $1 - local.get $0 - f64.add - local.get $0 + i32.const 2146435072 + i32.ge_u + if local.get $0 - f64.ne - local.get $1 - local.get $1 - f64.ne - i32.or - br_if $__inlined_func$~lib/math/NativeMath.atan2 - drop local.get $0 - i64.reinterpret_f64 - local.tee $5 - i64.const 32 - i64.shr_u - i32.wrap_i64 - local.set $9 - local.get $1 - i64.reinterpret_f64 - local.tee $7 + f64.sub + return + end + block $~lib/math/rempio2|inlined.2 + local.get $3 i64.const 32 i64.shr_u i32.wrap_i64 - local.set $8 - local.get $7 - i32.wrap_i64 - local.tee $6 - local.get $8 - i32.const 1072693248 - i32.sub - i32.or - i32.eqz - if - local.get $0 - call $~lib/math/NativeMath.atan - br $__inlined_func$~lib/math/NativeMath.atan2 - end - local.get $8 - i32.const 30 - i32.shr_u - i32.const 2 - i32.and - local.get $9 - i32.const 31 - i32.shr_u - i32.or - local.set $4 - local.get $9 i32.const 2147483647 i32.and - local.tee $9 - local.get $5 - i32.wrap_i64 - i32.or - i32.eqz + local.tee $7 + i32.const 1073928572 + i32.lt_u if - block $break|0 - block $case3|0 - block $case2|0 - block $case0|0 - local.get $4 - br_table $case0|0 $case0|0 $case2|0 $case3|0 $break|0 - end - local.get $0 - br $__inlined_func$~lib/math/NativeMath.atan2 - end - f64.const 3.141592653589793 - br $__inlined_func$~lib/math/NativeMath.atan2 - end - f64.const -3.141592653589793 - br $__inlined_func$~lib/math/NativeMath.atan2 - end - end - block $folding-inner0 - local.get $8 - i32.const 2147483647 - i32.and - local.tee $8 + i32.const 1 + local.set $2 local.get $6 - i32.or - i32.eqz - br_if $folding-inner0 - local.get $8 - i32.const 2146435072 - i32.eq - if - local.get $9 - i32.const 2146435072 - i32.eq + if (result f64) + local.get $0 + f64.const 1.5707963267341256 + f64.add + local.set $0 + i32.const -1 + local.set $2 + local.get $7 + i32.const 1073291771 + i32.ne if (result f64) - f64.const 2.356194490192345 - f64.const 0.7853981633974483 - local.get $4 - i32.const 2 - i32.and - select - local.tee $10 - f64.neg - local.get $10 - local.get $4 - i32.const 1 - i32.and - select + local.get $0 + local.get $0 + f64.const 6.077100506506192e-11 + f64.add + local.tee $0 + f64.sub + f64.const 6.077100506506192e-11 + f64.add else - f64.const 3.141592653589793 - f64.const 0 - local.get $4 - i32.const 2 - i32.and - select - local.tee $10 - f64.neg - local.get $10 - local.get $4 - i32.const 1 - i32.and - select + local.get $0 + f64.const 6.077100506303966e-11 + f64.add + local.tee $1 + f64.const 2.0222662487959506e-21 + f64.add + local.set $0 + local.get $1 + local.get $0 + f64.sub + f64.const 2.0222662487959506e-21 + f64.add + end + else + local.get $0 + f64.const -1.5707963267341256 + f64.add + local.set $0 + local.get $7 + i32.const 1073291771 + i32.ne + if (result f64) + local.get $0 + local.get $0 + f64.const -6.077100506506192e-11 + f64.add + local.tee $0 + f64.sub + f64.const -6.077100506506192e-11 + f64.add + else + local.get $0 + f64.const -6.077100506303966e-11 + f64.add + local.tee $1 + f64.const -2.0222662487959506e-21 + f64.add + local.set $0 + local.get $1 + local.get $0 + f64.sub + f64.const -2.0222662487959506e-21 + f64.add end - br $__inlined_func$~lib/math/NativeMath.atan2 end - local.get $9 - i32.const 2146435072 - i32.eq - local.get $8 - i32.const 67108864 - i32.add - local.get $9 - i32.lt_u - i32.or - br_if $folding-inner0 - local.get $9 - i32.const 67108864 - i32.add - local.get $8 - i32.lt_u - i32.const 0 + local.get $0 + global.set $~lib/math/rempio2_y0 + global.set $~lib/math/rempio2_y1 + br $~lib/math/rempio2|inlined.2 + end + local.get $7 + i32.const 1094263291 + i32.lt_u + if + local.get $7 + i32.const 20 + i32.shr_u + local.tee $2 + local.get $0 + local.get $0 + f64.const 0.6366197723675814 + f64.mul + f64.nearest + local.tee $4 + f64.const 1.5707963267341256 + f64.mul + f64.sub + local.tee $0 local.get $4 - i32.const 2 + f64.const 6.077100506506192e-11 + f64.mul + local.tee $5 + f64.sub + local.tee $1 + i64.reinterpret_f64 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const 20 + i32.shr_u + i32.const 2047 i32.and - select - if (result f64) - f64.const 0 - else + i32.sub + i32.const 16 + i32.gt_u + if + local.get $4 + f64.const 2.0222662487959506e-21 + f64.mul local.get $0 + local.get $0 + local.get $4 + f64.const 6.077100506303966e-11 + f64.mul + local.tee $1 + f64.sub + local.tee $0 + f64.sub local.get $1 - f64.div - f64.abs - call $~lib/math/NativeMath.atan - end - local.set $10 - block $break|1 - block $case3|1 - block $case2|1 - block $case1|1 - block $case0|1 - local.get $4 - br_table $case0|1 $case1|1 $case2|1 $case3|1 $break|1 - end - local.get $10 - br $__inlined_func$~lib/math/NativeMath.atan2 - end - local.get $10 - f64.neg - br $__inlined_func$~lib/math/NativeMath.atan2 - end - f64.const 3.141592653589793 - local.get $10 - f64.const -1.2246467991473532e-16 - f64.add + f64.sub + f64.sub + local.set $5 + local.get $2 + local.get $0 + local.get $5 + f64.sub + local.tee $1 + i64.reinterpret_f64 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const 20 + i32.shr_u + i32.const 2047 + i32.and + i32.sub + i32.const 49 + i32.gt_u + if + local.get $4 + f64.const 8.4784276603689e-32 + f64.mul + local.get $0 + local.get $0 + local.get $4 + f64.const 2.0222662487111665e-21 + f64.mul + local.tee $1 f64.sub - br $__inlined_func$~lib/math/NativeMath.atan2 + local.tee $0 + f64.sub + local.get $1 + f64.sub + f64.sub + local.set $5 + local.get $0 + local.get $5 + f64.sub + local.set $1 end - local.get $10 - f64.const -1.2246467991473532e-16 - f64.add - f64.const -3.141592653589793 - f64.add - br $__inlined_func$~lib/math/NativeMath.atan2 end - unreachable + local.get $1 + global.set $~lib/math/rempio2_y0 + local.get $0 + local.get $1 + f64.sub + local.get $5 + f64.sub + global.set $~lib/math/rempio2_y1 + local.get $4 + i32.trunc_sat_f64_s + local.set $2 + br $~lib/math/rempio2|inlined.2 end - f64.const -1.5707963267948966 - f64.const 1.5707963267948966 - local.get $4 - i32.const 1 - i32.and + i32.const 0 + local.get $3 + call $~lib/math/pio2_large_quot + local.tee $2 + i32.sub + local.get $2 + local.get $6 select + local.set $2 end + global.get $~lib/math/rempio2_y0 + global.get $~lib/math/rempio2_y1 + i32.const 1 local.get $2 - local.get $3 + i32.const 1 + i32.and + i32.const 1 + i32.shl + i32.sub + call $~lib/math/tan_kern + ) + (func $std/math/test_min (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + local.get $0 + local.get $1 + f64.min + local.get $2 + f64.const 0 call $std/math/check if (result i32) local.get $0 local.get $1 - call $~lib/bindings/dom/Math.atan2 + call $~lib/bindings/dom/Math.min local.get $2 - local.get $3 + f64.const 0 call $std/math/check else i32.const 0 end ) - (func $~lib/math/NativeMathf.atan2 (param $0 f32) (param $1 f32) (result f32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - local.get $0 + (func $std/math/test_max (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 - f32.ne - local.get $1 - local.get $1 - f32.ne - i32.or - if - local.get $1 - local.get $0 - f32.add - return - end local.get $1 - i32.reinterpret_f32 - local.tee $3 - i32.const 1065353216 - i32.eq - if + f64.max + local.get $2 + f64.const 0 + call $std/math/check + if (result i32) local.get $0 - call $~lib/math/NativeMathf.atan - return + local.get $1 + call $~lib/bindings/dom/Math.max + local.get $2 + f64.const 0 + call $std/math/check + else + i32.const 0 end - local.get $3 - i32.const 30 - i32.shr_u - i32.const 2 - i32.and + ) + (func $~lib/math/NativeMathf.sin (param $0 f32) (result f32) + (local $1 f64) + (local $2 f64) + (local $3 i32) + (local $4 f64) + (local $5 i64) + (local $6 i32) + (local $7 i32) + (local $8 i64) + (local $9 i64) local.get $0 i32.reinterpret_f32 - local.tee $4 + local.tee $3 i32.const 31 i32.shr_u - i32.or - local.set $2 - local.get $4 - i32.const 2147483647 - i32.and - local.tee $4 - i32.eqz - if - block $break|0 - block $case3|0 - block $case2|0 - block $case1|0 - local.get $2 - br_table $case1|0 $case1|0 $case2|0 $case3|0 $break|0 - end - local.get $0 - return - end - f32.const 3.1415927410125732 - return - end - f32.const -3.1415927410125732 - return - end - end + local.set $6 block $folding-inner0 local.get $3 i32.const 2147483647 i32.and local.tee $3 - i32.eqz - br_if $folding-inner0 - local.get $3 - i32.const 2139095040 - i32.eq + i32.const 1061752794 + i32.le_u if - local.get $4 - i32.const 2139095040 - i32.eq - if (result f32) - f32.const 2.356194496154785 - f32.const 0.7853981852531433 - local.get $2 - i32.const 2 - i32.and - select - local.tee $0 - f32.neg - local.get $0 - local.get $2 - i32.const 1 - i32.and - select - else - f32.const 3.1415927410125732 - f32.const 0 - local.get $2 - i32.const 2 - i32.and - select - local.tee $0 - f32.neg - local.get $0 - local.get $2 - i32.const 1 - i32.and - select - end - return - end - local.get $4 - i32.const 2139095040 - i32.eq - local.get $3 - i32.const 218103808 - i32.add - local.get $4 - i32.lt_u - i32.or - br_if $folding-inner0 - local.get $4 - i32.const 218103808 - i32.add - local.get $3 - i32.lt_u - i32.const 0 - local.get $2 - i32.const 2 - i32.and - select - if (result f32) - f32.const 0 - else - local.get $0 - local.get $1 - f32.div - f32.abs - call $~lib/math/NativeMathf.atan - end - local.set $0 - block $break|1 - block $case3|1 - block $case2|1 - block $case1|1 - block $case0|1 - local.get $2 - br_table $case0|1 $case1|1 $case2|1 $case3|1 $break|1 - end - local.get $0 - return - end - local.get $0 - f32.neg - return - end - f32.const 3.1415927410125732 + local.get $3 + i32.const 964689920 + i32.lt_u + if local.get $0 - f32.const 8.742277657347586e-08 - f32.add - f32.sub return end local.get $0 - f32.const 8.742277657347586e-08 - f32.add - f32.const -3.1415927410125732 - f32.add - return + f64.promote_f32 + local.tee $2 + local.get $2 + f64.mul + local.tee $1 + local.get $2 + f64.mul + local.set $4 + br $folding-inner0 end - unreachable - end - f32.const -1.5707963705062866 - f32.const 1.5707963705062866 - local.get $2 - i32.const 1 - i32.and - select - ) - (func $std/math/test_cbrt (param $0 f64) (param $1 f64) (param $2 f64) (result i32) - (local $3 f64) - (local $4 i32) - (local $5 i64) - (local $6 f64) - local.get $0 - local.get $0 - f64.add - local.set $3 - block $__inlined_func$~lib/math/NativeMath.cbrt$18 + local.get $3 + i32.const 1081824209 + i32.le_u + if + local.get $3 + i32.const 1075235811 + i32.le_u + if + local.get $6 + if (result f32) + local.get $0 + f64.promote_f32 + f64.const 1.5707963267948966 + f64.add + local.tee $1 + local.get $1 + f64.mul + local.tee $1 + local.get $1 + f64.mul + local.set $2 + local.get $1 + f64.const -0.499999997251031 + f64.mul + f64.const 1 + f64.add + local.get $2 + f64.const 0.04166662332373906 + f64.mul + f64.add + local.get $2 + local.get $1 + f64.mul + local.get $1 + f64.const 2.439044879627741e-05 + f64.mul + f64.const -0.001388676377460993 + f64.add + f64.mul + f64.add + f32.demote_f64 + f32.neg + else + local.get $0 + f64.promote_f32 + f64.const -1.5707963267948966 + f64.add + local.tee $1 + local.get $1 + f64.mul + local.tee $1 + local.get $1 + f64.mul + local.set $2 + local.get $1 + f64.const -0.499999997251031 + f64.mul + f64.const 1 + f64.add + local.get $2 + f64.const 0.04166662332373906 + f64.mul + f64.add + local.get $2 + local.get $1 + f64.mul + local.get $1 + f64.const 2.439044879627741e-05 + f64.mul + f64.const -0.001388676377460993 + f64.add + f64.mul + f64.add + f32.demote_f64 + end + return + end + local.get $0 + f64.promote_f32 + local.tee $1 + f64.const 3.141592653589793 + f64.add + local.get $1 + f64.const -3.141592653589793 + f64.add + local.get $6 + select + f64.neg + local.tee $2 + local.get $2 + f64.mul + local.tee $1 + local.get $2 + f64.mul + local.set $4 + br $folding-inner0 + end + local.get $3 + i32.const 1088565717 + i32.le_u + if + local.get $3 + i32.const 1085271519 + i32.le_u + if + local.get $6 + if (result f32) + local.get $0 + f64.promote_f32 + f64.const 4.71238898038469 + f64.add + local.tee $1 + local.get $1 + f64.mul + local.tee $1 + local.get $1 + f64.mul + local.set $2 + local.get $1 + f64.const -0.499999997251031 + f64.mul + f64.const 1 + f64.add + local.get $2 + f64.const 0.04166662332373906 + f64.mul + f64.add + local.get $2 + local.get $1 + f64.mul + local.get $1 + f64.const 2.439044879627741e-05 + f64.mul + f64.const -0.001388676377460993 + f64.add + f64.mul + f64.add + f32.demote_f64 + else + local.get $0 + f64.promote_f32 + f64.const -4.71238898038469 + f64.add + local.tee $1 + local.get $1 + f64.mul + local.tee $1 + local.get $1 + f64.mul + local.set $2 + local.get $1 + f64.const -0.499999997251031 + f64.mul + f64.const 1 + f64.add + local.get $2 + f64.const 0.04166662332373906 + f64.mul + f64.add + local.get $2 + local.get $1 + f64.mul + local.get $1 + f64.const 2.439044879627741e-05 + f64.mul + f64.const -0.001388676377460993 + f64.add + f64.mul + f64.add + f32.demote_f64 + f32.neg + end + return + end + local.get $0 + f64.promote_f32 + local.tee $1 + f64.const 6.283185307179586 + f64.add + local.get $1 + f64.const -6.283185307179586 + f64.add + local.get $6 + select + local.tee $2 + local.get $2 + f64.mul + local.tee $1 + local.get $2 + f64.mul + local.set $4 + br $folding-inner0 + end + local.get $3 + i32.const 2139095040 + i32.ge_u + if + local.get $0 + local.get $0 + f32.sub + return + end + block $~lib/math/rempio2f|inlined.1 (result i32) + local.get $3 + i32.const 1305022427 + i32.lt_u + if + local.get $0 + f64.promote_f32 + local.tee $1 + f64.const 0.6366197723675814 + f64.mul + f64.nearest + local.set $2 + local.get $1 + local.get $2 + f64.const 1.5707963109016418 + f64.mul + f64.sub + local.get $2 + f64.const 1.5893254773528196e-08 + f64.mul + f64.sub + global.set $~lib/math/rempio2f_y + local.get $2 + i32.trunc_sat_f64_s + br $~lib/math/rempio2f|inlined.1 + end + local.get $3 + i32.const 23 + i32.shr_s + i32.const 152 + i32.sub + local.tee $7 + i32.const 63 + i32.and + i64.extend_i32_s + local.set $8 + local.get $7 + i32.const 6 + i32.shr_s + i32.const 3 + i32.shl + i32.const 5632 + i32.add + local.tee $7 + i64.load offset=8 + local.set $5 + f64.const 8.515303950216386e-20 + local.get $0 + f64.promote_f32 + f64.copysign + local.get $3 + i32.const 8388607 + i32.and + i32.const 8388608 + i32.or + i64.extend_i32_s + local.tee $9 + local.get $7 + i64.load + local.get $8 + i64.shl + local.get $5 + i64.const 64 + local.get $8 + i64.sub + i64.shr_u + i64.or + i64.mul + local.get $8 + i64.const 32 + i64.gt_u + if (result i64) + local.get $5 + local.get $8 + i64.const 32 + i64.sub + i64.shl + local.get $7 + i64.load offset=16 + i64.const 96 + local.get $8 + i64.sub + i64.shr_u + i64.or + else + local.get $5 + i64.const 32 + local.get $8 + i64.sub + i64.shr_u + end + local.get $9 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.tee $5 + i64.const 2 + i64.shl + local.tee $8 + f64.convert_i64_s + f64.mul + global.set $~lib/math/rempio2f_y + i32.const 0 + local.get $5 + i64.const 62 + i64.shr_u + local.get $8 + i64.const 63 + i64.shr_u + i64.add + i32.wrap_i64 + local.tee $3 + i32.sub + local.get $3 + local.get $6 + select + end + local.set $3 + global.get $~lib/math/rempio2f_y + local.set $1 + local.get $3 + i32.const 1 + i32.and + if (result f32) + local.get $1 + local.get $1 + f64.mul + local.tee $1 + local.get $1 + f64.mul + local.set $2 + local.get $1 + f64.const -0.499999997251031 + f64.mul + f64.const 1 + f64.add + local.get $2 + f64.const 0.04166662332373906 + f64.mul + f64.add + local.get $2 + local.get $1 + f64.mul + local.get $1 + f64.const 2.439044879627741e-05 + f64.mul + f64.const -0.001388676377460993 + f64.add + f64.mul + f64.add + f32.demote_f64 + else + local.get $1 + local.get $1 + local.get $1 + f64.mul + local.tee $2 + local.get $1 + f64.mul + local.tee $1 + local.get $2 + f64.const 0.008333329385889463 + f64.mul + f64.const -0.16666666641626524 + f64.add + f64.mul + f64.add + local.get $1 + local.get $2 + local.get $2 + f64.mul + f64.mul + local.get $2 + f64.const 2.718311493989822e-06 + f64.mul + f64.const -1.9839334836096632e-04 + f64.add + f64.mul + f64.add + f32.demote_f64 + end + local.tee $0 + f32.neg + local.get $0 + local.get $3 + i32.const 2 + i32.and + select + return + end + local.get $2 + local.get $4 + local.get $1 + f64.const 0.008333329385889463 + f64.mul + f64.const -0.16666666641626524 + f64.add + f64.mul + f64.add + local.get $4 + local.get $1 + local.get $1 + f64.mul + f64.mul + local.get $1 + f64.const 2.718311493989822e-06 + f64.mul + f64.const -1.9839334836096632e-04 + f64.add + f64.mul + f64.add + f32.demote_f64 + ) + (func $~lib/math/NativeMathf.cos (param $0 f32) (result f32) + (local $1 f64) + (local $2 f64) + (local $3 i32) + (local $4 i64) + (local $5 i32) + (local $6 f64) + (local $7 i32) + (local $8 i64) + (local $9 i64) + local.get $0 + i32.reinterpret_f32 + local.tee $3 + i32.const 31 + i32.shr_u + local.set $5 + block $folding-inner0 + local.get $3 + i32.const 2147483647 + i32.and + local.tee $3 + i32.const 1061752794 + i32.le_u + if + local.get $3 + i32.const 964689920 + i32.lt_u + if + f32.const 1 + return + end + local.get $0 + f64.promote_f32 + local.tee $1 + local.get $1 + f64.mul + local.tee $1 + local.get $1 + f64.mul + local.set $2 + br $folding-inner0 + end + local.get $3 + i32.const 1081824209 + i32.le_u + if + local.get $3 + i32.const 1075235811 + i32.gt_u + if + local.get $0 + f64.promote_f32 + local.tee $1 + f64.const 3.141592653589793 + f64.add + local.get $1 + f64.const -3.141592653589793 + f64.add + local.get $5 + select + local.tee $1 + local.get $1 + f64.mul + local.tee $1 + local.get $1 + f64.mul + local.set $2 + local.get $1 + f64.const -0.499999997251031 + f64.mul + f64.const 1 + f64.add + local.get $2 + f64.const 0.04166662332373906 + f64.mul + f64.add + local.get $2 + local.get $1 + f64.mul + local.get $1 + f64.const 2.439044879627741e-05 + f64.mul + f64.const -0.001388676377460993 + f64.add + f64.mul + f64.add + f32.demote_f64 + f32.neg + return + else + local.get $5 + if (result f64) + local.get $0 + f64.promote_f32 + f64.const 1.5707963267948966 + f64.add + local.tee $2 + local.get $2 + f64.mul + local.tee $1 + local.get $2 + f64.mul + else + f64.const 1.5707963267948966 + local.get $0 + f64.promote_f32 + f64.sub + local.tee $2 + local.get $2 + f64.mul + local.tee $1 + local.get $2 + f64.mul + end + local.set $6 + local.get $2 + local.get $6 + local.get $1 + f64.const 0.008333329385889463 + f64.mul + f64.const -0.16666666641626524 + f64.add + f64.mul + f64.add + local.get $6 + local.get $1 + local.get $1 + f64.mul + f64.mul + local.get $1 + f64.const 2.718311493989822e-06 + f64.mul + f64.const -1.9839334836096632e-04 + f64.add + f64.mul + f64.add + f32.demote_f64 + return + end + unreachable + end + local.get $3 + i32.const 1088565717 + i32.le_u + if + local.get $3 + i32.const 1085271519 + i32.gt_u + if + local.get $0 + f64.promote_f32 + local.tee $1 + f64.const 6.283185307179586 + f64.add + local.get $1 + f64.const -6.283185307179586 + f64.add + local.get $5 + select + local.tee $1 + local.get $1 + f64.mul + local.tee $1 + local.get $1 + f64.mul + local.set $2 + br $folding-inner0 + else + local.get $5 + if (result f64) + local.get $0 + f32.neg + f64.promote_f32 + f64.const -4.71238898038469 + f64.add + local.tee $2 + local.get $2 + f64.mul + local.tee $1 + local.get $2 + f64.mul + else + local.get $0 + f64.promote_f32 + f64.const -4.71238898038469 + f64.add + local.tee $2 + local.get $2 + f64.mul + local.tee $1 + local.get $2 + f64.mul + end + local.set $6 + local.get $2 + local.get $6 + local.get $1 + f64.const 0.008333329385889463 + f64.mul + f64.const -0.16666666641626524 + f64.add + f64.mul + f64.add + local.get $6 + local.get $1 + local.get $1 + f64.mul + f64.mul + local.get $1 + f64.const 2.718311493989822e-06 + f64.mul + f64.const -1.9839334836096632e-04 + f64.add + f64.mul + f64.add + f32.demote_f64 + return + end + unreachable + end + local.get $3 + i32.const 2139095040 + i32.ge_u + if + local.get $0 + local.get $0 + f32.sub + return + end + block $~lib/math/rempio2f|inlined.0 (result i32) + local.get $3 + i32.const 1305022427 + i32.lt_u + if + local.get $0 + f64.promote_f32 + local.tee $1 + f64.const 0.6366197723675814 + f64.mul + f64.nearest + local.set $2 + local.get $1 + local.get $2 + f64.const 1.5707963109016418 + f64.mul + f64.sub + local.get $2 + f64.const 1.5893254773528196e-08 + f64.mul + f64.sub + global.set $~lib/math/rempio2f_y + local.get $2 + i32.trunc_sat_f64_s + br $~lib/math/rempio2f|inlined.0 + end + local.get $3 + i32.const 23 + i32.shr_s + i32.const 152 + i32.sub + local.tee $7 + i32.const 63 + i32.and + i64.extend_i32_s + local.set $8 + local.get $7 + i32.const 6 + i32.shr_s + i32.const 3 + i32.shl + i32.const 5632 + i32.add + local.tee $7 + i64.load offset=8 + local.set $4 + f64.const 8.515303950216386e-20 + local.get $0 + f64.promote_f32 + f64.copysign + local.get $3 + i32.const 8388607 + i32.and + i32.const 8388608 + i32.or + i64.extend_i32_s + local.tee $9 + local.get $7 + i64.load + local.get $8 + i64.shl + local.get $4 + i64.const 64 + local.get $8 + i64.sub + i64.shr_u + i64.or + i64.mul + local.get $8 + i64.const 32 + i64.gt_u + if (result i64) + local.get $4 + local.get $8 + i64.const 32 + i64.sub + i64.shl + local.get $7 + i64.load offset=16 + i64.const 96 + local.get $8 + i64.sub + i64.shr_u + i64.or + else + local.get $4 + i64.const 32 + local.get $8 + i64.sub + i64.shr_u + end + local.get $9 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.tee $4 + i64.const 2 + i64.shl + local.tee $8 + f64.convert_i64_s + f64.mul + global.set $~lib/math/rempio2f_y + i32.const 0 + local.get $4 + i64.const 62 + i64.shr_u + local.get $8 + i64.const 63 + i64.shr_u + i64.add + i32.wrap_i64 + local.tee $3 + i32.sub + local.get $3 + local.get $5 + select + end + local.set $3 + global.get $~lib/math/rempio2f_y + local.set $1 + local.get $3 + i32.const 1 + i32.and + if (result f32) + local.get $1 + local.get $1 + local.get $1 + f64.mul + local.tee $2 + local.get $1 + f64.mul + local.tee $1 + local.get $2 + f64.const 0.008333329385889463 + f64.mul + f64.const -0.16666666641626524 + f64.add + f64.mul + f64.add + local.get $1 + local.get $2 + local.get $2 + f64.mul + f64.mul + local.get $2 + f64.const 2.718311493989822e-06 + f64.mul + f64.const -1.9839334836096632e-04 + f64.add + f64.mul + f64.add + f32.demote_f64 + else + local.get $1 + local.get $1 + f64.mul + local.tee $1 + local.get $1 + f64.mul + local.set $2 + local.get $1 + f64.const -0.499999997251031 + f64.mul + f64.const 1 + f64.add + local.get $2 + f64.const 0.04166662332373906 + f64.mul + f64.add + local.get $2 + local.get $1 + f64.mul + local.get $1 + f64.const 2.439044879627741e-05 + f64.mul + f64.const -0.001388676377460993 + f64.add + f64.mul + f64.add + f32.demote_f64 + end + local.tee $0 + f32.neg + local.get $0 + local.get $3 + i32.const 1 + i32.add + i32.const 2 + i32.and + select + return + end + local.get $1 + f64.const -0.499999997251031 + f64.mul + f64.const 1 + f64.add + local.get $2 + f64.const 0.04166662332373906 + f64.mul + f64.add + local.get $2 + local.get $1 + f64.mul + local.get $1 + f64.const 2.439044879627741e-05 + f64.mul + f64.const -0.001388676377460993 + f64.add + f64.mul + f64.add + f32.demote_f64 + ) + (func $~lib/math/NativeMathf.tan (param $0 f32) (result f32) + (local $1 f64) + (local $2 f64) + (local $3 f64) + (local $4 i32) + (local $5 i64) + (local $6 i32) + (local $7 i32) + (local $8 i64) + (local $9 i64) + local.get $0 + i32.reinterpret_f32 + local.tee $4 + i32.const 31 + i32.shr_u + local.set $6 + block $folding-inner1 + block $folding-inner0 + local.get $4 + i32.const 2147483647 + i32.and + local.tee $4 + i32.const 1061752794 + i32.le_u + if + local.get $4 + i32.const 964689920 + i32.lt_u + if + local.get $0 + return + end + local.get $0 + f64.promote_f32 + local.tee $2 + local.get $2 + f64.mul + local.tee $1 + local.get $1 + f64.mul + local.set $3 + br $folding-inner0 + end + local.get $4 + i32.const 1081824209 + i32.le_u + if + local.get $4 + i32.const 1075235811 + i32.le_u + if + local.get $0 + f64.promote_f32 + local.tee $1 + f64.const 1.5707963267948966 + f64.add + local.get $1 + f64.const -1.5707963267948966 + f64.add + local.get $6 + select + local.tee $2 + local.get $2 + f64.mul + local.tee $1 + local.get $1 + f64.mul + local.set $3 + br $folding-inner1 + else + local.get $0 + f64.promote_f32 + local.tee $1 + f64.const 3.141592653589793 + f64.add + local.get $1 + f64.const -3.141592653589793 + f64.add + local.get $6 + select + local.tee $2 + local.get $2 + f64.mul + local.tee $1 + local.get $1 + f64.mul + local.set $3 + br $folding-inner0 + end + unreachable + end + local.get $4 + i32.const 1088565717 + i32.le_u + if + local.get $4 + i32.const 1085271519 + i32.le_u + if + local.get $0 + f64.promote_f32 + local.tee $1 + f64.const 4.71238898038469 + f64.add + local.get $1 + f64.const -4.71238898038469 + f64.add + local.get $6 + select + local.tee $2 + local.get $2 + f64.mul + local.tee $1 + local.get $1 + f64.mul + local.set $3 + br $folding-inner1 + else + local.get $0 + f64.promote_f32 + local.tee $1 + f64.const 6.283185307179586 + f64.add + local.get $1 + f64.const -6.283185307179586 + f64.add + local.get $6 + select + local.tee $2 + local.get $2 + f64.mul + local.tee $1 + local.get $1 + f64.mul + local.set $3 + br $folding-inner0 + end + unreachable + end + local.get $4 + i32.const 2139095040 + i32.ge_u + if + local.get $0 + local.get $0 + f32.sub + return + end + block $~lib/math/rempio2f|inlined.2 (result i32) + local.get $4 + i32.const 1305022427 + i32.lt_u + if + local.get $0 + f64.promote_f32 + local.tee $1 + f64.const 0.6366197723675814 + f64.mul + f64.nearest + local.set $2 + local.get $1 + local.get $2 + f64.const 1.5707963109016418 + f64.mul + f64.sub + local.get $2 + f64.const 1.5893254773528196e-08 + f64.mul + f64.sub + global.set $~lib/math/rempio2f_y + local.get $2 + i32.trunc_sat_f64_s + br $~lib/math/rempio2f|inlined.2 + end + local.get $4 + i32.const 23 + i32.shr_s + i32.const 152 + i32.sub + local.tee $7 + i32.const 63 + i32.and + i64.extend_i32_s + local.set $8 + local.get $7 + i32.const 6 + i32.shr_s + i32.const 3 + i32.shl + i32.const 5632 + i32.add + local.tee $7 + i64.load offset=8 + local.set $5 + f64.const 8.515303950216386e-20 + local.get $0 + f64.promote_f32 + f64.copysign + local.get $4 + i32.const 8388607 + i32.and + i32.const 8388608 + i32.or + i64.extend_i32_s + local.tee $9 + local.get $7 + i64.load + local.get $8 + i64.shl + local.get $5 + i64.const 64 + local.get $8 + i64.sub + i64.shr_u + i64.or + i64.mul + local.get $8 + i64.const 32 + i64.gt_u + if (result i64) + local.get $5 + local.get $8 + i64.const 32 + i64.sub + i64.shl + local.get $7 + i64.load offset=16 + i64.const 96 + local.get $8 + i64.sub + i64.shr_u + i64.or + else + local.get $5 + i64.const 32 + local.get $8 + i64.sub + i64.shr_u + end + local.get $9 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.tee $5 + i64.const 2 + i64.shl + local.tee $8 + f64.convert_i64_s + f64.mul + global.set $~lib/math/rempio2f_y + i32.const 0 + local.get $5 + i64.const 62 + i64.shr_u + local.get $8 + i64.const 63 + i64.shr_u + i64.add + i32.wrap_i64 + local.tee $4 + i32.sub + local.get $4 + local.get $6 + select + end + local.set $4 + global.get $~lib/math/rempio2f_y + local.tee $1 + local.get $1 + f64.mul + local.tee $2 + local.get $2 + f64.mul + local.set $3 + f64.const -1 + local.get $1 + local.get $2 + local.get $1 + f64.mul + local.tee $1 + local.get $2 + f64.const 0.13339200271297674 + f64.mul + f64.const 0.3333313950307914 + f64.add + f64.mul + f64.add + local.get $1 + local.get $3 + f64.mul + local.get $2 + f64.const 0.024528318116654728 + f64.mul + f64.const 0.05338123784456704 + f64.add + local.get $3 + local.get $2 + f64.const 0.009465647849436732 + f64.mul + f64.const 0.002974357433599673 + f64.add + f64.mul + f64.add + f64.mul + f64.add + local.tee $1 + f64.div + local.get $1 + local.get $4 + i32.const 1 + i32.and + select + f32.demote_f64 + return + end + local.get $2 + local.get $1 + local.get $2 + f64.mul + local.tee $2 + local.get $1 + f64.const 0.13339200271297674 + f64.mul + f64.const 0.3333313950307914 + f64.add + f64.mul + f64.add + local.get $2 + local.get $3 + f64.mul + local.get $1 + f64.const 0.024528318116654728 + f64.mul + f64.const 0.05338123784456704 + f64.add + local.get $3 + local.get $1 + f64.const 0.009465647849436732 + f64.mul + f64.const 0.002974357433599673 + f64.add + f64.mul + f64.add + f64.mul + f64.add + f32.demote_f64 + return + end + f64.const -1 + local.get $2 + local.get $1 + local.get $2 + f64.mul + local.tee $2 + local.get $1 + f64.const 0.13339200271297674 + f64.mul + f64.const 0.3333313950307914 + f64.add + f64.mul + f64.add + local.get $2 + local.get $3 + f64.mul + local.get $1 + f64.const 0.024528318116654728 + f64.mul + f64.const 0.05338123784456704 + f64.add + local.get $3 + local.get $1 + f64.const 0.009465647849436732 + f64.mul + f64.const 0.002974357433599673 + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.div + f32.demote_f64 + ) + (func $~lib/math/NativeMath.exp (param $0 f64) (result f64) + (local $1 i32) + (local $2 i64) + (local $3 f64) + (local $4 f64) + (local $5 i32) + (local $6 i64) + (local $7 f64) + (local $8 f64) + block $~lib/util/math/exp_lut|inlined.0 (result f64) + local.get $0 + i64.reinterpret_f64 + local.tee $2 + i64.const 52 + i64.shr_u + i32.wrap_i64 + i32.const 2047 + i32.and + local.tee $1 + i32.const 969 + i32.sub + local.tee $5 + i32.const 63 + i32.ge_u + if + f64.const 1 + local.get $5 + i32.const -2147483648 + i32.ge_u + br_if $~lib/util/math/exp_lut|inlined.0 + drop + local.get $1 + i32.const 1033 + i32.ge_u + if + f64.const 0 + local.get $2 + i64.const -4503599627370496 + i64.eq + br_if $~lib/util/math/exp_lut|inlined.0 + drop + local.get $0 + f64.const 1 + f64.add + local.get $1 + i32.const 2047 + i32.ge_u + br_if $~lib/util/math/exp_lut|inlined.0 + drop + f64.const 0 + f64.const inf + local.get $2 + i64.const 0 + i64.lt_s + select + br $~lib/util/math/exp_lut|inlined.0 + end + i32.const 0 + local.set $1 + end + local.get $0 + f64.const 184.6649652337873 + f64.mul + f64.const 6755399441055744 + f64.add + local.tee $3 + i64.reinterpret_f64 + local.tee $6 + i64.const 127 + i64.and + i64.const 1 + i64.shl + i32.wrap_i64 + i32.const 3 + i32.shl + i32.const 5664 + i32.add + local.tee $5 + i64.load offset=8 + local.get $6 + i64.const 45 + i64.shl + i64.add + local.set $2 + local.get $0 + local.get $3 + f64.const -6755399441055744 + f64.add + local.tee $0 + f64.const -0.005415212348111709 + f64.mul + f64.add + local.get $0 + f64.const -1.2864023111638346e-14 + f64.mul + f64.add + local.tee $0 + local.get $0 + f64.mul + local.set $3 + local.get $5 + f64.load + local.get $0 + f64.add + local.get $3 + local.get $0 + f64.const 0.16666666666665886 + f64.mul + f64.const 0.49999999999996786 + f64.add + f64.mul + f64.add + local.get $3 + local.get $3 + f64.mul + local.get $0 + f64.const 0.008333335853059549 + f64.mul + f64.const 0.0416666808410674 + f64.add + f64.mul + f64.add + local.set $0 + local.get $1 + i32.eqz + if + block $~lib/util/math/specialcase|inlined.0 (result f64) + local.get $6 + i64.const 2147483648 + i64.and + i64.eqz + if + local.get $2 + i64.const 4544132024016830464 + i64.sub + f64.reinterpret_i64 + local.tee $3 + local.get $3 + local.get $0 + f64.mul + f64.add + f64.const 5486124068793688683255936e279 + f64.mul + br $~lib/util/math/specialcase|inlined.0 + end + local.get $2 + i64.const 4602678819172646912 + i64.add + local.tee $2 + f64.reinterpret_i64 + local.tee $3 + local.get $0 + f64.mul + local.set $7 + local.get $3 + local.get $7 + f64.add + local.tee $4 + f64.abs + f64.const 1 + f64.lt + if (result f64) + f64.const 1 + local.get $4 + f64.copysign + local.tee $8 + local.get $4 + f64.add + local.tee $0 + local.get $8 + local.get $0 + f64.sub + local.get $4 + f64.add + local.get $3 + local.get $4 + f64.sub + local.get $7 + f64.add + f64.add + f64.add + local.get $8 + f64.sub + local.tee $0 + f64.const 0 + f64.eq + if (result f64) + local.get $2 + i64.const -9223372036854775808 + i64.and + f64.reinterpret_i64 + else + local.get $0 + end + else + local.get $4 + end + f64.const 2.2250738585072014e-308 + f64.mul + end + br $~lib/util/math/exp_lut|inlined.0 + end + local.get $2 + f64.reinterpret_i64 + local.tee $3 + local.get $3 + local.get $0 + f64.mul + f64.add + end + ) + (func $~lib/math/NativeMath.pow (param $0 f64) (param $1 f64) (result f64) + (local $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i64) + (local $6 i64) + (local $7 f64) + (local $8 f64) + (local $9 f64) + (local $10 f64) + (local $11 i64) + (local $12 i64) + (local $13 f64) + (local $14 f64) + (local $15 f64) + (local $16 f64) + (local $17 f64) + (local $18 i32) + local.get $1 + f64.abs + f64.const 2 + f64.le + if + local.get $1 + f64.const 2 + f64.eq + if + local.get $0 + local.get $0 + f64.mul + return + end + local.get $1 + f64.const 0.5 + f64.eq + if + local.get $0 + f64.sqrt + f64.abs + f64.const inf + local.get $0 + f64.const -inf + f64.ne + select + return + end + local.get $1 + f64.const -1 + f64.eq + if + f64.const 1 + local.get $0 + f64.div + return + end + local.get $1 + f64.const 1 + f64.eq + if + local.get $0 + return + end + local.get $1 + f64.const 0 + f64.eq + if + f64.const 1 + return + end + end + local.get $1 + i64.reinterpret_f64 + local.tee $11 + i64.const 52 + i64.shr_u + local.set $6 + block $~lib/util/math/pow_lut|inlined.0 (result f64) + local.get $0 + i64.reinterpret_f64 + local.tee $2 + i64.const 52 + i64.shr_u + local.tee $5 + i64.const 1 + i64.sub + i64.const 2046 + i64.ge_u + if (result i32) + i32.const 1 + else + local.get $6 + i64.const 2047 + i64.and + i64.const 958 + i64.sub + i64.const 128 + i64.ge_u + end + if + local.get $11 + i64.const 1 + i64.shl + local.tee $12 + i64.const 1 + i64.sub + i64.const -9007199254740993 + i64.ge_u + if + f64.const 1 + local.get $12 + i64.eqz + br_if $~lib/util/math/pow_lut|inlined.0 + drop + f64.const nan:0x8000000000000 + local.get $2 + i64.const 4607182418800017408 + i64.eq + br_if $~lib/util/math/pow_lut|inlined.0 + drop + local.get $0 + local.get $1 + f64.add + local.get $12 + i64.const -9007199254740992 + i64.gt_u + local.get $2 + i64.const 1 + i64.shl + local.tee $2 + i64.const -9007199254740992 + i64.gt_u + i32.or + br_if $~lib/util/math/pow_lut|inlined.0 + drop + f64.const nan:0x8000000000000 + local.get $2 + i64.const 9214364837600034816 + i64.eq + br_if $~lib/util/math/pow_lut|inlined.0 + drop + f64.const 0 + local.get $11 + i64.const 63 + i64.shr_u + i64.eqz + local.get $2 + i64.const 9214364837600034816 + i64.lt_u + i32.eq + br_if $~lib/util/math/pow_lut|inlined.0 + drop + local.get $1 + local.get $1 + f64.mul + br $~lib/util/math/pow_lut|inlined.0 + end + local.get $2 + i64.const 1 + i64.shl + i64.const 1 + i64.sub + i64.const -9007199254740993 + i64.ge_u + if + f64.const 1 + local.get $0 + local.get $0 + f64.mul + local.tee $0 + f64.neg + local.get $0 + local.get $2 + i64.const 63 + i64.shr_u + i32.wrap_i64 + if (result i32) + block $~lib/util/math/checkint|inlined.0 (result i32) + i32.const 0 + local.get $11 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + local.tee $2 + i64.const 1023 + i64.lt_u + br_if $~lib/util/math/checkint|inlined.0 + drop + i32.const 2 + local.get $2 + i64.const 1075 + i64.gt_u + br_if $~lib/util/math/checkint|inlined.0 + drop + i32.const 0 + local.get $11 + i64.const 1 + i64.const 1075 + local.get $2 + i64.sub + i64.shl + local.tee $2 + i64.const 1 + i64.sub + i64.and + i64.const 0 + i64.ne + br_if $~lib/util/math/checkint|inlined.0 + drop + i32.const 1 + local.get $2 + local.get $11 + i64.and + i64.const 0 + i64.ne + br_if $~lib/util/math/checkint|inlined.0 + drop + i32.const 2 + end + i32.const 1 + i32.eq + else + i32.const 0 + end + select + local.tee $0 + f64.div + local.get $0 + local.get $11 + i64.const 0 + i64.lt_s + select + br $~lib/util/math/pow_lut|inlined.0 + end + local.get $2 + i64.const 0 + i64.lt_s + if + block $~lib/util/math/checkint|inlined.1 (result i32) + i32.const 0 + local.get $11 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + local.tee $12 + i64.const 1023 + i64.lt_u + br_if $~lib/util/math/checkint|inlined.1 + drop + i32.const 2 + local.get $12 + i64.const 1075 + i64.gt_u + br_if $~lib/util/math/checkint|inlined.1 + drop + i32.const 0 + local.get $11 + i64.const 1 + i64.const 1075 + local.get $12 + i64.sub + i64.shl + local.tee $12 + i64.const 1 + i64.sub + i64.and + i64.const 0 + i64.ne + br_if $~lib/util/math/checkint|inlined.1 + drop + i32.const 1 + local.get $11 + local.get $12 + i64.and + i64.const 0 + i64.ne + br_if $~lib/util/math/checkint|inlined.1 + drop + i32.const 2 + end + local.tee $3 + i32.eqz + if + local.get $0 + local.get $0 + f64.sub + local.tee $0 + local.get $0 + f64.div + br $~lib/util/math/pow_lut|inlined.0 + end + local.get $5 + i64.const 2047 + i64.and + local.set $5 + i32.const 262144 + i32.const 0 + local.get $3 + i32.const 1 + i32.eq + select + local.set $4 + local.get $2 + i64.const 9223372036854775807 + i64.and + local.set $2 + end + local.get $6 + i64.const 2047 + i64.and + local.tee $12 + i64.const 958 + i64.sub + i64.const 128 + i64.ge_u + if + f64.const 1 + local.get $2 + i64.const 4607182418800017408 + i64.eq + br_if $~lib/util/math/pow_lut|inlined.0 + drop + f64.const 1 + local.get $12 + i64.const 958 + i64.lt_u + br_if $~lib/util/math/pow_lut|inlined.0 + drop + f64.const inf + f64.const 0 + local.get $6 + i64.const 2048 + i64.lt_u + local.get $2 + i64.const 4607182418800017408 + i64.gt_u + i32.eq + select + br $~lib/util/math/pow_lut|inlined.0 + end + local.get $5 + i64.eqz + if + local.get $0 + f64.const 4503599627370496 + f64.mul + i64.reinterpret_f64 + i64.const 9223372036854775807 + i64.and + i64.const 234187180623265792 + i64.sub + local.set $2 + end + end + local.get $2 + local.get $2 + i64.const 4604531861337669632 + i64.sub + local.tee $2 + i64.const -4503599627370496 + i64.and + i64.sub + local.tee $5 + i64.const 2147483648 + i64.add + i64.const -4294967296 + i64.and + f64.reinterpret_i64 + local.tee $7 + local.get $2 + i64.const 45 + i64.shr_u + i64.const 127 + i64.and + i32.wrap_i64 + i32.const 5 + i32.shl + i32.const 10272 + i32.add + local.tee $3 + f64.load + local.tee $8 + f64.mul + f64.const -1 + f64.add + local.set $9 + local.get $2 + i64.const 52 + i64.shr_s + f64.convert_i64_s + local.tee $13 + f64.const 0.6931471805598903 + f64.mul + local.get $3 + f64.load offset=16 + f64.add + local.tee $0 + local.get $9 + local.get $5 + f64.reinterpret_i64 + local.get $7 + f64.sub + local.get $8 + f64.mul + local.tee $7 + f64.add + local.tee $14 + f64.add + local.set $15 + local.get $14 + local.get $14 + f64.const -0.5 + f64.mul + local.tee $8 + f64.mul + local.set $16 + local.get $15 + local.get $9 + local.get $9 + f64.const -0.5 + f64.mul + local.tee $17 + f64.mul + local.tee $9 + f64.add + local.tee $10 + local.get $10 + local.get $13 + f64.const 5.497923018708371e-14 + f64.mul + local.get $3 + f64.load offset=24 + f64.add + local.get $0 + local.get $15 + f64.sub + local.get $14 + f64.add + f64.add + local.get $7 + local.get $8 + local.get $17 + f64.add + f64.mul + f64.add + local.get $15 + local.get $10 + f64.sub + local.get $9 + f64.add + f64.add + local.get $14 + local.get $16 + f64.mul + local.get $14 + f64.const 0.5000000000000007 + f64.mul + f64.const -0.6666666666666679 + f64.add + local.get $16 + local.get $14 + f64.const -0.6666666663487739 + f64.mul + f64.const 0.7999999995323976 + f64.add + local.get $16 + local.get $14 + f64.const 1.0000415263675542 + f64.mul + f64.const -1.142909628459501 + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + local.tee $0 + f64.add + local.tee $7 + f64.sub + local.get $0 + f64.add + global.set $~lib/util/math/log_tail + local.get $11 + i64.const -134217728 + i64.and + f64.reinterpret_i64 + local.tee $0 + local.get $7 + i64.reinterpret_f64 + i64.const -134217728 + i64.and + f64.reinterpret_i64 + local.tee $8 + f64.mul + local.set $9 + local.get $1 + local.get $0 + f64.sub + local.get $8 + f64.mul + local.get $1 + local.get $7 + local.get $8 + f64.sub + global.get $~lib/util/math/log_tail + f64.add + f64.mul + f64.add + local.set $0 + block $~lib/util/math/exp_inline|inlined.0 (result f64) + local.get $9 + i64.reinterpret_f64 + local.tee $2 + i64.const 52 + i64.shr_u + i32.wrap_i64 + i32.const 2047 + i32.and + local.tee $3 + i32.const 969 + i32.sub + local.tee $18 + i32.const 63 + i32.ge_u + if + f64.const -1 + f64.const 1 + local.get $4 + select + local.get $18 + i32.const -2147483648 + i32.ge_u + br_if $~lib/util/math/exp_inline|inlined.0 + drop + f64.const -0 + f64.const 0 + local.get $4 + select + f64.const -inf + f64.const inf + local.get $4 + select + local.get $2 + i64.const 0 + i64.lt_s + select + local.get $3 + i32.const 1033 + i32.ge_u + br_if $~lib/util/math/exp_inline|inlined.0 + drop + i32.const 0 + local.set $3 + end + local.get $9 + f64.const 184.6649652337873 + f64.mul + f64.const 6755399441055744 + f64.add + local.tee $1 + i64.reinterpret_f64 + local.tee $2 + i64.const 127 + i64.and + i64.const 1 + i64.shl + i32.wrap_i64 + i32.const 3 + i32.shl + i32.const 5664 + i32.add + local.tee $18 + i64.load offset=8 + local.get $2 + local.get $4 + i64.extend_i32_u + i64.add + i64.const 45 + i64.shl + i64.add + local.set $5 + local.get $9 + local.get $1 + f64.const -6755399441055744 + f64.add + local.tee $1 + f64.const -0.005415212348111709 + f64.mul + f64.add + local.get $1 + f64.const -1.2864023111638346e-14 + f64.mul + f64.add + local.get $0 + f64.add + local.tee $0 + local.get $0 + f64.mul + local.set $1 + local.get $18 + f64.load + local.get $0 + f64.add + local.get $1 + local.get $0 + f64.const 0.16666666666665886 + f64.mul + f64.const 0.49999999999996786 + f64.add + f64.mul + f64.add + local.get $1 + local.get $1 + f64.mul + local.get $0 + f64.const 0.008333335853059549 + f64.mul + f64.const 0.0416666808410674 + f64.add + f64.mul + f64.add + local.set $0 + local.get $3 + i32.eqz + if + block $~lib/util/math/specialcase|inlined.1 (result f64) + local.get $2 + i64.const 2147483648 + i64.and + i64.eqz + if + local.get $5 + i64.const 4544132024016830464 + i64.sub + f64.reinterpret_i64 + local.tee $1 + local.get $1 + local.get $0 + f64.mul + f64.add + f64.const 5486124068793688683255936e279 + f64.mul + br $~lib/util/math/specialcase|inlined.1 + end + local.get $5 + i64.const 4602678819172646912 + i64.add + local.tee $2 + f64.reinterpret_i64 + local.tee $1 + local.get $0 + f64.mul + local.set $0 + local.get $1 + local.get $0 + f64.add + local.tee $7 + f64.abs + f64.const 1 + f64.lt + if (result f64) + f64.const 1 + local.get $7 + f64.copysign + local.tee $8 + local.get $7 + f64.add + local.tee $9 + local.get $8 + local.get $9 + f64.sub + local.get $7 + f64.add + local.get $1 + local.get $7 + f64.sub + local.get $0 + f64.add + f64.add + f64.add + local.get $8 + f64.sub + local.tee $0 + f64.const 0 + f64.eq + if (result f64) + local.get $2 + i64.const -9223372036854775808 + i64.and + f64.reinterpret_i64 + else + local.get $0 + end + else + local.get $7 + end + f64.const 2.2250738585072014e-308 + f64.mul + end + br $~lib/util/math/exp_inline|inlined.0 + end + local.get $5 + f64.reinterpret_i64 + local.tee $1 + local.get $1 + local.get $0 + f64.mul + f64.add + end + end + ) + (func $std/math/test_atan2 (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) + (local $4 i32) + (local $5 i64) + (local $6 i32) + (local $7 i64) + (local $8 i32) + (local $9 i32) + (local $10 f64) + block $__inlined_func$~lib/math/NativeMath.atan2 (result f64) + local.get $1 + local.get $0 + f64.add + local.get $0 + local.get $0 + f64.ne + local.get $1 + local.get $1 + f64.ne + i32.or + br_if $__inlined_func$~lib/math/NativeMath.atan2 + drop + local.get $0 + i64.reinterpret_f64 + local.tee $5 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.set $9 + local.get $1 + i64.reinterpret_f64 + local.tee $7 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.set $8 + local.get $7 + i32.wrap_i64 + local.tee $6 + local.get $8 + i32.const 1072693248 + i32.sub + i32.or + i32.eqz + if + local.get $0 + call $~lib/math/NativeMath.atan + br $__inlined_func$~lib/math/NativeMath.atan2 + end + local.get $8 + i32.const 30 + i32.shr_u + i32.const 2 + i32.and + local.get $9 + i32.const 31 + i32.shr_u + i32.or + local.set $4 + local.get $9 + i32.const 2147483647 + i32.and + local.tee $9 + local.get $5 + i32.wrap_i64 + i32.or + i32.eqz + if + block $break|0 + block $case3|0 + block $case2|0 + block $case0|0 + local.get $4 + br_table $case0|0 $case0|0 $case2|0 $case3|0 $break|0 + end + local.get $0 + br $__inlined_func$~lib/math/NativeMath.atan2 + end + f64.const 3.141592653589793 + br $__inlined_func$~lib/math/NativeMath.atan2 + end + f64.const -3.141592653589793 + br $__inlined_func$~lib/math/NativeMath.atan2 + end + end + block $folding-inner0 + local.get $8 + i32.const 2147483647 + i32.and + local.tee $8 + local.get $6 + i32.or + i32.eqz + br_if $folding-inner0 + local.get $8 + i32.const 2146435072 + i32.eq + if + local.get $9 + i32.const 2146435072 + i32.eq + if (result f64) + f64.const 2.356194490192345 + f64.const 0.7853981633974483 + local.get $4 + i32.const 2 + i32.and + select + local.tee $10 + f64.neg + local.get $10 + local.get $4 + i32.const 1 + i32.and + select + else + f64.const 3.141592653589793 + f64.const 0 + local.get $4 + i32.const 2 + i32.and + select + local.tee $10 + f64.neg + local.get $10 + local.get $4 + i32.const 1 + i32.and + select + end + br $__inlined_func$~lib/math/NativeMath.atan2 + end + local.get $9 + i32.const 2146435072 + i32.eq + local.get $8 + i32.const 67108864 + i32.add + local.get $9 + i32.lt_u + i32.or + br_if $folding-inner0 + local.get $9 + i32.const 67108864 + i32.add + local.get $8 + i32.lt_u + i32.const 0 + local.get $4 + i32.const 2 + i32.and + select + if (result f64) + f64.const 0 + else + local.get $0 + local.get $1 + f64.div + f64.abs + call $~lib/math/NativeMath.atan + end + local.set $10 + block $break|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + local.get $4 + br_table $case0|1 $case1|1 $case2|1 $case3|1 $break|1 + end + local.get $10 + br $__inlined_func$~lib/math/NativeMath.atan2 + end + local.get $10 + f64.neg + br $__inlined_func$~lib/math/NativeMath.atan2 + end + f64.const 3.141592653589793 + local.get $10 + f64.const -1.2246467991473532e-16 + f64.add + f64.sub + br $__inlined_func$~lib/math/NativeMath.atan2 + end + local.get $10 + f64.const -1.2246467991473532e-16 + f64.add + f64.const -3.141592653589793 + f64.add + br $__inlined_func$~lib/math/NativeMath.atan2 + end + unreachable + end + f64.const -1.5707963267948966 + f64.const 1.5707963267948966 + local.get $4 + i32.const 1 + i32.and + select + end + local.get $2 + local.get $3 + call $std/math/check + if (result i32) + local.get $0 + local.get $1 + call $~lib/bindings/dom/Math.atan2 + local.get $2 + local.get $3 + call $std/math/check + else + i32.const 0 + end + ) + (func $~lib/math/NativeMathf.atan2 (param $0 f32) (param $1 f32) (result f32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $0 + local.get $0 + f32.ne + local.get $1 + local.get $1 + f32.ne + i32.or + if + local.get $1 local.get $0 - i64.reinterpret_f64 - local.tee $5 - i64.const 32 - i64.shr_u - i32.wrap_i64 + f32.add + return + end + local.get $1 + i32.reinterpret_f32 + local.tee $3 + i32.const 1065353216 + i32.eq + if + local.get $0 + call $~lib/math/NativeMathf.atan + return + end + local.get $3 + i32.const 30 + i32.shr_u + i32.const 2 + i32.and + local.get $0 + i32.reinterpret_f32 + local.tee $4 + i32.const 31 + i32.shr_u + i32.or + local.set $2 + local.get $4 + i32.const 2147483647 + i32.and + local.tee $4 + i32.eqz + if + block $break|0 + block $case3|0 + block $case2|0 + block $case1|0 + local.get $2 + br_table $case1|0 $case1|0 $case2|0 $case3|0 $break|0 + end + local.get $0 + return + end + f32.const 3.1415927410125732 + return + end + f32.const -3.1415927410125732 + return + end + end + block $folding-inner0 + local.get $3 i32.const 2147483647 i32.and - local.tee $4 - i32.const 2146435072 - i32.ge_u - br_if $__inlined_func$~lib/math/NativeMath.cbrt$18 + local.tee $3 + i32.eqz + br_if $folding-inner0 + local.get $3 + i32.const 2139095040 + i32.eq + if + local.get $4 + i32.const 2139095040 + i32.eq + if (result f32) + f32.const 2.356194496154785 + f32.const 0.7853981852531433 + local.get $2 + i32.const 2 + i32.and + select + local.tee $0 + f32.neg + local.get $0 + local.get $2 + i32.const 1 + i32.and + select + else + f32.const 3.1415927410125732 + f32.const 0 + local.get $2 + i32.const 2 + i32.and + select + local.tee $0 + f32.neg + local.get $0 + local.get $2 + i32.const 1 + i32.and + select + end + return + end + local.get $4 + i32.const 2139095040 + i32.eq + local.get $3 + i32.const 218103808 + i32.add local.get $4 - i32.const 1048576 i32.lt_u - if (result i32) - local.get $0 - local.tee $3 - f64.const 18014398509481984 - f64.mul - i64.reinterpret_f64 - local.tee $5 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const 2147483647 - i32.and - local.tee $4 - i32.eqz - br_if $__inlined_func$~lib/math/NativeMath.cbrt$18 - local.get $4 - i32.const 3 - i32.div_u - i32.const 696219795 - i32.add + i32.or + br_if $folding-inner0 + local.get $4 + i32.const 218103808 + i32.add + local.get $3 + i32.lt_u + i32.const 0 + local.get $2 + i32.const 2 + i32.and + select + if (result f32) + f32.const 0 else + local.get $0 + local.get $1 + f32.div + f32.abs + call $~lib/math/NativeMathf.atan + end + local.set $0 + block $break|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + local.get $2 + br_table $case0|1 $case1|1 $case2|1 $case3|1 $break|1 + end + local.get $0 + return + end + local.get $0 + f32.neg + return + end + f32.const 3.1415927410125732 + local.get $0 + f32.const 8.742277657347586e-08 + f32.add + f32.sub + return + end + local.get $0 + f32.const 8.742277657347586e-08 + f32.add + f32.const -3.1415927410125732 + f32.add + return + end + unreachable + end + f32.const -1.5707963705062866 + f32.const 1.5707963705062866 + local.get $2 + i32.const 1 + i32.and + select + ) + (func $std/math/test_exp2 (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (local $3 i32) + (local $4 i64) + (local $5 f64) + (local $6 f64) + (local $7 i32) + (local $8 i64) + (local $9 f64) + (local $10 f64) + block $~lib/util/math/exp2_lut|inlined.0 (result f64) + local.get $0 + i64.reinterpret_f64 + local.tee $4 + i64.const 52 + i64.shr_u + i32.wrap_i64 + i32.const 2047 + i32.and + local.tee $3 + i32.const 969 + i32.sub + local.tee $7 + i32.const 63 + i32.ge_u + if + f64.const 1 + local.get $7 + i32.const -2147483648 + i32.ge_u + br_if $~lib/util/math/exp2_lut|inlined.0 + drop + local.get $3 + i32.const 1033 + i32.ge_u + if + f64.const 0 + local.get $4 + i64.const -4503599627370496 + i64.eq + br_if $~lib/util/math/exp2_lut|inlined.0 + drop + local.get $0 + f64.const 1 + f64.add + local.get $3 + i32.const 2047 + i32.ge_u + br_if $~lib/util/math/exp2_lut|inlined.0 + drop + f64.const inf + local.get $4 + i64.const 0 + i64.ge_s + br_if $~lib/util/math/exp2_lut|inlined.0 + drop + f64.const 0 + local.get $4 + i64.const -4570929321408987136 + i64.ge_u + br_if $~lib/util/math/exp2_lut|inlined.0 + drop + end + local.get $3 + i32.const 0 local.get $4 - i32.const 3 - i32.div_u - i32.const 715094163 - i32.add + i64.const 1 + i64.shl + i64.const -9143996093422370816 + i64.le_u + select + local.set $3 end - local.set $4 - local.get $5 - i64.const -9223372036854775808 + local.get $0 + f64.const 52776558133248 + f64.add + local.tee $5 + i64.reinterpret_f64 + local.tee $8 + i64.const 127 i64.and - local.get $4 - i64.extend_i32_u - i64.const 32 + i64.const 1 i64.shl - i64.or - f64.reinterpret_i64 - local.tee $3 - local.get $3 - f64.mul - local.get $3 + i32.wrap_i64 + i32.const 3 + i32.shl + i32.const 5664 + i32.add + local.tee $7 + i64.load offset=8 + local.get $8 + i64.const 45 + i64.shl + i64.add + local.set $4 local.get $0 - f64.div + local.get $5 + f64.const -52776558133248 + f64.add + f64.sub + local.tee $5 + local.get $5 f64.mul local.set $6 - local.get $0 - local.get $3 + local.get $7 + f64.load + local.get $5 + f64.const 0.6931471805599453 + f64.mul + f64.add + local.get $6 + local.get $5 + f64.const 0.0555041086686087 + f64.mul + f64.const 0.24022650695909065 + f64.add + f64.mul + f64.add local.get $6 local.get $6 - f64.const 1.6214297201053545 f64.mul - f64.const -1.8849797954337717 + local.get $5 + f64.const 1.3332074570119598e-03 + f64.mul + f64.const 0.009618131975721055 + f64.add + f64.mul + f64.add + local.set $5 + local.get $3 + i32.eqz + if + block $~lib/util/math/specialcase2|inlined.0 (result f64) + local.get $8 + i64.const 2147483648 + i64.and + i64.eqz + if + local.get $4 + i64.const 4503599627370496 + i64.sub + f64.reinterpret_i64 + local.tee $6 + local.get $5 + f64.mul + local.get $6 + f64.add + f64.const 2 + f64.mul + br $~lib/util/math/specialcase2|inlined.0 + end + local.get $4 + i64.const 4602678819172646912 + i64.add + f64.reinterpret_i64 + local.tee $6 + local.get $5 + f64.mul + local.tee $9 + local.get $6 + f64.add + local.tee $10 + f64.const 1 + f64.lt + if (result f64) + local.get $10 + f64.const 1 + f64.add + local.tee $5 + f64.const 1 + local.get $5 + f64.sub + local.get $10 + f64.add + local.get $6 + local.get $10 + f64.sub + local.get $9 + f64.add + f64.add + f64.add + f64.const -1 + f64.add + else + local.get $10 + end + f64.const 2.2250738585072014e-308 + f64.mul + end + br $~lib/util/math/exp2_lut|inlined.0 + end + local.get $4 + f64.reinterpret_i64 + local.tee $6 + local.get $5 + f64.mul + local.get $6 + f64.add + end + local.get $1 + local.get $2 + call $std/math/check + if (result i32) + f64.const 2 + local.get $0 + call $~lib/bindings/dom/Math.pow + local.get $1 + local.get $2 + call $std/math/check + else + i32.const 0 + end + ) + (func $std/math/test_hypot (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) + (local $4 i64) + (local $5 i64) + (local $6 i64) + (local $7 i32) + (local $8 i32) + (local $9 f64) + (local $10 f64) + (local $11 f64) + (local $12 f64) + (local $13 f64) + local.get $1 + i64.reinterpret_f64 + i64.const 9223372036854775807 + i64.and + local.tee $5 + local.get $0 + i64.reinterpret_f64 + i64.const 9223372036854775807 + i64.and + local.tee $4 + i64.gt_u + if + local.get $4 + local.get $5 + local.set $4 + local.set $5 + end + local.get $5 + f64.reinterpret_i64 + local.tee $9 + local.set $0 + block $__inlined_func$~lib/math/NativeMath.hypot$23 + local.get $5 + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.tee $7 + i32.const 2047 + i32.eq + br_if $__inlined_func$~lib/math/NativeMath.hypot$23 + local.get $4 + f64.reinterpret_i64 + local.tee $1 + local.set $0 + local.get $5 + i64.eqz + local.get $4 + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.tee $8 + i32.const 2047 + i32.eq + i32.or + br_if $__inlined_func$~lib/math/NativeMath.hypot$23 + local.get $1 + local.get $9 + f64.add + local.set $0 + local.get $8 + local.get $7 + i32.sub + i32.const 64 + i32.gt_s + br_if $__inlined_func$~lib/math/NativeMath.hypot$23 + f64.const 1 + local.set $0 + local.get $8 + i32.const 1533 + i32.gt_u + if (result f64) + f64.const 5260135901548373507240989e186 + local.set $0 + local.get $1 + f64.const 1.90109156629516e-211 + f64.mul + local.set $1 + local.get $9 + f64.const 1.90109156629516e-211 + f64.mul + else + local.get $7 + i32.const 573 + i32.lt_u + if (result f64) + f64.const 1.90109156629516e-211 + local.set $0 + local.get $1 + f64.const 5260135901548373507240989e186 + f64.mul + local.set $1 + local.get $9 + f64.const 5260135901548373507240989e186 + f64.mul + else + local.get $9 + end + end + local.set $11 + local.get $1 + local.get $1 + local.get $1 + f64.const 134217729 + f64.mul + local.tee $9 + f64.sub + local.get $9 f64.add + local.tee $9 + f64.sub + local.set $12 + local.get $11 + local.get $11 + local.get $11 + f64.const 134217729 f64.mul - f64.const 1.87595182427177 + local.tee $10 + f64.sub + local.get $10 f64.add - local.get $6 - local.get $6 - f64.mul - local.get $6 + local.tee $10 + f64.sub + local.set $13 + local.get $0 + local.get $10 + local.get $10 f64.mul - local.get $6 - f64.const 0.14599619288661245 + local.get $11 + local.get $11 f64.mul - f64.const -0.758397934778766 + local.tee $0 + f64.sub + local.get $10 + local.get $10 + f64.add + local.get $13 f64.add + local.get $13 f64.mul f64.add + local.get $9 + local.get $9 f64.mul - i64.reinterpret_f64 - i64.const 2147483648 - i64.add - i64.const -1073741824 - i64.and - f64.reinterpret_i64 - local.tee $3 - local.get $3 + local.get $1 + local.get $1 f64.mul - f64.div - local.set $6 - local.get $3 - local.get $3 - local.get $6 - local.get $3 + local.tee $1 f64.sub - local.get $3 - local.get $3 + local.get $9 + local.get $9 f64.add - local.get $6 + local.get $12 f64.add - f64.div + local.get $12 f64.mul f64.add - local.set $3 + f64.add + local.get $0 + f64.add + local.get $1 + f64.add + f64.sqrt + f64.mul + local.set $0 end - local.get $3 - local.get $1 + local.get $0 local.get $2 + local.get $3 call $std/math/check - if (result i32) + ) + (func $~lib/math/NativeMath.scalbn (param $0 f64) (param $1 i32) (result f64) + local.get $1 + i32.const 1023 + i32.gt_s + if (result f64) local.get $0 - call $~lib/bindings/dom/Math.cbrt + f64.const 8988465674311579538646525e283 + f64.mul + local.set $0 local.get $1 - local.get $2 - call $std/math/check + i32.const 1023 + i32.sub + local.tee $1 + i32.const 1023 + i32.gt_s + if (result f64) + i32.const 1023 + local.get $1 + i32.const 1023 + i32.sub + local.tee $1 + local.get $1 + i32.const 1023 + i32.ge_s + select + local.set $1 + local.get $0 + f64.const 8988465674311579538646525e283 + f64.mul + else + local.get $0 + end else - i32.const 0 + local.get $1 + i32.const -1022 + i32.lt_s + if (result f64) + local.get $0 + f64.const 2.004168360008973e-292 + f64.mul + local.set $0 + local.get $1 + i32.const 969 + i32.add + local.tee $1 + i32.const -1022 + i32.lt_s + if (result f64) + i32.const -1022 + local.get $1 + i32.const 969 + i32.add + local.tee $1 + local.get $1 + i32.const -1022 + i32.le_s + select + local.set $1 + local.get $0 + f64.const 2.004168360008973e-292 + f64.mul + else + local.get $0 + end + else + local.get $0 + end end + local.get $1 + i64.extend_i32_s + i64.const 1023 + i64.add + i64.const 52 + i64.shl + f64.reinterpret_i64 + f64.mul ) - (func $std/math/test_cbrtf (param $0 f32) (param $1 f32) (param $2 f32) (result i32) - (local $3 f64) + (func $~lib/math/ipow64 (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + i64.const 1 + local.set $2 + local.get $0 + i64.const 2 + i64.eq + if + i64.const 1 + local.get $1 + i64.shl + i64.const 0 + local.get $1 + i64.const 64 + i64.lt_u + select + return + end + local.get $1 + i64.const 0 + i64.le_s + if + local.get $0 + i64.const -1 + i64.eq + if + i64.const -1 + i64.const 1 + local.get $1 + i64.const 1 + i64.and + i32.wrap_i64 + select + return + end + local.get $1 + i64.eqz + i64.extend_i32_u + local.get $0 + i64.const 1 + i64.eq + i64.extend_i32_u + i64.or + return + else + local.get $1 + i64.const 1 + i64.eq + if + local.get $0 + return + else + local.get $1 + i64.const 2 + i64.eq + if + local.get $0 + local.get $0 + i64.mul + return + else + local.get $1 + i64.const 64 + i64.lt_s + if + block $break|0 + block $case5|0 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + i32.const 63 + local.get $1 + i64.clz + i32.wrap_i64 + i32.sub + br_table $case5|0 $case4|0 $case3|0 $case2|0 $case1|0 $case0|0 $break|0 + end + local.get $0 + i64.const 1 + local.get $1 + i64.const 1 + i64.and + i32.wrap_i64 + select + local.set $2 + local.get $1 + i64.const 1 + i64.shr_u + local.set $1 + local.get $0 + local.get $0 + i64.mul + local.set $0 + end + local.get $0 + local.get $2 + i64.mul + local.get $2 + local.get $1 + i64.const 1 + i64.and + i32.wrap_i64 + select + local.set $2 + local.get $1 + i64.const 1 + i64.shr_u + local.set $1 + local.get $0 + local.get $0 + i64.mul + local.set $0 + end + local.get $0 + local.get $2 + i64.mul + local.get $2 + local.get $1 + i64.const 1 + i64.and + i32.wrap_i64 + select + local.set $2 + local.get $1 + i64.const 1 + i64.shr_u + local.set $1 + local.get $0 + local.get $0 + i64.mul + local.set $0 + end + local.get $0 + local.get $2 + i64.mul + local.get $2 + local.get $1 + i64.const 1 + i64.and + i32.wrap_i64 + select + local.set $2 + local.get $1 + i64.const 1 + i64.shr_u + local.set $1 + local.get $0 + local.get $0 + i64.mul + local.set $0 + end + local.get $0 + local.get $2 + i64.mul + local.get $2 + local.get $1 + i64.const 1 + i64.and + i32.wrap_i64 + select + local.set $2 + local.get $1 + i64.const 1 + i64.shr_u + local.set $1 + local.get $0 + local.get $0 + i64.mul + local.set $0 + end + local.get $0 + local.get $2 + i64.mul + local.get $2 + local.get $1 + i64.const 1 + i64.and + i32.wrap_i64 + select + local.set $2 + end + local.get $2 + return + end + end + end + end + loop $while-continue|1 + local.get $1 + i64.const 0 + i64.ne + if + local.get $0 + local.get $2 + i64.mul + local.get $2 + local.get $1 + i64.const 1 + i64.and + i32.wrap_i64 + select + local.set $2 + local.get $1 + i64.const 1 + i64.shr_u + local.set $1 + local.get $0 + local.get $0 + i64.mul + local.set $0 + br $while-continue|1 + end + end + local.get $2 + ) + (func $std/math/test_round (param $0 f64) (param $1 f64) (result i32) + (local $2 f64) + local.get $0 + f64.ceil + local.tee $2 + local.get $2 + f64.const -1 + f64.add + local.get $2 + f64.const -0.5 + f64.add + local.get $0 + f64.le + select + local.get $1 + f64.const 0 + call $std/math/check + ) + (func $std/math/test_hypotf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (result i32) (local $4 i32) - (local $5 f64) + (local $5 i32) (local $6 i32) (local $7 f64) - (local $8 f64) - block $__inlined_func$~lib/math/NativeMathf.cbrt$19 (result f32) - local.get $0 + local.get $1 + i32.reinterpret_f32 + i32.const 2147483647 + i32.and + local.tee $5 + local.get $0 + i32.reinterpret_f32 + i32.const 2147483647 + i32.and + local.tee $4 + i32.gt_u + if + local.get $4 + local.get $5 + local.set $4 + local.set $5 + end + local.get $4 + f32.reinterpret_i32 + local.set $0 + 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$24 + drop local.get $0 + local.get $1 f32.add + local.get $5 + i32.eqz + local.get $4 + i32.const 2139095040 + i32.ge_u + i32.or + local.get $4 + local.get $5 + i32.sub + i32.const 209715200 + i32.ge_u + i32.or + br_if $__inlined_func$~lib/math/NativeMathf.hypot$24 + drop + local.get $4 + i32.const 1568669696 + i32.ge_u + if (result f32) + local.get $0 + f32.const 8.077935669463161e-28 + f32.mul + local.set $0 + local.get $1 + f32.const 8.077935669463161e-28 + f32.mul + local.set $1 + f32.const 1237940039285380274899124e3 + else + local.get $5 + i32.const 562036736 + i32.lt_u + if (result f32) + local.get $0 + f32.const 1237940039285380274899124e3 + f32.mul + local.set $0 + local.get $1 + f32.const 1237940039285380274899124e3 + f32.mul + local.set $1 + f32.const 8.077935669463161e-28 + else + f32.const 1 + end + end + local.get $0 + f64.promote_f32 + local.tee $7 + local.get $7 + f64.mul + local.get $1 + f64.promote_f32 + local.tee $7 + local.get $7 + f64.mul + f64.add + f32.demote_f64 + f32.sqrt + f32.mul + end + local.get $2 + local.get $3 + call $std/math/check + ) + (func $~lib/math/NativeMathf.exp (param $0 f32) (result f32) + (local $1 f64) + (local $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 f64) + local.get $0 + f64.promote_f32 + local.set $1 + block $~lib/util/math/expf_lut|inlined.0 (result f32) local.get $0 i32.reinterpret_f32 - local.tee $4 - i32.const 2147483647 + local.tee $3 + i32.const 20 + i32.shr_u + i32.const 2047 i32.and - local.tee $6 - i32.const 2139095040 + local.tee $4 + i32.const 1067 i32.ge_u - br_if $__inlined_func$~lib/math/NativeMathf.cbrt$19 - drop - local.get $6 - i32.const 8388608 - i32.lt_u - if (result i32) + if + f32.const 0 + local.get $3 + i32.const -8388608 + i32.eq + br_if $~lib/util/math/expf_lut|inlined.0 + drop local.get $0 - local.get $6 - i32.eqz - br_if $__inlined_func$~lib/math/NativeMathf.cbrt$19 + local.get $0 + f32.add + local.get $4 + i32.const 2040 + i32.ge_u + br_if $~lib/util/math/expf_lut|inlined.0 drop local.get $0 - f32.const 16777216 + f32.const 1701411834604692317316873e14 f32.mul - i32.reinterpret_f32 - local.tee $4 - i32.const 2147483647 - i32.and - i32.const 3 - i32.div_u - i32.const 642849266 - i32.add - else - local.get $6 - i32.const 3 - i32.div_u - i32.const 709958130 - i32.add + local.get $0 + f32.const 88.72283172607422 + f32.gt + br_if $~lib/util/math/expf_lut|inlined.0 + drop + f32.const 0 + local.get $0 + f32.const -103.97207641601562 + f32.lt + br_if $~lib/util/math/expf_lut|inlined.0 + drop end - local.get $4 - i32.const -2147483648 - i32.and - i32.or - f32.reinterpret_i32 - f64.promote_f32 - local.tee $3 - local.get $3 - f64.mul - local.get $3 + local.get $1 + f64.const 46.16624130844683 f64.mul - local.set $7 - local.get $3 - local.get $0 - f64.promote_f32 + local.tee $1 + f64.const 6755399441055744 + f64.add local.tee $5 + i64.reinterpret_f64 + local.set $2 + local.get $1 local.get $5 + f64.const -6755399441055744 f64.add - local.tee $3 - local.get $7 - f64.add + f64.sub + local.tee $1 + f64.const 0.021660849396613134 f64.mul - local.get $5 - local.get $7 + f64.const 1 f64.add - local.get $7 + local.get $1 + f64.const 1.6938359250920212e-06 + f64.mul + f64.const 2.3459809789509004e-04 f64.add - f64.div - local.tee $7 - local.get $7 + local.get $1 + local.get $1 f64.mul - local.get $7 f64.mul - local.set $8 - local.get $7 - local.get $3 - local.get $8 f64.add + local.get $2 + i32.wrap_i64 + i32.const 31 + i32.and + i32.const 3 + i32.shl + i32.const 7712 + i32.add + i64.load + local.get $2 + i64.const 47 + i64.shl + i64.add + f64.reinterpret_i64 f64.mul - local.get $5 - local.get $8 - f64.add - local.get $8 - f64.add - f64.div f32.demote_f64 end - local.get $1 + ) + (func $std/math/test_roundf (param $0 f32) (param $1 f32) (result i32) + (local $2 f32) + local.get $0 + f32.ceil + local.tee $2 local.get $2 + f32.const -1 + f32.add + local.get $2 + f32.const -0.5 + f32.add + local.get $0 + f32.le + select + local.get $1 + f32.const 0 call $std/math/check ) - (func $~lib/math/pio2_large_quot (param $0 i64) (result i32) - (local $1 i64) - (local $2 i64) - (local $3 i64) + (func $~lib/math/NativeMath.expm1 (param $0 f64) (result f64) + (local $1 i32) + (local $2 f64) + (local $3 i32) (local $4 i32) - (local $5 f64) - (local $6 i64) - (local $7 i64) - (local $8 i64) - (local $9 i64) - (local $10 i64) - (local $11 i64) - (local $12 i64) + (local $5 i64) + (local $6 f64) + (local $7 f64) + (local $8 f64) local.get $0 - i64.const 9223372036854775807 - i64.and - i64.const 52 + i64.reinterpret_f64 + local.tee $5 + i64.const 32 i64.shr_u - i64.const 1045 - i64.sub - local.tee $1 - i64.const 63 - i64.and - local.set $6 - local.get $1 - i64.const 6 - i64.shr_s i32.wrap_i64 - i32.const 3 - i32.shl - i32.const 5440 - i32.add - local.tee $4 - i64.load + i32.const 2147483647 + i32.and local.set $3 - local.get $4 - i64.load offset=8 - local.set $2 - local.get $4 - i64.load offset=16 - local.set $1 - local.get $6 - i64.const 0 - i64.ne + local.get $5 + i64.const 63 + i64.shr_u + i32.wrap_i64 + local.set $4 + local.get $3 + i32.const 1078159482 + i32.ge_u + if + local.get $0 + local.get $0 + f64.ne + if + local.get $0 + return + end + local.get $4 + if + f64.const -1 + return + end + local.get $0 + f64.const 709.782712893384 + f64.gt + if + local.get $0 + f64.const 8988465674311579538646525e283 + f64.mul + return + end + end + local.get $3 + i32.const 1071001154 + i32.gt_u if + local.get $0 + i32.const 1 + local.get $4 + i32.const 1 + i32.shl + i32.sub + local.get $0 + f64.const 1.4426950408889634 + f64.mul + f64.const 0.5 + local.get $0 + f64.copysign + f64.add + i32.trunc_sat_f64_s local.get $3 - local.get $6 - i64.shl + i32.const 1072734898 + i32.lt_u + select + local.tee $1 + f64.convert_i32_s + local.tee $0 + f64.const 0.6931471803691238 + f64.mul + f64.sub + local.tee $2 local.get $2 - i64.const 64 - local.get $6 - i64.sub - local.tee $7 - i64.shr_u - i64.or - local.set $3 + local.get $0 + f64.const 1.9082149292705877e-10 + f64.mul + local.tee $2 + f64.sub + local.tee $0 + f64.sub local.get $2 - local.get $6 - i64.shl - local.get $1 - local.get $7 - i64.shr_u - i64.or + f64.sub local.set $2 - local.get $1 - local.get $6 - i64.shl - local.get $4 - i64.load offset=24 - local.get $7 - i64.shr_u - i64.or - local.set $1 + else + local.get $3 + i32.const 1016070144 + i32.lt_u + if + local.get $0 + return + end end local.get $0 - i64.const 4503599627370495 - i64.and - i64.const 4503599627370496 - i64.or - local.tee $6 - i64.const 4294967295 - i64.and - local.set $7 - local.get $2 - i64.const 4294967295 - i64.and - local.tee $8 - local.get $6 - i64.const 32 - i64.shr_u - local.tee $9 - i64.mul - local.get $2 - i64.const 32 - i64.shr_u - local.tee $2 - local.get $7 - i64.mul - local.get $7 - local.get $8 - i64.mul + local.get $0 + f64.const 0.5 + f64.mul local.tee $7 - i64.const 32 - i64.shr_u - i64.add - local.tee $8 - i64.const 4294967295 - i64.and - i64.add - local.set $10 - local.get $2 - local.get $9 - i64.mul - local.get $8 - i64.const 32 - i64.shr_u - i64.add - local.get $10 - i64.const 32 - i64.shr_u - i64.add - global.set $~lib/math/res128_hi - local.get $9 - local.get $1 - i64.const 32 - i64.shr_u - i64.mul - local.tee $1 - local.get $7 - i64.const 4294967295 - i64.and - local.get $10 - i64.const 32 - i64.shl - i64.add - i64.add - local.tee $2 - local.get $1 - i64.lt_u - i64.extend_i32_u - global.get $~lib/math/res128_hi - local.get $3 - local.get $6 - i64.mul - i64.add - i64.add - local.tee $3 - i64.const 2 - i64.shl - local.get $2 - i64.const 62 - i64.shr_u - i64.or + f64.mul local.tee $6 - i64.const 63 - i64.shr_s - local.tee $7 - local.get $2 - i64.const 2 - i64.shl - i64.xor - local.set $2 local.get $6 - local.get $7 - i64.const 1 - i64.shr_s - i64.xor - local.tee $1 - i64.clz + f64.mul local.set $8 - local.get $1 - local.get $8 - i64.shl - local.get $2 - i64.const 64 - local.get $8 - i64.sub - i64.shr_u - i64.or - local.tee $9 - i64.const 4294967295 - i64.and - local.set $1 - local.get $9 - i64.const 32 - i64.shr_u - local.tee $10 - i64.const 560513588 - i64.mul - local.get $1 - i64.const 3373259426 - i64.mul - local.get $1 - i64.const 560513588 - i64.mul - local.tee $11 - i64.const 32 - i64.shr_u - i64.add - local.tee $12 - i64.const 4294967295 - i64.and - i64.add - local.set $1 - local.get $10 - i64.const 3373259426 - i64.mul - local.get $12 - i64.const 32 - i64.shr_u - i64.add - local.get $1 - i64.const 32 - i64.shr_u - i64.add - global.set $~lib/math/res128_hi - local.get $9 - f64.convert_i64_u - f64.const 3.753184150245214e-04 + f64.const 3 + local.get $6 + f64.const -0.03333333333333313 f64.mul - local.get $2 + f64.const 1 + f64.add local.get $8 - i64.shl - f64.convert_i64_u - f64.const 3.834951969714103e-04 + local.get $6 + f64.const -7.93650757867488e-05 f64.mul + f64.const 1.5873015872548146e-03 f64.add - i64.trunc_sat_f64_u - local.tee $2 - local.get $11 - i64.const 4294967295 - i64.and - local.get $1 - i64.const 32 - i64.shl - i64.add - local.tee $1 - i64.gt_u - i64.extend_i32_u - global.get $~lib/math/res128_hi - local.tee $9 - i64.const 11 - i64.shr_u - i64.add - f64.convert_i64_u - global.set $~lib/math/rempio2_y0 - local.get $9 - i64.const 53 - i64.shl - local.get $1 - i64.const 11 - i64.shr_u - i64.or - local.get $2 - i64.add - f64.convert_i64_u - f64.const 5.421010862427522e-20 - f64.mul - global.set $~lib/math/rempio2_y1 - global.get $~lib/math/rempio2_y0 - i64.const 4372995238176751616 local.get $8 - i64.const 52 - i64.shl - i64.sub - local.get $0 local.get $6 - i64.xor - i64.const -9223372036854775808 - i64.and - i64.or - f64.reinterpret_i64 - local.tee $5 + f64.const -2.0109921818362437e-07 f64.mul - global.set $~lib/math/rempio2_y0 - global.get $~lib/math/rempio2_y1 - local.get $5 + f64.const 4.008217827329362e-06 + f64.add + f64.mul + f64.add + f64.mul + f64.add + local.tee $8 + local.get $7 f64.mul - global.set $~lib/math/rempio2_y1 - local.get $3 - i64.const 62 - i64.shr_s + f64.sub + local.set $7 + local.get $6 + local.get $8 local.get $7 - i64.sub - i32.wrap_i64 - ) - (func $~lib/math/NativeMath.cos (param $0 f64) (result f64) - (local $1 f64) - (local $2 f64) - (local $3 i32) - (local $4 i32) - (local $5 i64) - (local $6 i32) - (local $7 f64) - (local $8 f64) - (local $9 f64) + f64.sub + f64.const 6 local.get $0 - i64.reinterpret_f64 - local.tee $5 - i64.const 32 - i64.shr_u - i32.wrap_i64 - local.tee $3 - i32.const 31 - i32.shr_u - local.set $6 - local.get $3 - i32.const 2147483647 - i32.and - local.tee $3 - i32.const 1072243195 - i32.le_u + local.get $7 + f64.mul + f64.sub + f64.div + f64.mul + local.set $7 + local.get $1 + i32.eqz if - local.get $3 - i32.const 1044816030 - i32.lt_u - if - f64.const 1 - return - end local.get $0 local.get $0 - f64.mul - local.tee $1 - local.get $1 - f64.mul - local.set $2 - f64.const 1 - local.get $1 - f64.const 0.5 - f64.mul - local.tee $7 - f64.sub - local.tee $8 - f64.const 1 - local.get $8 - f64.sub local.get $7 - f64.sub - local.get $1 - local.get $1 - local.get $1 - local.get $1 - f64.const 2.480158728947673e-05 - f64.mul - f64.const -0.001388888888887411 - f64.add - f64.mul - f64.const 0.0416666666666666 - f64.add - f64.mul - local.get $2 - local.get $2 - f64.mul - local.get $1 - local.get $1 - f64.const -1.1359647557788195e-11 - f64.mul - f64.const 2.087572321298175e-09 - f64.add - f64.mul - f64.const -2.7557314351390663e-07 - f64.add - f64.mul - f64.add - f64.mul - local.get $0 - f64.const 0 f64.mul + local.get $6 + f64.sub f64.sub - f64.add - f64.add return end - local.get $3 - i32.const 2146435072 - i32.ge_u + local.get $0 + local.get $7 + local.get $2 + f64.sub + f64.mul + local.get $2 + f64.sub + local.get $6 + f64.sub + local.set $2 + local.get $1 + i32.const -1 + i32.eq if local.get $0 - local.get $0 + local.get $2 f64.sub + f64.const 0.5 + f64.mul + f64.const -0.5 + f64.add return end - block $~lib/math/rempio2|inlined.0 (result i32) - local.get $5 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const 2147483647 - i32.and - local.tee $4 - i32.const 1073928572 - i32.lt_u - if - i32.const 1 - local.set $3 - local.get $6 - if (result f64) - local.get $0 - f64.const 1.5707963267341256 - f64.add - local.set $0 - i32.const -1 - local.set $3 - local.get $4 - i32.const 1073291771 - i32.ne - if (result f64) - local.get $0 - local.get $0 - f64.const 6.077100506506192e-11 - f64.add - local.tee $0 - f64.sub - f64.const 6.077100506506192e-11 - f64.add - else - local.get $0 - f64.const 6.077100506303966e-11 - f64.add - local.tee $1 - f64.const 2.0222662487959506e-21 - f64.add - local.set $0 - local.get $1 - local.get $0 - f64.sub - f64.const 2.0222662487959506e-21 - f64.add - end - else - local.get $0 - f64.const -1.5707963267341256 - f64.add - local.set $0 - local.get $4 - i32.const 1073291771 - i32.ne - if (result f64) - local.get $0 - local.get $0 - f64.const -6.077100506506192e-11 - f64.add - local.tee $0 - f64.sub - f64.const -6.077100506506192e-11 - f64.add - else - local.get $0 - f64.const -6.077100506303966e-11 - f64.add - local.tee $1 - f64.const -2.0222662487959506e-21 - f64.add - local.set $0 - local.get $1 - local.get $0 - f64.sub - f64.const -2.0222662487959506e-21 - f64.add - end - end - local.set $1 - local.get $0 - global.set $~lib/math/rempio2_y0 - local.get $1 - global.set $~lib/math/rempio2_y1 - local.get $3 - br $~lib/math/rempio2|inlined.0 - end - local.get $4 - i32.const 1094263291 - i32.lt_u + local.get $1 + i32.const 1 + i32.eq + if + local.get $0 + f64.const -0.25 + f64.lt if - local.get $4 - i32.const 20 - i32.shr_u - local.tee $3 - local.get $0 + local.get $2 local.get $0 - f64.const 0.6366197723675814 - f64.mul - f64.nearest - local.tee $7 - f64.const 1.5707963267341256 - f64.mul + f64.const 0.5 + f64.add f64.sub - local.tee $0 - local.get $7 - f64.const 6.077100506506192e-11 + f64.const -2 f64.mul - local.tee $2 - f64.sub - local.tee $1 - i64.reinterpret_f64 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const 20 - i32.shr_u - i32.const 2047 - i32.and - i32.sub - i32.const 16 - i32.gt_u - if - local.get $7 - f64.const 2.0222662487959506e-21 - f64.mul - local.get $0 - local.get $0 - local.get $7 - f64.const 6.077100506303966e-11 - f64.mul - local.tee $1 - f64.sub - local.tee $0 - f64.sub - local.get $1 - f64.sub - f64.sub - local.set $2 - local.get $3 - local.get $0 - local.get $2 - f64.sub - local.tee $1 - i64.reinterpret_f64 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const 20 - i32.shr_u - i32.const 2047 - i32.and - i32.sub - i32.const 49 - i32.gt_u - if - local.get $7 - f64.const 8.4784276603689e-32 - f64.mul - local.get $0 - local.get $0 - local.get $7 - f64.const 2.0222662487111665e-21 - f64.mul - local.tee $1 - f64.sub - local.tee $0 - f64.sub - local.get $1 - f64.sub - f64.sub - local.set $2 - local.get $0 - local.get $2 - f64.sub - local.set $1 - end - end - local.get $1 - global.set $~lib/math/rempio2_y0 - local.get $0 - local.get $1 - f64.sub - local.get $2 - f64.sub - global.set $~lib/math/rempio2_y1 - local.get $7 - i32.trunc_sat_f64_s - br $~lib/math/rempio2|inlined.0 + return end - i32.const 0 - local.get $5 - call $~lib/math/pio2_large_quot - local.tee $3 - i32.sub - local.get $3 - local.get $6 - select - end - local.set $3 - global.get $~lib/math/rempio2_y0 - local.set $1 - global.get $~lib/math/rempio2_y1 - local.set $2 - local.get $3 - i32.const 1 - i32.and - if (result f64) - local.get $1 - local.get $1 - f64.mul - local.tee $0 - local.get $1 - f64.mul - local.set $7 - local.get $1 local.get $0 local.get $2 - f64.const 0.5 - f64.mul - local.get $7 - local.get $0 - local.get $0 - f64.const 2.7557313707070068e-06 - f64.mul - f64.const -1.984126982985795e-04 - f64.add + f64.sub + f64.const 2 f64.mul - f64.const 0.00833333333332249 + f64.const 1 f64.add + return + end + local.get $1 + i64.extend_i32_s + i64.const 1023 + i64.add + i64.const 52 + i64.shl + f64.reinterpret_i64 + local.set $6 + local.get $1 + i32.const 0 + i32.lt_s + local.get $1 + i32.const 56 + i32.gt_s + i32.or + if local.get $0 + local.get $2 + f64.sub + f64.const 1 + f64.add + local.tee $0 local.get $0 - local.get $0 - f64.mul + f64.add + f64.const 8988465674311579538646525e283 f64.mul local.get $0 - f64.const 1.58969099521155e-10 - f64.mul - f64.const -2.5050760253406863e-08 - f64.add + local.get $6 f64.mul + local.get $1 + i32.const 1024 + i32.eq + select + f64.const -1 f64.add - f64.mul - f64.sub - f64.mul - local.get $2 - f64.sub - local.get $7 - f64.const -0.16666666666666632 - f64.mul - f64.sub - f64.sub + return + end + local.get $0 + f64.const 1 + i64.const 1023 + local.get $1 + i64.extend_i32_s + i64.sub + i64.const 52 + i64.shl + f64.reinterpret_i64 + local.tee $0 + f64.sub + local.get $2 + f64.sub + f64.const 1 + local.get $2 + local.get $0 + f64.add + f64.sub + local.get $1 + i32.const 20 + i32.lt_s + select + f64.add + local.get $6 + f64.mul + ) + (func $std/math/test_atanhf (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (local $3 f32) + (local $4 i32) + local.get $0 + f32.abs + local.set $3 + local.get $0 + i32.reinterpret_f32 + local.tee $4 + i32.const 1056964608 + i32.lt_u + if (result f32) + local.get $4 + i32.const 796917760 + i32.ge_u + if (result f32) + local.get $3 + local.get $3 + f32.add + local.get $3 + f32.const 1 + local.get $3 + f32.sub + f32.div + f32.const 1 + f32.add + f32.mul + call $~lib/math/NativeMathf.log1p + f32.const 0.5 + f32.mul + else + local.get $3 + end + else + local.get $3 + f32.const 1 + local.get $3 + f32.sub + f32.div + f32.const 2 + f32.mul + call $~lib/math/NativeMathf.log1p + f32.const 0.5 + f32.mul + end + local.get $0 + f32.copysign + local.get $1 + local.get $2 + call $std/math/check + ) + (func $std/math/test_atanh (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (local $3 i64) + (local $4 f64) + (local $5 f64) + local.get $0 + f64.abs + local.set $5 + local.get $0 + i64.reinterpret_f64 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + local.tee $3 + i64.const 1022 + i64.lt_u + if (result f64) + local.get $3 + i64.const 991 + i64.ge_u + if (result f64) + local.get $5 + local.get $5 + f64.add + local.tee $4 + local.get $4 + local.get $5 + f64.mul + f64.const 1 + local.get $5 + f64.sub + f64.div + f64.add + call $~lib/math/NativeMath.log1p + f64.const 0.5 + f64.mul + else + local.get $5 + end else - local.get $1 - local.get $1 - f64.mul - local.tee $7 - local.get $7 - f64.mul - local.set $8 - f64.const 1 - local.get $7 - f64.const 0.5 - f64.mul - local.tee $0 - f64.sub - local.tee $9 + local.get $5 f64.const 1 - local.get $9 - f64.sub - local.get $0 + local.get $5 f64.sub - local.get $7 - local.get $7 - local.get $7 - local.get $7 - f64.const 2.480158728947673e-05 - f64.mul - f64.const -0.001388888888887411 - f64.add - f64.mul - f64.const 0.0416666666666666 - f64.add - f64.mul - local.get $8 - local.get $8 - f64.mul - local.get $7 - local.get $7 - f64.const -1.1359647557788195e-11 - f64.mul - f64.const 2.087572321298175e-09 - f64.add - f64.mul - f64.const -2.7557314351390663e-07 - f64.add + f64.div + f64.const 2 f64.mul - f64.add + call $~lib/math/NativeMath.log1p + f64.const 0.5 f64.mul + end + local.get $0 + f64.copysign + local.get $1 + local.get $2 + call $std/math/check + if (result i32) + local.get $0 + call $~lib/bindings/dom/Math.atanh local.get $1 local.get $2 - f64.mul - f64.sub - f64.add - f64.add + call $std/math/check + else + i32.const 0 end - local.tee $0 - f64.neg - local.get $0 - local.get $3 - i32.const 1 - i32.add - i32.const 2 - i32.and - select ) - (func $~lib/math/NativeMathf.cos (param $0 f32) (result f32) - (local $1 f64) - (local $2 f64) - (local $3 i32) - (local $4 i64) - (local $5 i32) - (local $6 f64) - (local $7 i32) - (local $8 i64) - (local $9 i64) + (func $~lib/math/NativeMathf.log1p (param $0 f32) (result f32) + (local $1 f32) + (local $2 i32) + (local $3 f32) + (local $4 i32) + (local $5 f32) + (local $6 f32) + i32.const 1 + local.set $2 local.get $0 i32.reinterpret_f32 - local.tee $3 + local.tee $4 i32.const 31 i32.shr_u - local.set $5 - block $folding-inner0 - local.get $3 - i32.const 2147483647 - i32.and - local.tee $3 - i32.const 1061752794 - i32.le_u + local.get $4 + i32.const 1054086096 + i32.lt_u + i32.or + if + local.get $4 + i32.const -1082130432 + i32.ge_u if - local.get $3 - i32.const 964689920 - i32.lt_u + local.get $0 + f32.const -1 + f32.eq if - f32.const 1 + local.get $0 + f32.const 0 + f32.div return end local.get $0 - f64.promote_f32 - local.tee $1 - local.get $1 - f64.mul - local.tee $1 - local.get $1 - f64.mul - local.set $2 - br $folding-inner0 + local.get $0 + f32.sub + f32.const 0 + f32.div + return end - local.get $3 - i32.const 1081824209 - i32.le_u + local.get $4 + i32.const 1 + i32.shl + i32.const 1728053248 + i32.lt_u if - local.get $3 - i32.const 1075235811 - i32.gt_u - if - local.get $0 - f64.promote_f32 - local.tee $1 - f64.const 3.141592653589793 - f64.add - local.get $1 - f64.const -3.141592653589793 - f64.add - local.get $5 - select - local.tee $1 - local.get $1 - f64.mul - local.tee $1 - local.get $1 - f64.mul - local.set $2 - local.get $1 - f64.const -0.499999997251031 - f64.mul - f64.const 1 - f64.add - local.get $2 - f64.const 0.04166662332373906 - f64.mul - f64.add - local.get $2 - local.get $1 - f64.mul - local.get $1 - f64.const 2.439044879627741e-05 - f64.mul - f64.const -0.001388676377460993 - f64.add - f64.mul - f64.add - f32.demote_f64 - f32.neg - return - else - local.get $5 - if (result f64) - local.get $0 - f64.promote_f32 - f64.const 1.5707963267948966 - f64.add - local.tee $2 - local.get $2 - f64.mul - local.tee $1 - local.get $2 - f64.mul - else - f64.const 1.5707963267948966 - local.get $0 - f64.promote_f32 - f64.sub - local.tee $2 - local.get $2 - f64.mul - local.tee $1 - local.get $2 - f64.mul - end - local.set $6 - local.get $2 - local.get $6 - local.get $1 - f64.const 0.008333329385889463 - f64.mul - f64.const -0.16666666641626524 - f64.add - f64.mul - f64.add - local.get $6 - local.get $1 - local.get $1 - f64.mul - f64.mul - local.get $1 - f64.const 2.718311493989822e-06 - f64.mul - f64.const -1.9839334836096632e-04 - f64.add - f64.mul - f64.add - f32.demote_f64 - return - end - unreachable + local.get $0 + return end - local.get $3 - i32.const 1088565717 + local.get $4 + i32.const -1097468391 i32.le_u - if - local.get $3 - i32.const 1085271519 - i32.gt_u - if - local.get $0 - f64.promote_f32 - local.tee $1 - f64.const 6.283185307179586 - f64.add - local.get $1 - f64.const -6.283185307179586 - f64.add - local.get $5 - select - local.tee $1 - local.get $1 - f64.mul - local.tee $1 - local.get $1 - f64.mul - local.set $2 - br $folding-inner0 - else - local.get $5 - if (result f64) - local.get $0 - f32.neg - f64.promote_f32 - f64.const -4.71238898038469 - f64.add - local.tee $2 - local.get $2 - f64.mul - local.tee $1 - local.get $2 - f64.mul - else - local.get $0 - f64.promote_f32 - f64.const -4.71238898038469 - f64.add - local.tee $2 - local.get $2 - f64.mul - local.tee $1 - local.get $2 - f64.mul - end - local.set $6 - local.get $2 - local.get $6 - local.get $1 - f64.const 0.008333329385889463 - f64.mul - f64.const -0.16666666641626524 - f64.add - f64.mul - f64.add - local.get $6 - local.get $1 - local.get $1 - f64.mul - f64.mul - local.get $1 - f64.const 2.718311493989822e-06 - f64.mul - f64.const -1.9839334836096632e-04 - f64.add - f64.mul - f64.add - f32.demote_f64 - return - end - unreachable + if (result f32) + i32.const 0 + local.set $2 + local.get $0 + else + f32.const 0 end - local.get $3 + local.set $1 + else + local.get $4 i32.const 2139095040 i32.ge_u if local.get $0 - local.get $0 - f32.sub return end - block $~lib/math/rempio2f|inlined.0 (result i32) - local.get $3 - i32.const 1305022427 - i32.lt_u - if - local.get $0 - f64.promote_f32 - local.tee $1 - f64.const 0.6366197723675814 - f64.mul - f64.nearest - local.set $2 - local.get $1 - local.get $2 - f64.const 1.5707963109016418 - f64.mul - f64.sub - local.get $2 - f64.const 1.5893254773528196e-08 - f64.mul - f64.sub - global.set $~lib/math/rempio2f_y - local.get $2 - i32.trunc_sat_f64_s - br $~lib/math/rempio2f|inlined.0 - end - local.get $3 - i32.const 23 - i32.shr_s - i32.const 152 - i32.sub - local.tee $7 - i32.const 63 - i32.and - i64.extend_i32_s - local.set $8 - local.get $7 - i32.const 6 - i32.shr_s - i32.const 3 - i32.shl - i32.const 5632 - i32.add - local.tee $7 - i64.load offset=8 - local.set $4 - f64.const 8.515303950216386e-20 - local.get $0 - f64.promote_f32 - f64.copysign - local.get $3 - i32.const 8388607 - i32.and - i32.const 8388608 - i32.or - i64.extend_i32_s - local.tee $9 - local.get $7 - i64.load - local.get $8 - i64.shl - local.get $4 - i64.const 64 - local.get $8 - i64.sub - i64.shr_u - i64.or - i64.mul - local.get $8 - i64.const 32 - i64.gt_u - if (result i64) - local.get $4 - local.get $8 - i64.const 32 - i64.sub - i64.shl - local.get $7 - i64.load offset=16 - i64.const 96 - local.get $8 - i64.sub - i64.shr_u - i64.or - else - local.get $4 - i64.const 32 - local.get $8 - i64.sub - i64.shr_u - end - local.get $9 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.tee $4 - i64.const 2 - i64.shl - local.tee $8 - f64.convert_i64_s - f64.mul - global.set $~lib/math/rempio2f_y - i32.const 0 - local.get $4 - i64.const 62 - i64.shr_u - local.get $8 - i64.const 63 - i64.shr_u - i64.add - i32.wrap_i64 - local.tee $3 - i32.sub - local.get $3 - local.get $5 - select - end - local.set $3 - global.get $~lib/math/rempio2f_y - local.set $1 - local.get $3 - i32.const 1 - i32.and - if (result f32) - local.get $1 - local.get $1 - local.get $1 - f64.mul - local.tee $2 - local.get $1 - f64.mul - local.tee $1 - local.get $2 - f64.const 0.008333329385889463 - f64.mul - f64.const -0.16666666641626524 - f64.add - f64.mul - f64.add - local.get $1 - local.get $2 - local.get $2 - f64.mul - f64.mul - local.get $2 - f64.const 2.718311493989822e-06 - f64.mul - f64.const -1.9839334836096632e-04 - f64.add - f64.mul - f64.add - f32.demote_f64 - else - local.get $1 - local.get $1 - f64.mul - local.tee $1 + end + local.get $2 + if + local.get $0 + f32.const 1 + f32.add + local.tee $1 + i32.reinterpret_f32 + i32.const 4913933 + i32.add + local.tee $4 + i32.const 23 + i32.shr_u + i32.const 127 + i32.sub + local.tee $2 + i32.const 25 + i32.lt_s + if (result f32) + f32.const 1 local.get $1 - f64.mul - local.set $2 + local.get $0 + f32.sub + f32.sub + local.get $0 local.get $1 - f64.const -0.499999997251031 - f64.mul - f64.const 1 - f64.add - local.get $2 - f64.const 0.04166662332373906 - f64.mul - f64.add + f32.const -1 + f32.add + f32.sub local.get $2 + i32.const 2 + i32.ge_s + select local.get $1 - f64.mul - local.get $1 - f64.const 2.439044879627741e-05 - f64.mul - f64.const -0.001388676377460993 - f64.add - f64.mul - f64.add - f32.demote_f64 + f32.div + else + f32.const 0 end - local.tee $0 - f32.neg - local.get $0 - local.get $3 - i32.const 1 - i32.add - i32.const 2 + local.set $3 + local.get $4 + i32.const 8388607 i32.and - select - return + i32.const 1060439283 + i32.add + f32.reinterpret_i32 + f32.const -1 + f32.add + local.set $1 end local.get $1 - f64.const -0.499999997251031 - f64.mul - f64.const 1 - f64.add - local.get $2 - f64.const 0.04166662332373906 - f64.mul - f64.add - local.get $2 local.get $1 - f64.mul + f32.const 2 + f32.add + f32.div + local.tee $5 + local.get $5 + f32.mul + local.tee $0 + local.get $0 + f32.mul + local.set $6 + local.get $5 local.get $1 - f64.const 2.439044879627741e-05 - f64.mul - f64.const -0.001388676377460993 - f64.add - f64.mul - f64.add - f32.demote_f64 + f32.const 0.5 + f32.mul + local.get $1 + f32.mul + local.tee $5 + local.get $0 + local.get $6 + f32.const 0.2849878668785095 + f32.mul + f32.const 0.6666666269302368 + f32.add + f32.mul + local.get $6 + local.get $6 + f32.const 0.24279078841209412 + f32.mul + f32.const 0.40000972151756287 + f32.add + f32.mul + f32.add + f32.add + f32.mul + local.get $2 + f32.convert_i32_s + local.tee $0 + f32.const 9.05800061445916e-06 + f32.mul + local.get $3 + f32.add + f32.add + local.get $5 + f32.sub + local.get $1 + f32.add + local.get $0 + f32.const 0.6931381225585938 + f32.mul + f32.add ) - (func $~lib/math/NativeMath.expm1 (param $0 f64) (result f64) + (func $~lib/math/NativeMathf.expm1 (param $0 f32) (result f32) (local $1 i32) - (local $2 f64) + (local $2 f32) (local $3 i32) - (local $4 i32) - (local $5 i64) - (local $6 f64) - (local $7 f64) - (local $8 f64) + (local $4 f32) + (local $5 i32) + (local $6 f32) + (local $7 f32) local.get $0 - i64.reinterpret_f64 + i32.reinterpret_f32 local.tee $5 - i64.const 32 - i64.shr_u - i32.wrap_i64 i32.const 2147483647 i32.and local.set $3 local.get $5 - i64.const 63 - i64.shr_u - i32.wrap_i64 - local.set $4 + i32.const 31 + i32.shr_u + local.set $5 local.get $3 - i32.const 1078159482 + i32.const 1100331076 i32.ge_u if - local.get $0 - local.get $0 - f64.ne + local.get $3 + i32.const 2139095040 + i32.gt_u if local.get $0 return end - local.get $4 + local.get $5 if - f64.const -1 + f32.const -1 return end - local.get $0 - f64.const 709.782712893384 - f64.gt + local.get $3 + i32.const 1118925335 + i32.gt_u if local.get $0 - f64.const 8988465674311579538646525e283 - f64.mul + f32.const 1701411834604692317316873e14 + f32.mul return end end local.get $3 - i32.const 1071001154 + i32.const 1051816472 i32.gt_u if local.get $0 i32.const 1 - local.get $4 + local.get $5 i32.const 1 i32.shl i32.sub local.get $0 - f64.const 1.4426950408889634 - f64.mul - f64.const 0.5 + f32.const 1.4426950216293335 + f32.mul + f32.const 0.5 local.get $0 - f64.copysign - f64.add - i32.trunc_sat_f64_s + f32.copysign + f32.add + i32.trunc_sat_f32_s local.get $3 - i32.const 1072734898 + i32.const 1065686418 i32.lt_u select local.tee $1 - f64.convert_i32_s + f32.convert_i32_s local.tee $0 - f64.const 0.6931471803691238 - f64.mul - f64.sub + f32.const 0.6931381225585938 + f32.mul + f32.sub local.tee $2 local.get $2 local.get $0 - f64.const 1.9082149292705877e-10 - f64.mul + f32.const 9.05800061445916e-06 + f32.mul local.tee $2 - f64.sub + f32.sub local.tee $0 - f64.sub + f32.sub local.get $2 - f64.sub + f32.sub local.set $2 else local.get $3 - i32.const 1016070144 + i32.const 855638016 i32.lt_u if local.get $0 return end end + f32.const 3 local.get $0 local.get $0 - f64.const 0.5 - f64.mul - local.tee $7 - f64.mul + f32.const 0.5 + f32.mul local.tee $6 + f32.mul + local.tee $4 + local.get $4 + f32.const 1.5807170420885086e-03 + f32.mul + f32.const -0.03333321213722229 + f32.add + f32.mul + f32.const 1 + f32.add + local.tee $7 local.get $6 - f64.mul - local.set $8 - f64.const 3 - local.get $6 - f64.const -0.03333333333333313 - f64.mul - f64.const 1 - f64.add - local.get $8 - local.get $6 - f64.const -7.93650757867488e-05 - f64.mul - f64.const 1.5873015872548146e-03 - f64.add - local.get $8 - local.get $6 - f64.const -2.0109921818362437e-07 - f64.mul - f64.const 4.008217827329362e-06 - f64.add - f64.mul - f64.add - f64.mul - f64.add - local.tee $8 + f32.mul + f32.sub + local.set $6 + local.get $4 local.get $7 - f64.mul - f64.sub - local.set $7 local.get $6 - local.get $8 - local.get $7 - f64.sub - f64.const 6 + f32.sub + f32.const 6 local.get $0 - local.get $7 - f64.mul - f64.sub - f64.div - f64.mul - local.set $7 + local.get $6 + f32.mul + f32.sub + f32.div + f32.mul + local.set $6 local.get $1 i32.eqz if local.get $0 local.get $0 - local.get $7 - f64.mul local.get $6 - f64.sub - f64.sub + f32.mul + local.get $4 + f32.sub + f32.sub return end local.get $0 - local.get $7 + local.get $6 local.get $2 - f64.sub - f64.mul + f32.sub + f32.mul local.get $2 - f64.sub - local.get $6 - f64.sub + f32.sub + local.get $4 + f32.sub local.set $2 local.get $1 i32.const -1 @@ -4749,11 +7136,11 @@ if local.get $0 local.get $2 - f64.sub - f64.const 0.5 - f64.mul - f64.const -0.5 - f64.add + f32.sub + f32.const 0.5 + f32.mul + f32.const -0.5 + f32.add return end local.get $1 @@ -4761,990 +7148,758 @@ i32.eq if local.get $0 - f64.const -0.25 - f64.lt + f32.const -0.25 + f32.lt if local.get $2 local.get $0 - f64.const 0.5 - f64.add - f64.sub - f64.const -2 - f64.mul + f32.const 0.5 + f32.add + f32.sub + f32.const -2 + f32.mul return end local.get $0 local.get $2 - f64.sub - f64.const 2 - f64.mul + f32.sub + f32.const 2 + f32.mul + f32.const 1 + f32.add + return + end + local.get $1 + i32.const 127 + i32.add + i32.const 23 + i32.shl + f32.reinterpret_i32 + local.set $4 + local.get $1 + i32.const 0 + i32.lt_s + local.get $1 + i32.const 56 + i32.gt_s + i32.or + if + local.get $0 + local.get $2 + f32.sub + f32.const 1 + f32.add + local.tee $0 + local.get $0 + f32.add + f32.const 1701411834604692317316873e14 + f32.mul + local.get $0 + local.get $4 + f32.mul + local.get $1 + i32.const 128 + i32.eq + select + f32.const -1 + f32.add + return + end + local.get $0 + f32.const 1 + i32.const 127 + local.get $1 + i32.sub + i32.const 23 + i32.shl + f32.reinterpret_i32 + local.tee $0 + f32.sub + local.get $2 + f32.sub + f32.const 1 + local.get $2 + local.get $0 + f32.add + f32.sub + local.get $1 + i32.const 20 + i32.lt_s + select + f32.add + local.get $4 + f32.mul + ) + (func $~lib/math/NativeMath.log1p (param $0 f64) (result f64) + (local $1 f64) + (local $2 i32) + (local $3 i64) + (local $4 f64) + (local $5 i32) + (local $6 f64) + (local $7 f64) + i32.const 1 + local.set $2 + local.get $0 + i64.reinterpret_f64 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.tee $5 + i32.const 31 + i32.shr_u + local.get $5 + i32.const 1071284858 + i32.lt_u + i32.or + if + local.get $5 + i32.const -1074790400 + i32.ge_u + if + local.get $0 + f64.const -1 + f64.eq + if + local.get $0 + f64.const 0 + f64.div + return + end + local.get $0 + local.get $0 + f64.sub + f64.const 0 + f64.div + return + end + local.get $5 + i32.const 1 + i32.shl + i32.const 2034237440 + i32.lt_u + if + local.get $0 + return + end + local.get $5 + i32.const -1076707644 + i32.le_u + if (result f64) + i32.const 0 + local.set $2 + local.get $0 + else + f64.const 0 + end + local.set $1 + else + local.get $5 + i32.const 2146435072 + i32.ge_u + if + local.get $0 + return + end + end + local.get $2 + if + local.get $0 f64.const 1 f64.add - return + i64.reinterpret_f64 + local.tee $3 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const 614242 + i32.add + local.tee $5 + i32.const 20 + i32.shr_u + i32.const 1023 + i32.sub + local.tee $2 + i32.const 54 + i32.lt_s + if (result f64) + f64.const 1 + local.get $3 + f64.reinterpret_i64 + local.tee $1 + local.get $0 + f64.sub + f64.sub + local.get $0 + local.get $1 + f64.const -1 + f64.add + f64.sub + local.get $2 + i32.const 2 + i32.ge_s + select + local.get $1 + f64.div + else + f64.const 0 + end + local.set $4 + local.get $3 + i64.const 4294967295 + i64.and + local.get $5 + i32.const 1048575 + i32.and + i32.const 1072079006 + i32.add + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + f64.reinterpret_i64 + f64.const -1 + f64.add + local.set $1 end local.get $1 - i64.extend_i32_s - i64.const 1023 - i64.add - i64.const 52 - i64.shl - f64.reinterpret_i64 - local.set $6 local.get $1 - i32.const 0 - i32.lt_s + f64.const 2 + f64.add + f64.div + local.tee $6 + local.get $6 + f64.mul + local.tee $7 + local.get $7 + f64.mul + local.set $0 + local.get $6 local.get $1 - i32.const 56 - i32.gt_s - i32.or - if - local.get $0 - local.get $2 - f64.sub - f64.const 1 - f64.add - local.tee $0 - local.get $0 - f64.add - f64.const 8988465674311579538646525e283 - f64.mul - local.get $0 - local.get $6 - f64.mul - local.get $1 - i32.const 1024 - i32.eq - select - f64.const -1 - f64.add - return - end - local.get $0 - f64.const 1 - i64.const 1023 + f64.const 0.5 + f64.mul local.get $1 - i64.extend_i32_s - i64.sub - i64.const 52 - i64.shl - f64.reinterpret_i64 - local.tee $0 - f64.sub - local.get $2 - f64.sub - f64.const 1 - local.get $2 + f64.mul + local.tee $6 + local.get $7 + local.get $0 + local.get $0 + local.get $0 + f64.const 0.14798198605116586 + f64.mul + f64.const 0.1818357216161805 + f64.add + f64.mul + f64.const 0.2857142874366239 + f64.add + f64.mul + f64.const 0.6666666666666735 + f64.add + f64.mul + local.get $0 local.get $0 + local.get $0 + f64.const 0.15313837699209373 + f64.mul + f64.const 0.22222198432149784 + f64.add + f64.mul + f64.const 0.3999999999940942 + f64.add + f64.mul + f64.add + f64.add + f64.mul + local.get $2 + f64.convert_i32_s + local.tee $0 + f64.const 1.9082149292705877e-10 + f64.mul + local.get $4 f64.add + f64.add + local.get $6 f64.sub local.get $1 - i32.const 20 - i32.lt_s - select f64.add - local.get $6 + local.get $0 + f64.const 0.6931471803691238 f64.mul + f64.add ) - (func $~lib/math/NativeMath.exp (param $0 f64) (result f64) - (local $1 i32) - (local $2 i64) - (local $3 f64) + (func $~lib/math/NativeMath.log (param $0 f64) (result f64) + (local $1 i64) + (local $2 i32) + (local $3 i64) (local $4 f64) - (local $5 i32) - (local $6 i64) - (local $7 f64) - (local $8 f64) - block $~lib/util/math/exp_lut|inlined.0 (result f64) + (local $5 f64) + (local $6 f64) + (local $7 i32) + block $~lib/util/math/log_lut|inlined.0 (result f64) local.get $0 i64.reinterpret_f64 - local.tee $2 - i64.const 52 + local.tee $1 + i64.const 4606619468846596096 + i64.sub + i64.const 854320534781952 + i64.lt_u + if + local.get $0 + f64.const -1 + f64.add + local.tee $0 + local.get $0 + f64.mul + local.tee $4 + local.get $0 + f64.mul + local.tee $5 + local.get $0 + f64.const -0.24999999999998432 + f64.mul + f64.const 0.3333333333333352 + f64.add + local.get $4 + f64.const 0.19999999999320328 + f64.mul + f64.add + local.get $5 + local.get $0 + f64.const 0.14285715076560868 + f64.mul + f64.const -0.16666666669929706 + f64.add + local.get $4 + f64.const -0.12499997863982555 + f64.mul + f64.add + local.get $5 + local.get $0 + f64.const -0.10000486757818193 + f64.mul + f64.const 0.11110712032936046 + f64.add + local.get $4 + f64.const 0.09181994006195467 + f64.mul + f64.add + local.get $5 + f64.const -0.08328363062289341 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + local.get $0 + local.get $0 + local.get $0 + local.get $0 + f64.const 134217728 + f64.mul + local.tee $4 + f64.add + local.get $4 + f64.sub + local.tee $4 + local.get $4 + f64.mul + f64.const -0.5 + f64.mul + local.tee $5 + f64.add + local.tee $6 + f64.sub + local.get $5 + f64.add + local.get $0 + local.get $4 + f64.sub + f64.const -0.5 + f64.mul + local.get $4 + local.get $0 + f64.add + f64.mul + f64.add + f64.add + local.get $6 + f64.add + br $~lib/util/math/log_lut|inlined.0 + end + local.get $1 + i64.const 48 i64.shr_u i32.wrap_i64 - i32.const 2047 - i32.and - local.tee $1 - i32.const 969 + local.tee $2 + i32.const 16 i32.sub - local.tee $5 - i32.const 63 + i32.const 32736 i32.ge_u if - f64.const 1 - local.get $5 - i32.const -2147483648 - i32.ge_u - br_if $~lib/util/math/exp_lut|inlined.0 + f64.const -1 + local.get $0 + local.get $0 + f64.mul + f64.div + local.get $1 + i64.const 1 + i64.shl + i64.eqz + br_if $~lib/util/math/log_lut|inlined.0 drop + local.get $0 local.get $1 - i32.const 1033 - i32.ge_u + i64.const 9218868437227405312 + i64.eq + br_if $~lib/util/math/log_lut|inlined.0 + drop + i32.const 1 + local.get $2 + i32.const 32752 + i32.and + i32.const 32752 + i32.eq + local.get $2 + i32.const 32768 + i32.and + select if - f64.const 0 - local.get $2 - i64.const -4503599627370496 - i64.eq - br_if $~lib/util/math/exp_lut|inlined.0 - drop local.get $0 - f64.const 1 - f64.add - local.get $1 - i32.const 2047 - i32.ge_u - br_if $~lib/util/math/exp_lut|inlined.0 - drop - f64.const 0 - f64.const inf - local.get $2 - i64.const 0 - i64.lt_s - select - br $~lib/util/math/exp_lut|inlined.0 + local.get $0 + f64.sub + local.tee $0 + local.get $0 + f64.div + br $~lib/util/math/log_lut|inlined.0 end - i32.const 0 + local.get $0 + f64.const 4503599627370496 + f64.mul + i64.reinterpret_f64 + i64.const 234187180623265792 + i64.sub local.set $1 end - local.get $0 - f64.const 184.6649652337873 - f64.mul - f64.const 6755399441055744 - f64.add + local.get $1 + i64.const 4604367669032910848 + i64.sub local.tee $3 - i64.reinterpret_f64 - local.tee $6 + i64.const 45 + i64.shr_u i64.const 127 i64.and - i64.const 1 - i64.shl i32.wrap_i64 - i32.const 3 + i32.const 4 i32.shl - i32.const 5664 + local.tee $2 + i32.const 1088 i32.add - local.tee $5 - i64.load offset=8 - local.get $6 - i64.const 45 - i64.shl - i64.add - local.set $2 - local.get $0 + local.set $7 local.get $3 - f64.const -6755399441055744 - f64.add - local.tee $0 - f64.const -0.005415212348111709 - f64.mul - f64.add - local.get $0 - f64.const -1.2864023111638346e-14 - f64.mul - f64.add + i64.const 52 + i64.shr_s + f64.convert_i64_s local.tee $0 - local.get $0 - f64.mul - local.set $3 - local.get $5 - f64.load - local.get $0 - f64.add - local.get $3 - local.get $0 - f64.const 0.16666666666665886 - f64.mul - f64.const 0.49999999999996786 - f64.add - f64.mul - f64.add - local.get $3 - local.get $3 - f64.mul - local.get $0 - f64.const 0.008333335853059549 - f64.mul - f64.const 0.0416666808410674 - f64.add - f64.mul - f64.add - local.set $0 - local.get $1 - i32.eqz - if - block $~lib/util/math/specialcase|inlined.0 (result f64) - local.get $6 - i64.const 2147483648 - i64.and - i64.eqz - if - local.get $2 - i64.const 4544132024016830464 - i64.sub - f64.reinterpret_i64 - local.tee $3 - local.get $3 - local.get $0 - f64.mul - f64.add - f64.const 5486124068793688683255936e279 - f64.mul - br $~lib/util/math/specialcase|inlined.0 - end - local.get $2 - i64.const 4602678819172646912 - i64.add - local.tee $2 - f64.reinterpret_i64 - local.tee $3 - local.get $0 - f64.mul - local.set $7 - local.get $3 - local.get $7 - f64.add - local.tee $4 - f64.abs - f64.const 1 - f64.lt - if (result f64) - f64.const 1 - local.get $4 - f64.copysign - local.tee $8 - local.get $4 - f64.add - local.tee $0 - local.get $8 - local.get $0 - f64.sub - local.get $4 - f64.add - local.get $3 - local.get $4 - f64.sub - local.get $7 - f64.add - f64.add - f64.add - local.get $8 - f64.sub - local.tee $0 - f64.const 0 - f64.eq - if (result f64) - local.get $2 - i64.const -9223372036854775808 - i64.and - f64.reinterpret_i64 - else - local.get $0 - end - else - local.get $4 - end - f64.const 2.2250738585072014e-308 - f64.mul - end - br $~lib/util/math/exp_lut|inlined.0 - end - local.get $2 - f64.reinterpret_i64 - local.tee $3 - local.get $3 - local.get $0 + f64.const 0.6931471805598903 f64.mul - f64.add - end - ) - (func $std/math/test_cosh (param $0 f64) (param $1 f64) (param $2 f64) (result i32) - (local $3 i32) - (local $4 i64) - (local $5 f64) - block $__inlined_func$~lib/math/NativeMath.cosh$20 (result f64) - local.get $0 - i64.reinterpret_f64 - i64.const 9223372036854775807 - i64.and - local.tee $4 - f64.reinterpret_i64 - local.set $5 - local.get $4 - i64.const 32 - i64.shr_u - i32.wrap_i64 - local.tee $3 - i32.const 1072049730 - i32.lt_u - if - f64.const 1 - local.get $3 - i32.const 1045430272 - i32.lt_u - br_if $__inlined_func$~lib/math/NativeMath.cosh$20 - drop - local.get $5 - call $~lib/math/NativeMath.expm1 - local.tee $5 - local.get $5 - f64.mul - local.get $5 - local.get $5 - f64.add - f64.const 2 - f64.add - f64.div - f64.const 1 - f64.add - br $__inlined_func$~lib/math/NativeMath.cosh$20 - end - local.get $3 - i32.const 1082535490 - i32.lt_u - if - local.get $5 - call $~lib/math/NativeMath.exp - local.tee $5 - f64.const 1 - local.get $5 - f64.div - f64.add - f64.const 0.5 - f64.mul - br $__inlined_func$~lib/math/NativeMath.cosh$20 - end + local.get $7 + f64.load offset=8 + f64.add + local.tee $4 + local.get $1 + local.get $3 + i64.const -4503599627370496 + i64.and + i64.sub + f64.reinterpret_i64 + local.get $2 + i32.const 3136 + i32.add + local.tee $2 + f64.load + f64.sub + local.get $2 + f64.load offset=8 + f64.sub + local.get $7 + f64.load + f64.mul + local.tee $5 + f64.add + local.set $6 + local.get $4 + local.get $6 + f64.sub local.get $5 - f64.const -1416.0996898839683 f64.add - call $~lib/math/NativeMath.exp - f64.const 2247116418577894884661631e283 + local.get $0 + f64.const 5.497923018708371e-14 f64.mul - f64.const 2247116418577894884661631e283 + f64.add + local.get $5 + local.get $5 f64.mul - end - local.get $1 - local.get $2 - call $std/math/check - if (result i32) + local.tee $0 + f64.const -0.5000000000000001 + f64.mul + f64.add + local.get $5 local.get $0 - call $~lib/bindings/dom/Math.cosh - local.get $1 - local.get $2 - call $std/math/check - else - i32.const 0 + f64.mul + local.get $5 + f64.const -0.2499999999622955 + f64.mul + f64.const 0.33333333331825593 + f64.add + local.get $0 + local.get $5 + f64.const -0.16667054827627667 + f64.mul + f64.const 0.20000304511814496 + f64.add + f64.mul + f64.add + f64.mul + f64.add + local.get $6 + f64.add end ) - (func $~lib/math/NativeMathf.expm1 (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.acos (param $0 f32) (result f32) (local $1 i32) - (local $2 f32) - (local $3 i32) + (local $2 i32) + (local $3 f32) (local $4 f32) - (local $5 i32) - (local $6 f32) - (local $7 f32) local.get $0 i32.reinterpret_f32 - local.tee $5 + local.tee $2 i32.const 2147483647 i32.and - local.set $3 - local.get $5 - i32.const 31 - i32.shr_u - local.set $5 - local.get $3 - i32.const 1100331076 + local.tee $1 + i32.const 1065353216 i32.ge_u if - local.get $3 - i32.const 2139095040 - i32.gt_u - if - local.get $0 - return - end - local.get $5 + local.get $1 + i32.const 1065353216 + i32.eq if - f32.const -1 + f32.const 3.141592502593994 + f32.const 0 + local.get $2 + i32.const 0 + i32.lt_s + select return end - local.get $3 - i32.const 1118925335 - i32.gt_u + f32.const 0 + local.get $0 + local.get $0 + f32.sub + f32.div + return + end + local.get $1 + i32.const 1056964608 + i32.lt_u + if + local.get $1 + i32.const 847249408 + i32.le_u if - local.get $0 - f32.const 1701411834604692317316873e14 - f32.mul + f32.const 1.570796251296997 return end - end - local.get $3 - i32.const 1051816472 - i32.gt_u - if + f32.const 1.570796251296997 local.get $0 - i32.const 1 - local.get $5 - i32.const 1 - i32.shl - i32.sub + f32.const 7.549789415861596e-08 local.get $0 - f32.const 1.4426950216293335 - f32.mul - f32.const 0.5 local.get $0 - f32.copysign - f32.add - i32.trunc_sat_f32_s - local.get $3 - i32.const 1065686418 - i32.lt_u - select - local.tee $1 - f32.convert_i32_s - local.tee $0 - f32.const 0.6931381225585938 - f32.mul - f32.sub - local.tee $2 - local.get $2 local.get $0 - f32.const 9.05800061445916e-06 f32.mul - local.tee $2 - f32.sub local.tee $0 - f32.sub - local.get $2 - f32.sub - local.set $2 - else - local.get $3 - i32.const 855638016 - i32.lt_u - if - local.get $0 - return - end - end - f32.const 3 - local.get $0 - local.get $0 - f32.const 0.5 - f32.mul - local.tee $6 - f32.mul - local.tee $4 - local.get $4 - f32.const 1.5807170420885086e-03 - f32.mul - f32.const -0.03333321213722229 - f32.add - f32.mul - f32.const 1 - f32.add - local.tee $7 - local.get $6 - f32.mul - f32.sub - local.set $6 - local.get $4 - local.get $7 - local.get $6 - f32.sub - f32.const 6 - local.get $0 - local.get $6 - f32.mul - f32.sub - f32.div - f32.mul - local.set $6 - local.get $1 - i32.eqz - if local.get $0 local.get $0 - local.get $6 + f32.const -0.008656363002955914 f32.mul - local.get $4 - f32.sub - f32.sub - return - end - local.get $0 - local.get $6 - local.get $2 - f32.sub - f32.mul - local.get $2 - f32.sub - local.get $4 - f32.sub - local.set $2 - local.get $1 - i32.const -1 - i32.eq - if - local.get $0 - local.get $2 - f32.sub - f32.const 0.5 + f32.const -0.04274342209100723 + f32.add f32.mul - f32.const -0.5 + f32.const 0.16666586697101593 f32.add - return - end - local.get $1 - i32.const 1 - i32.eq - if - local.get $0 - f32.const -0.25 - f32.lt - if - local.get $2 - local.get $0 - f32.const 0.5 - f32.add - f32.sub - f32.const -2 - f32.mul - return - end + f32.mul local.get $0 - local.get $2 - f32.sub - f32.const 2 + f32.const -0.7066296339035034 f32.mul f32.const 1 f32.add + f32.div + f32.mul + f32.sub + f32.sub + f32.sub return end - local.get $1 - i32.const 127 - i32.add - i32.const 23 - i32.shl - f32.reinterpret_i32 - local.set $4 - local.get $1 + local.get $2 i32.const 0 i32.lt_s - local.get $1 - i32.const 56 - i32.gt_s - i32.or if + f32.const 1.570796251296997 local.get $0 - local.get $2 - f32.sub - f32.const 1 + f32.const 0.5 + f32.mul + f32.const 0.5 f32.add local.tee $0 + f32.sqrt + local.tee $3 local.get $0 + local.get $0 + local.get $0 + f32.const -0.008656363002955914 + f32.mul + f32.const -0.04274342209100723 + f32.add + f32.mul + f32.const 0.16666586697101593 f32.add - f32.const 1701411834604692317316873e14 f32.mul local.get $0 - local.get $4 + f32.const -0.7066296339035034 f32.mul - local.get $1 - i32.const 128 - i32.eq - select - f32.const -1 + f32.const 1 + f32.add + f32.div + local.get $3 + f32.mul + f32.const -7.549789415861596e-08 f32.add + f32.add + f32.sub + f32.const 2 + f32.mul return end + f32.const 0.5 local.get $0 - f32.const 1 - i32.const 127 - local.get $1 - i32.sub - i32.const 23 - i32.shl + f32.const 0.5 + f32.mul + f32.sub + local.tee $3 + f32.sqrt + local.tee $4 + i32.reinterpret_f32 + i32.const -4096 + i32.and f32.reinterpret_i32 local.tee $0 - f32.sub - local.get $2 - f32.sub - f32.const 1 - local.get $2 - local.get $0 - f32.add - f32.sub - local.get $1 - i32.const 20 - i32.lt_s - select - f32.add - local.get $4 + local.get $3 + local.get $3 + local.get $3 + f32.const -0.008656363002955914 + f32.mul + f32.const -0.04274342209100723 + f32.add + f32.mul + f32.const 0.16666586697101593 + f32.add + f32.mul + local.get $3 + f32.const -0.7066296339035034 + f32.mul + f32.const 1 + f32.add + f32.div + local.get $4 + f32.mul + local.get $3 + local.get $0 + local.get $0 + f32.mul + f32.sub + local.get $4 + local.get $0 + f32.add + f32.div + f32.add + f32.add + f32.const 2 f32.mul ) - (func $~lib/math/NativeMathf.exp (param $0 f32) (result f32) - (local $1 f64) - (local $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 f64) - block $~lib/util/math/expf_lut|inlined.0 (result f32) - local.get $0 - i32.reinterpret_f32 - local.tee $3 - i32.const 20 - i32.shr_u - i32.const 2047 - i32.and - local.tee $4 - i32.const 1067 - i32.ge_u - if - f32.const 0 - local.get $3 - i32.const -8388608 - i32.eq - br_if $~lib/util/math/expf_lut|inlined.0 - drop - local.get $0 - local.get $0 - f32.add - local.get $4 - i32.const 2040 - i32.ge_u - br_if $~lib/util/math/expf_lut|inlined.0 - drop - local.get $0 - f32.const 1701411834604692317316873e14 - f32.mul - local.get $0 - f32.const 88.72283172607422 - f32.gt - br_if $~lib/util/math/expf_lut|inlined.0 - drop - f32.const 0 - local.get $0 - f32.const -103.97207641601562 - f32.lt - br_if $~lib/util/math/expf_lut|inlined.0 - drop - end - local.get $0 - f64.promote_f32 - f64.const 46.16624130844683 - f64.mul - local.tee $1 - f64.const 6755399441055744 - f64.add - local.tee $5 - i64.reinterpret_f64 - local.set $2 - local.get $1 - local.get $5 - f64.const -6755399441055744 - f64.add - f64.sub - local.tee $1 - f64.const 0.021660849396613134 - f64.mul - f64.const 1 - f64.add - local.get $1 - f64.const 1.6938359250920212e-06 - f64.mul - f64.const 2.3459809789509004e-04 - f64.add - local.get $1 - local.get $1 - f64.mul - f64.mul - f64.add - local.get $2 - i32.wrap_i64 - i32.const 31 - i32.and - i32.const 3 - i32.shl - i32.const 7712 - i32.add - i64.load - local.get $2 - i64.const 47 - i64.shl - i64.add - f64.reinterpret_i64 - f64.mul - f32.demote_f64 - end - ) - (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$21 (result f32) - local.get $0 - i32.reinterpret_f32 - i32.const 2147483647 - i32.and - local.tee $3 - f32.reinterpret_i32 - local.set $0 - local.get $3 - i32.const 1060205079 - i32.lt_u - if - f32.const 1 - local.get $3 - i32.const 964689920 - i32.lt_u - br_if $__inlined_func$~lib/math/NativeMathf.cosh$21 - drop - local.get $0 - call $~lib/math/NativeMathf.expm1 - local.tee $0 - local.get $0 - f32.mul - local.get $0 - local.get $0 - f32.add - f32.const 2 - f32.add - f32.div - f32.const 1 - f32.add - br $__inlined_func$~lib/math/NativeMathf.cosh$21 - end - local.get $3 - i32.const 1118925335 - i32.lt_u - if - local.get $0 - call $~lib/math/NativeMathf.exp - local.tee $0 - f32.const 0.5 - f32.mul - f32.const 0.5 - local.get $0 - f32.div - f32.add - br $__inlined_func$~lib/math/NativeMathf.cosh$21 - end - local.get $0 - f32.const -162.88958740234375 - f32.add - call $~lib/math/NativeMathf.exp - f32.const 1661534994731144841129758e11 - f32.mul - f32.const 1661534994731144841129758e11 - f32.mul - end - local.get $1 - local.get $2 - call $std/math/check - ) - (func $std/math/test_exp2 (param $0 f64) (param $1 f64) (param $2 f64) (result i32) - (local $3 i32) + (func $std/math/test_acosh (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (local $3 f64) (local $4 i64) - (local $5 f64) - (local $6 f64) - (local $7 i32) - (local $8 i64) - (local $9 f64) - (local $10 f64) - block $~lib/util/math/exp2_lut|inlined.0 (result f64) + block $__inlined_func$~lib/math/NativeMath.acosh$8 (result f64) + local.get $0 + local.get $0 + f64.sub + f64.const 0 + f64.div local.get $0 i64.reinterpret_f64 local.tee $4 + i64.const 4607182418800017408 + i64.lt_s + br_if $__inlined_func$~lib/math/NativeMath.acosh$8 + drop + local.get $4 i64.const 52 i64.shr_u - i32.wrap_i64 - i32.const 2047 - i32.and - local.tee $3 - i32.const 969 - i32.sub - local.tee $7 - i32.const 63 - i32.ge_u + i64.const 2047 + i64.and + local.tee $4 + i64.const 1024 + i64.lt_u if - f64.const 1 - local.get $7 - i32.const -2147483648 - i32.ge_u - br_if $~lib/util/math/exp2_lut|inlined.0 - drop + local.get $0 + f64.const -1 + f64.add + local.tee $3 local.get $3 - i32.const 1033 - i32.ge_u - if - f64.const 0 - local.get $4 - i64.const -4503599627370496 - i64.eq - br_if $~lib/util/math/exp2_lut|inlined.0 - drop - local.get $0 - f64.const 1 - f64.add - local.get $3 - i32.const 2047 - i32.ge_u - br_if $~lib/util/math/exp2_lut|inlined.0 - drop - f64.const inf - local.get $4 - i64.const 0 - i64.ge_s - br_if $~lib/util/math/exp2_lut|inlined.0 - drop - f64.const 0 - local.get $4 - i64.const -4570929321408987136 - i64.ge_u - br_if $~lib/util/math/exp2_lut|inlined.0 - drop - end local.get $3 - i32.const 0 - local.get $4 - i64.const 1 - i64.shl - i64.const -9143996093422370816 - i64.le_u - select - local.set $3 + f64.mul + local.get $3 + local.get $3 + f64.add + f64.add + f64.sqrt + f64.add + call $~lib/math/NativeMath.log1p + br $__inlined_func$~lib/math/NativeMath.acosh$8 end - local.get $0 - f64.const 52776558133248 - f64.add - local.tee $5 - i64.reinterpret_f64 - local.tee $8 - i64.const 127 - i64.and - i64.const 1 - i64.shl - i32.wrap_i64 - i32.const 3 - i32.shl - i32.const 5664 - i32.add - local.tee $7 - i64.load offset=8 - local.get $8 - i64.const 45 - i64.shl - i64.add - local.set $4 - local.get $0 - local.get $5 - f64.const -52776558133248 - f64.add - f64.sub - local.tee $5 - local.get $5 - f64.mul - local.set $6 - local.get $7 - f64.load - local.get $5 - f64.const 0.6931471805599453 - f64.mul - f64.add - local.get $6 - local.get $5 - f64.const 0.0555041086686087 - f64.mul - f64.const 0.24022650695909065 - f64.add - f64.mul - f64.add - local.get $6 - local.get $6 - f64.mul - local.get $5 - f64.const 1.3332074570119598e-03 - f64.mul - f64.const 0.009618131975721055 - f64.add - f64.mul - f64.add - local.set $5 - local.get $3 - i32.eqz + local.get $4 + i64.const 1049 + i64.lt_u if - block $~lib/util/math/specialcase2|inlined.0 (result f64) - local.get $8 - i64.const 2147483648 - i64.and - i64.eqz - if - local.get $4 - i64.const 4503599627370496 - i64.sub - f64.reinterpret_i64 - local.tee $6 - local.get $5 - f64.mul - local.get $6 - f64.add - f64.const 2 - f64.mul - br $~lib/util/math/specialcase2|inlined.0 - end - local.get $4 - i64.const 4602678819172646912 - i64.add - f64.reinterpret_i64 - local.tee $6 - local.get $5 - f64.mul - local.tee $9 - local.get $6 - f64.add - local.tee $10 - f64.const 1 - f64.lt - if (result f64) - local.get $10 - f64.const 1 - f64.add - local.tee $5 - f64.const 1 - local.get $5 - f64.sub - local.get $10 - f64.add - local.get $6 - local.get $10 - f64.sub - local.get $9 - f64.add - f64.add - f64.add - f64.const -1 - f64.add - else - local.get $10 - end - f64.const 2.2250738585072014e-308 - f64.mul - end - br $~lib/util/math/exp2_lut|inlined.0 + local.get $0 + local.get $0 + f64.add + f64.const 1 + local.get $0 + local.get $0 + local.get $0 + f64.mul + f64.const -1 + f64.add + f64.sqrt + f64.add + f64.div + f64.sub + call $~lib/math/NativeMath.log + br $__inlined_func$~lib/math/NativeMath.acosh$8 end - local.get $4 - f64.reinterpret_i64 - local.tee $6 - local.get $5 - f64.mul - local.get $6 + local.get $0 + call $~lib/math/NativeMath.log + f64.const 0.6931471805599453 f64.add end local.get $1 local.get $2 call $std/math/check if (result i32) - f64.const 2 local.get $0 - call $~lib/bindings/dom/Math.pow + call $~lib/bindings/dom/Math.acosh local.get $1 local.get $2 call $std/math/check @@ -5752,4336 +7907,2559 @@ i32.const 0 end ) - (func $std/math/test_exp2f (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $~lib/math/NativeMathf.log (param $0 f32) (result f32) + (local $1 i32) + (local $2 f64) (local $3 f64) - (local $4 i64) + (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 f64) - block $~lib/util/math/exp2f_lut|inlined.0 (result f32) + block $~lib/util/math/logf_lut|inlined.0 (result f32) local.get $0 i32.reinterpret_f32 - local.tee $5 - i32.const 20 - i32.shr_u - i32.const 2047 - i32.and - local.tee $6 - i32.const 1072 + local.tee $1 + i32.const 8388608 + i32.sub + i32.const 2130706432 i32.ge_u if - f32.const 0 - local.get $5 - i32.const -8388608 - i32.eq - br_if $~lib/util/math/exp2f_lut|inlined.0 + f32.const -inf + local.get $1 + i32.const 1 + i32.shl + local.tee $4 + i32.eqz + br_if $~lib/util/math/logf_lut|inlined.0 drop local.get $0 - local.get $0 - f32.add - local.get $6 - i32.const 2040 - i32.ge_u - br_if $~lib/util/math/exp2f_lut|inlined.0 + local.get $1 + i32.const 2139095040 + i32.eq + br_if $~lib/util/math/logf_lut|inlined.0 drop + local.get $1 + i32.const 31 + i32.shr_u + local.get $4 + i32.const -16777216 + i32.ge_u + i32.or + if + local.get $0 + local.get $0 + f32.sub + local.tee $0 + local.get $0 + f32.div + br $~lib/util/math/logf_lut|inlined.0 + end local.get $0 - f32.const 1701411834604692317316873e14 + f32.const 8388608 f32.mul - local.get $0 - f32.const 0 - f32.gt - br_if $~lib/util/math/exp2f_lut|inlined.0 - drop - f32.const 0 - local.get $0 - f32.const -150 - f32.le - br_if $~lib/util/math/exp2f_lut|inlined.0 - drop - end - local.get $0 - f64.promote_f32 - local.tee $3 - f64.const 211106232532992 - f64.add - local.tee $7 - i64.reinterpret_f64 - local.set $4 - local.get $3 - local.get $7 - f64.const -211106232532992 - f64.add - f64.sub - local.tee $3 - f64.const 0.6931471806916203 - f64.mul - f64.const 1 - f64.add - local.get $3 - f64.const 0.05550361559341535 - f64.mul - f64.const 0.2402284522445722 - f64.add - local.get $3 - local.get $3 - f64.mul - f64.mul - f64.add - local.get $4 - i32.wrap_i64 - i32.const 31 - i32.and - i32.const 3 - i32.shl - i32.const 7712 - i32.add - i64.load - local.get $4 - i64.const 47 - i64.shl - i64.add - f64.reinterpret_i64 - f64.mul - f32.demote_f64 - end - local.get $1 - local.get $2 - call $std/math/check - ) - (func $std/math/test_hypot (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) - (local $4 i64) - (local $5 i64) - (local $6 i64) - (local $7 i32) - (local $8 i32) - (local $9 f64) - (local $10 f64) - (local $11 f64) - (local $12 f64) - (local $13 f64) - local.get $1 - i64.reinterpret_f64 - i64.const 9223372036854775807 - i64.and - local.tee $5 - local.get $0 - i64.reinterpret_f64 - i64.const 9223372036854775807 - i64.and - local.tee $4 - i64.gt_u - if - local.get $4 - local.set $6 - local.get $5 - local.set $4 - local.get $6 - local.set $5 - end - local.get $5 - f64.reinterpret_i64 - local.tee $9 - local.set $0 - block $__inlined_func$~lib/math/NativeMath.hypot$23 - local.get $5 - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.tee $7 - i32.const 2047 - i32.eq - br_if $__inlined_func$~lib/math/NativeMath.hypot$23 - local.get $4 - f64.reinterpret_i64 - local.tee $1 - local.set $0 - local.get $5 - i64.eqz - local.get $4 - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.tee $8 - i32.const 2047 - i32.eq - i32.or - br_if $__inlined_func$~lib/math/NativeMath.hypot$23 - local.get $1 - local.get $9 - f64.add - local.set $0 - local.get $8 - local.get $7 - i32.sub - i32.const 64 - i32.gt_s - br_if $__inlined_func$~lib/math/NativeMath.hypot$23 - f64.const 1 - local.set $0 - local.get $8 - i32.const 1533 - i32.gt_u - if (result f64) - f64.const 5260135901548373507240989e186 - local.set $0 - local.get $1 - f64.const 1.90109156629516e-211 - f64.mul + i32.reinterpret_f32 + i32.const 192937984 + i32.sub local.set $1 - local.get $9 - f64.const 1.90109156629516e-211 - f64.mul - else - local.get $7 - i32.const 573 - i32.lt_u - if (result f64) - f64.const 1.90109156629516e-211 - local.set $0 - local.get $1 - f64.const 5260135901548373507240989e186 - f64.mul - local.set $1 - local.get $9 - f64.const 5260135901548373507240989e186 - f64.mul - else - local.get $9 - end end - local.set $11 - local.get $1 - local.get $1 local.get $1 - f64.const 134217729 - f64.mul - local.tee $9 - f64.sub - local.get $9 - f64.add - local.tee $9 - f64.sub - local.set $12 - local.get $11 - local.get $11 - local.get $11 - f64.const 134217729 + i32.const 1060306944 + i32.sub + local.tee $4 + i32.const 19 + i32.shr_u + i32.const 15 + i32.and + i32.const 4 + i32.shl + i32.const 5184 + i32.add + local.set $5 + local.get $1 + local.get $4 + i32.const -8388608 + i32.and + i32.sub + f32.reinterpret_i32 + f64.promote_f32 + local.get $5 + f64.load f64.mul - local.tee $10 - f64.sub - local.get $10 + f64.const -1 f64.add - local.tee $10 - f64.sub - local.set $13 - local.get $0 - local.get $10 - local.get $10 + local.tee $2 + local.get $2 f64.mul - local.get $11 - local.get $11 + local.set $3 + local.get $2 + f64.const 0.333456765744066 f64.mul - local.tee $0 - f64.sub - local.get $10 - local.get $10 - f64.add - local.get $13 + f64.const -0.4999997485802103 f64.add - local.get $13 + local.get $3 + f64.const -0.25089342214237154 f64.mul f64.add - local.get $9 - local.get $9 - f64.mul - local.get $1 - local.get $1 + local.get $3 f64.mul - local.tee $1 - f64.sub - local.get $9 - local.get $9 - f64.add - local.get $12 - f64.add - local.get $12 + local.get $5 + f64.load offset=8 + local.get $4 + i32.const 23 + i32.shr_s + f64.convert_i32_s + f64.const 0.6931471805599453 f64.mul f64.add + local.get $2 f64.add - local.get $0 - f64.add - local.get $1 f64.add - f64.sqrt - f64.mul - local.set $0 + f32.demote_f64 end - local.get $0 - local.get $2 - local.get $3 - call $std/math/check ) - (func $std/math/test_hypotf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (result i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 f64) - local.get $1 - i32.reinterpret_f32 - i32.const 2147483647 - i32.and - local.tee $5 + (func $~lib/math/NativeMathf.asin (param $0 f32) (result f32) + (local $1 i32) + (local $2 f64) + (local $3 f32) local.get $0 i32.reinterpret_f32 i32.const 2147483647 i32.and - local.tee $4 - i32.gt_u + local.tee $1 + i32.const 1065353216 + i32.ge_u if - local.get $4 - local.set $6 - local.get $5 - local.set $4 - local.get $6 - local.set $5 - end - local.get $4 - f32.reinterpret_i32 - local.set $0 - 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 + local.get $1 + i32.const 1065353216 i32.eq - br_if $__inlined_func$~lib/math/NativeMathf.hypot$24 - drop + if + local.get $0 + f32.const 1.5707963705062866 + f32.mul + f32.const 7.52316384526264e-37 + f32.add + return + end + f32.const 0 local.get $0 + local.get $0 + f32.sub + f32.div + return + end + local.get $1 + i32.const 1056964608 + i32.lt_u + if local.get $1 - f32.add - local.get $5 - i32.eqz - local.get $4 - i32.const 2139095040 - i32.ge_u - i32.or - local.get $4 - local.get $5 - i32.sub - i32.const 209715200 - i32.ge_u - i32.or - br_if $__inlined_func$~lib/math/NativeMathf.hypot$24 - drop - local.get $4 - i32.const 1568669696 + i32.const 964689920 + i32.lt_u + local.get $1 + i32.const 8388608 i32.ge_u - if (result f32) + i32.and + if local.get $0 - f32.const 8.077935669463161e-28 - f32.mul - local.set $0 - local.get $1 - f32.const 8.077935669463161e-28 - f32.mul - local.set $1 - f32.const 1237940039285380274899124e3 - else - local.get $5 - i32.const 562036736 - i32.lt_u - if (result f32) - local.get $0 - f32.const 1237940039285380274899124e3 - f32.mul - local.set $0 - local.get $1 - f32.const 1237940039285380274899124e3 - f32.mul - local.set $1 - f32.const 8.077935669463161e-28 - else - f32.const 1 - end + return end local.get $0 - f64.promote_f32 - local.tee $7 - local.get $7 - f64.mul - local.get $1 - f64.promote_f32 - local.tee $7 - local.get $7 - f64.mul - f64.add - f32.demote_f64 - f32.sqrt + local.get $0 + local.get $0 + local.get $0 + f32.mul + local.tee $0 + local.get $0 + local.get $0 + f32.const -0.008656363002955914 + f32.mul + f32.const -0.04274342209100723 + f32.add + f32.mul + f32.const 0.16666586697101593 + f32.add + f32.mul + local.get $0 + f32.const -0.7066296339035034 + f32.mul + f32.const 1 + f32.add + f32.div f32.mul + f32.add + return end + f64.const 1.5707963705062866 + f32.const 0.5 + local.get $0 + f32.abs + f32.const 0.5 + f32.mul + f32.sub + local.tee $3 + f64.promote_f32 + f64.sqrt + local.tee $2 local.get $2 local.get $3 - call $std/math/check + local.get $3 + local.get $3 + f32.const -0.008656363002955914 + f32.mul + f32.const -0.04274342209100723 + f32.add + f32.mul + f32.const 0.16666586697101593 + f32.add + f32.mul + local.get $3 + f32.const -0.7066296339035034 + f32.mul + f32.const 1 + f32.add + f32.div + f64.promote_f32 + f64.mul + f64.add + f64.const 2 + f64.mul + f64.sub + f32.demote_f64 + local.get $0 + f32.copysign ) - (func $std/math/test_log10 (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $~lib/math/NativeMath.atan (param $0 f64) (result f64) + (local $1 f64) + (local $2 i32) (local $3 i32) - (local $4 i64) - (local $5 i32) - (local $6 i32) - (local $7 f64) - (local $8 f64) - (local $9 f64) - (local $10 f64) - (local $11 f64) - (local $12 f64) - block $__inlined_func$~lib/math/NativeMath.log10$1 (result f64) + (local $4 f64) + (local $5 f64) + local.get $0 + local.set $1 + local.get $0 + i64.reinterpret_f64 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const 2147483647 + i32.and + local.tee $2 + i32.const 1141899264 + i32.ge_u + if local.get $0 - i64.reinterpret_f64 - local.tee $4 - i64.const 32 - i64.shr_u - i32.wrap_i64 - local.tee $3 - i32.const 31 - i32.shr_u - local.tee $6 - local.get $3 - i32.const 1048576 - i32.lt_u - i32.or + local.get $0 + f64.ne if - f64.const -1 - local.get $0 - local.get $0 - f64.mul - f64.div - local.get $4 - i64.const 1 - i64.shl - i64.eqz - br_if $__inlined_func$~lib/math/NativeMath.log10$1 - drop local.get $0 + return + end + f64.const 1.5707963267948966 + local.get $1 + f64.copysign + return + end + local.get $2 + i32.const 1071382528 + i32.lt_u + if + local.get $2 + i32.const 1044381696 + i32.lt_u + if local.get $0 - f64.sub - f64.const 0 - f64.div - local.get $6 - br_if $__inlined_func$~lib/math/NativeMath.log10$1 - drop - i32.const -54 - local.set $5 - local.get $0 - f64.const 18014398509481984 - f64.mul - i64.reinterpret_f64 - local.tee $4 - i64.const 32 - i64.shr_u - i32.wrap_i64 - local.set $3 + return + end + i32.const -1 + local.set $3 + else + local.get $0 + f64.abs + local.set $0 + local.get $2 + i32.const 1072889856 + i32.lt_u + if (result f64) + local.get $2 + i32.const 1072037888 + i32.lt_u + if (result f64) + local.get $0 + local.get $0 + f64.add + f64.const -1 + f64.add + local.get $0 + f64.const 2 + f64.add + f64.div + else + i32.const 1 + local.set $3 + local.get $0 + f64.const -1 + f64.add + local.get $0 + f64.const 1 + f64.add + f64.div + end else - local.get $3 - i32.const 2146435072 - i32.ge_u - if + local.get $2 + i32.const 1073971200 + i32.lt_u + if (result f64) + i32.const 2 + local.set $3 local.get $0 - br $__inlined_func$~lib/math/NativeMath.log10$1 + f64.const -1.5 + f64.add + local.get $0 + f64.const 1.5 + f64.mul + f64.const 1 + f64.add + f64.div else - f64.const 0 - local.get $4 - i64.const 32 - i64.shl - i64.eqz - local.get $3 - i32.const 1072693248 - i32.eq - i32.and - br_if $__inlined_func$~lib/math/NativeMath.log10$1 - drop + i32.const 3 + local.set $3 + f64.const -1 + local.get $0 + f64.div end end + local.set $0 + end + local.get $0 + local.get $0 + f64.mul + local.tee $5 + local.get $5 + f64.mul + local.set $4 + local.get $0 + local.get $5 + local.get $4 + local.get $4 + local.get $4 + local.get $4 + local.get $4 + f64.const 0.016285820115365782 + f64.mul + f64.const 0.049768779946159324 + f64.add + f64.mul + f64.const 0.06661073137387531 + f64.add + f64.mul + f64.const 0.09090887133436507 + f64.add + f64.mul + f64.const 0.14285714272503466 + f64.add + f64.mul + f64.const 0.3333333333333293 + f64.add + f64.mul + local.get $4 + local.get $4 + local.get $4 + local.get $4 + local.get $4 + f64.const -0.036531572744216916 + f64.mul + f64.const -0.058335701337905735 + f64.add + f64.mul + f64.const -0.0769187620504483 + f64.add + f64.mul + f64.const -0.11111110405462356 + f64.add + f64.mul + f64.const -0.19999999999876483 + f64.add + f64.mul + f64.add + f64.mul + local.set $4 + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $0 local.get $4 - i64.const 4294967295 - i64.and - local.get $3 - i32.const 614242 - i32.add - local.tee $3 - i32.const 1048575 - i32.and - i32.const 1072079006 - i32.add - i64.extend_i32_u - i64.const 32 - i64.shl - i64.or - f64.reinterpret_i64 - f64.const -1 - f64.add - local.tee $7 - f64.const 0.5 - f64.mul - local.get $7 - f64.mul - local.set $8 - local.get $7 - local.get $7 - f64.const 2 + f64.sub + return + end + block $break|0 (result f64) + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + block $tablify|0 + local.get $3 + br_table $case0|0 $case1|0 $case2|0 $case3|0 $tablify|0 + end + unreachable + end + f64.const 0.4636476090008061 + local.get $4 + f64.const -2.2698777452961687e-17 + f64.add + local.get $0 + f64.sub + f64.sub + br $break|0 + end + f64.const 0.7853981633974483 + local.get $4 + f64.const -3.061616997868383e-17 + f64.add + local.get $0 + f64.sub + f64.sub + br $break|0 + end + f64.const 0.982793723247329 + local.get $4 + f64.const -1.3903311031230998e-17 + f64.add + local.get $0 + f64.sub + f64.sub + br $break|0 + end + f64.const 1.5707963267948966 + local.get $4 + f64.const -6.123233995736766e-17 f64.add - f64.div - local.tee $9 - local.get $9 - f64.mul - local.tee $10 - local.get $10 - f64.mul - local.set $11 - local.get $7 - local.get $7 - local.get $8 + local.get $0 f64.sub - i64.reinterpret_f64 - i64.const -4294967296 - i64.and - f64.reinterpret_i64 - local.tee $12 f64.sub - local.get $8 + end + local.get $1 + f64.copysign + ) + (func $~lib/math/NativeMath.asin (param $0 f64) (result f64) + (local $1 i32) + (local $2 i64) + (local $3 i32) + (local $4 f64) + (local $5 f64) + local.get $0 + i64.reinterpret_f64 + local.tee $2 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.tee $3 + i32.const 2147483647 + i32.and + local.tee $1 + i32.const 1072693248 + i32.ge_u + if + local.get $2 + i32.wrap_i64 + local.get $1 + i32.const 1072693248 + i32.sub + i32.or + i32.eqz + if + local.get $0 + f64.const 1.5707963267948966 + f64.mul + f64.const 7.52316384526264e-37 + f64.add + return + end + f64.const 0 + local.get $0 + local.get $0 f64.sub - local.get $9 - local.get $8 - local.get $10 - local.get $11 - local.get $11 - local.get $11 - f64.const 0.14798198605116586 + f64.div + return + end + local.get $1 + i32.const 1071644672 + i32.lt_u + if + local.get $1 + i32.const 1045430272 + i32.lt_u + local.get $1 + i32.const 1048576 + i32.ge_u + i32.and + if + local.get $0 + return + end + local.get $0 + local.get $0 + local.get $0 + local.get $0 f64.mul - f64.const 0.1818357216161805 - f64.add + local.tee $0 + local.get $0 + local.get $0 + local.get $0 + local.get $0 + local.get $0 + f64.const 3.479331075960212e-05 f64.mul - f64.const 0.2857142874366239 + f64.const 7.915349942898145e-04 f64.add f64.mul - f64.const 0.6666666666666735 + f64.const -0.04005553450067941 f64.add f64.mul - local.get $11 - local.get $11 - local.get $11 - f64.const 0.15313837699209373 - f64.mul - f64.const 0.22222198432149784 + f64.const 0.20121253213486293 f64.add f64.mul - f64.const 0.3999999999940942 + f64.const -0.3255658186224009 f64.add f64.mul + f64.const 0.16666666666666666 f64.add + f64.mul + local.get $0 + local.get $0 + local.get $0 + local.get $0 + f64.const 0.07703815055590194 + f64.mul + f64.const -0.6882839716054533 f64.add f64.mul + f64.const 2.0209457602335057 f64.add - local.set $8 - local.get $5 - local.get $3 - i32.const 20 - i32.shr_u - i32.const 1023 - i32.sub - i32.add - f64.convert_i32_s - local.tee $9 - f64.const 0.30102999566361177 f64.mul - local.tee $10 - local.get $12 - f64.const 0.4342944818781689 + f64.const -2.403394911734414 + f64.add f64.mul - local.tee $11 + f64.const 1 f64.add - local.set $7 - local.get $9 - f64.const 3.694239077158931e-13 + f64.div f64.mul - local.get $8 - local.get $12 f64.add - f64.const 2.5082946711645275e-11 + return + end + f64.const 0.5 + local.get $0 + f64.abs + f64.const 0.5 + f64.mul + f64.sub + local.tee $0 + f64.sqrt + local.set $4 + local.get $0 + local.get $0 + local.get $0 + local.get $0 + local.get $0 + local.get $0 + f64.const 3.479331075960212e-05 + f64.mul + f64.const 7.915349942898145e-04 + f64.add + f64.mul + f64.const -0.04005553450067941 + f64.add + f64.mul + f64.const 0.20121253213486293 + f64.add + f64.mul + f64.const -0.3255658186224009 + f64.add + f64.mul + f64.const 0.16666666666666666 + f64.add + f64.mul + local.get $0 + local.get $0 + local.get $0 + local.get $0 + f64.const 0.07703815055590194 + f64.mul + f64.const -0.6882839716054533 + f64.add + f64.mul + f64.const 2.0209457602335057 + f64.add + f64.mul + f64.const -2.403394911734414 + f64.add + f64.mul + f64.const 1 + f64.add + f64.div + local.set $5 + local.get $1 + i32.const 1072640819 + i32.ge_u + if (result f64) + f64.const 1.5707963267948966 + local.get $4 + local.get $4 + local.get $5 f64.mul f64.add - local.get $8 - f64.const 0.4342944818781689 + f64.const 2 f64.mul + f64.const -6.123233995736766e-17 f64.add - local.get $10 - local.get $7 f64.sub - local.get $11 - f64.add - f64.add - local.get $7 - f64.add - end - local.get $1 - local.get $2 - call $std/math/check - if (result i32) - local.get $0 - call $~lib/bindings/dom/Math.log10 - local.get $1 - local.get $2 - call $std/math/check else - i32.const 0 - end - ) - (func $std/math/test_log10f (param $0 f32) (param $1 f32) (param $2 f32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 f32) - (local $6 i32) - (local $7 f32) - (local $8 f32) - (local $9 f32) - (local $10 f32) - block $__inlined_func$~lib/math/NativeMathf.log10$25 (result f32) - local.get $0 - i32.reinterpret_f32 - local.tee $3 - i32.const 31 - i32.shr_u - local.tee $4 - local.get $3 - i32.const 8388608 - i32.lt_u - i32.or - if - f32.const -1 - local.get $0 - local.get $0 - f32.mul - f32.div - local.get $3 - i32.const 1 - i32.shl - i32.eqz - br_if $__inlined_func$~lib/math/NativeMathf.log10$25 - drop - local.get $0 - local.get $0 - f32.sub - f32.const 0 - f32.div - local.get $4 - br_if $__inlined_func$~lib/math/NativeMathf.log10$25 - drop - i32.const -25 - local.set $6 - local.get $0 - f32.const 33554432 - f32.mul - i32.reinterpret_f32 - local.set $3 - else - local.get $3 - i32.const 2139095040 - i32.ge_u - if - local.get $0 - 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$25 - drop - end - end - local.get $3 - i32.const 4913933 - i32.add - local.tee $3 - i32.const 8388607 - i32.and - i32.const 1060439283 - i32.add - f32.reinterpret_i32 - f32.const -1 - f32.add - local.tee $8 - local.get $8 - f32.const 2 - f32.add - f32.div - local.tee $0 - local.get $0 - f32.mul - local.tee $5 + f64.const 0.7853981633974483 + local.get $4 + local.get $4 + f64.add local.get $5 - f32.mul - local.set $9 - local.get $6 - local.get $3 - i32.const 23 - i32.shr_u - i32.const 127 - i32.sub - i32.add - f32.convert_i32_s - local.tee $7 - f32.const 7.903415166765626e-07 - f32.mul - local.get $8 - local.get $8 - local.get $8 - f32.const 0.5 - f32.mul - local.get $8 - f32.mul - local.tee $8 - f32.sub - i32.reinterpret_f32 - i32.const -4096 - i32.and - f32.reinterpret_i32 - local.tee $10 - f32.sub - local.get $8 - f32.sub + f64.mul + f64.const 6.123233995736766e-17 local.get $0 - local.get $8 - local.get $5 - local.get $9 - f32.const 0.2849878668785095 - f32.mul - f32.const 0.6666666269302368 - f32.add - f32.mul - local.get $9 - local.get $9 - f32.const 0.24279078841209412 - f32.mul - f32.const 0.40000972151756287 - f32.add - f32.mul - f32.add - f32.add - f32.mul - f32.add + local.get $4 + i64.reinterpret_f64 + i64.const -4294967296 + i64.and + f64.reinterpret_i64 local.tee $0 - local.get $10 - f32.add - f32.const -3.168997136526741e-05 - f32.mul - f32.add - local.get $0 - f32.const 0.434326171875 - f32.mul - f32.add - local.get $10 - f32.const 0.434326171875 - f32.mul - f32.add - local.get $7 - f32.const 0.3010292053222656 - f32.mul - f32.add - end - local.get $1 - local.get $2 - call $std/math/check - ) - (func $~lib/math/NativeMath.log2 (param $0 f64) (result f64) - (local $1 i64) - (local $2 i32) - (local $3 i64) - (local $4 f64) - (local $5 f64) - (local $6 f64) - (local $7 f64) - (local $8 f64) - (local $9 f64) - (local $10 i32) - block $~lib/util/math/log2_lut|inlined.0 (result f64) local.get $0 - i64.reinterpret_f64 - local.tee $1 - i64.const 4606800540372828160 - i64.sub - i64.const 581272283906048 - i64.lt_u - if - local.get $0 - f64.const -1 - f64.add - local.tee $5 - i64.reinterpret_f64 - i64.const -4294967296 - i64.and - f64.reinterpret_i64 - local.tee $6 - f64.const 1.4426950407214463 - f64.mul - local.set $7 - local.get $5 - local.get $5 - f64.mul - local.tee $8 - local.get $8 - f64.mul - local.set $0 - local.get $7 - local.get $8 - local.get $5 - f64.const 0.48089834696298744 - f64.mul - f64.const -0.7213475204444817 - f64.add - f64.mul - local.tee $4 - f64.add - local.tee $9 - local.get $5 - local.get $6 - f64.sub - f64.const 1.4426950407214463 - f64.mul - local.get $5 - f64.const 1.6751713164886512e-10 - f64.mul - f64.add - local.get $7 - local.get $9 - f64.sub - local.get $4 - f64.add - f64.add - local.get $0 - local.get $5 - f64.const 0.2885390081805197 - f64.mul - f64.const -0.360673760222145 - f64.add - local.get $8 - local.get $5 - f64.const 0.2060992861022954 - f64.mul - f64.const -0.24044917405728863 - f64.add - f64.mul - f64.add - local.get $0 - local.get $5 - f64.const 0.1603032746063156 - f64.mul - f64.const -0.18033596705327856 - f64.add - local.get $8 - local.get $5 - f64.const 0.13046826811283835 - f64.mul - f64.const -0.14483316576701266 - f64.add - f64.mul - f64.add - f64.mul - f64.add - f64.mul - f64.add - f64.add - br $~lib/util/math/log2_lut|inlined.0 - end - local.get $1 - i64.const 48 - i64.shr_u + f64.mul + f64.sub + local.get $4 + local.get $0 + f64.add + f64.div + f64.const 2 + f64.mul + f64.sub + f64.sub + f64.const 0.7853981633974483 + local.get $0 + local.get $0 + f64.add + f64.sub + f64.sub + f64.sub + end + local.tee $0 + f64.neg + local.get $0 + local.get $3 + i32.const 0 + i32.lt_s + select + ) + (func $~lib/math/NativeMath.acos (param $0 f64) (result f64) + (local $1 i32) + (local $2 i32) + (local $3 i64) + (local $4 f64) + (local $5 f64) + local.get $0 + i64.reinterpret_f64 + local.tee $3 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.tee $2 + i32.const 2147483647 + i32.and + local.tee $1 + i32.const 1072693248 + i32.ge_u + if + local.get $3 i32.wrap_i64 - local.tee $2 - i32.const 16 + local.get $1 + i32.const 1072693248 i32.sub - i32.const 32736 - i32.ge_u + i32.or + i32.eqz if - f64.const -1 - local.get $0 - local.get $0 - f64.mul - f64.div - local.get $1 - i64.const 1 - i64.shl - i64.eqz - br_if $~lib/util/math/log2_lut|inlined.0 - drop - local.get $0 - local.get $1 - i64.const 9218868437227405312 - i64.eq - br_if $~lib/util/math/log2_lut|inlined.0 - drop - i32.const 1 local.get $2 - i32.const 32752 - i32.and - i32.const 32752 - i32.eq - local.get $2 - i32.const 32768 - i32.and - select + i32.const 0 + i32.lt_s if - local.get $0 - local.get $0 - f64.sub - local.tee $0 - local.get $0 - f64.div - br $~lib/util/math/log2_lut|inlined.0 + f64.const 3.141592653589793 + return end - local.get $0 - f64.const 4503599627370496 - f64.mul - i64.reinterpret_f64 - i64.const 234187180623265792 - i64.sub - local.set $1 + f64.const 0 + return end + f64.const 0 + local.get $0 + local.get $0 + f64.sub + f64.div + return + end + local.get $1 + i32.const 1071644672 + i32.lt_u + if local.get $1 - i64.const 4604367669032910848 - i64.sub - local.tee $3 - i64.const 46 - i64.shr_u - i64.const 63 - i64.and - i32.wrap_i64 - i32.const 4 - i32.shl - local.tee $2 - i32.const 7968 - i32.add - local.set $10 - local.get $3 - i64.const 52 - i64.shr_s - f64.convert_i64_s - local.get $10 - f64.load offset=8 - f64.add + i32.const 1012924416 + i32.le_u + if + f64.const 1.5707963267948966 + return + end + f64.const 1.5707963267948966 + local.get $0 + f64.const 6.123233995736766e-17 + local.get $0 + local.get $0 + local.get $0 + f64.mul local.tee $0 - local.get $1 - local.get $3 - i64.const -4503599627370496 - i64.and - i64.sub - f64.reinterpret_i64 - local.get $2 - i32.const 8992 - i32.add - local.tee $2 - f64.load - f64.sub - local.get $2 - f64.load offset=8 - f64.sub - local.get $10 - f64.load + local.get $0 + local.get $0 + local.get $0 + local.get $0 + local.get $0 + f64.const 3.479331075960212e-05 f64.mul - local.tee $4 - i64.reinterpret_f64 - i64.const -4294967296 - i64.and - f64.reinterpret_i64 - local.tee $5 - f64.const 1.4426950407214463 + f64.const 7.915349942898145e-04 + f64.add f64.mul - local.tee $6 + f64.const -0.04005553450067941 f64.add - local.set $7 + f64.mul + f64.const 0.20121253213486293 + f64.add + f64.mul + f64.const -0.3255658186224009 + f64.add + f64.mul + f64.const 0.16666666666666666 + f64.add + f64.mul local.get $0 - local.get $7 - f64.sub - local.get $6 + local.get $0 + local.get $0 + local.get $0 + f64.const 0.07703815055590194 + f64.mul + f64.const -0.6882839716054533 f64.add - local.get $4 - local.get $5 - f64.sub - f64.const 1.4426950407214463 f64.mul - local.get $4 - f64.const 1.6751713164886512e-10 + f64.const 2.0209457602335057 + f64.add f64.mul + f64.const -2.403394911734414 f64.add + f64.mul + f64.const 1 f64.add - local.get $4 - local.get $4 + f64.div f64.mul - local.tee $0 - local.get $4 - f64.const 0.4808983469629985 + f64.sub + f64.sub + f64.sub + return + end + local.get $2 + i32.const 0 + i32.lt_s + if + f64.const 1.5707963267948966 + local.get $0 + f64.const 0.5 f64.mul - f64.const -0.7213475204444882 + f64.const 0.5 f64.add + local.tee $0 + f64.sqrt + local.tee $4 local.get $0 - local.get $4 - f64.const 0.2885390073180969 + local.get $0 + local.get $0 + local.get $0 + local.get $0 + local.get $0 + f64.const 3.479331075960212e-05 f64.mul - f64.const -0.36067375954075914 + f64.const 7.915349942898145e-04 + f64.add + f64.mul + f64.const -0.04005553450067941 + f64.add + f64.mul + f64.const 0.20121253213486293 + f64.add + f64.mul + f64.const -0.3255658186224009 f64.add f64.mul + f64.const 0.16666666666666666 f64.add + f64.mul + local.get $0 + local.get $0 local.get $0 local.get $0 + f64.const 0.07703815055590194 f64.mul - local.get $4 - f64.const 0.2061202382173603 + f64.const -0.6882839716054533 + f64.add f64.mul - f64.const -0.2404693555628422 + f64.const 2.0209457602335057 + f64.add + f64.mul + f64.const -2.403394911734414 f64.add f64.mul + f64.const 1 f64.add + f64.div + local.get $4 f64.mul + f64.const -6.123233995736766e-17 f64.add - local.get $7 f64.add + f64.sub + f64.const 2 + f64.mul + return end + f64.const 0.5 + local.get $0 + f64.const 0.5 + f64.mul + f64.sub + local.tee $4 + f64.sqrt + local.tee $5 + i64.reinterpret_f64 + i64.const -4294967296 + i64.and + f64.reinterpret_i64 + local.tee $0 + local.get $4 + local.get $4 + local.get $4 + local.get $4 + local.get $4 + local.get $4 + f64.const 3.479331075960212e-05 + f64.mul + f64.const 7.915349942898145e-04 + f64.add + f64.mul + f64.const -0.04005553450067941 + f64.add + f64.mul + f64.const 0.20121253213486293 + f64.add + f64.mul + f64.const -0.3255658186224009 + f64.add + f64.mul + f64.const 0.16666666666666666 + f64.add + f64.mul + local.get $4 + local.get $4 + local.get $4 + local.get $4 + f64.const 0.07703815055590194 + f64.mul + f64.const -0.6882839716054533 + f64.add + f64.mul + f64.const 2.0209457602335057 + f64.add + f64.mul + f64.const -2.403394911734414 + f64.add + f64.mul + f64.const 1 + f64.add + f64.div + local.get $5 + f64.mul + local.get $4 + local.get $0 + local.get $0 + f64.mul + f64.sub + local.get $5 + local.get $0 + f64.add + f64.div + f64.add + f64.add + f64.const 2 + f64.mul ) - (func $std/math/test_log2f (param $0 f32) (param $1 f32) (param $2 f32) (result i32) - (local $3 i32) - (local $4 f64) + (func $std/math/test_cbrtf (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (local $3 f64) + (local $4 i32) (local $5 f64) (local $6 i32) - (local $7 i32) - block $~lib/util/math/log2f_lut|inlined.0 (result f32) + (local $7 f64) + (local $8 f64) + block $__inlined_func$~lib/math/NativeMathf.cbrt$19 (result f32) + local.get $0 + local.get $0 + f32.add local.get $0 i32.reinterpret_f32 - local.tee $3 - i32.const 8388608 - i32.sub - i32.const 2130706432 + local.tee $4 + i32.const 2147483647 + i32.and + local.tee $6 + i32.const 2139095040 i32.ge_u - if - f32.const -inf - local.get $3 - i32.const 1 - i32.shl - local.tee $6 - i32.eqz - br_if $~lib/util/math/log2f_lut|inlined.0 - drop + br_if $__inlined_func$~lib/math/NativeMathf.cbrt$19 + drop + local.get $6 + i32.const 8388608 + i32.lt_u + if (result i32) local.get $0 - local.get $3 - i32.const 2139095040 - i32.eq - br_if $~lib/util/math/log2f_lut|inlined.0 - drop - local.get $3 - i32.const 31 - i32.shr_u local.get $6 - i32.const -16777216 - i32.ge_u - i32.or - if - local.get $0 - local.get $0 - f32.sub - local.tee $0 - local.get $0 - f32.div - br $~lib/util/math/log2f_lut|inlined.0 - end + i32.eqz + br_if $__inlined_func$~lib/math/NativeMathf.cbrt$19 + drop local.get $0 - f32.const 8388608 + f32.const 16777216 f32.mul i32.reinterpret_f32 - i32.const 192937984 - i32.sub - local.set $3 + local.tee $4 + i32.const 2147483647 + i32.and + i32.const 3 + i32.div_u + i32.const 642849266 + i32.add + else + local.get $6 + i32.const 3 + i32.div_u + i32.const 709958130 + i32.add end - local.get $3 - i32.const 1060306944 - i32.sub - local.tee $6 - i32.const 19 - i32.shr_u - i32.const 15 + local.get $4 + i32.const -2147483648 i32.and - i32.const 4 - i32.shl - i32.const 10016 - i32.add + i32.or + f32.reinterpret_i32 + f64.promote_f32 + local.tee $3 + local.get $3 + f64.mul + local.get $3 + f64.mul local.set $7 local.get $3 - local.get $6 - i32.const -8388608 - i32.and - i32.sub - f32.reinterpret_i32 + local.get $0 f64.promote_f32 + local.tee $5 + local.get $5 + f64.add + local.tee $3 local.get $7 - f64.load - f64.mul - f64.const -1 f64.add - local.tee $4 - local.get $4 - f64.mul - local.set $5 - local.get $4 - f64.const 0.4811247078767291 f64.mul - f64.const -0.7213476299867769 - f64.add local.get $5 - f64.const -0.36051725506874704 - f64.mul + local.get $7 f64.add - local.get $5 + local.get $7 + f64.add + f64.div + local.tee $7 + local.get $7 f64.mul - local.get $4 - f64.const 1.4426950186867042 + local.get $7 f64.mul + local.set $8 local.get $7 - f64.load offset=8 - local.get $6 - i32.const 23 - i32.shr_s - f64.convert_i32_s - f64.add + local.get $3 + local.get $8 f64.add + f64.mul + local.get $5 + local.get $8 f64.add - f32.demote_f64 - end - local.get $1 - local.get $2 - call $std/math/check - ) - (func $std/math/test_max (param $0 f64) (param $1 f64) (param $2 f64) (result i32) - local.get $0 - local.get $1 - f64.max - local.get $2 - f64.const 0 - call $std/math/check - if (result i32) - local.get $0 - local.get $1 - call $~lib/bindings/dom/Math.max - local.get $2 - f64.const 0 - call $std/math/check - else - i32.const 0 + local.get $8 + f64.add + f64.div + f32.demote_f64 end - ) - (func $std/math/test_min (param $0 f64) (param $1 f64) (param $2 f64) (result i32) - local.get $0 local.get $1 - f64.min local.get $2 - f64.const 0 - call $std/math/check - if (result i32) - local.get $0 - local.get $1 - call $~lib/bindings/dom/Math.min - local.get $2 - f64.const 0 - call $std/math/check - else - i32.const 0 - end + call $std/math/check ) - (func $std/math/test_mod (param $0 f64) (param $1 f64) (param $2 f64) (result i32) - (local $3 i64) - (local $4 i64) + (func $std/math/test_cbrt (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (local $3 f64) + (local $4 i32) (local $5 i64) - (local $6 i64) - (local $7 i64) - (local $8 f64) - (local $9 i64) - (local $10 i64) - block $__inlined_func$~lib/math/NativeMath.mod$2 (result f64) - local.get $0 - local.get $0 - f64.trunc - f64.sub + (local $6 f64) + local.get $0 + local.get $0 + f64.add + local.set $3 + block $__inlined_func$~lib/math/NativeMath.cbrt$18 local.get $0 - f64.copysign - local.get $1 - f64.abs - f64.const 1 - f64.eq - br_if $__inlined_func$~lib/math/NativeMath.mod$2 - drop - local.get $1 i64.reinterpret_f64 - local.tee $7 - i64.const 52 - i64.shr_u - i64.const 2047 - i64.and - local.set $9 - local.get $7 - i64.const 1 - i64.shl local.tee $5 - i64.eqz - local.get $0 - i64.reinterpret_f64 - local.tee $4 - i64.const 52 + i64.const 32 i64.shr_u - i64.const 2047 - i64.and - local.tee $10 - i64.const 2047 - i64.eq - i32.or - local.get $1 - local.get $1 - f64.ne - i32.or - if - local.get $0 - local.get $1 - f64.mul - local.tee $8 - local.get $8 - f64.div - br $__inlined_func$~lib/math/NativeMath.mod$2 - end + i32.wrap_i64 + i32.const 2147483647 + i32.and + local.tee $4 + i32.const 2146435072 + i32.ge_u + br_if $__inlined_func$~lib/math/NativeMath.cbrt$18 local.get $4 - i64.const 1 - i64.shl - local.tee $3 - local.get $5 - i64.le_u - if + i32.const 1048576 + i32.lt_u + if (result i32) local.get $0 - local.get $3 - local.get $5 - i64.ne - f64.convert_i32_u + local.tee $3 + f64.const 18014398509481984 f64.mul - br $__inlined_func$~lib/math/NativeMath.mod$2 - end - local.get $4 - i64.const 63 - i64.shr_u - local.set $6 - local.get $10 - i64.eqz - if (result i64) - local.get $4 - i64.const 1 - local.get $10 - local.get $4 - i64.const 12 - i64.shl - i64.clz - i64.sub - local.tee $10 - i64.sub - i64.shl - else + i64.reinterpret_f64 + local.tee $5 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const 2147483647 + i32.and + local.tee $4 + i32.eqz + br_if $__inlined_func$~lib/math/NativeMath.cbrt$18 local.get $4 - i64.const 4503599627370495 - i64.and - i64.const 4503599627370496 - i64.or - end - local.set $3 - local.get $9 - i64.eqz - if (result i64) - local.get $7 - i64.const 1 - local.get $9 - local.get $7 - i64.const 12 - i64.shl - i64.clz - i64.sub - local.tee $9 - i64.sub - i64.shl + i32.const 3 + i32.div_u + i32.const 696219795 + i32.add else - local.get $7 - i64.const 4503599627370495 - i64.and - i64.const 4503599627370496 - i64.or - end - local.set $4 - loop $while-continue|0 - local.get $9 - local.get $10 - i64.lt_s - if - local.get $3 - local.get $4 - i64.ge_u - if (result i64) - local.get $0 - f64.const 0 - f64.mul - local.get $3 - local.get $4 - i64.eq - br_if $__inlined_func$~lib/math/NativeMath.mod$2 - drop - local.get $3 - local.get $4 - i64.sub - else - local.get $3 - end - i64.const 1 - i64.shl - local.set $3 - local.get $10 - i64.const 1 - i64.sub - local.set $10 - br $while-continue|0 - end - end - local.get $3 - local.get $4 - i64.ge_u - if - local.get $0 - f64.const 0 - f64.mul - local.get $3 - local.get $4 - i64.eq - br_if $__inlined_func$~lib/math/NativeMath.mod$2 - drop - local.get $3 local.get $4 - i64.sub - local.set $3 + i32.const 3 + i32.div_u + i32.const 715094163 + i32.add end - local.get $10 - local.get $3 - i64.const 11 - i64.shl - i64.clz - local.tee $5 - i64.sub local.set $4 - local.get $3 local.get $5 - i64.shl - local.set $3 + i64.const -9223372036854775808 + i64.and local.get $4 - i64.const 0 - i64.gt_s - if (result i64) - local.get $3 - i64.const 4503599627370496 - i64.sub - local.get $4 - i64.const 52 - i64.shl - i64.or - else - local.get $3 - i64.const 1 - local.get $4 - i64.sub - i64.shr_u - end - local.get $6 - i64.const 63 + i64.extend_i32_u + i64.const 32 i64.shl i64.or f64.reinterpret_i64 - end - local.get $2 - f64.const 0 - call $std/math/check - if (result i32) - local.get $0 - local.get $1 - call $std/math/mod - local.get $2 - f64.const 0 - call $std/math/check - else - i32.const 0 - end - ) - (func $~lib/math/NativeMathf.mod (param $0 f32) (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.get $1 - f32.abs - f32.const 1 - f32.eq - if - local.get $0 - local.get $0 - f32.trunc - f32.sub - local.get $0 - f32.copysign - return - end - local.get $1 - i32.reinterpret_f32 - local.tee $6 - i32.const 23 - i32.shr_u - i32.const 255 - i32.and - local.set $7 - local.get $6 - i32.const 1 - i32.shl - local.tee $4 - i32.eqz - local.get $0 - i32.reinterpret_f32 - local.tee $3 - i32.const 23 - i32.shr_u - i32.const 255 - i32.and - local.tee $8 - i32.const 255 - i32.eq - i32.or - local.get $1 - local.get $1 - f32.ne - i32.or - if - local.get $0 - local.get $1 - f32.mul - local.tee $0 - local.get $0 - f32.div - return - end - local.get $3 - i32.const 1 - i32.shl - local.tee $2 - local.get $4 - i32.le_u - if - local.get $0 - local.get $2 - local.get $4 - i32.ne - f32.convert_i32_u - f32.mul - return - end - local.get $3 - i32.const -2147483648 - i32.and - local.set $5 - local.get $8 - if (result i32) + local.tee $3 local.get $3 - i32.const 8388607 - i32.and - i32.const 8388608 - i32.or - else + f64.mul local.get $3 - i32.const 1 - local.get $8 + local.get $0 + f64.div + f64.mul + local.set $6 + local.get $0 local.get $3 - i32.const 9 - i32.shl - i32.clz - i32.sub - local.tee $8 - i32.sub - i32.shl - end - local.set $2 - local.get $7 - if (result i32) local.get $6 - i32.const 8388607 - i32.and - i32.const 8388608 - i32.or - else local.get $6 - i32.const 1 - local.get $7 + f64.const 1.6214297201053545 + f64.mul + f64.const -1.8849797954337717 + f64.add + f64.mul + f64.const 1.87595182427177 + f64.add local.get $6 - i32.const 9 - i32.shl - i32.clz - i32.sub - local.tee $7 - i32.sub - i32.shl - end - local.set $3 - loop $while-continue|0 - local.get $7 - local.get $8 - i32.lt_s - if - local.get $2 - local.get $3 - i32.ge_u - if (result i32) - local.get $2 - local.get $3 - i32.eq - if - local.get $0 - f32.const 0 - f32.mul - return - end - local.get $2 - local.get $3 - i32.sub - else - local.get $2 - end - i32.const 1 - i32.shl - local.set $2 - local.get $8 - i32.const 1 - i32.sub - local.set $8 - br $while-continue|0 - end - end - local.get $2 - local.get $3 - i32.ge_u - if - local.get $2 + local.get $6 + f64.mul + local.get $6 + f64.mul + local.get $6 + f64.const 0.14599619288661245 + f64.mul + f64.const -0.758397934778766 + f64.add + f64.mul + f64.add + f64.mul + i64.reinterpret_f64 + i64.const 2147483648 + i64.add + i64.const -1073741824 + i64.and + f64.reinterpret_i64 + local.tee $3 local.get $3 - i32.eq - if - local.get $0 - f32.const 0 - f32.mul - return - end - local.get $2 + f64.mul + f64.div + local.set $6 local.get $3 - i32.sub - local.set $2 + local.get $3 + local.get $6 + local.get $3 + f64.sub + local.get $3 + local.get $3 + f64.add + local.get $6 + f64.add + f64.div + f64.mul + f64.add + local.set $3 end - local.get $8 - local.get $2 - i32.const 8 - i32.shl - i32.clz - local.tee $4 - i32.sub - local.set $3 - local.get $2 - local.get $4 - i32.shl - local.set $2 local.get $3 - i32.const 0 - i32.gt_s + local.get $1 + local.get $2 + call $std/math/check if (result i32) + local.get $0 + call $~lib/bindings/dom/Math.cbrt + local.get $1 local.get $2 - i32.const 8388608 - i32.sub - local.get $3 - i32.const 23 - i32.shl - i32.or - else - local.get $2 - i32.const 1 - local.get $3 - i32.sub - i32.shr_u + call $std/math/check + else + i32.const 0 end - local.get $5 - i32.or - f32.reinterpret_i32 ) - (func $~lib/math/NativeMath.pow (param $0 f64) (param $1 f64) (result f64) - (local $2 i64) + (func $~lib/math/NativeMathf.atan (param $0 f32) (result f32) + (local $1 f32) + (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i64) - (local $6 i64) - (local $7 f64) - (local $8 f64) - (local $9 f64) - (local $10 f64) - (local $11 i64) - (local $12 i64) - (local $13 f64) - (local $14 f64) - (local $15 f64) - (local $16 f64) - (local $17 f64) - (local $18 i32) - local.get $1 - f64.abs - f64.const 2 - f64.le + (local $4 f32) + (local $5 f32) + local.get $0 + local.set $1 + local.get $0 + i32.reinterpret_f32 + i32.const 2147483647 + i32.and + local.tee $2 + i32.const 1283457024 + i32.ge_u if - local.get $1 - f64.const 2 - f64.eq - if - local.get $0 - local.get $0 - f64.mul - return - end - local.get $1 - f64.const 0.5 - f64.eq - if - local.get $0 - f64.sqrt - f64.abs - f64.const inf - local.get $0 - f64.const -inf - f64.ne - select - return - end - local.get $1 - f64.const -1 - f64.eq + local.get $0 + local.get $0 + f32.ne if - f64.const 1 local.get $0 - f64.div return end + f32.const 1.570796251296997 local.get $1 - f64.const 1 - f64.eq + f32.copysign + return + end + local.get $2 + i32.const 1054867456 + i32.lt_u + if + local.get $2 + i32.const 964689920 + i32.lt_u if local.get $0 return end - local.get $1 - f64.const 0 - f64.eq - if - f64.const 1 - return - end - end - block $~lib/util/math/pow_lut|inlined.0 (result f64) - local.get $1 - i64.reinterpret_f64 - local.tee $11 - i64.const 52 - i64.shr_u - local.set $6 + i32.const -1 + local.set $3 + else local.get $0 - i64.reinterpret_f64 - local.tee $2 - i64.const 52 - i64.shr_u - local.tee $5 - i64.const 1 - i64.sub - i64.const 2046 - i64.ge_u - if (result i32) - i32.const 1 - else - local.get $6 - i64.const 2047 - i64.and - i64.const 958 - i64.sub - i64.const 128 - i64.ge_u - end - if - local.get $11 - i64.const 1 - i64.shl - local.tee $12 - i64.const 1 - i64.sub - i64.const -9007199254740993 - i64.ge_u - if - f64.const 1 - local.get $12 - i64.eqz - br_if $~lib/util/math/pow_lut|inlined.0 - drop - f64.const nan:0x8000000000000 - local.get $2 - i64.const 4607182418800017408 - i64.eq - br_if $~lib/util/math/pow_lut|inlined.0 - drop - local.get $0 - local.get $1 - f64.add - local.get $12 - i64.const -9007199254740992 - i64.gt_u - local.get $2 - i64.const 1 - i64.shl - local.tee $2 - i64.const -9007199254740992 - i64.gt_u - i32.or - br_if $~lib/util/math/pow_lut|inlined.0 - drop - f64.const nan:0x8000000000000 - local.get $2 - i64.const 9214364837600034816 - i64.eq - br_if $~lib/util/math/pow_lut|inlined.0 - drop - f64.const 0 - local.get $11 - i64.const 63 - i64.shr_u - i64.eqz - local.get $2 - i64.const 9214364837600034816 - i64.lt_u - i32.eq - br_if $~lib/util/math/pow_lut|inlined.0 - drop - local.get $1 - local.get $1 - f64.mul - br $~lib/util/math/pow_lut|inlined.0 - end + f32.abs + local.set $0 + local.get $2 + i32.const 1066926080 + i32.lt_u + if (result f32) local.get $2 - i64.const 1 - i64.shl - i64.const 1 - i64.sub - i64.const -9007199254740993 - i64.ge_u - if - f64.const 1 + i32.const 1060110336 + i32.lt_u + if (result f32) local.get $0 local.get $0 - f64.mul - local.tee $0 - f64.neg + f32.add + f32.const -1 + f32.add local.get $0 - local.get $2 - i64.const 63 - i64.shr_u - i32.wrap_i64 - if (result i32) - block $~lib/util/math/checkint|inlined.0 (result i32) - i32.const 0 - local.get $11 - i64.const 52 - i64.shr_u - i64.const 2047 - i64.and - local.tee $2 - i64.const 1023 - i64.lt_u - br_if $~lib/util/math/checkint|inlined.0 - drop - i32.const 2 - local.get $2 - i64.const 1075 - i64.gt_u - br_if $~lib/util/math/checkint|inlined.0 - drop - i32.const 0 - local.get $11 - i64.const 1 - i64.const 1075 - local.get $2 - i64.sub - i64.shl - local.tee $2 - i64.const 1 - i64.sub - i64.and - i64.const 0 - i64.ne - br_if $~lib/util/math/checkint|inlined.0 - drop - i32.const 1 - local.get $2 - local.get $11 - i64.and - i64.const 0 - i64.ne - br_if $~lib/util/math/checkint|inlined.0 - drop - i32.const 2 - end - i32.const 1 - i32.eq - else - i32.const 0 - end - select - local.tee $0 - f64.div + f32.const 2 + f32.add + f32.div + else + i32.const 1 + local.set $3 local.get $0 - local.get $11 - i64.const 0 - i64.lt_s - select - br $~lib/util/math/pow_lut|inlined.0 + f32.const -1 + f32.add + local.get $0 + f32.const 1 + f32.add + f32.div end + else local.get $2 - i64.const 0 - i64.lt_s - if - block $~lib/util/math/checkint|inlined.1 (result i32) - i32.const 0 - local.get $11 - i64.const 52 - i64.shr_u - i64.const 2047 - i64.and - local.tee $12 - i64.const 1023 - i64.lt_u - br_if $~lib/util/math/checkint|inlined.1 - drop - i32.const 2 - local.get $12 - i64.const 1075 - i64.gt_u - br_if $~lib/util/math/checkint|inlined.1 - drop - i32.const 0 - local.get $11 - i64.const 1 - i64.const 1075 - local.get $12 - i64.sub - i64.shl - local.tee $12 - i64.const 1 - i64.sub - i64.and - i64.const 0 - i64.ne - br_if $~lib/util/math/checkint|inlined.1 - drop - i32.const 1 - local.get $11 - local.get $12 - i64.and - i64.const 0 - i64.ne - br_if $~lib/util/math/checkint|inlined.1 - drop - i32.const 2 - end - local.tee $3 - i32.eqz - if - local.get $0 - local.get $0 - f64.sub - local.tee $0 + i32.const 1075576832 + i32.lt_u + if (result f32) + i32.const 2 + local.set $3 + local.get $0 + f32.const -1.5 + f32.add + local.get $0 + f32.const 1.5 + f32.mul + f32.const 1 + f32.add + f32.div + else + i32.const 3 + local.set $3 + f32.const -1 + local.get $0 + f32.div + end + end + local.set $0 + end + local.get $0 + local.get $0 + f32.mul + local.tee $5 + local.get $5 + f32.mul + local.set $4 + local.get $0 + local.get $5 + local.get $4 + local.get $4 + f32.const 0.06168760731816292 + f32.mul + f32.const 0.14253635704517365 + f32.add + f32.mul + f32.const 0.333333283662796 + f32.add + f32.mul + local.get $4 + local.get $4 + f32.const -0.106480173766613 + f32.mul + f32.const -0.19999158382415771 + f32.add + f32.mul + f32.add + f32.mul + local.set $4 + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $4 + f32.sub + return + end + block $break|0 (result f32) + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + block $tablify|0 + local.get $3 + br_table $case0|0 $case1|0 $case2|0 $case3|0 $tablify|0 + end + unreachable + end + f32.const 0.46364760398864746 + local.get $4 + f32.const -5.01215824399992e-09 + f32.add local.get $0 - f64.div - br $~lib/util/math/pow_lut|inlined.0 + f32.sub + f32.sub + br $break|0 end - local.get $5 - i64.const 2047 - i64.and - local.set $5 - i32.const 262144 - i32.const 0 - local.get $3 - i32.const 1 - i32.eq - select - local.set $4 - local.get $2 - i64.const 9223372036854775807 - i64.and - local.set $2 + f32.const 0.7853981256484985 + local.get $4 + f32.const -3.774894707930798e-08 + f32.add + local.get $0 + f32.sub + f32.sub + br $break|0 end - local.get $6 - i64.const 2047 + f32.const 0.9827936887741089 + local.get $4 + f32.const -3.447321716976148e-08 + f32.add + local.get $0 + f32.sub + f32.sub + br $break|0 + end + f32.const 1.570796251296997 + local.get $4 + f32.const -7.549789415861596e-08 + f32.add + local.get $0 + f32.sub + f32.sub + end + local.get $1 + f32.copysign + ) + (func $~lib/math/NativeMath.log2 (param $0 f64) (result f64) + (local $1 i64) + (local $2 i32) + (local $3 i64) + (local $4 f64) + (local $5 f64) + (local $6 f64) + (local $7 f64) + (local $8 f64) + (local $9 f64) + (local $10 i32) + block $~lib/util/math/log2_lut|inlined.0 (result f64) + local.get $0 + i64.reinterpret_f64 + local.tee $1 + i64.const 4606800540372828160 + i64.sub + i64.const 581272283906048 + i64.lt_u + if + local.get $0 + f64.const -1 + f64.add + local.tee $5 + i64.reinterpret_f64 + i64.const -4294967296 i64.and - local.tee $12 - i64.const 958 - i64.sub - i64.const 128 - i64.ge_u - if - f64.const 1 - local.get $2 - i64.const 4607182418800017408 - i64.eq - br_if $~lib/util/math/pow_lut|inlined.0 - drop - f64.const 1 - local.get $12 - i64.const 958 - i64.lt_u - br_if $~lib/util/math/pow_lut|inlined.0 - drop - f64.const inf - f64.const 0 - local.get $6 - i64.const 2048 - i64.lt_u - local.get $2 - i64.const 4607182418800017408 - i64.gt_u - i32.eq - select - br $~lib/util/math/pow_lut|inlined.0 - end + f64.reinterpret_i64 + local.tee $6 + f64.const 1.4426950407214463 + f64.mul + local.set $7 + local.get $5 + local.get $5 + f64.mul + local.tee $8 + local.get $8 + f64.mul + local.set $0 + local.get $7 + local.get $8 + local.get $5 + f64.const 0.48089834696298744 + f64.mul + f64.const -0.7213475204444817 + f64.add + f64.mul + local.tee $4 + f64.add + local.tee $9 + local.get $5 + local.get $6 + f64.sub + f64.const 1.4426950407214463 + f64.mul + local.get $5 + f64.const 1.6751713164886512e-10 + f64.mul + f64.add + local.get $7 + local.get $9 + f64.sub + local.get $4 + f64.add + f64.add + local.get $0 + local.get $5 + f64.const 0.2885390081805197 + f64.mul + f64.const -0.360673760222145 + f64.add + local.get $8 local.get $5 + f64.const 0.2060992861022954 + f64.mul + f64.const -0.24044917405728863 + f64.add + f64.mul + f64.add + local.get $0 + local.get $5 + f64.const 0.1603032746063156 + f64.mul + f64.const -0.18033596705327856 + f64.add + local.get $8 + local.get $5 + f64.const 0.13046826811283835 + f64.mul + f64.const -0.14483316576701266 + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.add + br $~lib/util/math/log2_lut|inlined.0 + end + local.get $1 + i64.const 48 + i64.shr_u + i32.wrap_i64 + local.tee $2 + i32.const 16 + i32.sub + i32.const 32736 + i32.ge_u + if + f64.const -1 + local.get $0 + local.get $0 + f64.mul + f64.div + local.get $1 + i64.const 1 + i64.shl i64.eqz + br_if $~lib/util/math/log2_lut|inlined.0 + drop + local.get $0 + local.get $1 + i64.const 9218868437227405312 + i64.eq + br_if $~lib/util/math/log2_lut|inlined.0 + drop + i32.const 1 + local.get $2 + i32.const 32752 + i32.and + i32.const 32752 + i32.eq + local.get $2 + i32.const 32768 + i32.and + select if local.get $0 - f64.const 4503599627370496 - f64.mul - i64.reinterpret_f64 - i64.const 9223372036854775807 - i64.and - i64.const 234187180623265792 - i64.sub - local.set $2 + local.get $0 + f64.sub + local.tee $0 + local.get $0 + f64.div + br $~lib/util/math/log2_lut|inlined.0 end + local.get $0 + f64.const 4503599627370496 + f64.mul + i64.reinterpret_f64 + i64.const 234187180623265792 + i64.sub + local.set $1 end - local.get $2 - local.get $2 - i64.const 4604531861337669632 - i64.sub - local.tee $2 - i64.const -4503599627370496 - i64.and + local.get $1 + i64.const 4604367669032910848 i64.sub - local.tee $5 - i64.const 2147483648 - i64.add - i64.const -4294967296 - i64.and - f64.reinterpret_i64 - local.tee $7 - local.get $2 - i64.const 45 + local.tee $3 + i64.const 46 i64.shr_u - i64.const 127 + i64.const 63 i64.and i32.wrap_i64 - i32.const 5 + i32.const 4 i32.shl - i32.const 10272 + local.tee $2 + i32.const 7968 i32.add - local.tee $3 - f64.load - local.tee $8 - f64.mul - f64.const -1 - f64.add - local.set $9 - local.get $2 + local.set $10 + local.get $3 i64.const 52 i64.shr_s f64.convert_i64_s - local.tee $13 - f64.const 0.6931471805598903 - f64.mul - local.get $3 - f64.load offset=16 + local.get $10 + f64.load offset=8 f64.add local.tee $0 - local.get $9 - local.get $5 + local.get $1 + local.get $3 + i64.const -4503599627370496 + i64.and + i64.sub f64.reinterpret_i64 - local.get $7 + local.get $2 + i32.const 8992 + i32.add + local.tee $2 + f64.load + f64.sub + local.get $2 + f64.load offset=8 f64.sub - local.get $8 - f64.mul - local.tee $7 - f64.add - local.tee $14 - f64.add - local.set $15 - local.get $14 - local.get $14 - f64.const -0.5 - f64.mul - local.tee $8 - f64.mul - local.set $16 - local.get $15 - local.get $9 - local.get $9 - f64.const -0.5 - f64.mul - local.tee $17 - f64.mul - local.tee $9 - f64.add - local.tee $10 local.get $10 - local.get $13 - f64.const 5.497923018708371e-14 + f64.load f64.mul - local.get $3 - f64.load offset=24 + local.tee $4 + i64.reinterpret_f64 + i64.const -4294967296 + i64.and + f64.reinterpret_i64 + local.tee $5 + f64.const 1.4426950407214463 + f64.mul + local.tee $6 f64.add + local.set $7 local.get $0 - local.get $15 - f64.sub - local.get $14 - f64.add - f64.add local.get $7 - local.get $8 - local.get $17 - f64.add - f64.mul + f64.sub + local.get $6 f64.add - local.get $15 - local.get $10 + local.get $4 + local.get $5 f64.sub - local.get $9 + f64.const 1.4426950407214463 + f64.mul + local.get $4 + f64.const 1.6751713164886512e-10 + f64.mul f64.add f64.add - local.get $14 - local.get $16 + local.get $4 + local.get $4 f64.mul - local.get $14 - f64.const 0.5000000000000007 + local.tee $0 + local.get $4 + f64.const 0.4808983469629985 f64.mul - f64.const -0.6666666666666679 + f64.const -0.7213475204444882 f64.add - local.get $16 - local.get $14 - f64.const -0.6666666663487739 + local.get $0 + local.get $4 + f64.const 0.2885390073180969 f64.mul - f64.const 0.7999999995323976 + f64.const -0.36067375954075914 f64.add - local.get $16 - local.get $14 - f64.const 1.0000415263675542 f64.mul - f64.const -1.142909628459501 f64.add + local.get $0 + local.get $0 + f64.mul + local.get $4 + f64.const 0.2061202382173603 f64.mul + f64.const -0.2404693555628422 f64.add f64.mul f64.add f64.mul f64.add - local.tee $0 + local.get $7 f64.add - local.tee $7 - f64.sub + end + ) + (func $std/math/test_log2f (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (local $3 i32) + (local $4 f64) + (local $5 f64) + (local $6 i32) + (local $7 i32) + block $~lib/util/math/log2f_lut|inlined.0 (result f32) local.get $0 - f64.add - global.set $~lib/util/math/log_tail - block $~lib/util/math/exp_inline|inlined.0 (result f64) - local.get $11 - i64.const -134217728 - i64.and - f64.reinterpret_i64 - local.tee $0 - local.get $7 - i64.reinterpret_f64 - i64.const -134217728 - i64.and - f64.reinterpret_i64 - local.tee $8 - f64.mul - local.tee $9 - i64.reinterpret_f64 - local.tee $2 - i64.const 52 - i64.shr_u - i32.wrap_i64 - i32.const 2047 - i32.and - local.tee $3 - i32.const 969 - i32.sub - local.tee $18 - i32.const 63 - i32.ge_u - if - f64.const -1 - f64.const 1 - local.get $4 - select - local.get $18 - i32.const -2147483648 - i32.ge_u - br_if $~lib/util/math/exp_inline|inlined.0 - drop - local.get $2 - i64.const 0 - i64.lt_s - if (result f64) - f64.const -1.2882297539194267e-231 - f64.const 1.2882297539194267e-231 - local.get $4 - select - f64.const 1.2882297539194267e-231 - f64.mul - else - f64.const -3105036184601417870297958e207 - f64.const 3105036184601417870297958e207 - local.get $4 - select - f64.const 3105036184601417870297958e207 - f64.mul - end - local.get $3 - i32.const 1033 - i32.ge_u - br_if $~lib/util/math/exp_inline|inlined.0 - drop - i32.const 0 - local.set $3 - end - local.get $9 - f64.const 184.6649652337873 - f64.mul - f64.const 6755399441055744 - f64.add - local.tee $10 - i64.reinterpret_f64 - local.tee $2 - i64.const 127 - i64.and - i64.const 1 - i64.shl - i32.wrap_i64 - i32.const 3 + i32.reinterpret_f32 + local.tee $3 + i32.const 8388608 + i32.sub + i32.const 2130706432 + i32.ge_u + if + f32.const -inf + local.get $3 + i32.const 1 i32.shl - i32.const 5664 - i32.add - local.tee $18 - i64.load offset=8 - local.get $2 - local.get $4 - i64.extend_i32_u - i64.add - i64.const 45 - i64.shl - i64.add - local.set $5 - local.get $9 - local.get $10 - f64.const -6755399441055744 - f64.add - local.tee $9 - f64.const -0.005415212348111709 - f64.mul - f64.add - local.get $9 - f64.const -1.2864023111638346e-14 - f64.mul - f64.add - local.get $1 - local.get $0 - f64.sub - local.get $8 - f64.mul - local.get $1 - local.get $7 - local.get $8 - f64.sub - global.get $~lib/util/math/log_tail - f64.add - f64.mul - f64.add - f64.add - local.tee $0 - local.get $0 - f64.mul - local.set $1 - local.get $18 - f64.load - local.get $0 - f64.add - local.get $1 - local.get $0 - f64.const 0.16666666666665886 - f64.mul - f64.const 0.49999999999996786 - f64.add - f64.mul - f64.add - local.get $1 - local.get $1 - f64.mul + local.tee $6 + i32.eqz + br_if $~lib/util/math/log2f_lut|inlined.0 + drop local.get $0 - f64.const 0.008333335853059549 - f64.mul - f64.const 0.0416666808410674 - f64.add - f64.mul - f64.add - local.set $0 local.get $3 - i32.eqz - if - block $~lib/util/math/specialcase|inlined.1 (result f64) - local.get $2 - i64.const 2147483648 - i64.and - i64.eqz - if - local.get $5 - i64.const 4544132024016830464 - i64.sub - f64.reinterpret_i64 - local.tee $1 - local.get $1 - local.get $0 - f64.mul - f64.add - f64.const 5486124068793688683255936e279 - f64.mul - br $~lib/util/math/specialcase|inlined.1 - end - local.get $5 - i64.const 4602678819172646912 - i64.add - local.tee $2 - f64.reinterpret_i64 - local.tee $1 - local.get $0 - f64.mul - local.set $0 - local.get $1 - local.get $0 - f64.add - local.tee $7 - f64.abs - f64.const 1 - f64.lt - if (result f64) - f64.const 1 - local.get $7 - f64.copysign - local.tee $8 - local.get $7 - f64.add - local.tee $9 - local.get $8 - local.get $9 - f64.sub - local.get $7 - f64.add - local.get $1 - local.get $7 - f64.sub - local.get $0 - f64.add - f64.add - f64.add - local.get $8 - f64.sub - local.tee $0 - f64.const 0 - f64.eq - if (result f64) - local.get $2 - i64.const -9223372036854775808 - i64.and - f64.reinterpret_i64 - else - local.get $0 - end - else - local.get $7 - end - f64.const 2.2250738585072014e-308 - f64.mul - end - br $~lib/util/math/exp_inline|inlined.0 + i32.const 2139095040 + i32.eq + br_if $~lib/util/math/log2f_lut|inlined.0 + drop + local.get $3 + i32.const 31 + i32.shr_u + local.get $6 + i32.const -16777216 + i32.ge_u + i32.or + if + local.get $0 + local.get $0 + f32.sub + local.tee $0 + local.get $0 + f32.div + br $~lib/util/math/log2f_lut|inlined.0 end - local.get $5 - f64.reinterpret_i64 - local.tee $1 - local.get $1 local.get $0 - f64.mul - f64.add + f32.const 8388608 + f32.mul + i32.reinterpret_f32 + i32.const 192937984 + i32.sub + local.set $3 end + local.get $3 + i32.const 1060306944 + i32.sub + local.tee $6 + i32.const 19 + i32.shr_u + i32.const 15 + i32.and + i32.const 4 + i32.shl + i32.const 10016 + i32.add + local.set $7 + local.get $3 + local.get $6 + i32.const -8388608 + i32.and + i32.sub + f32.reinterpret_i32 + f64.promote_f32 + local.get $7 + f64.load + f64.mul + f64.const -1 + f64.add + local.tee $4 + local.get $4 + f64.mul + local.set $5 + local.get $4 + f64.const 0.4811247078767291 + f64.mul + f64.const -0.7213476299867769 + f64.add + local.get $5 + f64.const -0.36051725506874704 + f64.mul + f64.add + local.get $5 + f64.mul + local.get $4 + f64.const 1.4426950186867042 + f64.mul + local.get $7 + f64.load offset=8 + local.get $6 + i32.const 23 + i32.shr_s + f64.convert_i32_s + f64.add + f64.add + f64.add + f32.demote_f64 end - ) - (func $std/math/test_pow (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) - local.get $0 local.get $1 - call $~lib/math/NativeMath.pow local.get $2 - local.get $3 - call $std/math/check - if (result i32) - local.get $0 - local.get $1 - call $~lib/bindings/dom/Math.pow - local.get $2 - local.get $3 - call $std/math/check - else - i32.const 0 - end + call $std/math/check ) - (func $~lib/math/NativeMathf.pow (param $0 f32) (param $1 f32) (result f32) - (local $2 i32) - (local $3 f64) + (func $std/math/test_log10f (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (local $3 i32) (local $4 i32) - (local $5 i64) + (local $5 f32) (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 f64) - local.get $1 - f32.abs - f32.const 2 - f32.le - if - local.get $1 - f32.const 2 - f32.eq + (local $7 f32) + (local $8 f32) + (local $9 f32) + (local $10 f32) + block $__inlined_func$~lib/math/NativeMathf.log10$25 (result f32) + local.get $0 + i32.reinterpret_f32 + local.tee $3 + i32.const 31 + i32.shr_u + local.tee $4 + local.get $3 + i32.const 8388608 + i32.lt_u + i32.or if + f32.const -1 local.get $0 local.get $0 f32.mul - return - end - local.get $1 - f32.const 0.5 - f32.eq - if - local.get $0 - f32.sqrt - f32.abs - f32.const inf + f32.div + local.get $3 + i32.const 1 + i32.shl + i32.eqz + br_if $__inlined_func$~lib/math/NativeMathf.log10$25 + drop local.get $0 - f32.const -inf - f32.ne - select - return - end - local.get $1 - f32.const -1 - f32.eq - if - f32.const 1 local.get $0 + f32.sub + f32.const 0 f32.div - return - end - local.get $1 - f32.const 1 - f32.eq - if + local.get $4 + br_if $__inlined_func$~lib/math/NativeMathf.log10$25 + drop + i32.const -25 + local.set $6 local.get $0 - return - end - local.get $1 - f32.const 0 - f32.eq - if - f32.const 1 - return - end - end - block $~lib/util/math/powf_lut|inlined.0 (result f32) - local.get $1 - i32.reinterpret_f32 - local.tee $8 - i32.const 1 - i32.shl - local.tee $6 - i32.const 1 - i32.sub - i32.const -16777217 - i32.ge_u - local.tee $7 - local.get $0 - i32.reinterpret_f32 - local.tee $2 - i32.const 8388608 - i32.sub - i32.const 2130706432 - i32.ge_u - i32.or - if - local.get $7 + f32.const 33554432 + f32.mul + i32.reinterpret_f32 + local.set $3 + else + local.get $3 + i32.const 2139095040 + i32.ge_u if - f32.const 1 - local.get $6 - i32.eqz - br_if $~lib/util/math/powf_lut|inlined.0 - drop - f32.const nan:0x400000 - local.get $2 - i32.const 1065353216 - i32.eq - br_if $~lib/util/math/powf_lut|inlined.0 - drop local.get $0 - local.get $1 - f32.add - local.get $6 - i32.const -16777216 - i32.gt_u - local.get $2 - i32.const 1 - i32.shl - local.tee $2 - i32.const -16777216 - i32.gt_u - i32.or - br_if $~lib/util/math/powf_lut|inlined.0 - drop - f32.const nan:0x400000 - local.get $2 - i32.const 2130706432 - i32.eq - br_if $~lib/util/math/powf_lut|inlined.0 - drop + br $__inlined_func$~lib/math/NativeMathf.log10$25 + else f32.const 0 - local.get $8 - i32.const 31 - i32.shr_u - i32.eqz - local.get $2 - i32.const 2130706432 - i32.lt_u + local.get $3 + i32.const 1065353216 i32.eq - br_if $~lib/util/math/powf_lut|inlined.0 + br_if $__inlined_func$~lib/math/NativeMathf.log10$25 drop - local.get $1 - local.get $1 - f32.mul - br $~lib/util/math/powf_lut|inlined.0 - end - local.get $2 - i32.const 1 - i32.shl - i32.const 1 - i32.sub - i32.const -16777217 - i32.ge_u - if - f32.const 1 - local.get $0 - local.get $0 - f32.mul - local.tee $0 - f32.neg - local.get $0 - local.get $2 - i32.const 31 - i32.shr_u - if (result i32) - block $~lib/util/math/checkintf|inlined.0 (result i32) - i32.const 0 - local.get $8 - i32.const 23 - i32.shr_u - i32.const 255 - i32.and - local.tee $2 - i32.const 127 - i32.lt_u - br_if $~lib/util/math/checkintf|inlined.0 - drop - i32.const 2 - local.get $2 - i32.const 150 - i32.gt_u - br_if $~lib/util/math/checkintf|inlined.0 - drop - i32.const 0 - local.get $8 - i32.const 1 - i32.const 150 - local.get $2 - i32.sub - i32.shl - local.tee $2 - i32.const 1 - i32.sub - i32.and - br_if $~lib/util/math/checkintf|inlined.0 - drop - i32.const 1 - local.get $2 - local.get $8 - i32.and - br_if $~lib/util/math/checkintf|inlined.0 - drop - i32.const 2 - end - i32.const 1 - i32.eq - else - i32.const 0 - end - select - local.tee $0 - f32.div - local.get $0 - local.get $8 - i32.const 0 - i32.lt_s - select - br $~lib/util/math/powf_lut|inlined.0 - end - local.get $2 - i32.const 0 - i32.lt_s - if - block $~lib/util/math/checkintf|inlined.1 (result i32) - i32.const 0 - local.get $8 - i32.const 23 - i32.shr_u - i32.const 255 - i32.and - local.tee $4 - i32.const 127 - i32.lt_u - br_if $~lib/util/math/checkintf|inlined.1 - drop - i32.const 2 - local.get $4 - i32.const 150 - i32.gt_u - br_if $~lib/util/math/checkintf|inlined.1 - drop - i32.const 0 - local.get $8 - i32.const 1 - i32.const 150 - local.get $4 - i32.sub - i32.shl - local.tee $4 - i32.const 1 - i32.sub - i32.and - br_if $~lib/util/math/checkintf|inlined.1 - drop - i32.const 1 - local.get $4 - local.get $8 - i32.and - br_if $~lib/util/math/checkintf|inlined.1 - drop - i32.const 2 - end - local.tee $4 - i32.eqz - if - local.get $0 - local.get $0 - f32.sub - local.tee $0 - local.get $0 - f32.div - br $~lib/util/math/powf_lut|inlined.0 - end - i32.const 65536 - i32.const 0 - local.get $4 - i32.const 1 - i32.eq - select - local.set $4 - local.get $2 - i32.const 2147483647 - i32.and - local.set $2 end - local.get $2 - i32.const 8388608 - i32.lt_u + end + local.get $3 + i32.const 4913933 + i32.add + local.tee $3 + i32.const 8388607 + i32.and + i32.const 1060439283 + i32.add + f32.reinterpret_i32 + f32.const -1 + f32.add + local.tee $8 + local.get $8 + f32.const 2 + f32.add + f32.div + local.tee $0 + local.get $0 + f32.mul + local.tee $5 + local.get $5 + f32.mul + local.set $9 + local.get $6 + local.get $3 + i32.const 23 + i32.shr_u + i32.const 127 + i32.sub + i32.add + f32.convert_i32_s + local.tee $7 + f32.const 7.903415166765626e-07 + f32.mul + local.get $8 + local.get $8 + local.get $8 + f32.const 0.5 + f32.mul + local.get $8 + f32.mul + local.tee $8 + f32.sub + i32.reinterpret_f32 + i32.const -4096 + i32.and + f32.reinterpret_i32 + local.tee $10 + f32.sub + local.get $8 + f32.sub + local.get $0 + local.get $8 + local.get $5 + local.get $9 + f32.const 0.2849878668785095 + f32.mul + f32.const 0.6666666269302368 + f32.add + f32.mul + local.get $9 + local.get $9 + f32.const 0.24279078841209412 + f32.mul + f32.const 0.40000972151756287 + f32.add + f32.mul + f32.add + f32.add + f32.mul + f32.add + local.tee $0 + local.get $10 + f32.add + f32.const -3.168997136526741e-05 + f32.mul + f32.add + local.get $0 + f32.const 0.434326171875 + f32.mul + f32.add + local.get $10 + f32.const 0.434326171875 + f32.mul + f32.add + local.get $7 + f32.const 0.3010292053222656 + f32.mul + f32.add + end + local.get $1 + local.get $2 + call $std/math/check + ) + (func $std/math/test_log10 (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (local $3 i32) + (local $4 i64) + (local $5 i32) + (local $6 i32) + (local $7 f64) + (local $8 f64) + (local $9 f64) + (local $10 f64) + (local $11 f64) + (local $12 f64) + block $__inlined_func$~lib/math/NativeMath.log10$1 (result f64) + local.get $0 + i64.reinterpret_f64 + local.tee $4 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.tee $3 + i32.const 31 + i32.shr_u + local.tee $6 + local.get $3 + i32.const 1048576 + i32.lt_u + i32.or + if + f64.const -1 + local.get $0 + local.get $0 + f64.mul + f64.div + local.get $4 + i64.const 1 + i64.shl + i64.eqz + br_if $__inlined_func$~lib/math/NativeMath.log10$1 + drop + local.get $0 + local.get $0 + f64.sub + f64.const 0 + f64.div + local.get $6 + br_if $__inlined_func$~lib/math/NativeMath.log10$1 + drop + i32.const -54 + local.set $5 + local.get $0 + f64.const 18014398509481984 + f64.mul + i64.reinterpret_f64 + local.tee $4 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.set $3 + else + local.get $3 + i32.const 2146435072 + i32.ge_u if local.get $0 - f32.const 8388608 - f32.mul - i32.reinterpret_f32 - i32.const 2147483647 + br $__inlined_func$~lib/math/NativeMath.log10$1 + else + f64.const 0 + local.get $4 + i64.const 32 + i64.shl + i64.eqz + local.get $3 + i32.const 1072693248 + i32.eq i32.and - i32.const 192937984 - i32.sub - local.set $2 + br_if $__inlined_func$~lib/math/NativeMath.log10$1 + drop end end - local.get $2 - local.get $2 - i32.const 1060306944 - i32.sub - local.tee $2 - i32.const -8388608 - i32.and - local.tee $6 - i32.sub - f32.reinterpret_i32 - f64.promote_f32 - local.get $2 - i32.const 19 - i32.shr_u - i32.const 15 + local.get $4 + i64.const 4294967295 + i64.and + local.get $3 + i32.const 614242 + i32.add + local.tee $3 + i32.const 1048575 i32.and - i32.const 4 - i32.shl - i32.const 10016 + i32.const 1072079006 i32.add - local.tee $2 - f64.load - f64.mul + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + f64.reinterpret_i64 f64.const -1 f64.add - local.tee $3 - local.get $3 + local.tee $7 + f64.const 0.5 f64.mul - local.set $9 - local.get $1 - f64.promote_f32 - local.get $3 - f64.const 0.288457581109214 + local.get $7 f64.mul - f64.const -0.36092606229713164 + local.set $8 + local.get $7 + local.get $7 + f64.const 2 f64.add - local.get $9 + f64.div + local.tee $9 local.get $9 f64.mul + local.tee $10 + local.get $10 f64.mul - local.get $3 - f64.const 1.4426950408774342 + local.set $11 + local.get $7 + local.get $7 + local.get $8 + f64.sub + i64.reinterpret_f64 + i64.const -4294967296 + i64.and + f64.reinterpret_i64 + local.tee $12 + f64.sub + local.get $8 + f64.sub + local.get $9 + local.get $8 + local.get $10 + local.get $11 + local.get $11 + local.get $11 + f64.const 0.14798198605116586 f64.mul - local.get $2 - f64.load offset=8 - local.get $6 - i32.const 23 - i32.shr_s - f64.convert_i32_s - f64.add + f64.const 0.1818357216161805 f64.add - local.get $3 - f64.const 0.480898481472577 f64.mul - f64.const -0.7213474675006291 + f64.const 0.2857142874366239 f64.add - local.get $9 f64.mul - f64.add + f64.const 0.6666666666666735 f64.add f64.mul - local.tee $3 - i64.reinterpret_f64 - i64.const 47 - i64.shr_u - i64.const 65535 - i64.and - i64.const 32959 - i64.ge_u - if - f32.const -1584563250285286751870879e5 - f32.const 1584563250285286751870879e5 - local.get $4 - select - f32.const 1584563250285286751870879e5 - f32.mul - local.get $3 - f64.const 127.99999995700433 - f64.gt - br_if $~lib/util/math/powf_lut|inlined.0 - drop - f32.const -2.524354896707238e-29 - f32.const 2.524354896707238e-29 - local.get $4 - select - f32.const 2.524354896707238e-29 - f32.mul - local.get $3 - f64.const -150 - f64.le - br_if $~lib/util/math/powf_lut|inlined.0 - drop - end - local.get $3 - f64.const 211106232532992 - f64.add - local.tee $9 - i64.reinterpret_f64 - local.set $5 - local.get $3 - local.get $9 - f64.const -211106232532992 - f64.add - f64.sub - local.tee $3 - f64.const 0.6931471806916203 + local.get $11 + local.get $11 + local.get $11 + f64.const 0.15313837699209373 f64.mul - f64.const 1 + f64.const 0.22222198432149784 f64.add - local.get $3 - f64.const 0.05550361559341535 f64.mul - f64.const 0.2402284522445722 + f64.const 0.3999999999940942 f64.add - local.get $3 - local.get $3 f64.mul + f64.add + f64.add f64.mul f64.add + local.set $8 local.get $5 - i32.wrap_i64 - i32.const 31 - i32.and - i32.const 3 - i32.shl - i32.const 7712 + local.get $3 + i32.const 20 + i32.shr_u + i32.const 1023 + i32.sub i32.add - i64.load - local.get $5 - local.get $4 - i64.extend_i32_u - i64.add - i64.const 47 - i64.shl - i64.add - f64.reinterpret_i64 + f64.convert_i32_s + local.tee $9 + f64.const 0.30102999566361177 f64.mul - f32.demote_f64 - end - ) - (func $~lib/math/NativeMath.seedRandom (param $0 i64) - (local $1 i32) - (local $2 i64) - i64.const -7046029254386353131 - local.get $0 - local.get $0 - i64.eqz - select - local.tee $0 - i64.const 33 - i64.shr_u - local.get $0 - i64.xor - i64.const -49064778989728563 - i64.mul - local.tee $2 - i64.const 33 - i64.shr_u - local.get $2 - i64.xor - i64.const -4265267296055464877 - i64.mul - local.tee $2 - i64.const 33 - i64.shr_u - local.get $2 - i64.xor - global.set $~lib/math/random_state0_64 - global.get $~lib/math/random_state0_64 - i64.const -1 - i64.xor - local.tee $2 - i64.const 33 - i64.shr_u - local.get $2 - i64.xor - i64.const -49064778989728563 - i64.mul - local.tee $2 - i64.const 33 - i64.shr_u - local.get $2 - i64.xor - i64.const -4265267296055464877 - i64.mul - local.tee $2 - i64.const 33 - i64.shr_u - local.get $2 - i64.xor - global.set $~lib/math/random_state1_64 - local.get $0 - i32.wrap_i64 - i32.const 1831565813 - i32.add - local.tee $1 - i32.const 1 - i32.or - local.get $1 - local.get $1 - i32.const 15 - i32.shr_u - i32.xor - i32.mul - local.tee $1 - i32.const 61 - i32.or - local.get $1 - local.get $1 - i32.const 7 - i32.shr_u - i32.xor - i32.mul - local.get $1 - i32.add - local.get $1 - i32.xor - local.tee $1 - i32.const 14 - i32.shr_u - local.get $1 - i32.xor - global.set $~lib/math/random_state0_32 - global.get $~lib/math/random_state0_32 - i32.const 1831565813 - i32.add - local.tee $1 - i32.const 1 - i32.or - local.get $1 - local.get $1 - i32.const 15 - i32.shr_u - i32.xor - i32.mul - local.tee $1 - i32.const 61 - i32.or - local.get $1 - local.get $1 - i32.const 7 - i32.shr_u - i32.xor - i32.mul - local.get $1 - i32.add - local.get $1 - i32.xor - local.tee $1 - i32.const 14 - i32.shr_u - local.get $1 - i32.xor - global.set $~lib/math/random_state1_32 - i32.const 1 - global.set $~lib/math/random_seeded - ) - (func $std/math/test_round (param $0 f64) (param $1 f64) (result i32) - (local $2 f64) - local.get $0 - f64.ceil - local.tee $2 - local.get $2 - f64.const -1 - f64.add - local.get $2 - f64.const -0.5 - f64.add - local.get $0 - f64.le - select - local.get $1 - f64.const 0 - call $std/math/check - ) - (func $std/math/test_roundf (param $0 f32) (param $1 f32) (result i32) - (local $2 f32) - local.get $0 - f32.ceil - local.tee $2 - local.get $2 - f32.const -1 - f32.add - local.get $2 - f32.const -0.5 - f32.add - local.get $0 - f32.le - select - local.get $1 - f32.const 0 - call $std/math/check - ) - (func $std/math/test_sign (param $0 f64) (param $1 f64) (result i32) - f64.const 1 - f64.const -1 - local.get $0 - local.get $0 - f64.const 0 - f64.lt - select - local.get $0 - f64.const 0 - f64.gt - select - local.get $1 - f64.const 0 - call $std/math/check - if (result i32) - local.get $0 - call $~lib/bindings/dom/Math.sign - local.get $1 - f64.const 0 - call $std/math/check - else - i32.const 0 - end - ) - (func $std/math/test_signf (param $0 f32) (param $1 f32) (result i32) - f32.const 1 - f32.const -1 - local.get $0 - local.get $0 - f32.const 0 - f32.lt - select - local.get $0 - f32.const 0 - f32.gt - select - local.get $1 - f32.const 0 - call $std/math/check - ) - (func $~lib/math/NativeMath.rem (param $0 f64) (param $1 f64) (result f64) - (local $2 i64) - (local $3 i64) - (local $4 i64) - (local $5 i32) - (local $6 i64) - (local $7 i64) - (local $8 f64) - local.get $1 - i64.reinterpret_f64 - local.tee $7 - i64.const 52 - i64.shr_u - i64.const 2047 - i64.and - local.set $4 - local.get $7 - i64.const 1 - i64.shl - i64.eqz - local.get $0 - i64.reinterpret_f64 - local.tee $6 - i64.const 52 - i64.shr_u - i64.const 2047 - i64.and - local.tee $3 - i64.const 2047 - i64.eq - i32.or - local.get $1 - local.get $1 - f64.ne - i32.or - if - local.get $0 - local.get $1 + local.tee $10 + local.get $12 + f64.const 0.4342944818781689 f64.mul - local.tee $0 - local.get $0 - f64.div - return - end - local.get $6 - i64.const 1 - i64.shl - i64.eqz - if - local.get $0 - return - end - local.get $3 - i64.eqz - if (result i64) - local.get $6 - i64.const 1 - local.get $3 - local.get $6 - i64.const 12 - i64.shl - i64.clz - i64.sub - local.tee $3 - i64.sub - i64.shl - else - local.get $6 - i64.const 4503599627370495 - i64.and - i64.const 4503599627370496 - i64.or - end - local.set $2 - local.get $4 - i64.eqz - if (result i64) + local.tee $11 + f64.add + local.set $7 + local.get $9 + f64.const 3.694239077158931e-13 + f64.mul + local.get $8 + local.get $12 + f64.add + f64.const 2.5082946711645275e-11 + f64.mul + f64.add + local.get $8 + f64.const 0.4342944818781689 + f64.mul + f64.add + local.get $10 local.get $7 - i64.const 1 - local.get $4 + f64.sub + local.get $11 + f64.add + f64.add local.get $7 - i64.const 12 - i64.shl - i64.clz - i64.sub - local.tee $4 - i64.sub - i64.shl + f64.add + end + local.get $1 + local.get $2 + call $std/math/check + if (result i32) + local.get $0 + call $~lib/bindings/dom/Math.log10 + local.get $1 + local.get $2 + call $std/math/check else - local.get $7 - i64.const 4503599627370495 - i64.and - i64.const 4503599627370496 - i64.or + i32.const 0 end - local.set $7 - block $do-break|0 - local.get $3 - local.get $4 - i64.lt_s + ) + (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$9 (result f32) + local.get $0 + i32.reinterpret_f32 + local.tee $3 + i32.const 2147483647 + i32.and + i32.const 1073741824 + i32.lt_u if - local.get $3 - i64.const 1 - i64.add - local.get $4 - i64.eq - br_if $do-break|0 local.get $0 - return - end - loop $while-continue|1 - local.get $3 - local.get $4 - i64.gt_s - if - local.get $2 - local.get $7 - i64.ge_u - if (result i64) - local.get $5 - i32.const 1 - i32.add - local.set $5 - local.get $2 - local.get $7 - i64.sub - else - local.get $2 - end - i64.const 1 - i64.shl - local.set $2 - local.get $5 - i32.const 1 - i32.shl - local.set $5 - local.get $3 - i64.const 1 - i64.sub - local.set $3 - br $while-continue|1 - end - end - local.get $2 - local.get $7 - i64.ge_u - if - local.get $5 - i32.const 1 - i32.add - local.set $5 - local.get $2 - local.get $7 - i64.sub - local.set $2 + f32.const -1 + f32.add + local.tee $0 + local.get $0 + local.get $0 + f32.const 2 + f32.add + f32.mul + f32.sqrt + f32.add + call $~lib/math/NativeMathf.log1p + br $__inlined_func$~lib/math/NativeMathf.acosh$9 end - local.get $2 - i64.eqz + local.get $3 + i32.const 1166016512 + i32.lt_u if - i64.const -60 - local.set $3 - else - local.get $3 - local.get $2 - i64.const 11 - i64.shl - i64.clz - local.tee $7 - i64.sub - local.set $3 - local.get $2 - local.get $7 - i64.shl - local.set $2 + local.get $0 + local.get $0 + f32.add + f32.const 1 + local.get $0 + local.get $0 + local.get $0 + f32.mul + f32.const -1 + f32.add + f32.sqrt + f32.add + f32.div + f32.sub + call $~lib/math/NativeMathf.log + br $__inlined_func$~lib/math/NativeMathf.acosh$9 end + local.get $0 + call $~lib/math/NativeMathf.log + f32.const 0.6931471824645996 + f32.add end local.get $1 - f64.abs - local.set $1 - local.get $3 - i64.const 0 - i64.gt_s - if (result i64) - local.get $2 - i64.const 4503599627370496 - i64.sub - local.get $3 - i64.const 52 - i64.shl - i64.or - else - local.get $2 - i64.const 1 - local.get $3 - i64.sub - i64.shr_u - end - f64.reinterpret_i64 - local.tee $0 - local.get $0 - f64.add - local.set $8 - local.get $0 - local.get $1 - f64.sub + local.get $2 + call $std/math/check + ) + (func $std/math/test_tanhf (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (local $3 i32) + (local $4 f32) local.get $0 + i32.reinterpret_f32 + i32.const 2147483647 + i32.and + local.tee $3 + f32.reinterpret_i32 + local.set $4 local.get $3 - local.get $4 - i64.eq - if (result i32) - i32.const 1 + i32.const 1057791828 + i32.gt_u + if (result f32) + local.get $3 + i32.const 1092616192 + i32.gt_u + if (result f32) + f32.const 0 + local.get $4 + f32.div + f32.const 1 + f32.add + else + f32.const 1 + f32.const 2 + local.get $4 + local.get $4 + f32.add + call $~lib/math/NativeMathf.expm1 + f32.const 2 + f32.add + f32.div + f32.sub + end else local.get $3 - i64.const 1 - i64.add - local.get $4 - i64.eq - if (result i32) - local.get $5 - i32.const 1 - i32.and - local.get $1 - local.get $8 - f64.eq - i32.and - local.get $1 - local.get $8 - f64.lt - i32.or + i32.const 1048757624 + i32.gt_u + if (result f32) + local.get $4 + local.get $4 + f32.add + call $~lib/math/NativeMathf.expm1 + local.tee $4 + local.get $4 + f32.const 2 + f32.add + f32.div else - i32.const 0 + local.get $3 + i32.const 8388608 + i32.ge_u + if (result f32) + local.get $4 + f32.const -2 + f32.mul + call $~lib/math/NativeMathf.expm1 + local.tee $4 + f32.neg + local.get $4 + f32.const 2 + f32.add + f32.div + else + local.get $4 + end end end - select - local.tee $0 - f64.neg local.get $0 - local.get $6 - i64.const 0 - i64.lt_s - select + f32.copysign + local.get $1 + local.get $2 + call $std/math/check ) - (func $~lib/math/NativeMathf.rem (param $0 f32) (param $1 f32) (result f32) - (local $2 i32) + (func $std/math/test_tanh (param $0 f64) (param $1 f64) (param $2 f64) (result i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 f32) - local.get $1 - i32.reinterpret_f32 - local.tee $7 - i32.const 23 - i32.shr_u - i32.const 255 - i32.and - local.set $4 - local.get $7 - i32.const 1 - i32.shl - i32.eqz + (local $4 i64) + (local $5 f64) local.get $0 - i32.reinterpret_f32 - local.tee $6 - i32.const 23 - i32.shr_u - i32.const 255 - i32.and + i64.reinterpret_f64 + i64.const 9223372036854775807 + i64.and + local.tee $4 + f64.reinterpret_i64 + local.set $5 + local.get $4 + i64.const 32 + i64.shr_u + i32.wrap_i64 local.tee $3 - i32.const 255 - i32.eq - i32.or - local.get $1 - local.get $1 - f32.ne - i32.or - if - local.get $0 - local.get $1 - f32.mul - local.tee $0 - local.get $0 - f32.div - return - end - local.get $6 - i32.const 1 - i32.shl - i32.eqz - if - local.get $0 - return - end - local.get $3 - if (result i32) - local.get $6 - i32.const 8388607 - i32.and - i32.const 8388608 - i32.or - else - local.get $6 - i32.const 1 + i32.const 1071748074 + i32.gt_u + if (result f64) local.get $3 - local.get $6 - i32.const 9 - i32.shl - i32.clz - i32.sub - local.tee $3 - i32.sub - i32.shl - end - local.set $2 - local.get $4 - if (result i32) - local.get $7 - i32.const 8388607 - i32.and - i32.const 8388608 - i32.or + i32.const 1077149696 + i32.gt_u + if (result f64) + f64.const 1 + f64.const 0 + local.get $5 + f64.div + f64.sub + else + f64.const 1 + f64.const 2 + local.get $5 + local.get $5 + f64.add + call $~lib/math/NativeMath.expm1 + f64.const 2 + f64.add + f64.div + f64.sub + end else - local.get $7 - i32.const 1 - local.get $4 - local.get $7 - i32.const 9 - i32.shl - i32.clz - i32.sub - local.tee $4 - i32.sub - i32.shl - end - local.set $7 - block $do-break|0 local.get $3 - local.get $4 - i32.lt_s - if - local.get $3 - i32.const 1 - i32.add - local.get $4 - i32.eq - br_if $do-break|0 - local.get $0 - return - end - loop $while-continue|1 + i32.const 1070618798 + i32.gt_u + if (result f64) + local.get $5 + local.get $5 + f64.add + call $~lib/math/NativeMath.expm1 + local.tee $5 + local.get $5 + f64.const 2 + f64.add + f64.div + else local.get $3 - local.get $4 - i32.gt_s - if - local.get $2 - local.get $7 - i32.ge_u - if (result i32) - local.get $5 - i32.const 1 - i32.add - local.set $5 - local.get $2 - local.get $7 - i32.sub - else - local.get $2 - end - i32.const 1 - i32.shl - local.set $2 + i32.const 1048576 + i32.ge_u + if (result f64) + local.get $5 + f64.const -2 + f64.mul + call $~lib/math/NativeMath.expm1 + local.tee $5 + f64.neg + local.get $5 + f64.const 2 + f64.add + f64.div + else local.get $5 - i32.const 1 - i32.shl - local.set $5 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - br $while-continue|1 end end - local.get $2 - local.get $7 - i32.ge_u - if - local.get $5 - i32.const 1 - i32.add - local.set $5 - local.get $2 - local.get $7 - i32.sub - local.set $2 - end - local.get $2 - if - local.get $3 - local.get $2 - i32.const 8 - i32.shl - i32.clz - local.tee $7 - i32.sub - local.set $3 - local.get $2 - local.get $7 - i32.shl - local.set $2 - else - i32.const -30 - local.set $3 - end end + local.get $0 + f64.copysign local.get $1 - f32.abs - local.set $1 - local.get $3 - i32.const 0 - i32.gt_s + local.get $2 + call $std/math/check if (result i32) + local.get $0 + call $~lib/bindings/dom/Math.tanh + local.get $1 local.get $2 - i32.const 8388608 - i32.sub - local.get $3 - i32.const 23 - i32.shl - i32.or + call $std/math/check else - local.get $2 - i32.const 1 - local.get $3 - i32.sub - i32.shr_u + i32.const 0 end - f32.reinterpret_i32 - local.tee $0 - local.get $0 - f32.add - local.set $8 + ) + (func $std/math/test_sinhf (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (local $3 f32) + (local $4 i32) + (local $5 f32) local.get $0 - local.get $1 - f32.sub + i32.reinterpret_f32 + i32.const 2147483647 + i32.and + local.tee $4 + f32.reinterpret_i32 + local.set $5 + f32.const 0.5 local.get $0 - local.get $3 - local.get $4 - i32.eq - if (result i32) - i32.const 1 - else - local.get $3 - i32.const 1 - i32.add + f32.copysign + local.set $3 + block $__inlined_func$~lib/math/NativeMathf.sinh$36 local.get $4 - i32.eq - if (result i32) + i32.const 1118925335 + i32.lt_u + if local.get $5 - i32.const 1 - i32.and - local.get $1 - local.get $8 - f32.eq - i32.and - local.get $1 - local.get $8 - f32.lt - i32.or - else - i32.const 0 + call $~lib/math/NativeMathf.expm1 + local.set $5 + local.get $4 + i32.const 1065353216 + i32.lt_u + if + local.get $4 + i32.const 964689920 + i32.lt_u + br_if $__inlined_func$~lib/math/NativeMathf.sinh$36 + local.get $3 + local.get $5 + local.get $5 + f32.add + local.get $5 + local.get $5 + f32.mul + local.get $5 + f32.const 1 + f32.add + f32.div + f32.sub + f32.mul + local.set $0 + br $__inlined_func$~lib/math/NativeMathf.sinh$36 + end + local.get $3 + local.get $5 + local.get $5 + local.get $5 + f32.const 1 + f32.add + f32.div + f32.add + f32.mul + local.set $0 + br $__inlined_func$~lib/math/NativeMathf.sinh$36 end + local.get $5 + f32.const -162.88958740234375 + f32.add + call $~lib/math/NativeMathf.exp + local.get $3 + local.get $3 + f32.add + f32.const 1661534994731144841129758e11 + f32.mul + f32.mul + f32.const 1661534994731144841129758e11 + f32.mul + local.set $0 end - select - local.tee $0 - f32.neg local.get $0 - local.get $6 - i32.const 0 - i32.lt_s - select + local.get $1 + local.get $2 + call $std/math/check ) - (func $~lib/math/NativeMath.sin (param $0 f64) (result f64) - (local $1 f64) - (local $2 f64) - (local $3 i32) + (func $std/math/test_sinh (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (local $3 f64) (local $4 i32) (local $5 i64) - (local $6 i32) - (local $7 f64) - (local $8 f64) - (local $9 f64) + (local $6 f64) local.get $0 i64.reinterpret_f64 + i64.const 9223372036854775807 + i64.and local.tee $5 - i64.const 32 - i64.shr_u - i32.wrap_i64 - local.tee $3 - i32.const 31 - i32.shr_u + f64.reinterpret_i64 local.set $6 - local.get $3 - i32.const 2147483647 - i32.and - local.tee $3 - i32.const 1072243195 - i32.le_u - if - local.get $3 - i32.const 1045430272 - i32.lt_u - if - local.get $0 - return - end - local.get $0 - local.get $0 - local.get $0 - f64.mul - local.tee $1 - local.get $0 - f64.mul - local.get $1 - local.get $1 - local.get $1 - f64.const 2.7557313707070068e-06 - f64.mul - f64.const -1.984126982985795e-04 - f64.add - f64.mul - f64.const 0.00833333333332249 - f64.add - local.get $1 - local.get $1 - local.get $1 - f64.mul - f64.mul - local.get $1 - f64.const 1.58969099521155e-10 - f64.mul - f64.const -2.5050760253406863e-08 - f64.add - f64.mul - f64.add - f64.mul - f64.const -0.16666666666666632 - f64.add - f64.mul - f64.add - return - end - local.get $3 - i32.const 2146435072 - i32.ge_u - if - local.get $0 - local.get $0 - f64.sub - return - end - block $~lib/math/rempio2|inlined.1 (result i32) + f64.const 0.5 + local.get $0 + f64.copysign + local.set $3 + block $__inlined_func$~lib/math/NativeMath.sinh$35 (result f64) local.get $5 i64.const 32 i64.shr_u i32.wrap_i64 - i32.const 2147483647 - i32.and local.tee $4 - i32.const 1073928572 + i32.const 1082535490 i32.lt_u if - i32.const 1 - local.set $3 local.get $6 - if (result f64) - local.get $0 - f64.const 1.5707963267341256 - f64.add - local.set $0 - i32.const -1 - local.set $3 - local.get $4 - i32.const 1073291771 - i32.ne - if (result f64) - local.get $0 - local.get $0 - f64.const 6.077100506506192e-11 - f64.add - local.tee $0 - f64.sub - f64.const 6.077100506506192e-11 - f64.add - else - local.get $0 - f64.const 6.077100506303966e-11 - f64.add - local.tee $1 - f64.const 2.0222662487959506e-21 - f64.add - local.set $0 - local.get $1 - local.get $0 - f64.sub - f64.const 2.0222662487959506e-21 - f64.add - end - else - local.get $0 - f64.const -1.5707963267341256 - f64.add - local.set $0 - local.get $4 - i32.const 1073291771 - i32.ne - if (result f64) - local.get $0 - local.get $0 - f64.const -6.077100506506192e-11 - f64.add - local.tee $0 - f64.sub - f64.const -6.077100506506192e-11 - f64.add - else - local.get $0 - f64.const -6.077100506303966e-11 - f64.add - local.tee $1 - f64.const -2.0222662487959506e-21 - f64.add - local.set $0 - local.get $1 - local.get $0 - f64.sub - f64.const -2.0222662487959506e-21 - f64.add - end - end - local.set $1 - local.get $0 - global.set $~lib/math/rempio2_y0 - local.get $1 - global.set $~lib/math/rempio2_y1 - local.get $3 - br $~lib/math/rempio2|inlined.1 - end - local.get $4 - i32.const 1094263291 - i32.lt_u - if + call $~lib/math/NativeMath.expm1 + local.set $6 local.get $4 - i32.const 20 - i32.shr_u - local.tee $3 - local.get $0 - local.get $0 - f64.const 0.6366197723675814 - f64.mul - f64.nearest - local.tee $7 - f64.const 1.5707963267341256 - f64.mul - f64.sub - local.tee $0 - local.get $7 - f64.const 6.077100506506192e-11 - f64.mul - local.tee $2 - f64.sub - local.tee $1 - i64.reinterpret_f64 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const 20 - i32.shr_u - i32.const 2047 - i32.and - i32.sub - i32.const 16 - i32.gt_u + i32.const 1072693248 + i32.lt_u if - local.get $7 - f64.const 2.0222662487959506e-21 - f64.mul local.get $0 - local.get $0 - local.get $7 - f64.const 6.077100506303966e-11 - f64.mul - local.tee $1 - f64.sub - local.tee $0 - f64.sub - local.get $1 - f64.sub - f64.sub - local.set $2 + local.get $4 + i32.const 1045430272 + i32.lt_u + br_if $__inlined_func$~lib/math/NativeMath.sinh$35 + drop local.get $3 - local.get $0 - local.get $2 + local.get $6 + local.get $6 + f64.add + local.get $6 + local.get $6 + f64.mul + local.get $6 + f64.const 1 + f64.add + f64.div f64.sub - local.tee $1 - i64.reinterpret_f64 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const 20 - i32.shr_u - i32.const 2047 - i32.and - i32.sub - i32.const 49 - i32.gt_u - if - local.get $7 - f64.const 8.4784276603689e-32 - f64.mul - local.get $0 - local.get $0 - local.get $7 - f64.const 2.0222662487111665e-21 - f64.mul - local.tee $1 - f64.sub - local.tee $0 - f64.sub - local.get $1 - f64.sub - f64.sub - local.set $2 - local.get $0 - local.get $2 - f64.sub - local.set $1 - end + f64.mul + br $__inlined_func$~lib/math/NativeMath.sinh$35 end - local.get $1 - global.set $~lib/math/rempio2_y0 - local.get $0 - local.get $1 - f64.sub - local.get $2 - f64.sub - global.set $~lib/math/rempio2_y1 - local.get $7 - i32.trunc_sat_f64_s - br $~lib/math/rempio2|inlined.1 - end - i32.const 0 - local.get $5 - call $~lib/math/pio2_large_quot - local.tee $3 - i32.sub - local.get $3 - local.get $6 - select - end - local.set $3 - global.get $~lib/math/rempio2_y0 - local.set $2 - global.get $~lib/math/rempio2_y1 - local.set $7 - local.get $3 - i32.const 1 - i32.and - if (result f64) - local.get $2 - local.get $2 - f64.mul - local.tee $0 - local.get $0 - f64.mul - local.set $1 - f64.const 1 - local.get $0 - f64.const 0.5 - f64.mul - local.tee $8 - f64.sub - local.tee $9 - f64.const 1 - local.get $9 - f64.sub - local.get $8 - f64.sub - local.get $0 - local.get $0 - local.get $0 - local.get $0 - f64.const 2.480158728947673e-05 - f64.mul - f64.const -0.001388888888887411 - f64.add - f64.mul - f64.const 0.0416666666666666 - f64.add - f64.mul - local.get $1 - local.get $1 - f64.mul - local.get $0 - local.get $0 - f64.const -1.1359647557788195e-11 - f64.mul - f64.const 2.087572321298175e-09 - f64.add - f64.mul - f64.const -2.7557314351390663e-07 - f64.add - f64.mul - f64.add - f64.mul - local.get $2 - local.get $7 - f64.mul - f64.sub - f64.add - f64.add - else - local.get $2 - local.get $2 - f64.mul - local.tee $0 - local.get $2 - f64.mul - local.set $1 - local.get $2 - local.get $0 - local.get $7 - f64.const 0.5 - f64.mul - local.get $1 - local.get $0 - local.get $0 - f64.const 2.7557313707070068e-06 - f64.mul - f64.const -1.984126982985795e-04 - f64.add - f64.mul - f64.const 0.00833333333332249 + local.get $3 + local.get $6 + local.get $6 + local.get $6 + f64.const 1 + f64.add + f64.div + f64.add + f64.mul + br $__inlined_func$~lib/math/NativeMath.sinh$35 + end + local.get $6 + f64.const -1416.0996898839683 f64.add - local.get $0 - local.get $0 - local.get $0 - f64.mul - f64.mul - local.get $0 - f64.const 1.58969099521155e-10 - f64.mul - f64.const -2.5050760253406863e-08 + call $~lib/math/NativeMath.exp + local.get $3 + local.get $3 f64.add + f64.const 2247116418577894884661631e283 f64.mul - f64.add f64.mul - f64.sub + f64.const 2247116418577894884661631e283 f64.mul - local.get $7 - f64.sub + end + local.get $1 + local.get $2 + call $std/math/check + if (result i32) + local.get $0 + call $~lib/bindings/dom/Math.sinh local.get $1 - f64.const -0.16666666666666632 - f64.mul - f64.sub - f64.sub + local.get $2 + call $std/math/check + else + i32.const 0 end - local.tee $0 - f64.neg - local.get $0 - local.get $3 - i32.const 2 - i32.and - select ) - (func $~lib/math/NativeMathf.sin (param $0 f32) (result f32) - (local $1 f64) - (local $2 f64) + (func $std/math/test_coshf (param $0 f32) (param $1 f32) (param $2 f32) (result i32) (local $3 i32) - (local $4 f64) - (local $5 i64) - (local $6 i32) - (local $7 i32) - (local $8 i64) - (local $9 i64) local.get $0 i32.reinterpret_f32 + i32.const 2147483647 + i32.and local.tee $3 - i32.const 31 - i32.shr_u - local.set $6 - block $folding-inner0 + f32.reinterpret_i32 + local.set $0 + block $__inlined_func$~lib/math/NativeMathf.cosh$21 (result f32) local.get $3 - i32.const 2147483647 - i32.and - local.tee $3 - i32.const 1061752794 - i32.le_u + i32.const 1060205079 + i32.lt_u if + f32.const 1 local.get $3 i32.const 964689920 i32.lt_u - if - local.get $0 - return - end + br_if $__inlined_func$~lib/math/NativeMathf.cosh$21 + drop local.get $0 - f64.promote_f32 - local.tee $2 - local.get $2 - f64.mul - local.tee $1 - local.get $2 - f64.mul - local.set $4 - br $folding-inner0 - end - local.get $3 - i32.const 1081824209 - i32.le_u - if - local.get $3 - i32.const 1075235811 - i32.le_u - if - local.get $6 - if (result f32) - local.get $0 - f64.promote_f32 - f64.const 1.5707963267948966 - f64.add - local.tee $1 - local.get $1 - f64.mul - local.tee $1 - local.get $1 - f64.mul - local.set $2 - local.get $1 - f64.const -0.499999997251031 - f64.mul - f64.const 1 - f64.add - local.get $2 - f64.const 0.04166662332373906 - f64.mul - f64.add - local.get $2 - local.get $1 - f64.mul - local.get $1 - f64.const 2.439044879627741e-05 - f64.mul - f64.const -0.001388676377460993 - f64.add - f64.mul - f64.add - f32.demote_f64 - f32.neg - else - local.get $0 - f64.promote_f32 - f64.const -1.5707963267948966 - f64.add - local.tee $1 - local.get $1 - f64.mul - local.tee $1 - local.get $1 - f64.mul - local.set $2 - local.get $1 - f64.const -0.499999997251031 - f64.mul - f64.const 1 - f64.add - local.get $2 - f64.const 0.04166662332373906 - f64.mul - f64.add - local.get $2 - local.get $1 - f64.mul - local.get $1 - f64.const 2.439044879627741e-05 - f64.mul - f64.const -0.001388676377460993 - f64.add - f64.mul - f64.add - f32.demote_f64 - end - return - end + call $~lib/math/NativeMathf.expm1 + local.tee $0 local.get $0 - f64.promote_f32 - local.tee $1 - f64.const 3.141592653589793 - f64.add - local.get $1 - f64.const -3.141592653589793 - f64.add - local.get $6 - select - f64.neg - local.tee $2 - local.get $2 - f64.mul - local.tee $1 - local.get $2 - f64.mul - local.set $4 - br $folding-inner0 - end - local.get $3 - i32.const 1088565717 - i32.le_u - if - local.get $3 - i32.const 1085271519 - i32.le_u - if - local.get $6 - if (result f32) - local.get $0 - f64.promote_f32 - f64.const 4.71238898038469 - f64.add - local.tee $1 - local.get $1 - f64.mul - local.tee $1 - local.get $1 - f64.mul - local.set $2 - local.get $1 - f64.const -0.499999997251031 - f64.mul - f64.const 1 - f64.add - local.get $2 - f64.const 0.04166662332373906 - f64.mul - f64.add - local.get $2 - local.get $1 - f64.mul - local.get $1 - f64.const 2.439044879627741e-05 - f64.mul - f64.const -0.001388676377460993 - f64.add - f64.mul - f64.add - f32.demote_f64 - else - local.get $0 - f64.promote_f32 - f64.const -4.71238898038469 - f64.add - local.tee $1 - local.get $1 - f64.mul - local.tee $1 - local.get $1 - f64.mul - local.set $2 - local.get $1 - f64.const -0.499999997251031 - f64.mul - f64.const 1 - f64.add - local.get $2 - f64.const 0.04166662332373906 - f64.mul - f64.add - local.get $2 - local.get $1 - f64.mul - local.get $1 - f64.const 2.439044879627741e-05 - f64.mul - f64.const -0.001388676377460993 - f64.add - f64.mul - f64.add - f32.demote_f64 - f32.neg - end - return - end + f32.mul local.get $0 - f64.promote_f32 - local.tee $1 - f64.const 6.283185307179586 - f64.add - local.get $1 - f64.const -6.283185307179586 - f64.add - local.get $6 - select - local.tee $2 - local.get $2 - f64.mul - local.tee $1 - local.get $2 - f64.mul - local.set $4 - br $folding-inner0 + local.get $0 + f32.add + f32.const 2 + f32.add + f32.div + f32.const 1 + f32.add + br $__inlined_func$~lib/math/NativeMathf.cosh$21 end local.get $3 - i32.const 2139095040 - i32.ge_u + i32.const 1118925335 + i32.lt_u if local.get $0 + call $~lib/math/NativeMathf.exp + local.tee $0 + f32.const 0.5 + f32.mul + f32.const 0.5 local.get $0 - f32.sub - return - end - block $~lib/math/rempio2f|inlined.1 (result i32) - local.get $3 - i32.const 1305022427 - i32.lt_u - if - local.get $0 - f64.promote_f32 - local.tee $1 - f64.const 0.6366197723675814 - f64.mul - f64.nearest - local.set $2 - local.get $1 - local.get $2 - f64.const 1.5707963109016418 - f64.mul - f64.sub - local.get $2 - f64.const 1.5893254773528196e-08 - f64.mul - f64.sub - global.set $~lib/math/rempio2f_y - local.get $2 - i32.trunc_sat_f64_s - br $~lib/math/rempio2f|inlined.1 - end - local.get $3 - i32.const 23 - i32.shr_s - i32.const 152 - i32.sub - local.tee $7 - i32.const 63 - i32.and - i64.extend_i32_s - local.set $8 - local.get $7 - i32.const 6 - i32.shr_s - i32.const 3 - i32.shl - i32.const 5632 - i32.add - local.tee $7 - i64.load offset=8 - local.set $5 - f64.const 8.515303950216386e-20 - local.get $0 - f64.promote_f32 - f64.copysign - local.get $3 - i32.const 8388607 - i32.and - i32.const 8388608 - i32.or - i64.extend_i32_s - local.tee $9 - local.get $7 - i64.load - local.get $8 - i64.shl - local.get $5 - i64.const 64 - local.get $8 - i64.sub - i64.shr_u - i64.or - i64.mul - local.get $8 - i64.const 32 - i64.gt_u - if (result i64) - local.get $5 - local.get $8 - i64.const 32 - i64.sub - i64.shl - local.get $7 - i64.load offset=16 - i64.const 96 - local.get $8 - i64.sub - i64.shr_u - i64.or - else - local.get $5 - i64.const 32 - local.get $8 - i64.sub - i64.shr_u - end - local.get $9 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.tee $5 - i64.const 2 - i64.shl - local.tee $8 - f64.convert_i64_s - f64.mul - global.set $~lib/math/rempio2f_y - i32.const 0 - local.get $5 - i64.const 62 - i64.shr_u - local.get $8 - i64.const 63 - i64.shr_u - i64.add - i32.wrap_i64 - local.tee $3 - i32.sub - local.get $3 - local.get $6 - select - end - local.set $3 - global.get $~lib/math/rempio2f_y - local.set $1 - local.get $3 - i32.const 1 - i32.and - if (result f32) - local.get $1 - local.get $1 - f64.mul - local.tee $1 - local.get $1 - f64.mul - local.set $2 - local.get $1 - f64.const -0.499999997251031 - f64.mul - f64.const 1 - f64.add - local.get $2 - f64.const 0.04166662332373906 - f64.mul - f64.add - local.get $2 - local.get $1 - f64.mul - local.get $1 - f64.const 2.439044879627741e-05 - f64.mul - f64.const -0.001388676377460993 - f64.add - f64.mul - f64.add - f32.demote_f64 - else - local.get $1 - local.get $1 - local.get $1 - f64.mul - local.tee $2 - local.get $1 - f64.mul - local.tee $1 - local.get $2 - f64.const 0.008333329385889463 - f64.mul - f64.const -0.16666666641626524 - f64.add - f64.mul - f64.add - local.get $1 - local.get $2 - local.get $2 - f64.mul - f64.mul - local.get $2 - f64.const 2.718311493989822e-06 - f64.mul - f64.const -1.9839334836096632e-04 - f64.add - f64.mul - f64.add - f32.demote_f64 + f32.div + f32.add + br $__inlined_func$~lib/math/NativeMathf.cosh$21 end - local.tee $0 - f32.neg local.get $0 - local.get $3 - i32.const 2 - i32.and - select - return - end - local.get $2 - local.get $4 - local.get $1 - f64.const 0.008333329385889463 - f64.mul - f64.const -0.16666666641626524 - f64.add - f64.mul - f64.add - local.get $4 - local.get $1 - local.get $1 - f64.mul - f64.mul + f32.const -162.88958740234375 + f32.add + call $~lib/math/NativeMathf.exp + f32.const 1661534994731144841129758e11 + f32.mul + f32.const 1661534994731144841129758e11 + f32.mul + end local.get $1 - f64.const 2.718311493989822e-06 - f64.mul - f64.const -1.9839334836096632e-04 - f64.add - f64.mul - f64.add - f32.demote_f64 + local.get $2 + call $std/math/check ) - (func $std/math/test_sinh (param $0 f64) (param $1 f64) (param $2 f64) (result i32) - (local $3 f64) - (local $4 i32) - (local $5 i64) - (local $6 f64) - block $__inlined_func$~lib/math/NativeMath.sinh$35 (result f64) - local.get $0 - i64.reinterpret_f64 - i64.const 9223372036854775807 - i64.and - local.tee $5 - f64.reinterpret_i64 - local.set $6 - f64.const 0.5 - local.get $0 - f64.copysign - local.set $3 - local.get $5 + (func $std/math/test_cosh (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (local $3 i32) + (local $4 i64) + (local $5 f64) + local.get $0 + i64.reinterpret_f64 + i64.const 9223372036854775807 + i64.and + local.tee $4 + f64.reinterpret_i64 + local.set $5 + block $__inlined_func$~lib/math/NativeMath.cosh$20 (result f64) + local.get $4 i64.const 32 i64.shr_u i32.wrap_i64 - local.tee $4 - i32.const 1082535490 + local.tee $3 + i32.const 1072049730 i32.lt_u if - local.get $6 - call $~lib/math/NativeMath.expm1 - local.set $6 - local.get $4 - i32.const 1072693248 - i32.lt_u - if - local.get $0 - local.get $4 - i32.const 1045430272 - i32.lt_u - br_if $__inlined_func$~lib/math/NativeMath.sinh$35 - drop - local.get $3 - local.get $6 - local.get $6 - f64.add - local.get $6 - local.get $6 - f64.mul - local.get $6 - f64.const 1 - f64.add - f64.div - f64.sub - f64.mul - br $__inlined_func$~lib/math/NativeMath.sinh$35 - end + f64.const 1 local.get $3 - local.get $6 - local.get $6 - local.get $6 + i32.const 1045430272 + i32.lt_u + br_if $__inlined_func$~lib/math/NativeMath.cosh$20 + drop + local.get $5 + call $~lib/math/NativeMath.expm1 + local.tee $5 + local.get $5 + f64.mul + local.get $5 + local.get $5 + f64.add + f64.const 2 + f64.add + f64.div f64.const 1 f64.add + br $__inlined_func$~lib/math/NativeMath.cosh$20 + end + local.get $3 + i32.const 1082535490 + i32.lt_u + if + local.get $5 + call $~lib/math/NativeMath.exp + local.tee $5 + f64.const 1 + local.get $5 f64.div f64.add + f64.const 0.5 f64.mul - br $__inlined_func$~lib/math/NativeMath.sinh$35 + br $__inlined_func$~lib/math/NativeMath.cosh$20 end - local.get $6 + local.get $5 f64.const -1416.0996898839683 f64.add call $~lib/math/NativeMath.exp - local.get $3 - local.get $3 - f64.add f64.const 2247116418577894884661631e283 f64.mul - f64.mul f64.const 2247116418577894884661631e283 f64.mul end @@ -10090,7 +10468,7 @@ call $std/math/check if (result i32) local.get $0 - call $~lib/bindings/dom/Math.sinh + call $~lib/bindings/dom/Math.cosh local.get $1 local.get $2 call $std/math/check @@ -10098,332 +10476,318 @@ i32.const 0 end ) - (func $std/math/test_sinhf (param $0 f32) (param $1 f32) (param $2 f32) (result i32) - (local $3 f32) - (local $4 i32) - (local $5 f32) + (func $std/math/test_asinhf (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (local $3 i32) + (local $4 f32) local.get $0 i32.reinterpret_f32 i32.const 2147483647 i32.and - local.tee $4 + local.tee $3 f32.reinterpret_i32 - local.set $5 - f32.const 0.5 - local.get $0 - f32.copysign - local.set $3 - block $__inlined_func$~lib/math/NativeMathf.sinh$36 + local.set $4 + local.get $3 + i32.const 1166016512 + i32.ge_u + if (result f32) local.get $4 - i32.const 1118925335 - i32.lt_u - if - local.get $5 - call $~lib/math/NativeMathf.expm1 - local.set $5 + call $~lib/math/NativeMathf.log + f32.const 0.6931471824645996 + f32.add + else + local.get $3 + i32.const 1073741824 + i32.ge_u + if (result f32) local.get $4 - i32.const 1065353216 - i32.lt_u - if + local.get $4 + f32.add + f32.const 1 + local.get $4 + local.get $4 + f32.mul + f32.const 1 + f32.add + f32.sqrt + local.get $4 + f32.add + f32.div + f32.add + call $~lib/math/NativeMathf.log + else + local.get $3 + i32.const 964689920 + i32.ge_u + if (result f32) + local.get $4 + local.get $4 local.get $4 - i32.const 964689920 - i32.lt_u - br_if $__inlined_func$~lib/math/NativeMathf.sinh$36 - local.get $3 - local.get $5 - local.get $5 - f32.add - local.get $5 - local.get $5 f32.mul - local.get $5 + local.tee $4 + local.get $4 + f32.const 1 + f32.add + f32.sqrt f32.const 1 f32.add f32.div - f32.sub - f32.mul - local.set $0 - br $__inlined_func$~lib/math/NativeMathf.sinh$36 + f32.add + call $~lib/math/NativeMathf.log1p + else + local.get $4 end - local.get $3 - local.get $5 - local.get $5 - local.get $5 - f32.const 1 - f32.add - f32.div - f32.add - f32.mul - local.set $0 - br $__inlined_func$~lib/math/NativeMathf.sinh$36 end - local.get $5 - f32.const -162.88958740234375 - f32.add - call $~lib/math/NativeMathf.exp - local.get $3 - local.get $3 - f32.add - f32.const 1661534994731144841129758e11 - f32.mul - f32.mul - f32.const 1661534994731144841129758e11 - f32.mul - local.set $0 end local.get $0 + f32.copysign local.get $1 local.get $2 call $std/math/check ) - (func $~lib/math/tan_kern (param $0 f64) (param $1 f64) (param $2 i32) (result f64) - (local $3 i32) - (local $4 i32) + (func $std/math/test_asinh (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (local $3 i64) + (local $4 i64) (local $5 f64) - (local $6 f64) - (local $7 f64) local.get $0 i64.reinterpret_f64 - i64.const 32 - i64.shr_u - i32.wrap_i64 - local.tee $3 - i32.const 2147483647 - i32.and - i32.const 1072010280 - i32.ge_u local.tee $4 - if - f64.const 0.7853981633974483 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + local.set $3 + local.get $4 + i64.const 9223372036854775807 + i64.and + f64.reinterpret_i64 + local.set $5 + local.get $3 + i64.const 1049 + i64.ge_u + if (result f64) + local.get $5 + call $~lib/math/NativeMath.log + f64.const 0.6931471805599453 + f64.add + else local.get $3 - i32.const 0 - i32.lt_s + i64.const 1024 + i64.ge_u if (result f64) - local.get $1 - f64.neg - local.set $1 - local.get $0 - f64.neg + local.get $5 + local.get $5 + f64.add + f64.const 1 + local.get $5 + local.get $5 + f64.mul + f64.const 1 + f64.add + f64.sqrt + local.get $5 + f64.add + f64.div + f64.add + call $~lib/math/NativeMath.log else - local.get $0 + local.get $3 + i64.const 997 + i64.ge_u + if (result f64) + local.get $5 + local.get $5 + local.get $5 + f64.mul + local.tee $5 + local.get $5 + f64.const 1 + f64.add + f64.sqrt + f64.const 1 + f64.add + f64.div + f64.add + call $~lib/math/NativeMath.log1p + else + local.get $5 + end end - f64.sub - f64.const 3.061616997868383e-17 - local.get $1 - f64.sub - f64.add - local.set $0 - f64.const 0 - local.set $1 end local.get $0 - local.get $0 - f64.mul - local.tee $5 - local.get $5 - f64.mul - local.set $6 - local.get $0 + f64.copysign local.get $1 - local.get $5 - local.get $5 + local.get $2 + call $std/math/check + if (result i32) + local.get $0 + call $~lib/bindings/dom/Math.asinh + local.get $1 + local.get $2 + call $std/math/check + else + i32.const 0 + end + ) + (func $~lib/math/NativeMath.imul (param $0 f64) (param $1 f64) (result f64) + (local $2 i32) + (local $3 i64) + (local $4 f64) + (local $5 i64) local.get $0 - f64.mul - local.tee $7 - local.get $6 - local.get $6 - local.get $6 - local.get $6 - local.get $6 - f64.const -1.8558637485527546e-05 - f64.mul - f64.const 7.817944429395571e-05 - f64.add - f64.mul - f64.const 5.880412408202641e-04 - f64.add - f64.mul - f64.const 3.5920791075913124e-03 - f64.add - f64.mul - f64.const 0.021869488294859542 - f64.add - f64.mul - f64.const 0.13333333333320124 - f64.add - local.get $5 - local.get $6 - local.get $6 - local.get $6 - local.get $6 - local.get $6 - f64.const 2.590730518636337e-05 - f64.mul - f64.const 7.140724913826082e-05 - f64.add - f64.mul - f64.const 2.464631348184699e-04 - f64.add - f64.mul - f64.const 1.4562094543252903e-03 - f64.add - f64.mul - f64.const 0.0088632398235993 - f64.add - f64.mul - f64.const 0.05396825397622605 - f64.add - f64.mul - f64.add - f64.mul local.get $1 f64.add - f64.mul - f64.add - local.get $7 - f64.const 0.3333333333333341 - f64.mul - f64.add - local.tee $1 - f64.add - local.set $5 + local.tee $4 local.get $4 + f64.sub + f64.const 0 + f64.ne if - f64.const 1 - local.get $3 - i32.const 30 - i32.shr_s - i32.const 2 - i32.and - f64.convert_i32_s - f64.sub - local.get $2 - f64.convert_i32_s - local.tee $6 + f64.const 0 + return + end + local.get $0 + i64.reinterpret_f64 + local.tee $3 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + local.tee $5 + i64.const 1053 + i64.le_u + if (result i32) local.get $0 + i32.trunc_sat_f64_s + else local.get $5 - local.get $5 - f64.mul - local.get $5 - local.get $6 - f64.add - f64.div - local.get $1 - f64.sub - f64.sub - f64.const 2 - f64.mul - f64.sub - f64.mul - return + i64.const 1106 + i64.le_u + if (result i32) + i32.const 0 + local.get $3 + i64.const 4503599627370495 + i64.and + i64.const 4503599627370496 + i64.or + local.get $5 + i64.const 1043 + i64.sub + i64.shl + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.tee $2 + i32.sub + local.get $2 + local.get $3 + i64.const 0 + i64.lt_s + select + else + i32.const 0 + end end - local.get $2 - i32.const 1 - i32.eq - if + local.get $1 + i64.reinterpret_f64 + local.tee $3 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + local.tee $5 + i64.const 1053 + i64.le_u + if (result i32) + local.get $1 + i32.trunc_sat_f64_s + else local.get $5 - return + i64.const 1106 + i64.le_u + if (result i32) + i32.const 0 + local.get $3 + i64.const 4503599627370495 + i64.and + i64.const 4503599627370496 + i64.or + local.get $5 + i64.const 1043 + i64.sub + i64.shl + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.tee $2 + i32.sub + local.get $2 + local.get $3 + i64.const 0 + i64.lt_s + select + else + i32.const 0 + end end - f64.const -1 - local.get $5 - f64.div - local.tee $6 - i64.reinterpret_f64 - i64.const -4294967296 - i64.and - f64.reinterpret_i64 - local.tee $7 - local.get $6 - local.get $7 - local.get $5 - i64.reinterpret_f64 - i64.const -4294967296 - i64.and - f64.reinterpret_i64 - local.tee $5 - f64.mul - f64.const 1 - f64.add - local.get $7 - local.get $1 - local.get $5 - local.get $0 - f64.sub - f64.sub - f64.mul - f64.add - f64.mul - f64.add + i32.mul + f64.convert_i32_s ) - (func $~lib/math/NativeMath.tan (param $0 f64) (result f64) + (func $~lib/math/NativeMath.sincos (param $0 f64) (local $1 f64) - (local $2 i32) - (local $3 i64) - (local $4 f64) + (local $2 f64) + (local $3 i32) + (local $4 i64) (local $5 f64) (local $6 i32) - (local $7 i32) local.get $0 i64.reinterpret_f64 - local.tee $3 + local.tee $4 i64.const 32 i64.shr_u i32.wrap_i64 - local.tee $2 + local.tee $6 i32.const 31 i32.shr_u - local.set $6 - local.get $2 + local.set $3 + local.get $6 i32.const 2147483647 i32.and - local.tee $2 + local.tee $6 i32.const 1072243195 i32.le_u if - local.get $2 - i32.const 1044381696 + local.get $6 + i32.const 1044816030 i32.lt_u if - local.get $0 return end - local.get $0 - f64.const 0 - i32.const 1 - call $~lib/math/tan_kern return end - local.get $2 - i32.const 2146435072 + local.get $6 + i32.const 2139095040 i32.ge_u if - local.get $0 - local.get $0 - f64.sub return end - block $~lib/math/rempio2|inlined.2 - local.get $3 + block $~lib/math/rempio2|inlined.3 + local.get $4 i64.const 32 i64.shr_u i32.wrap_i64 i32.const 2147483647 i32.and - local.tee $7 + local.tee $6 i32.const 1073928572 i32.lt_u if - i32.const 1 - local.set $2 - local.get $6 + local.get $3 if (result f64) local.get $0 f64.const 1.5707963267341256 f64.add local.set $0 - i32.const -1 - local.set $2 - local.get $7 + local.get $6 i32.const 1073291771 i32.ne if (result f64) @@ -10454,7 +10818,7 @@ f64.const -1.5707963267341256 f64.add local.set $0 - local.get $7 + local.get $6 i32.const 1073291771 i32.ne if (result f64) @@ -10481,35 +10845,33 @@ f64.add end end - local.set $1 local.get $0 global.set $~lib/math/rempio2_y0 - local.get $1 global.set $~lib/math/rempio2_y1 - br $~lib/math/rempio2|inlined.2 + br $~lib/math/rempio2|inlined.3 end - local.get $7 + local.get $6 i32.const 1094263291 i32.lt_u if - local.get $7 + local.get $6 i32.const 20 i32.shr_u - local.tee $2 + local.tee $3 local.get $0 local.get $0 f64.const 0.6366197723675814 f64.mul f64.nearest - local.tee $4 + local.tee $5 f64.const 1.5707963267341256 f64.mul f64.sub local.tee $0 - local.get $4 + local.get $5 f64.const 6.077100506506192e-11 f64.mul - local.tee $5 + local.tee $2 f64.sub local.tee $1 i64.reinterpret_f64 @@ -10524,25 +10886,25 @@ i32.const 16 i32.gt_u if - local.get $4 - f64.const 2.0222662487959506e-21 - f64.mul - local.get $0 + local.get $3 local.get $0 - local.get $4 + local.tee $1 + local.get $5 f64.const 6.077100506303966e-11 f64.mul - local.tee $1 + local.tee $2 f64.sub local.tee $0 - f64.sub + local.get $5 + f64.const 2.0222662487959506e-21 + f64.mul local.get $1 + local.get $0 f64.sub - f64.sub - local.set $5 local.get $2 - local.get $0 - local.get $5 + f64.sub + f64.sub + local.tee $2 f64.sub local.tee $1 i64.reinterpret_f64 @@ -10557,24 +10919,24 @@ i32.const 49 i32.gt_u if - local.get $4 - f64.const 8.4784276603689e-32 - f64.mul local.get $0 - local.get $0 - local.get $4 + local.tee $1 + local.get $5 f64.const 2.0222662487111665e-21 f64.mul - local.tee $1 + local.tee $2 f64.sub local.tee $0 - f64.sub + local.get $5 + f64.const 8.4784276603689e-32 + f64.mul local.get $1 + local.get $0 + f64.sub + local.get $2 f64.sub f64.sub - local.set $5 - local.get $0 - local.get $5 + local.tee $2 f64.sub local.set $1 end @@ -10584,1382 +10946,743 @@ local.get $0 local.get $1 f64.sub - local.get $5 + local.get $2 f64.sub global.set $~lib/math/rempio2_y1 - local.get $4 - i32.trunc_sat_f64_s - local.set $2 - br $~lib/math/rempio2|inlined.2 + br $~lib/math/rempio2|inlined.3 end - i32.const 0 - local.get $3 + local.get $4 call $~lib/math/pio2_large_quot - local.tee $2 - i32.sub - local.get $2 - local.get $6 - select - local.set $2 + drop end global.get $~lib/math/rempio2_y0 - global.get $~lib/math/rempio2_y1 - i32.const 1 - local.get $2 - i32.const 1 - i32.and - i32.const 1 - i32.shl - i32.sub - call $~lib/math/tan_kern + local.tee $0 + local.get $0 + f64.mul + local.set $0 ) - (func $~lib/math/NativeMathf.tan (param $0 f32) (result f32) - (local $1 f64) - (local $2 f64) + (func $std/math/test_exp2f (param $0 f32) (param $1 f32) (param $2 f32) (result i32) (local $3 f64) - (local $4 i32) - (local $5 i64) + (local $4 i64) + (local $5 i32) (local $6 i32) - (local $7 i32) - (local $8 i64) - (local $9 i64) + (local $7 f64) local.get $0 - i32.reinterpret_f32 - local.tee $4 - i32.const 31 - i32.shr_u - local.set $6 - block $folding-inner1 - block $folding-inner0 - local.get $4 - i32.const 2147483647 - i32.and - local.tee $4 - i32.const 1061752794 - i32.le_u - if - local.get $4 - i32.const 964689920 - i32.lt_u - if - local.get $0 - return - end - local.get $0 - f64.promote_f32 - local.tee $2 - local.get $2 - f64.mul - local.tee $1 - local.get $1 - f64.mul - local.set $3 - br $folding-inner0 - end - local.get $4 - i32.const 1081824209 - i32.le_u - if - local.get $4 - i32.const 1075235811 - i32.le_u - if - local.get $0 - f64.promote_f32 - local.tee $1 - f64.const 1.5707963267948966 - f64.add - local.get $1 - f64.const -1.5707963267948966 - f64.add - local.get $6 - select - local.tee $2 - local.get $2 - f64.mul - local.tee $1 - local.get $1 - f64.mul - local.set $3 - br $folding-inner1 - else - local.get $0 - f64.promote_f32 - local.tee $1 - f64.const 3.141592653589793 - f64.add - local.get $1 - f64.const -3.141592653589793 - f64.add - local.get $6 - select - local.tee $2 - local.get $2 - f64.mul - local.tee $1 - local.get $1 - f64.mul - local.set $3 - br $folding-inner0 - end - unreachable - end - local.get $4 - i32.const 1088565717 - i32.le_u - if - local.get $4 - i32.const 1085271519 - i32.le_u - if - local.get $0 - f64.promote_f32 - local.tee $1 - f64.const 4.71238898038469 - f64.add - local.get $1 - f64.const -4.71238898038469 - f64.add - local.get $6 - select - local.tee $2 - local.get $2 - f64.mul - local.tee $1 - local.get $1 - f64.mul - local.set $3 - br $folding-inner1 - else - local.get $0 - f64.promote_f32 - local.tee $1 - f64.const 6.283185307179586 - f64.add - local.get $1 - f64.const -6.283185307179586 - f64.add - local.get $6 - select - local.tee $2 - local.get $2 - f64.mul - local.tee $1 - local.get $1 - f64.mul - local.set $3 - br $folding-inner0 - end - unreachable - end - local.get $4 - i32.const 2139095040 - i32.ge_u - if - local.get $0 - local.get $0 - f32.sub - return - end - block $~lib/math/rempio2f|inlined.2 (result i32) - local.get $4 - i32.const 1305022427 - i32.lt_u - if - local.get $0 - f64.promote_f32 - local.tee $1 - f64.const 0.6366197723675814 - f64.mul - f64.nearest - local.set $2 - local.get $1 - local.get $2 - f64.const 1.5707963109016418 - f64.mul - f64.sub - local.get $2 - f64.const 1.5893254773528196e-08 - f64.mul - f64.sub - global.set $~lib/math/rempio2f_y - local.get $2 - i32.trunc_sat_f64_s - br $~lib/math/rempio2f|inlined.2 - end - local.get $4 - i32.const 23 - i32.shr_s - i32.const 152 - i32.sub - local.tee $7 - i32.const 63 - i32.and - i64.extend_i32_s - local.set $8 - local.get $7 - i32.const 6 - i32.shr_s - i32.const 3 - i32.shl - i32.const 5632 - i32.add - local.tee $7 - i64.load offset=8 - local.set $5 - f64.const 8.515303950216386e-20 - local.get $0 - f64.promote_f32 - f64.copysign - local.get $4 - i32.const 8388607 - i32.and - i32.const 8388608 - i32.or - i64.extend_i32_s - local.tee $9 - local.get $7 - i64.load - local.get $8 - i64.shl - local.get $5 - i64.const 64 - local.get $8 - i64.sub - i64.shr_u - i64.or - i64.mul - local.get $8 - i64.const 32 - i64.gt_u - if (result i64) - local.get $5 - local.get $8 - i64.const 32 - i64.sub - i64.shl - local.get $7 - i64.load offset=16 - i64.const 96 - local.get $8 - i64.sub - i64.shr_u - i64.or - else - local.get $5 - i64.const 32 - local.get $8 - i64.sub - i64.shr_u - end - local.get $9 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.tee $5 - i64.const 2 - i64.shl - local.tee $8 - f64.convert_i64_s - f64.mul - global.set $~lib/math/rempio2f_y - i32.const 0 - local.get $5 - i64.const 62 - i64.shr_u - local.get $8 - i64.const 63 - i64.shr_u - i64.add - i32.wrap_i64 - local.tee $4 - i32.sub - local.get $4 - local.get $6 - select - end - local.set $4 - global.get $~lib/math/rempio2f_y - local.tee $1 - local.get $1 - f64.mul - local.tee $2 - local.get $2 - f64.mul - local.set $3 - f64.const -1 - local.get $1 - local.get $2 - local.get $1 - f64.mul - local.tee $1 - local.get $2 - f64.const 0.13339200271297674 - f64.mul - f64.const 0.3333313950307914 - f64.add - f64.mul - f64.add - local.get $1 - local.get $3 - f64.mul - local.get $2 - f64.const 0.024528318116654728 - f64.mul - f64.const 0.05338123784456704 - f64.add - local.get $3 - local.get $2 - f64.const 0.009465647849436732 - f64.mul - f64.const 0.002974357433599673 - f64.add - f64.mul - f64.add - f64.mul - f64.add - local.tee $1 - f64.div - local.get $1 - local.get $4 - i32.const 1 - i32.and - select - f32.demote_f64 - return + f64.promote_f32 + local.set $3 + block $~lib/util/math/exp2f_lut|inlined.0 (result f32) + local.get $0 + i32.reinterpret_f32 + local.tee $5 + i32.const 20 + i32.shr_u + i32.const 2047 + i32.and + local.tee $6 + i32.const 1072 + i32.ge_u + if + f32.const 0 + local.get $5 + i32.const -8388608 + i32.eq + br_if $~lib/util/math/exp2f_lut|inlined.0 + drop + local.get $0 + local.get $0 + f32.add + local.get $6 + i32.const 2040 + i32.ge_u + br_if $~lib/util/math/exp2f_lut|inlined.0 + drop + local.get $0 + f32.const 1701411834604692317316873e14 + f32.mul + local.get $0 + f32.const 0 + f32.gt + br_if $~lib/util/math/exp2f_lut|inlined.0 + drop + f32.const 0 + local.get $0 + f32.const -150 + f32.le + br_if $~lib/util/math/exp2f_lut|inlined.0 + drop end - local.get $2 - local.get $1 - local.get $2 - f64.mul - local.tee $2 - local.get $1 - f64.const 0.13339200271297674 - f64.mul - f64.const 0.3333313950307914 + local.get $3 + f64.const 211106232532992 + f64.add + local.tee $7 + i64.reinterpret_f64 + local.set $4 + local.get $3 + local.get $7 + f64.const -211106232532992 f64.add + f64.sub + local.tee $3 + f64.const 0.6931471806916203 f64.mul + f64.const 1 f64.add - local.get $2 local.get $3 + f64.const 0.05550361559341535 f64.mul - local.get $1 - f64.const 0.024528318116654728 - f64.mul - f64.const 0.05338123784456704 + f64.const 0.2402284522445722 f64.add local.get $3 - local.get $1 - f64.const 0.009465647849436732 + local.get $3 f64.mul - f64.const 0.002974357433599673 - f64.add f64.mul f64.add + local.get $4 + i32.wrap_i64 + i32.const 31 + i32.and + i32.const 3 + i32.shl + i32.const 7712 + i32.add + i64.load + local.get $4 + i64.const 47 + i64.shl + i64.add + f64.reinterpret_i64 f64.mul - f64.add f32.demote_f64 - return end - f64.const -1 + local.get $1 local.get $2 + call $std/math/check + ) + (func $std/math/test_signf (param $0 f32) (param $1 f32) (result i32) + f32.const 1 + f32.const -1 + local.get $0 + local.get $0 + f32.const 0 + f32.lt + select + local.get $0 + f32.const 0 + f32.gt + select + local.get $1 + f32.const 0 + call $std/math/check + ) + (func $std/math/test_sign (param $0 f64) (param $1 f64) (result i32) + f64.const 1 + f64.const -1 + local.get $0 + local.get $0 + f64.const 0 + f64.lt + select + local.get $0 + f64.const 0 + f64.gt + select + local.get $1 + f64.const 0 + call $std/math/check + if (result i32) + local.get $0 + call $~lib/bindings/dom/Math.sign + local.get $1 + f64.const 0 + call $std/math/check + else + i32.const 0 + end + ) + (func $~lib/math/pio2_large_quot (param $0 i64) (result i32) + (local $1 i64) + (local $2 i64) + (local $3 i64) + (local $4 i32) + (local $5 f64) + (local $6 i64) + (local $7 i64) + (local $8 i64) + (local $9 i64) + (local $10 i64) + (local $11 i64) + (local $12 i64) + local.get $0 + i64.const 9223372036854775807 + i64.and + i64.const 52 + i64.shr_u + i64.const 1045 + i64.sub + local.tee $1 + i64.const 63 + i64.and + local.set $6 local.get $1 + i64.const 6 + i64.shr_s + i32.wrap_i64 + i32.const 3 + i32.shl + i32.const 5440 + i32.add + local.tee $4 + i64.load + local.set $3 + local.get $4 + i64.load offset=8 + local.set $2 + local.get $4 + i64.load offset=16 + local.set $1 + local.get $6 + i64.const 0 + i64.ne + if + local.get $3 + local.get $6 + i64.shl + local.get $2 + i64.const 64 + local.get $6 + i64.sub + local.tee $7 + i64.shr_u + i64.or + local.set $3 + local.get $2 + local.get $6 + i64.shl + local.get $1 + local.get $7 + i64.shr_u + i64.or + local.set $2 + local.get $1 + local.get $6 + i64.shl + local.get $4 + i64.load offset=24 + local.get $7 + i64.shr_u + i64.or + local.set $1 + end + local.get $0 + i64.const 4503599627370495 + i64.and + i64.const 4503599627370496 + i64.or + local.tee $6 + i64.const 4294967295 + i64.and + local.set $7 local.get $2 - f64.mul + i64.const 4294967295 + i64.and + local.tee $8 + local.get $6 + i64.const 32 + i64.shr_u + local.tee $9 + i64.mul + local.get $2 + i64.const 32 + i64.shr_u local.tee $2 - local.get $1 - f64.const 0.13339200271297674 - f64.mul - f64.const 0.3333313950307914 - f64.add - f64.mul - f64.add + local.get $7 + i64.mul + local.get $7 + local.get $8 + i64.mul + local.tee $7 + i64.const 32 + i64.shr_u + i64.add + local.tee $8 + i64.const 4294967295 + i64.and + i64.add + local.set $10 local.get $2 - local.get $3 - f64.mul + local.get $9 + i64.mul + local.get $8 + i64.const 32 + i64.shr_u + i64.add + local.get $10 + i64.const 32 + i64.shr_u + i64.add + global.set $~lib/math/res128_hi + local.get $9 local.get $1 - f64.const 0.024528318116654728 - f64.mul - f64.const 0.05338123784456704 - f64.add + i64.const 32 + i64.shr_u + i64.mul + local.tee $1 + local.get $7 + i64.const 4294967295 + i64.and + local.get $10 + i64.const 32 + i64.shl + i64.add + i64.add + local.tee $2 + local.get $1 + i64.lt_u + i64.extend_i32_u + global.get $~lib/math/res128_hi local.get $3 + local.get $6 + i64.mul + i64.add + i64.add + local.tee $3 + i64.const 2 + i64.shl + local.get $2 + i64.const 62 + i64.shr_u + i64.or + local.tee $6 + i64.const 63 + i64.shr_s + local.tee $7 + local.get $2 + i64.const 2 + i64.shl + i64.xor + local.set $2 + local.get $6 + local.get $7 + i64.const 1 + i64.shr_s + i64.xor + local.tee $1 + i64.clz + local.set $8 local.get $1 - f64.const 0.009465647849436732 + local.get $8 + i64.shl + local.get $2 + i64.const 64 + local.get $8 + i64.sub + i64.shr_u + i64.or + local.tee $9 + i64.const 4294967295 + i64.and + local.set $1 + local.get $9 + i64.const 32 + i64.shr_u + local.tee $10 + i64.const 560513588 + i64.mul + local.get $1 + i64.const 3373259426 + i64.mul + local.get $1 + i64.const 560513588 + i64.mul + local.tee $11 + i64.const 32 + i64.shr_u + i64.add + local.tee $12 + i64.const 4294967295 + i64.and + i64.add + local.set $1 + local.get $10 + i64.const 3373259426 + i64.mul + local.get $12 + i64.const 32 + i64.shr_u + i64.add + local.get $1 + i64.const 32 + i64.shr_u + i64.add + global.set $~lib/math/res128_hi + local.get $9 + f64.convert_i64_u + f64.const 3.753184150245214e-04 f64.mul - f64.const 0.002974357433599673 - f64.add + local.get $2 + local.get $8 + i64.shl + f64.convert_i64_u + f64.const 3.834951969714103e-04 f64.mul f64.add + i64.trunc_sat_f64_u + local.tee $2 + local.get $11 + i64.const 4294967295 + i64.and + local.get $1 + i64.const 32 + i64.shl + i64.add + local.tee $1 + i64.gt_u + i64.extend_i32_u + global.get $~lib/math/res128_hi + local.tee $9 + i64.const 11 + i64.shr_u + i64.add + f64.convert_i64_u + global.set $~lib/math/rempio2_y0 + local.get $9 + i64.const 53 + i64.shl + local.get $1 + i64.const 11 + i64.shr_u + i64.or + local.get $2 + i64.add + f64.convert_i64_u + f64.const 5.421010862427522e-20 f64.mul - f64.add - f64.div - f32.demote_f64 - ) - (func $std/math/test_tanh (param $0 f64) (param $1 f64) (param $2 f64) (result i32) - (local $3 i32) - (local $4 i64) - (local $5 f64) + global.set $~lib/math/rempio2_y1 + global.get $~lib/math/rempio2_y0 + i64.const 4372995238176751616 + local.get $8 + i64.const 52 + i64.shl + i64.sub local.get $0 - i64.reinterpret_f64 - i64.const 9223372036854775807 + local.get $6 + i64.xor + i64.const -9223372036854775808 i64.and - local.tee $4 + i64.or f64.reinterpret_i64 - local.set $5 - local.get $4 - i64.const 32 - i64.shr_u + local.tee $5 + f64.mul + global.set $~lib/math/rempio2_y0 + global.get $~lib/math/rempio2_y1 + local.get $5 + f64.mul + global.set $~lib/math/rempio2_y1 + local.get $3 + i64.const 62 + i64.shr_s + local.get $7 + i64.sub i32.wrap_i64 - local.tee $3 - i32.const 1071748074 - i32.gt_u - if (result f64) - local.get $3 - i32.const 1077149696 - i32.gt_u - if (result f64) - f64.const 1 - f64.const 0 - local.get $5 - f64.div - f64.sub - else - f64.const 1 - f64.const 2 - local.get $5 - local.get $5 - f64.add - call $~lib/math/NativeMath.expm1 - f64.const 2 - f64.add - f64.div - f64.sub - end - else - local.get $3 - i32.const 1070618798 - i32.gt_u - if (result f64) - local.get $5 - local.get $5 - f64.add - call $~lib/math/NativeMath.expm1 - local.tee $5 - local.get $5 - f64.const 2 - f64.add - f64.div - else - local.get $3 - i32.const 1048576 - i32.ge_u - if (result f64) - local.get $5 - f64.const -2 - f64.mul - call $~lib/math/NativeMath.expm1 - local.tee $5 - f64.neg - local.get $5 - f64.const 2 - f64.add - f64.div - else - local.get $5 - end - end - end + ) + (func $~lib/math/NativeMath.seedRandom (param $0 i64) + (local $1 i32) + (local $2 i64) + i64.const -7046029254386353131 local.get $0 - f64.copysign - local.get $1 + local.get $0 + i64.eqz + select + local.tee $0 + i64.const 33 + i64.shr_u + local.get $0 + i64.xor + i64.const -49064778989728563 + i64.mul + local.tee $2 + i64.const 33 + i64.shr_u + local.get $2 + i64.xor + i64.const -4265267296055464877 + i64.mul + local.tee $2 + i64.const 33 + i64.shr_u + local.get $2 + i64.xor + global.set $~lib/math/random_state0_64 + global.get $~lib/math/random_state0_64 + i64.const -1 + i64.xor + local.tee $2 + i64.const 33 + i64.shr_u + local.get $2 + i64.xor + i64.const -49064778989728563 + i64.mul + local.tee $2 + i64.const 33 + i64.shr_u local.get $2 - call $std/math/check - if (result i32) - local.get $0 - call $~lib/bindings/dom/Math.tanh - local.get $1 - local.get $2 - call $std/math/check - else - i32.const 0 - end - ) - (func $std/math/test_tanhf (param $0 f32) (param $1 f32) (param $2 f32) (result i32) - (local $3 i32) - (local $4 f32) - local.get $0 - i32.reinterpret_f32 - i32.const 2147483647 - i32.and - local.tee $3 - f32.reinterpret_i32 - local.set $4 - local.get $3 - i32.const 1057791828 - i32.gt_u - if (result f32) - local.get $3 - i32.const 1092616192 - i32.gt_u - if (result f32) - f32.const 0 - local.get $4 - f32.div - f32.const 1 - f32.add - else - f32.const 1 - f32.const 2 - local.get $4 - local.get $4 - f32.add - call $~lib/math/NativeMathf.expm1 - f32.const 2 - f32.add - f32.div - f32.sub - end - else - local.get $3 - i32.const 1048757624 - i32.gt_u - if (result f32) - local.get $4 - local.get $4 - f32.add - call $~lib/math/NativeMathf.expm1 - local.tee $4 - local.get $4 - f32.const 2 - f32.add - f32.div - else - local.get $3 - i32.const 8388608 - i32.ge_u - if (result f32) - local.get $4 - f32.const -2 - f32.mul - call $~lib/math/NativeMathf.expm1 - local.tee $4 - f32.neg - local.get $4 - f32.const 2 - f32.add - f32.div - else - local.get $4 - end - end - end + i64.xor + i64.const -4265267296055464877 + i64.mul + local.tee $2 + i64.const 33 + i64.shr_u + local.get $2 + i64.xor + global.set $~lib/math/random_state1_64 local.get $0 - f32.copysign + i32.wrap_i64 + i32.const 1831565813 + i32.add + local.tee $1 + i32.const 1 + i32.or local.get $1 - local.get $2 - call $std/math/check + local.get $1 + i32.const 15 + i32.shr_u + i32.xor + i32.mul + local.tee $1 + i32.const 61 + i32.or + local.get $1 + local.get $1 + i32.const 7 + i32.shr_u + i32.xor + i32.mul + local.get $1 + i32.add + local.get $1 + i32.xor + local.tee $1 + i32.const 14 + i32.shr_u + local.get $1 + i32.xor + global.set $~lib/math/random_state0_32 + global.get $~lib/math/random_state0_32 + i32.const 1831565813 + i32.add + local.tee $1 + i32.const 1 + i32.or + local.get $1 + local.get $1 + i32.const 15 + i32.shr_u + i32.xor + i32.mul + local.tee $1 + i32.const 61 + i32.or + local.get $1 + local.get $1 + i32.const 7 + i32.shr_u + i32.xor + i32.mul + local.get $1 + i32.add + local.get $1 + i32.xor + local.tee $1 + i32.const 14 + i32.shr_u + local.get $1 + i32.xor + global.set $~lib/math/random_state1_32 + i32.const 1 + global.set $~lib/math/random_seeded ) - (func $~lib/math/NativeMath.sincos (param $0 f64) - (local $1 f64) - (local $2 f64) + (func $~lib/math/tan_kern (param $0 f64) (param $1 f64) (param $2 i32) (result f64) (local $3 i32) (local $4 i32) - (local $5 i64) - (local $6 i32) + (local $5 f64) + (local $6 f64) (local $7 f64) - (local $8 f64) - (local $9 f64) - (local $10 f64) local.get $0 i64.reinterpret_f64 - local.tee $5 i64.const 32 i64.shr_u i32.wrap_i64 local.tee $3 - i32.const 31 - i32.shr_u - local.set $6 - local.get $3 i32.const 2147483647 i32.and - local.tee $3 - i32.const 1072243195 - i32.le_u + i32.const 1072010280 + i32.ge_u + local.tee $4 if + f64.const 0.7853981633974483 local.get $3 - i32.const 1044816030 - i32.lt_u - if + i32.const 0 + i32.lt_s + if (result f64) + local.get $1 + f64.neg + local.set $1 + local.get $0 + f64.neg + else local.get $0 - global.set $~lib/math/NativeMath.sincos_sin - f64.const 1 - global.set $~lib/math/NativeMath.sincos_cos - return end - local.get $0 - local.get $0 - local.get $0 - f64.mul - local.tee $1 - local.get $0 - f64.mul - local.get $1 - local.get $1 - local.get $1 - f64.const 2.7557313707070068e-06 - f64.mul - f64.const -1.984126982985795e-04 - f64.add - f64.mul - f64.const 0.00833333333332249 - f64.add - local.get $1 - local.get $1 - local.get $1 - f64.mul - local.tee $2 - f64.mul - local.get $1 - f64.const 1.58969099521155e-10 - f64.mul - f64.const -2.5050760253406863e-08 - f64.add - f64.mul - f64.add - f64.mul - f64.const -0.16666666666666632 - f64.add - f64.mul - f64.add - global.set $~lib/math/NativeMath.sincos_sin - f64.const 1 - local.get $1 - f64.const 0.5 - f64.mul - local.tee $7 - f64.sub - local.tee $8 - f64.const 1 - local.get $8 f64.sub - local.get $7 - f64.sub - local.get $1 - local.get $1 - local.get $1 - local.get $1 - f64.const 2.480158728947673e-05 - f64.mul - f64.const -0.001388888888887411 - f64.add - f64.mul - f64.const 0.0416666666666666 - f64.add - f64.mul - local.get $2 - local.get $2 - f64.mul - local.get $1 + f64.const 3.061616997868383e-17 local.get $1 - f64.const -1.1359647557788195e-11 - f64.mul - f64.const 2.087572321298175e-09 - f64.add - f64.mul - f64.const -2.7557314351390663e-07 - f64.add - f64.mul - f64.add - f64.mul - local.get $0 - f64.const 0 - f64.mul f64.sub f64.add - f64.add - global.set $~lib/math/NativeMath.sincos_cos - return - end - local.get $3 - i32.const 2139095040 - i32.ge_u - if - local.get $0 - local.get $0 - f64.sub - local.tee $0 - global.set $~lib/math/NativeMath.sincos_sin - local.get $0 - global.set $~lib/math/NativeMath.sincos_cos - return - end - block $~lib/math/rempio2|inlined.3 (result i32) - local.get $5 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const 2147483647 - i32.and - local.tee $4 - i32.const 1073928572 - i32.lt_u - if - i32.const 1 - local.set $3 - local.get $6 - if (result f64) - local.get $0 - f64.const 1.5707963267341256 - f64.add - local.set $0 - i32.const -1 - local.set $3 - local.get $4 - i32.const 1073291771 - i32.ne - if (result f64) - local.get $0 - local.get $0 - f64.const 6.077100506506192e-11 - f64.add - local.tee $0 - f64.sub - f64.const 6.077100506506192e-11 - f64.add - else - local.get $0 - f64.const 6.077100506303966e-11 - f64.add - local.tee $1 - f64.const 2.0222662487959506e-21 - f64.add - local.set $0 - local.get $1 - local.get $0 - f64.sub - f64.const 2.0222662487959506e-21 - f64.add - end - else - local.get $0 - f64.const -1.5707963267341256 - f64.add - local.set $0 - local.get $4 - i32.const 1073291771 - i32.ne - if (result f64) - local.get $0 - local.get $0 - f64.const -6.077100506506192e-11 - f64.add - local.tee $0 - f64.sub - f64.const -6.077100506506192e-11 - f64.add - else - local.get $0 - f64.const -6.077100506303966e-11 - f64.add - local.tee $1 - f64.const -2.0222662487959506e-21 - f64.add - local.set $0 - local.get $1 - local.get $0 - f64.sub - f64.const -2.0222662487959506e-21 - f64.add - end - end - local.set $1 - local.get $0 - global.set $~lib/math/rempio2_y0 - local.get $1 - global.set $~lib/math/rempio2_y1 - local.get $3 - br $~lib/math/rempio2|inlined.3 - end - local.get $4 - i32.const 1094263291 - i32.lt_u - if - local.get $4 - i32.const 20 - i32.shr_u - local.tee $3 - local.get $0 - local.get $0 - f64.const 0.6366197723675814 - f64.mul - f64.nearest - local.tee $7 - f64.const 1.5707963267341256 - f64.mul - f64.sub - local.tee $0 - local.get $7 - f64.const 6.077100506506192e-11 - f64.mul - local.tee $1 - f64.sub - local.tee $2 - i64.reinterpret_f64 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const 20 - i32.shr_u - i32.const 2047 - i32.and - i32.sub - i32.const 16 - i32.gt_u - if - local.get $7 - f64.const 2.0222662487959506e-21 - f64.mul - local.get $0 - local.get $0 - local.get $7 - f64.const 6.077100506303966e-11 - f64.mul - local.tee $1 - f64.sub - local.tee $0 - f64.sub - local.get $1 - f64.sub - f64.sub - local.set $1 - local.get $3 - local.get $0 - local.get $1 - f64.sub - local.tee $2 - i64.reinterpret_f64 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const 20 - i32.shr_u - i32.const 2047 - i32.and - i32.sub - i32.const 49 - i32.gt_u - if - local.get $7 - f64.const 8.4784276603689e-32 - f64.mul - local.get $0 - local.get $0 - local.get $7 - f64.const 2.0222662487111665e-21 - f64.mul - local.tee $1 - f64.sub - local.tee $0 - f64.sub - local.get $1 - f64.sub - f64.sub - local.set $1 - local.get $0 - local.get $1 - f64.sub - local.set $2 - end - end - local.get $2 - global.set $~lib/math/rempio2_y0 - local.get $0 - local.get $2 - f64.sub - local.get $1 - f64.sub - global.set $~lib/math/rempio2_y1 - local.get $7 - i32.trunc_sat_f64_s - br $~lib/math/rempio2|inlined.3 - end - i32.const 0 - local.get $5 - call $~lib/math/pio2_large_quot - local.tee $3 - i32.sub - local.get $3 - local.get $6 - select + local.set $0 + f64.const 0 + local.set $1 end - local.set $3 - global.get $~lib/math/rempio2_y0 - local.tee $7 - local.get $7 - f64.mul - local.tee $8 - local.tee $0 - local.get $7 - f64.mul - local.set $1 - local.get $7 - local.get $0 - global.get $~lib/math/rempio2_y1 - local.tee $9 - f64.const 0.5 - f64.mul - local.get $1 local.get $0 local.get $0 - f64.const 2.7557313707070068e-06 f64.mul - f64.const -1.984126982985795e-04 - f64.add + local.tee $5 + local.get $5 f64.mul - f64.const 0.00833333333332249 - f64.add - local.get $0 + local.set $6 local.get $0 + local.get $1 + local.get $5 + local.get $5 local.get $0 f64.mul + local.tee $7 + local.get $6 + local.get $6 + local.get $6 + local.get $6 + local.get $6 + f64.const -1.8558637485527546e-05 f64.mul - local.get $0 - f64.const 1.58969099521155e-10 - f64.mul - f64.const -2.5050760253406863e-08 + f64.const 7.817944429395571e-05 f64.add f64.mul + f64.const 5.880412408202641e-04 f64.add f64.mul - f64.sub - f64.mul - local.get $9 - f64.sub - local.get $1 - f64.const -0.16666666666666632 - f64.mul - f64.sub - f64.sub - local.tee $2 - local.set $0 - f64.const 1 - local.get $8 - f64.const 0.5 + f64.const 3.5920791075913124e-03 + f64.add f64.mul - local.tee $1 - f64.sub - local.tee $10 - f64.const 1 - local.get $10 - f64.sub - local.get $1 - f64.sub - local.get $8 - local.get $8 - local.get $8 - local.get $8 - f64.const 2.480158728947673e-05 + f64.const 0.021869488294859542 + f64.add f64.mul - f64.const -0.001388888888887411 + f64.const 0.13333333333320124 f64.add + local.get $5 + local.get $6 + local.get $6 + local.get $6 + local.get $6 + local.get $6 + f64.const 2.590730518636337e-05 f64.mul - f64.const 0.0416666666666666 + f64.const 7.140724913826082e-05 f64.add f64.mul - local.get $8 - local.get $8 + f64.const 2.464631348184699e-04 + f64.add f64.mul - local.tee $1 - local.get $1 + f64.const 1.4562094543252903e-03 + f64.add f64.mul - local.get $8 - local.get $8 - f64.const -1.1359647557788195e-11 + f64.const 0.0088632398235993 + f64.add f64.mul - f64.const 2.087572321298175e-09 + f64.const 0.05396825397622605 f64.add f64.mul - f64.const -2.7557314351390663e-07 f64.add f64.mul + local.get $1 f64.add f64.mul + f64.add local.get $7 - local.get $9 + f64.const 0.3333333333333341 f64.mul - f64.sub f64.add + local.tee $1 f64.add - local.set $1 - local.get $3 - i32.const 1 - i32.and + local.set $5 + local.get $4 if - local.get $1 - local.set $0 + f64.const 1 + local.get $3 + i32.const 30 + i32.shr_s + i32.const 2 + i32.and + f64.convert_i32_s + f64.sub local.get $2 - f64.neg - local.set $1 - end - local.get $3 - i32.const 2 - i32.and - if (result f64) - local.get $1 - f64.neg - local.set $1 - local.get $0 - f64.neg - else + f64.convert_i32_s + local.tee $6 local.get $0 + local.get $5 + local.get $5 + f64.mul + local.get $5 + local.get $6 + f64.add + f64.div + local.get $1 + f64.sub + f64.sub + f64.const 2 + f64.mul + f64.sub + f64.mul + return end - global.set $~lib/math/NativeMath.sincos_sin - local.get $1 - global.set $~lib/math/NativeMath.sincos_cos - ) - (func $std/math/test_sincos (param $0 i64) (param $1 i64) (param $2 i64) (param $3 i64) (param $4 i64) - (local $5 f64) - local.get $0 - f64.reinterpret_i64 - call $~lib/math/NativeMath.sincos - global.get $~lib/math/NativeMath.sincos_sin - local.get $1 - f64.reinterpret_i64 local.get $2 - f64.reinterpret_i64 - call $std/math/check - if - global.get $~lib/math/NativeMath.sincos_cos - local.get $3 - f64.reinterpret_i64 - local.get $4 - f64.reinterpret_i64 - call $std/math/check - drop - end - ) - (func $~lib/math/NativeMath.imul (param $0 f64) (param $1 f64) (result f64) - (local $2 i32) - (local $3 i64) - (local $4 f64) - (local $5 i64) - local.get $0 - local.get $1 - f64.add - local.tee $4 - local.get $4 - f64.sub - f64.const 0 - f64.ne + i32.const 1 + i32.eq if - f64.const 0 + local.get $5 return end - local.get $0 + f64.const -1 + local.get $5 + f64.div + local.tee $6 i64.reinterpret_f64 - local.tee $3 - i64.const 52 - i64.shr_u - i64.const 2047 + i64.const -4294967296 i64.and - local.tee $5 - i64.const 1053 - i64.le_u - if (result i32) - local.get $0 - i32.trunc_sat_f64_s - else - local.get $5 - i64.const 1106 - i64.le_u - if (result i32) - i32.const 0 - local.get $3 - i64.const 4503599627370495 - i64.and - i64.const 4503599627370496 - i64.or - local.get $5 - i64.const 1043 - i64.sub - i64.shl - i64.const 32 - i64.shr_u - i32.wrap_i64 - local.tee $2 - i32.sub - local.get $2 - local.get $3 - i64.const 0 - i64.lt_s - select - else - i32.const 0 - end - end - local.get $1 + f64.reinterpret_i64 + local.tee $7 + local.get $6 + local.get $7 + local.get $5 i64.reinterpret_f64 - local.tee $3 - i64.const 52 - i64.shr_u - i64.const 2047 + i64.const -4294967296 i64.and + f64.reinterpret_i64 local.tee $5 - i64.const 1053 - i64.le_u - if (result i32) - local.get $1 - i32.trunc_sat_f64_s - else - local.get $5 - i64.const 1106 - i64.le_u - if (result i32) - i32.const 0 - local.get $3 - i64.const 4503599627370495 - i64.and - i64.const 4503599627370496 - i64.or - local.get $5 - i64.const 1043 - i64.sub - i64.shl - i64.const 32 - i64.shr_u - i32.wrap_i64 - local.tee $2 - i32.sub - local.get $2 - local.get $3 - i64.const 0 - i64.lt_s - select - else - i32.const 0 - end - end - i32.mul - f64.convert_i32_s - ) - (func $~lib/math/ipow64 (param $0 i64) (param $1 i64) (result i64) - (local $2 i64) - i64.const 1 - local.set $2 - local.get $0 - i64.const 2 - i64.eq - if - i64.const 1 - local.get $1 - i64.shl - i64.const 0 - local.get $1 - i64.const 64 - i64.lt_u - select - return - end + f64.mul + f64.const 1 + f64.add + local.get $7 local.get $1 - i64.const 0 - i64.le_s - if - local.get $0 - i64.const -1 - i64.eq - if - i64.const -1 - i64.const 1 - local.get $1 - i64.const 1 - i64.and - i32.wrap_i64 - select - return - end - local.get $1 - i64.eqz - i64.extend_i32_u - local.get $0 - i64.const 1 - i64.eq - i64.extend_i32_u - i64.or - return - else - local.get $1 - i64.const 1 - i64.eq - if - local.get $0 - return - else - local.get $1 - i64.const 2 - i64.eq - if - local.get $0 - local.get $0 - i64.mul - return - else - local.get $1 - i64.const 64 - i64.lt_s - if - block $break|0 - block $case5|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - i32.const 63 - local.get $1 - i64.clz - i32.wrap_i64 - i32.sub - br_table $case5|0 $case4|0 $case3|0 $case2|0 $case1|0 $case0|0 $break|0 - end - local.get $0 - i64.const 1 - local.get $1 - i64.const 1 - i64.and - i32.wrap_i64 - select - local.set $2 - local.get $1 - i64.const 1 - i64.shr_u - local.set $1 - local.get $0 - local.get $0 - i64.mul - local.set $0 - end - local.get $0 - local.get $2 - i64.mul - local.get $2 - local.get $1 - i64.const 1 - i64.and - i32.wrap_i64 - select - local.set $2 - local.get $1 - i64.const 1 - i64.shr_u - local.set $1 - local.get $0 - local.get $0 - i64.mul - local.set $0 - end - local.get $0 - local.get $2 - i64.mul - local.get $2 - local.get $1 - i64.const 1 - i64.and - i32.wrap_i64 - select - local.set $2 - local.get $1 - i64.const 1 - i64.shr_u - local.set $1 - local.get $0 - local.get $0 - i64.mul - local.set $0 - end - local.get $0 - local.get $2 - i64.mul - local.get $2 - local.get $1 - i64.const 1 - i64.and - i32.wrap_i64 - select - local.set $2 - local.get $1 - i64.const 1 - i64.shr_u - local.set $1 - local.get $0 - local.get $0 - i64.mul - local.set $0 - end - local.get $0 - local.get $2 - i64.mul - local.get $2 - local.get $1 - i64.const 1 - i64.and - i32.wrap_i64 - select - local.set $2 - local.get $1 - i64.const 1 - i64.shr_u - local.set $1 - local.get $0 - local.get $0 - i64.mul - local.set $0 - end - local.get $0 - local.get $2 - i64.mul - local.get $2 - local.get $1 - i64.const 1 - i64.and - i32.wrap_i64 - select - local.set $2 - end - local.get $2 - return - end - end - end - end - loop $while-continue|1 - local.get $1 - i64.const 0 - i64.ne - if - local.get $0 - local.get $2 - i64.mul - local.get $2 - local.get $1 - i64.const 1 - i64.and - i32.wrap_i64 - select - local.set $2 - local.get $1 - i64.const 1 - i64.shr_u - local.set $1 - local.get $0 - local.get $0 - i64.mul - local.set $0 - br $while-continue|1 - end - end - local.get $2 + local.get $5 + local.get $0 + f64.sub + f64.sub + f64.mul + f64.add + f64.mul + f64.add + ) + (func $~start + call $start:std/math ) (func $start:std/math (local $0 f64) @@ -49911,7 +49634,7 @@ call $~lib/builtins/abort unreachable end - f64.const -nan:0x8000000000000 + f64.const nan:0x8000000000000 f64.const nan:0x8000000000000 f64.const 0 call $std/math/check @@ -49955,7 +49678,7 @@ call $~lib/builtins/abort unreachable end - f64.const -nan:0x8000000000000 + f64.const nan:0x8000000000000 f64.const nan:0x8000000000000 f64.const 0 call $std/math/check @@ -49977,7 +49700,7 @@ call $~lib/builtins/abort unreachable end - f64.const -nan:0x8000000000000 + f64.const nan:0x8000000000000 f64.const nan:0x8000000000000 f64.const 0 call $std/math/check @@ -50043,7 +49766,7 @@ call $~lib/builtins/abort unreachable end - f64.const -nan:0x8000000000000 + f64.const nan:0x8000000000000 f64.const nan:0x8000000000000 f64.const 0 call $std/math/check @@ -50109,7 +49832,7 @@ call $~lib/builtins/abort unreachable end - f64.const -nan:0x8000000000000 + f64.const nan:0x8000000000000 f64.const nan:0x8000000000000 f64.const 0 call $std/math/check @@ -50175,7 +49898,7 @@ call $~lib/builtins/abort unreachable end - f64.const -nan:0x8000000000000 + f64.const nan:0x8000000000000 f64.const nan:0x8000000000000 f64.const 0 call $std/math/check @@ -50263,7 +49986,7 @@ call $~lib/builtins/abort unreachable end - f64.const -nan:0x8000000000000 + f64.const nan:0x8000000000000 f64.const nan:0x8000000000000 f64.const 0 call $std/math/check @@ -50373,7 +50096,7 @@ call $~lib/builtins/abort unreachable end - f64.const -nan:0x8000000000000 + f64.const nan:0x8000000000000 f64.const nan:0x8000000000000 f64.const 0 call $std/math/check @@ -50527,7 +50250,7 @@ call $~lib/builtins/abort unreachable end - f64.const -nan:0x8000000000000 + f64.const nan:0x8000000000000 f64.const nan:0x8000000000000 f64.const 0 call $std/math/check @@ -51759,7 +51482,7 @@ call $~lib/builtins/abort unreachable end - f32.const -nan:0x400000 + f32.const nan:0x400000 f32.const nan:0x400000 f32.const 0 call $std/math/check @@ -51785,7 +51508,7 @@ call $~lib/builtins/abort unreachable end - f32.const -nan:0x400000 + f32.const nan:0x400000 f32.const nan:0x400000 f32.const 0 call $std/math/check @@ -51798,7 +51521,7 @@ call $~lib/builtins/abort unreachable end - f32.const -nan:0x400000 + f32.const nan:0x400000 f32.const nan:0x400000 f32.const 0 call $std/math/check @@ -51837,7 +51560,7 @@ call $~lib/builtins/abort unreachable end - f32.const -nan:0x400000 + f32.const nan:0x400000 f32.const nan:0x400000 f32.const 0 call $std/math/check @@ -51876,7 +51599,7 @@ call $~lib/builtins/abort unreachable end - f32.const -nan:0x400000 + f32.const nan:0x400000 f32.const nan:0x400000 f32.const 0 call $std/math/check @@ -51915,7 +51638,7 @@ call $~lib/builtins/abort unreachable end - f32.const -nan:0x400000 + f32.const nan:0x400000 f32.const nan:0x400000 f32.const 0 call $std/math/check @@ -51967,7 +51690,7 @@ call $~lib/builtins/abort unreachable end - f32.const -nan:0x400000 + f32.const nan:0x400000 f32.const nan:0x400000 f32.const 0 call $std/math/check @@ -52032,7 +51755,7 @@ call $~lib/builtins/abort unreachable end - f32.const -nan:0x400000 + f32.const nan:0x400000 f32.const nan:0x400000 f32.const 0 call $std/math/check @@ -52058,7 +51781,7 @@ call $~lib/builtins/abort unreachable end - f32.const -nan:0x400000 + f32.const nan:0x400000 f32.const nan:0x400000 f32.const 0 call $std/math/check @@ -55581,66 +55304,26 @@ call $~lib/builtins/abort unreachable end - i64.const -4602641186874283791 - i64.const -4616392916911125550 - i64.const -4628956453976145920 - i64.const -4626592471448962314 - i64.const -4630808324688838656 - call $std/math/test_sincos - i64.const 4616578323568966759 - i64.const -4616789907589610460 - i64.const -4632356642145435648 - i64.const -4623234040091605244 - i64.const -4630954342839484416 - call $std/math/test_sincos - i64.const -4602464091242371353 - i64.const -4617413764247143988 - i64.const -4630245256623816704 - i64.const -4620663195860462557 - i64.const -4641537901929168896 - call $std/math/test_sincos - i64.const -4604332007749985084 - i64.const -4625343132137557201 - i64.const -4629629133364658176 - i64.const 4606905765568473756 - i64.const -4621075345754292224 - call $std/math/test_sincos - i64.const 4621406507342668262 - i64.const 4594826987695694788 - i64.const -4639197561901547520 - i64.const -4616301417154991689 - i64.const 4602463851227643904 - call $std/math/test_sincos - i64.const 4604137858433287319 - i64.const 4603711805189578650 - i64.const -4631518618864058368 - i64.const 4605279855905985745 - i64.const 4593746800099196928 - call $std/math/test_sincos - i64.const -4622375691843501615 - i64.const -4622575858842575876 - i64.const -4623091339515396096 - i64.const 4606448054996611351 - i64.const -4624994927539912704 - call $std/math/test_sincos - i64.const 4603235101512779211 - i64.const 4602973141375866126 - i64.const -4623304571219869696 - i64.const 4605798183832360369 - i64.const -4624249509122146304 - call $std/math/test_sincos - i64.const 4605148163534189634 - i64.const 4604472244479532466 - i64.const -4621996155604041728 - i64.const 4604615492473651755 - i64.const -4632555521679818752 - call $std/math/test_sincos - i64.const -4619083057392940530 - i64.const -4619541816298850243 - i64.const -4622804297187328000 - i64.const 4605185968576882368 - i64.const 4599236402884902912 - call $std/math/test_sincos + f64.const -8.06684839057968 + call $~lib/math/NativeMath.sincos + f64.const 4.345239849338305 + call $~lib/math/NativeMath.sincos + f64.const -8.38143342755525 + call $~lib/math/NativeMath.sincos + f64.const -6.531673581913484 + call $~lib/math/NativeMath.sincos + f64.const 9.267056966972586 + call $~lib/math/NativeMath.sincos + f64.const 0.6619858980995045 + call $~lib/math/NativeMath.sincos + f64.const -0.4066039223853553 + call $~lib/math/NativeMath.sincos + f64.const 0.5617597462207241 + call $~lib/math/NativeMath.sincos + f64.const 0.7741522965913037 + call $~lib/math/NativeMath.sincos + f64.const -0.6787637026394024 + call $~lib/math/NativeMath.sincos f64.const 2 f64.const 4 call $~lib/math/NativeMath.imul @@ -56214,7 +55897,4 @@ unreachable end ) - (func $~start - call $start:std/math - ) ) diff --git a/tests/compiler/std/mod.release.wat b/tests/compiler/std/mod.release.wat index 1fbd3592bf..568ccb771c 100644 --- a/tests/compiler/std/mod.release.wat +++ b/tests/compiler/std/mod.release.wat @@ -1,11 +1,11 @@ (module (type $0 (func)) - (type $1 (func (param f64 f64) (result f64))) + (type $1 (func (param i32 i32 i32 i32))) (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))) - (import "mod" "mod" (func $std/mod/mod (param f64 f64) (result f64))) + (type $3 (func (param f32 f32 f32) (result i32))) + (type $4 (func (param f64 f64) (result f64))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (import "mod" "mod" (func $std/mod/mod (param f64 f64) (result f64))) (memory $0 1) (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") @@ -507,6 +507,9 @@ f32.eq end ) + (func $~start + call $start:std/mod + ) (func $start:std/mod f64.const 3 f64.const 2 @@ -2264,7 +2267,4 @@ unreachable end ) - (func $~start - call $start:std/mod - ) ) diff --git a/tests/compiler/std/new.debug.wat b/tests/compiler/std/new.debug.wat index 5b911b3d42..5979cb6867 100644 --- a/tests/compiler/std/new.debug.wat +++ b/tests/compiler/std/new.debug.wat @@ -1638,14 +1638,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 @@ -2305,12 +2308,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/std/new.release.wat b/tests/compiler/std/new.release.wat index b019ac621c..98131dbec6 100644 --- a/tests/compiler/std/new.release.wat +++ b/tests/compiler/std/new.release.wat @@ -4,8 +4,8 @@ (type $2 (func (param i32 i32))) (type $3 (func (result i32))) (type $4 (func (param i32 i32 i32 i32))) - (type $5 (func (param i32 i32 i64))) - (type $6 (func (param i32) (result i32))) + (type $5 (func (param i32) (result i32))) + (type $6 (func (param i32 i32 i64))) (import "env" "abort" (func $~lib/builtins/abort (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)) @@ -33,57 +33,6 @@ (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/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - global.get $std/new/aClass - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 1248 - 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/__visit (param $0 i32) (local $1 i32) (local $2 i32) @@ -628,6 +577,171 @@ i32.or i32.store offset=4 ) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $std/new/AClass + 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 $std/new/AClass $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + return + end + unreachable + ) + (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 $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $1 + 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 $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 + i32.const 0 + end + end + ) + (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 34240 + i32.const 0 + i32.store + i32.const 35808 + 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 34240 + 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 34240 + 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 34240 + i32.const 35812 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34240 + global.set $~lib/rt/tlsf/ROOT + ) (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) (local $3 i32) (local $4 i32) @@ -742,85 +856,152 @@ local.get $1 call $~lib/rt/tlsf/insertBlock ) - (func $~lib/rt/tlsf/initialize + (func $~lib/rt/itcms/visitRoots (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 + global.get $std/new/aClass + local.tee $0 if - unreachable + local.get $0 + call $~lib/rt/itcms/__visit end - i32.const 34240 - i32.const 0 - i32.store - i32.const 35808 - i32.const 0 - i32.store - loop $for-loop|0 + i32.const 1248 + 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 - i32.const 23 - i32.lt_u + local.get $1 + i32.ne if local.get $0 - i32.const 2 - i32.shl - i32.const 34240 - i32.add - i32.const 0 - i32.store offset=4 - i32.const 0 - local.set $1 - loop $for-loop|1 - local.get $1 + 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 - i32.lt_u - if - local.get $0 - i32.const 4 - i32.shl - local.get $1 - i32.add - i32.const 2 - i32.shl - i32.const 34240 - 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 + call $~lib/builtins/abort + unreachable end local.get $0 - i32.const 1 + 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 $for-loop|0 + br $while-continue|0 end end - i32.const 34240 - i32.const 35812 + ) + (func $~start + (local $0 i32) memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34240 - global.set $~lib/rt/tlsf/ROOT + i32.const 16 + i32.shl + i32.const 34232 + 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 + 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 1464 + 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 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + 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 1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f32.const 2 + f32.store 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 + i32.const 1 + i32.add + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f32.const 3 + f32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + global.set $std/new/aClass ) (func $~lib/rt/itcms/step (result i32) (local $0 i32) @@ -1032,7 +1213,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1065,7 +1245,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1074,74 +1253,16 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + 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 $2 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $1 - 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 $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 - i32.const 0 - end - end - ) (func $~lib/rt/itcms/__new (result i32) (local $0 i32) (local $1 i32) @@ -1163,12 +1284,8 @@ i32.eqz if global.get $~lib/rt/itcms/total - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 + i32.const 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold @@ -1180,8 +1297,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1203,12 +1319,11 @@ local.tee $0 i32.eqz if - memory.size - local.tee $0 i32.const 4 local.get $1 i32.load offset=1568 - local.get $0 + memory.size + local.tee $0 i32.const 16 i32.shl i32.const 4 @@ -1221,7 +1336,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $2 + local.set $2 + local.get $0 + local.get $2 local.get $0 local.get $2 i32.gt_s @@ -1375,135 +1492,4 @@ i64.store align=1 local.get $0 ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $std/new/AClass - 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 $std/new/AClass $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - return - end - return - end - unreachable - ) - (func $~start - (local $0 i32) - (local $1 i32) - memory.size - i32.const 16 - i32.shl - i32.const 34232 - 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 - 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 1464 - 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 - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - i32.store - local.get $0 - local.get $1 - i32.store offset=4 - local.get $1 - f32.const 2 - f32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load - i32.const 1 - i32.add - i32.store - local.get $0 - local.get $1 - i32.store offset=4 - local.get $1 - f32.const 3 - f32.store offset=4 - local.get $0 - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - global.set $std/new/aClass - ) ) diff --git a/tests/compiler/std/operator-overloading.debug.wat b/tests/compiler/std/operator-overloading.debug.wat index eb247a5394..3313be1958 100644 --- a/tests/compiler/std/operator-overloading.debug.wat +++ b/tests/compiler/std/operator-overloading.debug.wat @@ -1694,14 +1694,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 @@ -3158,12 +3161,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -4697,13 +4696,13 @@ (func $std/operator-overloading/TesterElementAccess#__set (param $this i32) (param $key i32) (param $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 $key local.set $3 global.get $~lib/memory/__stack_pointer @@ -4711,11 +4710,6 @@ i32.store local.get $3 i32.const 512 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 call $~lib/string/String.__eq if local.get $this @@ -4737,20 +4731,20 @@ call $std/operator-overloading/TesterElementAccess#set:y end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) (func $std/operator-overloading/TesterElementAccess#__get (param $this i32) (param $key i32) (result i32) (local $2 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 $key local.set $2 global.get $~lib/memory/__stack_pointer @@ -4758,11 +4752,6 @@ i32.store local.get $2 i32.const 512 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 call $~lib/string/String.__eq if (result i32) local.get $this @@ -4783,7 +4772,7 @@ end 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 @@ -4801,13 +4790,13 @@ (local $8 i32) (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 48 + i32.const 40 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 48 + i32.const 40 memory.fill memory.size i32.const 16 @@ -6204,11 +6193,6 @@ block $std/operator-overloading/TesterInlineStatic.postInc|inlined.0 (result i32) global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/ais1 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store - local.get $9 local.tee $3 i32.store offset=16 i32.const 0 @@ -6439,11 +6423,6 @@ i32.store local.get $9 i32.const 512 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 i32.const -1 call $std/operator-overloading/TesterElementAccess#__set global.get $std/operator-overloading/tea @@ -6453,11 +6432,6 @@ i32.store local.get $9 i32.const 544 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 i32.const -2 call $std/operator-overloading/TesterElementAccess#__set global.get $std/operator-overloading/tea @@ -6485,11 +6459,6 @@ i32.store local.get $9 i32.const 512 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 call $std/operator-overloading/TesterElementAccess#__get i32.const -1 i32.eq @@ -6527,11 +6496,6 @@ i32.store local.get $9 i32.const 544 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 call $std/operator-overloading/TesterElementAccess#__get i32.const -2 i32.eq @@ -6551,23 +6515,13 @@ i32.store local.get $9 i32.const 512 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 global.get $std/operator-overloading/tea local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 - i32.store offset=40 + i32.store offset=4 local.get $9 i32.const 512 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=44 - local.get $9 call $std/operator-overloading/TesterElementAccess#__get i32.const 1 i32.add @@ -6579,23 +6533,13 @@ i32.store local.get $9 i32.const 544 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 global.get $std/operator-overloading/tea local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 - i32.store offset=40 + i32.store offset=4 local.get $9 i32.const 544 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=44 - local.get $9 call $std/operator-overloading/TesterElementAccess#__get i32.const 1 i32.sub @@ -6607,11 +6551,6 @@ i32.store local.get $9 i32.const 512 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 call $std/operator-overloading/TesterElementAccess#__get i32.const 0 i32.eq @@ -6631,11 +6570,6 @@ i32.store local.get $9 i32.const 544 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 call $std/operator-overloading/TesterElementAccess#__get i32.const -3 i32.eq @@ -6649,7 +6583,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 48 + i32.const 40 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/std/operator-overloading.release.wat b/tests/compiler/std/operator-overloading.release.wat index cbc4a78d61..d352f0f211 100644 --- a/tests/compiler/std/operator-overloading.release.wat +++ b/tests/compiler/std/operator-overloading.release.wat @@ -5,9 +5,9 @@ (type $3 (func (param i32))) (type $4 (func (param i32 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 i32))) + (type $6 (func (param i32 i32 i32))) + (type $7 (func (param i32 i32 i64))) + (type $8 (func (result i32))) (import "env" "abort" (func $~lib/builtins/abort (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)) @@ -107,48 +107,6 @@ (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/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - call $~lib/rt/__visit_globals - 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/__visit (param $0 i32) (local $1 i32) (local $2 i32) @@ -301,330 +259,517 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (func $std/operator-overloading/Tester#constructor (param $0 i32) (param $1 i32) (result 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 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1620 + i32.lt_s if - i32.const 0 - i32.const 1392 - i32.const 270 - i32.const 14 + i32.const 34416 + i32.const 34464 + i32.const 1 + i32.const 1 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 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer local.get $2 - i32.const 23 - i32.lt_u - i32.and - i32.eqz + 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 $std/operator-overloading/TesterElementAccess#__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 1620 + i32.lt_s if - i32.const 0 - i32.const 1392 - i32.const 284 - i32.const 14 + 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.store + global.get $~lib/memory/__stack_pointer local.get $1 - i32.load offset=8 - local.set $5 + i32.store 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 + call $~lib/string/String.__eq + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 end - local.get $1 - local.get $0 - local.get $2 + global.get $~lib/memory/__stack_pointer 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 + global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 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 $1 - i32.eqz + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - i32.const 0 - i32.const 1392 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable + block $__inlined_func$~lib/rt/itcms/interrupt$68 + i32.const 2048 + local.set $1 + loop $do-loop|0 + local.get $1 + call $~lib/rt/itcms/step + i32.sub + local.set $1 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$68 + end + local.get $1 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.const 10 + i32.shl + i32.add + global.set $~lib/rt/itcms/threshold + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if + i32.const 4 + local.get $2 + i32.load offset=1568 + memory.size + local.tee $1 + 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.set $3 + local.get $1 + local.get $3 + local.get $1 + 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 $2 + 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 $2 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end end local.get $1 i32.load - local.tee $3 - i32.const 1 + i32.const -4 i32.and - i32.eqz + i32.const 28 + i32.lt_u if i32.const 0 i32.const 1392 - i32.const 203 + i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end + local.get $2 local.get $1 - i32.const 4 - i32.add + call $~lib/rt/tlsf/removeBlock local.get $1 i32.load + local.tee $3 i32.const -4 i32.and - i32.add + i32.const 28 + i32.sub local.tee $4 - i32.load - local.tee $2 - i32.const 1 - i32.and + i32.const 16 + i32.ge_u 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.const 2 i32.and - i32.add - local.tee $3 + i32.const 28 + i32.or i32.store local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and + i32.const 32 i32.add - local.tee $4 - i32.load - local.set $2 - end - local.get $3 - i32.const 2 - i32.and - if - local.get $1 + local.tee $3 + local.get $4 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 + i32.or + i32.store + local.get $2 + local.get $3 + call $~lib/rt/tlsf/insertBlock + else local.get $1 - call $~lib/rt/tlsf/removeBlock + local.get $3 + i32.const -2 + i32.and + i32.store local.get $1 - local.get $6 i32.const 4 i32.add - local.get $3 + local.get $1 + i32.load i32.const -4 i32.and i32.add - local.tee $3 + local.tee $2 + local.get $2 + i32.load + i32.const -3 + i32.and i32.store end - local.get $4 + local.get $1 + 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 $0 + i32.load offset=8 + 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 - i32.const 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 - local.get $3 + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $1 + i32.load 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 + global.set $~lib/rt/itcms/total local.get $1 - i32.store - local.get $2 + i32.const 20 + i32.add + local.tee $0 + i64.const 0 + i64.store align=1 + local.get $0 + ) + (func $std/operator-overloading/TesterInlineStatic#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 1620 + i32.lt_s + if + i32.const 34416 + i32.const 34464 + 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 5 + 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 + 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 $std/operator-overloading/TesterInlineInstance#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 1620 + i32.lt_s + if + i32.const 34416 + i32.const 34464 + 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 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 + 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 $std/operator-overloading/TesterElementAccess#__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 1620 + i32.lt_s + if + 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.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/string/String.__eq + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $2 + i32.store + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $2 + i32.store offset=4 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (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 $2 + local.get $3 i32.const 4 i32.shr_u else i32.const 31 i32.const 1073741820 - local.get $2 - local.get $2 + local.get $3 + local.get $3 i32.const 1073741820 i32.ge_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.tee $3 + local.tee $4 i32.const 7 i32.sub - local.set $5 - local.get $2 + 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 $2 + local.tee $3 i32.const 16 i32.lt_u - local.get $5 + local.get $2 i32.const 23 i32.lt_u i32.and @@ -632,522 +777,512 @@ if i32.const 0 i32.const 1392 - i32.const 251 + i32.const 284 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 + i32.load offset=8 + local.set $5 local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 + i32.load offset=4 + local.tee $4 if - local.get $3 - local.get $1 + 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 $5 - i32.const 4 - i32.shl local.get $2 - i32.add - i32.const 2 + i32.const 4 i32.shl + local.get $3 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 + 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 382 + i32.const 201 i32.const 14 call $~lib/builtins/abort unreachable end local.get $1 - i32.const 19 - i32.add - i32.const -16 + 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.sub - local.set $1 - local.get $0 - i32.load offset=1568 - local.tee $3 + 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.gt_u - if - i32.const 0 - i32.const 1392 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 + i32.const 4 + i32.add 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.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.gt_u + 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 402 - i32.const 5 + 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.wrap_i64 - i32.const -16 + i32.const 2 + i32.or + i32.store + local.get $3 + i32.const -4 i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 + local.tee $2 + i32.const 12 i32.lt_u if - return + i32.const 0 + i32.const 1392 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable 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 + local.get $2 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 + i32.ne if + i32.const 0 + i32.const 1392 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort unreachable end - i32.const 34400 - i32.const 0 - i32.store - i32.const 35968 - i32.const 0 + local.get $4 + i32.const 4 + i32.sub + local.get $1 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 34400 - 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 34400 - 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 + 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 - i32.const 34400 - i32.const 35972 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34400 - global.set $~lib/rt/tlsf/ROOT + 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/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 34388 - i32.lt_u - if + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $std/operator-overloading/TesterElementAccess + block $std/operator-overloading/TesterInlineInstance + block $std/operator-overloading/TesterInlineStatic + block $std/operator-overloading/Tester + 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 $std/operator-overloading/Tester $std/operator-overloading/TesterInlineStatic $std/operator-overloading/TesterInlineInstance $std/operator-overloading/TesterElementAccess $invalid + end + return + end + return + end + return + end 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 + return end + return 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 + return end - global.get $~lib/rt/itcms/visitCount return end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + return + end + unreachable + ) + (func $~lib/string/String.__eq (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 1620 + i32.lt_s + if + i32.const 34416 + i32.const 34464 + 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 + i32.const 1536 + 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 $0 + i32.eqz + 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 $2 + global.get $~lib/memory/__stack_pointer + i32.const 1536 + i32.store + local.get $2 + i32.const 1532 + i32.load + i32.const 1 + i32.shr_u i32.ne + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 1536 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 1536 + 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 - 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 34388 - 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 34388 - i32.ge_u + loop $do-loop|0 + local.get $1 + i64.load + local.get $3 + i64.load + i64.eq if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT + 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.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.tee $0 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + block $__inlined_func$~lib/util/string/compareImpl$199 + 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 - local.get $2 - call $~lib/rt/tlsf/insertBlock + 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$199 + 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 10 - return + i32.const 0 + local.set $2 end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + i32.eqz + return end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) @@ -1207,423 +1342,791 @@ end end ) - (func $~lib/rt/itcms/__new (param $0 i32) (result i32) + (func $~lib/rt/tlsf/initialize + (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.ge_u + 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 - block $__inlined_func$~lib/rt/itcms/interrupt$68 - i32.const 2048 + unreachable + end + i32.const 34400 + i32.const 0 + i32.store + i32.const 35968 + 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 34400 + i32.add + i32.const 0 + i32.store offset=4 + i32.const 0 local.set $1 - loop $do-loop|0 + loop $for-loop|1 local.get $1 - call $~lib/rt/itcms/step - i32.sub - local.set $1 - global.get $~lib/rt/itcms/state - i32.eqz + i32.const 16 + i32.lt_u 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 + local.get $0 + i32.const 4 + i32.shl + local.get $1 i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$68 + i32.const 2 + i32.shl + i32.const 34400 + 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 - local.get $1 + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 34400 + i32.const 35972 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34400 + global.set $~lib/rt/tlsf/ROOT + ) + (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/itcms/visitRoots + (local $0 i32) + (local $1 i32) + call $~lib/rt/__visit_globals + 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.gt_s - br_if $do-loop|0 + i32.const 1120 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/total - local.tee $1 - local.get $1 - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl + local.get $0 + i32.const 20 i32.add - global.set $~lib/rt/itcms/threshold + 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 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.tee $2 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz + ) + (func $~lib/math/ipow32 (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + i32.const 1 + local.set $2 + local.get $0 + i32.const 2 + i32.eq if - memory.size - local.tee $1 - i32.const 4 - local.get $2 - i32.load offset=1568 + i32.const 1 local.get $1 - 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 $3 + i32.const 0 local.get $1 - local.get $3 - i32.gt_s + i32.const 32 + i32.lt_u select - memory.grow - i32.const 0 - i32.lt_s + return + end + local.get $1 + i32.const 0 + i32.le_s + if + local.get $0 + i32.const -1 + i32.eq if - local.get $3 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end + i32.const -1 + i32.const 1 + local.get $1 + i32.const 1 + i32.and + select + return end - local.get $2 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 $2 - call $~lib/rt/tlsf/searchBlock - local.tee $1 i32.eqz + local.get $0 + i32.const 1 + i32.eq + i32.or + return + else + local.get $1 + i32.const 1 + i32.eq + if + local.get $0 + return + else + local.get $1 + i32.const 2 + i32.eq + if + local.get $0 + local.get $0 + i32.mul + return + else + local.get $1 + i32.const 32 + i32.lt_s + if + block $break|0 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + i32.const 31 + local.get $1 + i32.clz + i32.sub + br_table $case4|0 $case3|0 $case2|0 $case1|0 $case0|0 $break|0 + end + local.get $0 + i32.const 1 + local.get $1 + i32.const 1 + i32.and + select + local.set $2 + local.get $1 + i32.const 1 + i32.shr_u + local.set $1 + local.get $0 + local.get $0 + i32.mul + local.set $0 + end + local.get $0 + local.get $2 + i32.mul + local.get $2 + local.get $1 + i32.const 1 + i32.and + select + local.set $2 + local.get $1 + i32.const 1 + i32.shr_u + local.set $1 + local.get $0 + local.get $0 + i32.mul + local.set $0 + end + local.get $0 + local.get $2 + i32.mul + local.get $2 + local.get $1 + i32.const 1 + i32.and + select + local.set $2 + local.get $1 + i32.const 1 + i32.shr_u + local.set $1 + local.get $0 + local.get $0 + i32.mul + local.set $0 + end + local.get $0 + local.get $2 + i32.mul + local.get $2 + local.get $1 + i32.const 1 + i32.and + select + local.set $2 + local.get $1 + i32.const 1 + i32.shr_u + local.set $1 + local.get $0 + local.get $0 + i32.mul + local.set $0 + end + local.get $0 + local.get $2 + i32.mul + local.get $2 + local.get $1 + i32.const 1 + i32.and + select + local.set $2 + end + local.get $2 + return + end + end + end + end + loop $while-continue|1 + local.get $1 if - i32.const 0 - i32.const 1392 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable + local.get $0 + local.get $2 + i32.mul + local.get $2 + local.get $1 + i32.const 1 + i32.and + select + local.set $2 + local.get $1 + i32.const 1 + i32.shr_u + local.set $1 + local.get $0 + local.get $0 + i32.mul + local.set $0 + br $while-continue|1 end end - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 28 - i32.lt_u + local.get $2 + ) + (func $std/operator-overloading/Tester.notEquals (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1620 + i32.lt_s if - i32.const 0 - i32.const 1392 - i32.const 501 - i32.const 14 + i32.const 34416 + i32.const 34464 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $2 + 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 $1 - call $~lib/rt/tlsf/removeBlock + i32.store local.get $1 i32.load - local.tee $3 - i32.const -4 - i32.and - i32.const 28 - i32.sub - local.tee $4 - i32.const 16 - i32.ge_u - if - local.get $1 - local.get $3 - i32.const 2 - i32.and - i32.const 28 - i32.or - i32.store - local.get $1 - i32.const 32 - i32.add - local.tee $3 - local.get $4 - i32.const 4 - i32.sub - i32.const 1 - i32.or + i32.ne + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $2 - local.get $3 - call $~lib/rt/tlsf/insertBlock - else + local.get $0 + i32.load offset=4 + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $3 - 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 + i32.load offset=4 + i32.ne + else + i32.const 0 end - local.get $1 - 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 $0 - i32.load offset=8 - 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 - 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 - local.get $0 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - i32.const -4 - i32.and + 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 $0 - i64.const 0 - i64.store align=1 - local.get $0 + global.set $~lib/memory/__stack_pointer ) - (func $~lib/math/ipow32 (param $0 i32) (param $1 i32) (result i32) + (func $std/operator-overloading/Tester.equals (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - i32.const 1 - local.set $2 - local.get $0 - i32.const 2 - i32.eq + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1620 + i32.lt_s if + i32.const 34416 + i32.const 34464 i32.const 1 - local.get $1 - i32.shl - i32.const 0 - local.get $1 - i32.const 32 - i32.lt_u - select - return + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.le_s - if + 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 $1 + i32.store + local.get $1 + i32.load + i32.eq + if (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const -1 + 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.eq - if - i32.const -1 - i32.const 1 - local.get $1 - i32.const 1 + else + i32.const 0 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~start + call $start:std/operator-overloading + ) + (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 - select - return - end - local.get $1 - i32.eqz - local.get $0 - i32.const 1 - i32.eq - i32.or - return - else - local.get $1 - i32.const 1 - i32.eq - if - local.get $0 - return - else - local.get $1 - i32.const 2 - i32.eq - if - local.get $0 + local.set $0 + loop $while-continue|1 local.get $0 - i32.mul - return - else - local.get $1 - i32.const 32 - i32.lt_s + global.get $~lib/rt/itcms/toSpace + i32.ne if - block $break|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - i32.const 31 - local.get $1 - i32.clz - i32.sub - br_table $case4|0 $case3|0 $case2|0 $case1|0 $case0|0 $break|0 - end - local.get $0 - i32.const 1 - local.get $1 - i32.const 1 - i32.and - select - local.set $2 - local.get $1 - i32.const 1 - i32.shr_u - local.set $1 - local.get $0 - local.get $0 - i32.mul - local.set $0 - end - local.get $0 - local.get $2 - i32.mul - local.get $2 - local.get $1 - i32.const 1 - i32.and - select - local.set $2 - local.get $1 - i32.const 1 - i32.shr_u - local.set $1 - local.get $0 - local.get $0 - i32.mul - local.set $0 - end - local.get $0 - local.get $2 - i32.mul - local.get $2 - local.get $1 - i32.const 1 - i32.and - select - local.set $2 - local.get $1 - i32.const 1 - i32.shr_u - local.set $1 - local.get $0 - local.get $0 - i32.mul - local.set $0 - end + 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 34388 + 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.mul - local.get $2 - local.get $1 - i32.const 1 + i32.const -4 i32.and - select - local.set $2 local.get $1 - i32.const 1 - i32.shr_u - local.set $1 - local.get $0 + i32.or + i32.store offset=4 local.get $0 - i32.mul - local.set $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 34388 + 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 34388 + 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.mul - local.get $2 - local.get $1 + i32.load i32.const 1 i32.and - select - local.set $2 + end + if + i32.const 0 + i32.const 1392 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable end local.get $2 - return + 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 - loop $while-continue|1 - local.get $1 - if - local.get $0 - local.get $2 - i32.mul - local.get $2 - local.get $1 - i32.const 1 - i32.and - select - local.set $2 - local.get $1 - i32.const 1 - i32.shr_u - local.set $1 - local.get $0 - local.get $0 - i32.mul - local.set $0 - br $while-continue|1 - end - end - local.get $2 + i32.const 0 ) (func $~lib/rt/__visit_globals (local $0 i32) @@ -1747,811 +2250,257 @@ local.get $0 call $~lib/rt/itcms/__visit end - global.get $std/operator-overloading/n - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/operator-overloading/o1 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/operator-overloading/o2 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/operator-overloading/o - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/operator-overloading/x1 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/operator-overloading/x2 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/operator-overloading/x - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/operator-overloading/eq1 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/operator-overloading/eq2 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/operator-overloading/eq3 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/operator-overloading/eq4 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/operator-overloading/gt1 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/operator-overloading/gt2 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/operator-overloading/gte1 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/operator-overloading/gte2 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/operator-overloading/le1 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/operator-overloading/le2 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/operator-overloading/leq1 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/operator-overloading/leq2 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/operator-overloading/shr - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/operator-overloading/sres - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/operator-overloading/shu - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/operator-overloading/ures - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/operator-overloading/shl - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/operator-overloading/pos - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/operator-overloading/pres - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/operator-overloading/neg + global.get $std/operator-overloading/n local.tee $0 if local.get $0 call $~lib/rt/itcms/__visit end - global.get $std/operator-overloading/nres + global.get $std/operator-overloading/o1 local.tee $0 if local.get $0 call $~lib/rt/itcms/__visit end - global.get $std/operator-overloading/not + global.get $std/operator-overloading/o2 local.tee $0 if local.get $0 call $~lib/rt/itcms/__visit end - global.get $std/operator-overloading/res + global.get $std/operator-overloading/o local.tee $0 if local.get $0 call $~lib/rt/itcms/__visit end - global.get $std/operator-overloading/excl + global.get $std/operator-overloading/x1 local.tee $0 if local.get $0 call $~lib/rt/itcms/__visit end - global.get $std/operator-overloading/incdec + global.get $std/operator-overloading/x2 local.tee $0 if local.get $0 call $~lib/rt/itcms/__visit end - global.get $std/operator-overloading/tmp + global.get $std/operator-overloading/x local.tee $0 if local.get $0 call $~lib/rt/itcms/__visit end - global.get $std/operator-overloading/ais1 + global.get $std/operator-overloading/eq1 local.tee $0 if local.get $0 call $~lib/rt/itcms/__visit end - global.get $std/operator-overloading/ais2 + global.get $std/operator-overloading/eq2 local.tee $0 if local.get $0 call $~lib/rt/itcms/__visit end - global.get $std/operator-overloading/ais + global.get $std/operator-overloading/eq3 local.tee $0 if local.get $0 call $~lib/rt/itcms/__visit end - global.get $std/operator-overloading/aii1 + global.get $std/operator-overloading/eq4 local.tee $0 if local.get $0 call $~lib/rt/itcms/__visit end - global.get $std/operator-overloading/aii2 + global.get $std/operator-overloading/gt1 local.tee $0 if local.get $0 call $~lib/rt/itcms/__visit end - global.get $std/operator-overloading/aii + global.get $std/operator-overloading/gt2 local.tee $0 if local.get $0 call $~lib/rt/itcms/__visit end - global.get $std/operator-overloading/tea + global.get $std/operator-overloading/gte1 local.tee $0 if local.get $0 call $~lib/rt/itcms/__visit end - i32.const 1248 - call $~lib/rt/itcms/__visit - i32.const 1056 - call $~lib/rt/itcms/__visit - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $std/operator-overloading/TesterElementAccess - block $std/operator-overloading/TesterInlineInstance - block $std/operator-overloading/TesterInlineStatic - block $std/operator-overloading/Tester - 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 $std/operator-overloading/Tester $std/operator-overloading/TesterInlineStatic $std/operator-overloading/TesterInlineInstance $std/operator-overloading/TesterElementAccess $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - return - end - return - end - return - end - return - end - return - end - unreachable - ) - (func $~start - call $start:std/operator-overloading - ) - (func $std/operator-overloading/Tester#constructor (param $0 i32) (param $1 i32) (result 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 1620 - i32.lt_s - if - i32.const 34416 - i32.const 34464 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $2 - i32.store offset=4 - local.get $2 - local.get $0 - i32.store - local.get $3 - local.get $2 - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=4 - local.get $3 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $std/operator-overloading/Tester.equals (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 1620 - i32.lt_s + global.get $std/operator-overloading/gte2 + local.tee $0 if - i32.const 34416 - i32.const 34464 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $0 - i32.load - local.set $3 - local.get $2 - local.get $1 - i32.store - local.get $3 - local.get $1 - i32.load - i32.eq - if (result i32) - local.get $2 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $0 - local.get $2 - local.get $1 - i32.store local.get $0 - local.get $1 - i32.load offset=4 - i32.eq - else - i32.const 0 + call $~lib/rt/itcms/__visit end - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $std/operator-overloading/Tester.notEquals (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 1620 - i32.lt_s + global.get $std/operator-overloading/le1 + local.tee $0 if - i32.const 34416 - i32.const 34464 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $0 - i32.load - local.set $3 - local.get $2 - local.get $1 - i32.store - local.get $3 - local.get $1 - i32.load - i32.ne - if (result i32) - local.get $2 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $0 - local.get $2 - local.get $1 - i32.store local.get $0 - local.get $1 - i32.load offset=4 - i32.ne - else - i32.const 0 - end - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $std/operator-overloading/TesterInlineStatic#constructor (param $0 i32) (param $1 i32) (result 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 1620 - i32.lt_s - if - i32.const 34416 - i32.const 34464 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + call $~lib/rt/itcms/__visit end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $2 - i32.store offset=4 - local.get $2 - local.get $0 - i32.store - local.get $3 - local.get $2 - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=4 - local.get $3 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $std/operator-overloading/TesterInlineInstance#constructor (param $0 i32) (param $1 i32) (result 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 1620 - i32.lt_s + global.get $std/operator-overloading/le2 + local.tee $0 if - i32.const 34416 - i32.const 34464 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $0 + call $~lib/rt/itcms/__visit end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $2 - i32.store offset=4 - local.get $2 - local.get $0 - i32.store - local.get $3 - local.get $2 - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=4 - local.get $3 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $~lib/string/String.__eq (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 1620 - i32.lt_s + global.get $std/operator-overloading/leq1 + local.tee $0 if - i32.const 34416 - i32.const 34464 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $0 + call $~lib/rt/itcms/__visit end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $0 - i32.const 1536 - i32.eq + global.get $std/operator-overloading/leq2 + local.tee $0 if - local.get $1 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 - return + local.get $0 + call $~lib/rt/itcms/__visit end - block $folding-inner0 + global.get $std/operator-overloading/shr + local.tee $0 + if local.get $0 - i32.eqz - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/sres + local.tee $0 + if local.get $0 - i32.store + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/shu + local.tee $0 + if local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $2 - local.get $1 - i32.const 1536 - i32.store - local.get $2 - i32.const 1532 - i32.load - i32.const 1 - i32.shr_u - i32.ne - br_if $folding-inner0 - local.get $1 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/ures + local.tee $0 + if local.get $0 - i32.store - i32.const 1536 - local.set $3 - local.get $1 - i32.const 1536 - i32.store offset=4 - i32.const 1 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/shl + local.tee $0 + if 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$199 - 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$199 - 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 - return + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/pos + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/pres + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $std/operator-overloading/TesterElementAccess#__set (param $0 i32) (param $1 i32) (param $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 1620 - i32.lt_s + global.get $std/operator-overloading/neg + local.tee $0 if - i32.const 34416 - i32.const 34464 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $0 + call $~lib/rt/itcms/__visit end - global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - local.get $1 - i32.store - local.get $3 - i32.const 1536 - i32.store offset=4 - local.get $1 - call $~lib/string/String.__eq + global.get $std/operator-overloading/nres + local.tee $0 if - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/not + local.tee $0 + if local.get $0 - local.get $2 - i32.store - else - global.get $~lib/memory/__stack_pointer + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/res + local.tee $0 + if local.get $0 - i32.store + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/excl + local.tee $0 + if local.get $0 - local.get $2 - i32.store offset=4 + call $~lib/rt/itcms/__visit end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/operator-overloading/TesterElementAccess#__get (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 1620 - i32.lt_s + global.get $std/operator-overloading/incdec + local.tee $0 if - i32.const 34416 - i32.const 34464 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $0 + call $~lib/rt/itcms/__visit end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - local.get $1 - i32.store - local.get $2 - i32.const 1536 - i32.store offset=4 - local.get $1 - call $~lib/string/String.__eq - if (result i32) - global.get $~lib/memory/__stack_pointer + global.get $std/operator-overloading/tmp + local.tee $0 + if local.get $0 - i32.store + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/ais1 + local.tee $0 + if local.get $0 - i32.load - else - global.get $~lib/memory/__stack_pointer + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/ais2 + local.tee $0 + if local.get $0 - i32.store + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/ais + local.tee $0 + if local.get $0 - i32.load offset=4 + call $~lib/rt/itcms/__visit end - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + global.get $std/operator-overloading/aii1 + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/aii2 + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/aii + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/tea + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 1248 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit ) (func $start:std/operator-overloading (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 48 + i32.const 40 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -2561,7 +2510,7 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 48 + i32.const 40 memory.fill memory.size i32.const 16 @@ -2620,44 +2569,35 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load - local.set $3 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $3 local.get $1 i32.load i32.add - local.set $3 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 - local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $3 - local.get $0 local.get $1 i32.load offset=4 i32.add call $std/operator-overloading/Tester#constructor - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/a global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/a @@ -2669,7 +2609,8 @@ i32.eq if (result i32) global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $std/operator-overloading/a + local.tee $0 i32.store local.get $0 i32.load offset=4 @@ -2696,15 +2637,14 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/s2 global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/s1 - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/s2 - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2713,44 +2653,35 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 - i32.load - local.set $3 local.get $0 - local.get $2 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $3 - local.get $2 + local.get $1 i32.load i32.sub - local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 - i32.load offset=4 - local.set $1 local.get $0 - local.get $2 + i32.load offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $3 local.get $1 - local.get $2 i32.load offset=4 i32.sub call $std/operator-overloading/Tester#constructor - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/s global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/s @@ -2788,15 +2719,14 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/m2 global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/m1 - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/m2 - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2805,44 +2735,35 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 - i32.load - local.set $3 local.get $0 - local.get $2 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $3 - local.get $2 + local.get $1 i32.load i32.mul - local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 - i32.load offset=4 - local.set $1 local.get $0 - local.get $2 + i32.load offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $3 local.get $1 - local.get $2 i32.load offset=4 i32.mul call $std/operator-overloading/Tester#constructor - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/m global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/m @@ -2854,7 +2775,8 @@ i32.eq if (result i32) global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $std/operator-overloading/m + local.tee $0 i32.store local.get $0 i32.load offset=4 @@ -2881,15 +2803,14 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/d2 global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/d1 - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/d2 - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2898,44 +2819,35 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 - i32.load - local.set $3 local.get $0 - local.get $2 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $3 - local.get $2 + local.get $1 i32.load i32.div_s - local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 - i32.load offset=4 - local.set $1 local.get $0 - local.get $2 + i32.load offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $3 local.get $1 - local.get $2 i32.load offset=4 i32.div_s call $std/operator-overloading/Tester#constructor - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/d global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/d @@ -2947,7 +2859,8 @@ i32.eq if (result i32) global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $std/operator-overloading/d + local.tee $0 i32.store local.get $0 i32.load offset=4 @@ -2974,15 +2887,14 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/f2 global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/f1 - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/f2 - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2991,44 +2903,35 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 - i32.load - local.set $3 local.get $0 - local.get $2 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $3 - local.get $2 + local.get $1 i32.load i32.rem_s - local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 - i32.load offset=4 - local.set $1 local.get $0 - local.get $2 + i32.load offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $3 local.get $1 - local.get $2 i32.load offset=4 i32.rem_s call $std/operator-overloading/Tester#constructor - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/f global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/f @@ -3040,7 +2943,8 @@ i32.eq if (result i32) global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $std/operator-overloading/f + local.tee $0 i32.store local.get $0 i32.load offset=4 @@ -3064,15 +2968,14 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/p2 global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/p1 - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/p2 - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3081,44 +2984,35 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 - i32.load - local.set $3 local.get $0 - local.get $2 - i32.store - local.get $3 - local.get $2 i32.load - call $~lib/math/ipow32 - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 - i32.load offset=4 - local.set $1 + i32.load + call $~lib/math/ipow32 global.get $~lib/memory/__stack_pointer - local.get $2 + 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 - local.get $2 i32.load offset=4 call $~lib/math/ipow32 call $std/operator-overloading/Tester#constructor - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/p global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/p @@ -3130,7 +3024,8 @@ i32.eq if (result i32) global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $std/operator-overloading/p + local.tee $0 i32.store local.get $0 i32.load offset=4 @@ -3157,15 +3052,14 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/n2 global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/n1 - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/n2 - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3174,44 +3068,35 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 - i32.load - local.set $3 local.get $0 - local.get $2 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $3 - local.get $2 + local.get $1 i32.load i32.and - local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 - i32.load offset=4 - local.set $1 local.get $0 - local.get $2 + i32.load offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $3 local.get $1 - local.get $2 i32.load offset=4 i32.and call $std/operator-overloading/Tester#constructor - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/n global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/n @@ -3223,7 +3108,8 @@ i32.eq if (result i32) global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $std/operator-overloading/n + local.tee $0 i32.store local.get $0 i32.load offset=4 @@ -3250,15 +3136,14 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/o2 global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/o1 - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/o2 - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3267,44 +3152,35 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 - i32.load - local.set $3 local.get $0 - local.get $2 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $3 - local.get $2 + local.get $1 i32.load i32.or - local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 - i32.load offset=4 - local.set $1 local.get $0 - local.get $2 + i32.load offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $3 local.get $1 - local.get $2 i32.load offset=4 i32.or call $std/operator-overloading/Tester#constructor - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/o global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/o @@ -3316,7 +3192,8 @@ i32.eq if (result i32) global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $std/operator-overloading/o + local.tee $0 i32.store local.get $0 i32.load offset=4 @@ -3343,15 +3220,14 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/x2 global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/x1 - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/x2 - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3360,44 +3236,35 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 - i32.load - local.set $3 local.get $0 - local.get $2 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $3 - local.get $2 + local.get $1 i32.load i32.xor - local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 - i32.load offset=4 - local.set $1 local.get $0 - local.get $2 + i32.load offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $3 local.get $1 - local.get $2 i32.load offset=4 i32.xor call $std/operator-overloading/Tester#constructor - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/x global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/x @@ -3409,7 +3276,8 @@ i32.eq if (result i32) global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $std/operator-overloading/x + local.tee $0 i32.store local.get $0 i32.load offset=4 @@ -3436,16 +3304,15 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/eq2 global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/eq1 - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/eq2 - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $1 local.get $0 + local.get $1 call $std/operator-overloading/Tester.equals global.set $std/operator-overloading/eq global.get $std/operator-overloading/eq @@ -3468,16 +3335,15 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/eq4 global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/eq3 - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/eq4 - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $1 local.get $0 + local.get $1 call $std/operator-overloading/Tester.equals global.set $std/operator-overloading/eqf global.get $std/operator-overloading/eqf @@ -3490,16 +3356,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/eq1 - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/eq2 - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $1 local.get $0 + local.get $1 call $std/operator-overloading/Tester.notEquals global.set $std/operator-overloading/eq global.get $std/operator-overloading/eq @@ -3512,16 +3377,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/eq3 - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/eq4 - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $1 local.get $0 + local.get $1 call $std/operator-overloading/Tester.notEquals global.set $std/operator-overloading/eqf global.get $std/operator-overloading/eqf @@ -3544,15 +3408,14 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/gt2 global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/gt1 - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/gt2 - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3561,45 +3424,38 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 - i32.load - local.set $3 local.get $0 - local.get $2 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $3 - local.get $2 + local.get $1 i32.load i32.gt_s if (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 - i32.load offset=4 - local.set $1 local.get $0 - local.get $2 + i32.load offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store local.get $1 - local.get $2 i32.load offset=4 i32.gt_s else i32.const 0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/gt global.get $std/operator-overloading/gt i32.const 1 @@ -3621,15 +3477,14 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/gte2 global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/gte1 - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/gte2 - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3638,45 +3493,38 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 - i32.load - local.set $3 local.get $0 - local.get $2 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $3 - local.get $2 + local.get $1 i32.load i32.ge_s if (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 - i32.load offset=4 - local.set $1 local.get $0 - local.get $2 + i32.load offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store local.get $1 - local.get $2 i32.load offset=4 i32.ge_s else i32.const 0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/gte global.get $std/operator-overloading/gte i32.const 1 @@ -3698,15 +3546,14 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/le2 global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/le1 - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/le2 - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3715,45 +3562,38 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 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 $1 i32.store local.get $1 i32.load - local.set $3 - local.get $0 - local.get $2 - i32.store - local.get $3 - local.get $2 - i32.load i32.lt_s if (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 - i32.load offset=4 - local.set $1 local.get $0 - local.get $2 + i32.load offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store local.get $1 - local.get $2 i32.load offset=4 i32.lt_s else i32.const 0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/le global.get $std/operator-overloading/le i32.const 1 @@ -3775,15 +3615,14 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/leq2 global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/leq1 - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/leq2 - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3792,45 +3631,38 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 - i32.load - local.set $3 local.get $0 - local.get $2 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $3 - local.get $2 + local.get $1 i32.load i32.le_s if (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 - i32.load offset=4 - local.set $1 local.get $0 - local.get $2 + i32.load offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store local.get $1 - local.get $2 i32.load offset=4 i32.le_s else i32.const 0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/leq global.get $std/operator-overloading/leq i32.const 1 @@ -3848,11 +3680,10 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/shr global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/shr - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3861,32 +3692,27 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 + local.get $0 i32.load i32.const 3 i32.shr_s - local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $2 - local.get $1 + local.get $0 i32.load offset=4 i32.const 3 i32.shr_s call $std/operator-overloading/Tester#constructor - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/sres global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/sres @@ -3898,7 +3724,8 @@ i32.eq if (result i32) global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $std/operator-overloading/sres + local.tee $0 i32.store local.get $0 i32.load offset=4 @@ -3921,11 +3748,10 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/shu global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/shu - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3934,32 +3760,27 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 + local.get $0 i32.load i32.const 3 i32.shr_u - local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $2 - local.get $1 + local.get $0 i32.load offset=4 i32.const 3 i32.shr_u call $std/operator-overloading/Tester#constructor - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/ures global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/ures @@ -3971,7 +3792,8 @@ i32.eq if (result i32) global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $std/operator-overloading/ures + local.tee $0 i32.store local.get $0 i32.load offset=4 @@ -3994,11 +3816,10 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/shl global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/shl - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -4007,32 +3828,27 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 + local.get $0 i32.load i32.const 3 i32.shl - local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $2 - local.get $1 + local.get $0 i32.load offset=4 i32.const 3 i32.shl call $std/operator-overloading/Tester#constructor - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/sres global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/sres @@ -4044,7 +3860,8 @@ i32.eq if (result i32) global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $std/operator-overloading/sres + local.tee $0 i32.store local.get $0 i32.load offset=4 @@ -4067,11 +3884,10 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/pos global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/pos - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -4080,28 +3896,23 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 + local.get $0 i32.load - local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $2 - local.get $1 + local.get $0 i32.load offset=4 call $std/operator-overloading/Tester#constructor - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/pres global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/pres @@ -4109,27 +3920,25 @@ i32.store local.get $0 i32.load - local.set $1 global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/pos - local.tee $2 + local.tee $1 i32.store local.get $1 - local.get $2 i32.load i32.eq if (result i32) global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $std/operator-overloading/pres + local.tee $0 i32.store local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + global.get $std/operator-overloading/pos + local.tee $1 i32.store - local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.eq else @@ -4149,11 +3958,10 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/neg global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/neg - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -4162,32 +3970,27 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store i32.const 0 - local.get $1 + local.get $0 i32.load i32.sub - local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $2 i32.const 0 - local.get $1 + local.get $0 i32.load offset=4 i32.sub call $std/operator-overloading/Tester#constructor - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/nres global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/nres @@ -4195,30 +3998,28 @@ i32.store local.get $0 i32.load - local.set $1 global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/neg - local.tee $2 + local.tee $1 i32.store - local.get $1 i32.const 0 - local.get $2 + local.get $1 i32.load i32.sub i32.eq if (result i32) global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $std/operator-overloading/nres + local.tee $0 i32.store local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + global.get $std/operator-overloading/neg + local.tee $1 i32.store - local.get $0 i32.const 0 - local.get $2 + local.get $1 i32.load offset=4 i32.sub i32.eq @@ -4239,11 +4040,10 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/not global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/not - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -4252,32 +4052,27 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 + local.get $0 i32.load i32.const -1 i32.xor - local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $2 - local.get $1 + local.get $0 i32.load offset=4 i32.const -1 i32.xor call $std/operator-overloading/Tester#constructor - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/res global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/res @@ -4285,29 +4080,27 @@ i32.store local.get $0 i32.load - local.set $1 global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/not - local.tee $2 + local.tee $1 i32.store local.get $1 - local.get $2 i32.load i32.const -1 i32.xor i32.eq if (result i32) global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $std/operator-overloading/res + local.tee $0 i32.store local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + global.get $std/operator-overloading/not + local.tee $1 i32.store - local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const -1 i32.xor @@ -4329,11 +4122,10 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/excl global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/excl - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -4342,29 +4134,26 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 + local.get $0 i32.load if (result i32) i32.const 1 else global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.load offset=4 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 i32.eqz global.set $std/operator-overloading/bres global.get $~lib/memory/__stack_pointer @@ -4410,11 +4199,10 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/incdec global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/incdec - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -4423,38 +4211,37 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=4 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load i32.const 1 i32.add i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=4 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 1 i32.add i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 global.set $std/operator-overloading/incdec global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/incdec @@ -4466,7 +4253,8 @@ i32.eq if (result i32) global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $std/operator-overloading/incdec + local.tee $0 i32.store local.get $0 i32.load offset=4 @@ -4485,11 +4273,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/incdec - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -4498,38 +4285,37 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=4 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load i32.const 1 i32.sub i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=4 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 1 i32.sub i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 global.set $std/operator-overloading/incdec global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/incdec @@ -4563,14 +4349,13 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/incdec global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/incdec - local.tee $1 + local.tee $0 i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -4579,34 +4364,29 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 + local.get $0 i32.load i32.const 1 i32.add - local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $2 - local.get $1 + local.get $0 i32.load offset=4 i32.const 1 i32.add call $std/operator-overloading/Tester#constructor - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/incdec - local.get $1 + local.get $0 global.set $std/operator-overloading/tmp global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/tmp @@ -4636,19 +4416,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/incdec - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load i32.const 1 i32.eq if (result i32) - local.get $0 - local.get $1 + global.get $~lib/memory/__stack_pointer + global.get $std/operator-overloading/incdec + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=4 i32.const 2 i32.eq @@ -4665,14 +4445,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/incdec - local.tee $1 + local.tee $0 i32.store offset=12 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -4681,34 +4460,29 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 + local.get $0 i32.load i32.const 1 i32.sub - local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $2 - local.get $1 + local.get $0 i32.load offset=4 i32.const 1 i32.sub call $std/operator-overloading/Tester#constructor - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/incdec - local.get $1 + local.get $0 global.set $std/operator-overloading/tmp global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/tmp @@ -4720,7 +4494,8 @@ i32.eq if (result i32) global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $std/operator-overloading/tmp + local.tee $0 i32.store local.get $0 i32.load offset=4 @@ -4770,26 +4545,20 @@ call $std/operator-overloading/TesterInlineStatic#constructor global.set $std/operator-overloading/ais1 global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/ais1 - local.tee $1 - i32.store - local.get $0 - local.get $1 + local.tee $0 i32.store offset=16 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 + local.get $0 i32.load i32.const 1 i32.add - local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $2 - local.get $1 + local.get $0 i32.load offset=4 i32.const 1 i32.add @@ -4812,26 +4581,20 @@ i32.store local.get $0 i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 local.get $1 i32.load i32.add - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 - local.get $0 local.get $1 i32.load offset=4 i32.add @@ -4847,7 +4610,8 @@ i32.eq if (result i32) global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $std/operator-overloading/ais + local.tee $0 i32.store local.get $0 i32.load offset=4 @@ -4870,23 +4634,20 @@ call $std/operator-overloading/TesterInlineInstance#constructor global.set $std/operator-overloading/aii1 global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/aii1 - local.tee $1 + local.tee $0 i32.store offset=28 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 + local.get $0 i32.load i32.const 1 i32.add - local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $2 - local.get $1 + local.get $0 i32.load offset=4 i32.const 1 i32.add @@ -4909,26 +4670,20 @@ i32.store local.get $0 i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 local.get $1 i32.load i32.add - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 - local.get $0 local.get $1 i32.load offset=4 i32.add @@ -4944,7 +4699,8 @@ i32.eq if (result i32) global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $std/operator-overloading/aii + local.tee $0 i32.store local.get $0 i32.load offset=4 @@ -4971,28 +4727,26 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 7 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 local.get $0 i32.const 1 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.const 2 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -5002,9 +4756,6 @@ global.get $std/operator-overloading/tea local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1536 - i32.store offset=4 local.get $0 i32.const 1536 i32.const -1 @@ -5013,9 +4764,6 @@ global.get $std/operator-overloading/tea local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1568 - i32.store offset=4 local.get $0 i32.const 1568 i32.const -2 @@ -5037,15 +4785,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/tea - local.tee $1 + local.tee $0 i32.store local.get $0 i32.const 1536 - i32.store offset=4 - local.get $1 - i32.const 1536 call $std/operator-overloading/TesterElementAccess#__get i32.const -1 i32.ne @@ -5074,15 +4818,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/tea - local.tee $1 + local.tee $0 i32.store local.get $0 i32.const 1568 - i32.store offset=4 - local.get $1 - i32.const 1568 call $std/operator-overloading/TesterElementAccess#__get i32.const -2 i32.ne @@ -5095,20 +4835,14 @@ unreachable end global.get $~lib/memory/__stack_pointer + global.get $std/operator-overloading/tea local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/tea local.tee $1 - i32.store - local.get $0 - i32.const 1536 i32.store offset=4 local.get $0 - local.get $1 - i32.store offset=40 - local.get $0 - i32.const 1536 - i32.store offset=44 - local.get $1 i32.const 1536 local.get $1 i32.const 1536 @@ -5121,15 +4855,9 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 1568 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/tea local.tee $1 - i32.store offset=40 - global.get $~lib/memory/__stack_pointer - i32.const 1568 - i32.store offset=44 + i32.store offset=4 local.get $0 i32.const 1568 local.get $1 @@ -5142,9 +4870,6 @@ global.get $std/operator-overloading/tea local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1536 - i32.store offset=4 local.get $0 i32.const 1536 call $std/operator-overloading/TesterElementAccess#__get @@ -5157,15 +4882,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/tea - local.tee $1 + local.tee $0 i32.store local.get $0 i32.const 1568 - i32.store offset=4 - local.get $1 - i32.const 1568 call $std/operator-overloading/TesterElementAccess#__get i32.const -3 i32.ne @@ -5178,7 +4899,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 48 + i32.const 40 i32.add global.set $~lib/memory/__stack_pointer return diff --git a/tests/compiler/std/pointer.release.wat b/tests/compiler/std/pointer.release.wat index ab1426b762..59ac04a1e5 100644 --- a/tests/compiler/std/pointer.release.wat +++ b/tests/compiler/std/pointer.release.wat @@ -12,6 +12,9 @@ (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 $~start + call $start:std/pointer + ) (func $start:std/pointer (local $0 i32) (local $1 i32) @@ -95,10 +98,9 @@ i32.add global.set $std/pointer/one global.get $std/pointer/one - local.tee $0 global.set $std/pointer/nextOne - local.get $0 global.get $std/pointer/nextOne + global.get $std/pointer/one i32.ne if i32.const 0 @@ -367,7 +369,4 @@ unreachable end ) - (func $~start - call $start:std/pointer - ) ) diff --git a/tests/compiler/std/set.debug.wat b/tests/compiler/std/set.debug.wat index 2b9cc560d4..3f49782b9d 100644 --- a/tests/compiler/std/set.debug.wat +++ b/tests/compiler/std/set.debug.wat @@ -1647,14 +1647,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 @@ -4348,12 +4351,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/std/set.release.wat b/tests/compiler/std/set.release.wat index a6c2a1163b..e48a3d3f19 100644 --- a/tests/compiler/std/set.release.wat +++ b/tests/compiler/std/set.release.wat @@ -3,24 +3,24 @@ (type $1 (func (param i32 i32) (result i32))) (type $2 (func)) (type $3 (func (result 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 $4 (func (param i32) (result i32))) + (type $5 (func (param i32))) + (type $6 (func (param i32 i64))) + (type $7 (func (param i32 i32 i32) (result i32))) (type $8 (func (param i32 i32 i32))) (type $9 (func (param i32 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))) - (type $14 (func (param i32 f32))) - (type $15 (func (param i32 f64))) - (type $16 (func (param i32 f32 i32) (result i32))) + (type $10 (func (param i32 i64) (result i32))) + (type $11 (func (param i32 f64))) + (type $12 (func (param i32 f32))) + (type $13 (func (param i32 i64 i32) (result i32))) + (type $14 (func (param i32 i32 i64))) + (type $15 (func (param i32 i32) (result i64))) + (type $16 (func (param i32 f64) (result i32))) (type $17 (func (param i32 f32) (result i32))) - (type $18 (func (param i32 i32) (result f32))) - (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))) + (type $18 (func (param i32 f64 i32) (result i32))) + (type $19 (func (param i32 f32 i32) (result i32))) + (type $20 (func (param i32 i32) (result f64))) + (type $21 (func (param i32 i32) (result f32))) (import "env" "abort" (func $~lib/builtins/abort (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)) @@ -55,1736 +55,582 @@ (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/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1248 - call $~lib/rt/itcms/__visit - i32.const 1456 - 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 + (func $~lib/set/Set#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 1748 + i32.lt_s 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$904 - 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 34516 - 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$904 - 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 34544 + i32.const 34592 i32.const 1 - else - local.get $1 - i32.const 1648 - i32.load - i32.gt_u - if - i32.const 1248 - i32.const 1312 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.const 1652 - i32.add - i32.load - i32.const 32 - i32.and + i32.const 1 + call $~lib/builtins/abort + unreachable 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 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 + i32.store local.get $0 - i32.store offset=8 + i32.load offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/itcms/__visit (param $0 i32) - local.get $0 + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) + local.get $1 i32.eqz if return end - global.get $~lib/rt/itcms/white 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 $0 + local.tee $1 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 + 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/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 + (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 1748 + i32.lt_s if - i32.const 0 - i32.const 1392 - i32.const 270 - i32.const 14 + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 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 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.const 1073741820 + i32.gt_u if - i32.const 0 - i32.const 1392 - i32.const 284 - i32.const 14 + i32.const 1456 + i32.const 1504 + i32.const 52 + i32.const 43 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 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $2 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer 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 + global.set $~lib/memory/__stack_pointer + local.get $0 ) - (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (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 $1 - i32.eqz + local.get $0 + i32.const 1073741804 + i32.ge_u if - i32.const 0 - i32.const 1392 - i32.const 201 - i32.const 14 + i32.const 1056 + i32.const 1120 + i32.const 261 + i32.const 31 call $~lib/builtins/abort unreachable end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and + 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 - i32.const 0 + 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 203 - i32.const 14 + i32.const 461 + i32.const 29 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.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.const 1 - i32.and + i32.eqz if - local.get $0 - local.get $4 - call $~lib/rt/tlsf/removeBlock - local.get $1 - local.get $3 + 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 - i32.add - local.get $2 - i32.const -4 - i32.and - i32.add - local.tee $3 - i32.store - local.get $1 + local.get $4 + i32.load offset=1568 + memory.size + local.tee $2 + i32.const 16 + i32.shl i32.const 4 + i32.sub + i32.ne + i32.shl i32.add - local.get $1 - i32.load - i32.const -4 - i32.and + i32.const 65535 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.const -65536 i32.and + i32.const 16 + i32.shr_u + local.set $3 + local.get $2 + local.get $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 221 + i32.const 499 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 $5 local.get $2 - i32.const 2 - i32.or - i32.store - local.get $3 + i32.load i32.const -4 i32.and - local.tee $2 - i32.const 12 - i32.lt_u + i32.gt_u if i32.const 0 i32.const 1392 - i32.const 233 + i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end local.get $4 - local.get $1 - i32.const 4 - i32.add 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.ne + i32.const 15 + i32.and if i32.const 0 i32.const 1392 - i32.const 234 + i32.const 361 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 - i32.const 4 + local.get $6 + i32.const -4 + i32.and + local.get $5 i32.sub - local.get $1 - i32.store - local.get $2 - i32.const 256 - i32.lt_u - if (result i32) + 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.shr_u + 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 - i32.const 31 - i32.const 1073741820 local.get $2 + local.get $6 + i32.const -2 + i32.and + i32.store 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 + i32.const 4 + i32.add local.get $2 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $3 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 + i32.load + i32.const -3 + i32.and + i32.store 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.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 - i32.const 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 - 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 + local.get $3 i32.load offset=4 - i32.const 1 - local.get $2 - i32.shl + i32.const 3 + i32.and 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 + 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.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 + i32.add + i32.add + global.set $~lib/rt/itcms/total local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and + i32.const 20 + i32.add + local.tee $1 + i32.const 0 + local.get $0 + memory.fill local.get $1 + ) + (func $~lib/set/Set#has (param $0 i32) (param $1 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - local.tee $3 - i32.const 20 - i32.lt_u + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s if - return + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable 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 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=4 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 local.get $1 - i32.const 0 - i32.store offset=8 local.get $1 - i32.const 4 - i32.add - local.get $3 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 i32.add - local.tee $3 - i32.const 2 - i32.store + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 local.get $0 - local.get $3 - i32.store offset=1568 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $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 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + call $~lib/set/Set#find 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 + i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#has (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 1748 + i32.lt_s if + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort unreachable end - i32.const 34528 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - i32.const 36096 - i32.const 0 + global.get $~lib/memory/__stack_pointer + local.get $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 34528 - 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 34528 - 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 34528 - i32.const 36100 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34528 - 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 34516 - 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 34516 - 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 34516 - 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.set $1 - 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 $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.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 - 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 $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 - 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.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 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 $2 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.tee $2 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul 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 - local.get $2 - 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/__visit_members (param $0 i32) - (local $1 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 $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 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - 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 1748 - i32.lt_s - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - 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 - global.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 - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - 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 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~start - memory.size + 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 $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 i32.const 16 - i32.shl - i32.const 34516 - 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/set/testNumeric - call $std/set/testNumeric - call $std/set/testNumeric - call $std/set/testNumeric - call $std/set/testNumeric - call $std/set/testNumeric - call $std/set/testNumeric - call $std/set/testNumeric - call $std/set/testNumeric - call $std/set/testNumeric - global.get $~lib/rt/itcms/state + local.get $0 + i32.xor + call $~lib/set/Set#find i32.const 0 - i32.gt_s - if - loop $while-continue|0 - global.get $~lib/rt/itcms/state - 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 - 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.ne + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - global.set $~lib/rt/itcms/threshold + global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#constructor (result i32) - (local $0 i32) - (local $1 i32) + (func $~lib/set/Set#has (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -1799,81 +645,50 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 24 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $0 i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 i32.store local.get $0 local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $0 local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 local.get $0 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 local.get $0 - i32.store offset=4 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 local.get $0 + i32.const 16 + i32.shr_u + i32.xor + call $~lib/set/Set#find i32.const 0 - i32.store offset=20 + i32.ne global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/set/Set#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) + (func $~lib/set/Set#has (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1890,69 +705,52 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 - local.get $0 - i32.store - local.get $0 - i32.load - local.set $4 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 - local.get $2 local.get $0 - i32.load offset=4 + local.get $1 + local.get $1 + i32.const 65535 i32.and - i32.const 2 - i32.shl + i32.const -1028477379 + i32.mul + i32.const 374761395 i32.add - i32.load - local.set $0 - loop $while-continue|0 - local.get $0 - if - local.get $0 - i32.load offset=4 - local.tee $2 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $0 - i32.load8_u - local.get $1 - i32.const 255 - i32.and - i32.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 - end - end + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + call $~lib/set/Set#find + i32.const 0 + i32.ne global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 ) (func $~lib/set/Set#has (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1969,10 +767,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -2006,26 +803,17 @@ i32.const 16 i32.shr_u i32.xor - call $~lib/set/Set#find + call $~lib/set/Set#find i32.const 0 i32.ne - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) + (func $~lib/set/Set#has (param $0 i32) (param $1 i64) (result i32) 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 @@ -2040,181 +828,186 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i64.const 0 - i64.store offset=8 - local.get $2 - local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 + i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $5 - i32.const 3 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store local.get $0 - i32.load offset=8 - local.set $7 - global.get $~lib/memory/__stack_pointer + local.get $1 + 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 $0 + i32.const 15 + i32.shr_u local.get $0 - i32.store offset=8 - local.get $7 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u local.get $0 - i32.load offset=16 - i32.const 3 - i32.shl + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + call $~lib/set/Set#find + i32.const 0 + i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.set $4 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $4 - local.get $7 - i32.ne - if - local.get $7 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - local.get $2 - local.get $7 - i32.load8_s - local.tee $8 - i32.store8 - local.get $2 - local.get $6 - local.get $1 - local.get $8 - i32.extend8_s - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $8 - local.get $8 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $8 - local.get $8 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $8 - local.get $8 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $8 - i32.load - i32.store offset=4 - local.get $8 - local.get $2 - i32.store - local.get $2 - i32.const 8 - i32.add - local.set $2 - end - local.get $7 - i32.const 8 - i32.add - local.set $7 - br $while-continue|0 - end + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#has (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 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 - local.tee $2 - local.get $0 - i32.store offset=8 - local.get $2 - local.get $6 - i32.store offset=12 - local.get $0 - local.get $6 + i32.const 0 i32.store - local.get $0 - local.get $6 - call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store local.get $0 local.get $1 - 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 $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + call $~lib/set/Set#find + i32.const 0 + i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#has (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 - local.get $0 - i32.store offset=8 + 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 - local.get $3 - i32.store offset=12 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $3 - call $~lib/rt/itcms/__link + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - local.get $0 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer + i32.store local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer + local.get $1 + local.get $1 + i32.extend16_s + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 local.get $0 - i32.store offset=12 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer i32.const 16 + i32.shr_u + i32.xor + call $~lib/set/Set#find + i32.const 0 + i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#add (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) + (func $~lib/set/Set#has (param $0 i32) (param $1 f64) (result i32) + (local $2 i64) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -2229,173 +1022,64 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.get $1 local.get $1 - i32.extend8_s + i64.reinterpret_f64 + local.tee $2 + i32.wrap_i64 i32.const -1028477379 i32.mul - i32.const 374761394 + i32.const 374761401 i32.add i32.const 17 i32.rotl i32.const 668265263 i32.mul - local.tee $2 + local.get $2 + 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 $0 i32.const 15 i32.shr_u - local.get $2 + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $2 + local.tee $0 i32.const 13 i32.shr_u - local.get $2 + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $2 + local.tee $0 i32.const 16 i32.shr_u - local.get $2 + local.get $0 i32.xor - local.tee $4 - call $~lib/set/Set#find - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.load offset=12 - 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 - i32.load offset=20 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - 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 - i32.const 1 - i32.or - end - call $~lib/set/Set#rehash - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - local.set $3 - local.get $2 - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $5 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 - local.get $5 - i32.const 3 - i32.shl - i32.add - local.tee $3 - local.get $1 - i32.store8 - local.get $2 - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - local.get $2 - local.get $0 - i32.store - local.get $0 - i32.load - local.set $1 - local.get $2 - local.get $0 - i32.store - local.get $3 - local.get $1 - local.get $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=4 - local.get $0 - local.get $3 - i32.store - end + call $~lib/set/Set#find + i32.const 0 + i32.ne global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#get:size (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/set/Set#has (param $0 i32) (param $1 f32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2412,20 +1096,49 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 local.get $1 + 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 $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 local.get $0 - i32.store + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 local.get $0 - i32.load offset=20 - local.set $0 - local.get $1 + i32.const 16 + i32.shr_u + i32.xor + call $~lib/set/Set#find + i32.const 0 + i32.ne + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) @@ -2446,10 +1159,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i32.const 0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -2555,21 +1267,335 @@ i32.store offset=4 local.get $0 local.get $2 - call $~lib/rt/itcms/__link + 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#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 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 + 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/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/set/Set#clear (param $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 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 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 32 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 4 + 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 + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#add (param $0 i32) (param $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 + 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 + local.get $0 + local.get $1 + local.get $1 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + 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 $3 + call $~lib/set/Set#find + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + 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 + i32.load offset=20 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $2 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + 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 + i32.const 1 + i32.or + end + call $~lib/set/Set#rehash end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load 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=16 + local.tee $4 + i32.const 1 + i32.add + i32.store offset=16 + local.get $4 + i32.const 3 + i32.shl + i32.add + local.tee $2 local.get $1 - i32.store offset=8 + i32.store8 + 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=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 + local.get $1 + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=4 + local.get $0 + local.get $2 + i32.store end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/set/Set#add (param $0 i32) (param $1 i64) + (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 @@ -2584,61 +1610,182 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $3 + 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 + local.get $1 + 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 $2 + call $~lib/set/Set#find + i32.eqz if - local.get $1 - i32.const 0 - i32.lt_s + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq if - i32.const 1248 - i32.const 1616 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable + 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=20 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $3 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + 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 + i32.const 1 + i32.or + end + call $~lib/set/Set#rehash end + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 + i32.store + local.get $0 + i32.load 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=16 + local.tee $4 i32.const 1 i32.add + i32.store offset=16 + local.get $4 + i32.const 4 + i32.shl + i32.add local.tee $3 - i32.const 0 + local.get $1 + 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 $0 + local.get $0 + i32.load offset=20 i32.const 1 - call $~lib/array/ensureCapacity + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store + local.get $3 + local.get $4 + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=8 local.get $0 local.get $3 - i32.store offset=12 + i32.store end global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=4 - i32.add - local.get $2 - i32.store8 - local.get $3 - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + (func $~lib/set/Set#add (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.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -2653,112 +1800,168 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - local.get $1 - i32.const 0 - i32.const 0 - call $~lib/array/ensureCapacity + i64.const 0 + i64.store 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/array/Array#get:length (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 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 - local.tee $1 - i32.const 0 - i32.store - local.get $1 - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - local.set $0 local.get $1 - i32.const 4 + i32.const -1028477379 + i32.mul + i32.const 374761397 i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul local.tee $2 - i32.const 0 - i32.store + i32.const 15 + i32.shr_u local.get $2 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u + 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 $3 + call $~lib/set/Set#find + i32.eqz if - i32.const 1248 - i32.const 1616 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + 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 + i32.load offset=20 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $2 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + 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 + i32.const 1 + i32.or + end + call $~lib/set/Set#rehash + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load 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=16 + local.tee $4 + i32.const 1 + i32.add + i32.store offset=16 + local.get $4 + i32.const 3 + i32.shl + i32.add + local.tee $2 + local.get $1 + i32.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 $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 + local.get $1 + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=4 + local.get $0 + local.get $2 + i32.store end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=4 - i32.add - i32.load8_s - local.set $0 - local.get $2 - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) + (func $~lib/set/Set#add (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2775,809 +1978,541 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.get $1 local.get $1 - i32.extend8_s + i32.const 65535 + i32.and i32.const -1028477379 i32.mul - i32.const 374761394 + i32.const 374761395 i32.add i32.const 17 i32.rotl i32.const 668265263 i32.mul - local.tee $1 + local.tee $2 i32.const 15 i32.shr_u - local.get $1 + local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $1 + local.tee $2 i32.const 13 i32.shr_u - local.get $1 + local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $1 + local.tee $2 i32.const 16 i32.shr_u - local.get $1 + local.get $2 i32.xor - call $~lib/set/Set#find - local.tee $1 + local.tee $3 + call $~lib/set/Set#find i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - local.get $1 - local.get $1 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 - local.get $1 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $2 - local.get $1 - local.get $0 - i32.store - local.get $2 - i32.const 1 - i32.add - i32.const 4 - local.get $0 - i32.load offset=20 - local.tee $3 - local.get $3 - i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) - local.get $1 local.get $0 i32.store local.get $0 - i32.load offset=20 - local.set $3 - local.get $1 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $0 i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - else - i32.const 0 - end - if + 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 + i32.load offset=20 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $2 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + 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 + i32.const 1 + i32.or + end + call $~lib/set/Set#rehash + end global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - local.get $2 - call $~lib/set/Set#rehash - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/set/Set#clear (param $0 i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - if - i32.const 34544 - i32.const 34592 + i32.load 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=16 + local.tee $4 i32.const 1 + i32.add + i32.store offset=16 + local.get $4 + i32.const 3 + i32.shl + i32.add + local.tee $2 + local.get $1 + i32.store16 + 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=20 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - local.get $0 - i32.store - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 4 - 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 - local.get $0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=20 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 + local.get $1 + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=4 + local.get $0 + local.get $2 + i32.store + end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/set/testNumeric - (local $0 i32) - (local $1 i32) + (func $~lib/set/Set#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) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 + 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 + local.get $0 + local.get $1 + local.get $1 + i32.extend8_s + i32.const -1028477379 + i32.mul + i32.const 374761394 + 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 $3 + call $~lib/set/Set#find + i32.eqz + if global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.const 20 - memory.fill - local.get $1 - call $~lib/set/Set#constructor - local.tee $1 + local.get $0 i32.store - loop $for-loop|0 - local.get $0 - i32.const 100 - 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/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 6 - 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 $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 8 - 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 + local.get $0 + i32.load offset=16 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 100 - i32.ne + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq if - i32.const 0 - i32.const 1568 - i32.const 10 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 50 - local.set $0 - loop $for-loop|1 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 100 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=20 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $2 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s i32.lt_s - if + if (result i32) global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 14 - 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 $0 - call $~lib/set/Set#add + i32.load offset=4 + else global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + i32.store offset=4 local.get $0 + i32.load offset=4 i32.const 1 - i32.add - local.set $0 - br $for-loop|1 + i32.shl + i32.const 1 + i32.or end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $1 - i32.store offset=4 - local.get $5 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - local.get $1 - i32.store - local.get $1 - i32.load offset=8 - local.set $3 + call $~lib/set/Set#rehash + end + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 - i32.load offset=16 - local.set $4 local.get $0 + i32.load 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 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 local.get $0 - i32.const 16 - i32.const 5 - 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 - 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 + local.get $0 i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=12 - local.get $4 - i32.const 1073741820 - i32.gt_u - if - i32.const 1456 - i32.const 1616 - 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 - local.tee $0 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $4 i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 + i32.add + i32.store offset=16 + local.get $4 + i32.const 3 + i32.shl + i32.add + local.tee $2 + local.get $1 + i32.store8 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $6 - local.get $7 + local.get $0 i32.store - local.get $6 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $7 - i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 i32.store offset=4 - local.get $6 - local.get $4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $2 - local.get $4 - i32.lt_s - if - local.get $3 - local.get $2 - i32.const 3 - i32.shl - i32.add - local.tee $7 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - local.get $7 - i32.load8_s - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|00 - end - end + i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.store - local.get $6 local.get $0 - call $~lib/array/Array#set:length + i32.load + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $0 + i32.store + local.get $2 + local.get $1 + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - local.get $6 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor local.tee $0 - i32.store offset=12 - i32.const 0 - local.set $2 - loop $for-loop|2 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/array/Array#get:length - local.get $2 - i32.gt_s - if - 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=16 - local.get $1 - local.get $6 - local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 24 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store offset=4 - local.get $3 - local.get $6 - i32.store offset=16 - local.get $0 - local.get $6 - local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#add - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|2 - end - end + i32.load + i32.store offset=4 + local.get $0 + local.get $2 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#add (param $0 i32) (param $1 i64) + (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 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 + local.get $0 + local.get $1 + 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 $2 + call $~lib/set/Set#find + i32.eqz + if global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store local.get $0 - call $~lib/set/Set#get:size - local.set $0 + i32.load offset=16 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size local.get $0 - i32.ne + i32.store + local.get $0 + i32.load offset=12 + i32.eq if - i32.const 0 - i32.const 1568 - i32.const 27 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|3 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 50 - 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/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - 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 $0 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 33 - 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 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 35 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|4 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 50 + i32.store offset=4 + local.get $0 + i32.load offset=20 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $3 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s 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/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 39 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + if (result i32) global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 local.get $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 i32.store offset=4 - local.get $1 local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + i32.load offset=4 + else global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 local.get $0 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer - local.get $1 i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 43 - i32.const 5 - call $~lib/builtins/abort - unreachable - end local.get $0 + i32.load offset=4 i32.const 1 - i32.add - local.set $0 - br $for-loop|4 + i32.shl + i32.const 1 + i32.or end + call $~lib/set/Set#rehash end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 45 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + local.get $0 + i32.store + local.get $0 + i32.load offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 + 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 + local.tee $4 + i32.const 1 + i32.add + i32.store offset=16 + local.get $4 + i32.const 4 + i32.shl + i32.add + local.tee $3 local.get $1 - call $~lib/set/Set#clear + i64.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - if - i32.const 0 - i32.const 1568 - i32.const 49 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 global.get $~lib/memory/__stack_pointer - i32.const 20 + local.get $0 + i32.store + local.get $0 + i32.load + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $4 + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - return + local.tee $0 + i32.load + i32.store offset=8 + local.get $0 + local.get $3 + i32.store end - i32.const 34544 - i32.const 34592 - 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 ) - (func $~lib/set/Set#constructor (result i32) - (local $0 i32) - (local $1 i32) + (func $~lib/set/Set#add (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -3592,82 +2527,170 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 24 - 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 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 - local.get $1 i32.store local.get $0 local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $0 local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=20 + 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 $3 + call $~lib/set/Set#find + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + 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 + i32.load offset=20 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $2 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + 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 + i32.const 1 + i32.or + end + call $~lib/set/Set#rehash + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load 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=16 + local.tee $4 + i32.const 1 + i32.add + i32.store offset=16 + local.get $4 + i32.const 3 + i32.shl + i32.add + local.tee $2 + local.get $1 + i32.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 $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 + local.get $1 + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=4 + local.get $0 + local.get $2 + i32.store + end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/set/Set#has (param $0 i32) (param $1 i32) (result i32) + (func $~lib/set/Set#add (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.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -3682,250 +2705,362 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.get $1 local.get $1 - i32.const 255 - i32.and + i32.extend16_s i32.const -1028477379 i32.mul - i32.const 374761394 + i32.const 374761395 i32.add i32.const 17 i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $2 i32.const 15 i32.shr_u + local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $2 i32.const 13 i32.shr_u + local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $2 i32.const 16 i32.shr_u - i32.xor - call $~lib/set/Set#find - i32.const 0 - i32.ne - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - 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 - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i64.const 0 - i64.store offset=8 - local.get $2 - local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $5 - i32.const 3 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor + i32.xor local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $7 - local.get $0 - i32.load offset=16 - i32.const 3 - i32.shl - i32.add - local.set $4 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $4 - local.get $7 - i32.ne + call $~lib/set/Set#find + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq if - local.get $7 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - local.get $2 - local.get $7 - i32.load8_u - local.tee $8 - i32.store8 - local.get $2 - local.get $6 - local.get $1 - local.get $8 - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $8 - local.get $8 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $8 - local.get $8 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $8 - local.get $8 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $8 - i32.load + 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=20 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $2 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=4 - local.get $8 - local.get $2 - i32.store - local.get $2 - i32.const 8 - i32.add - local.set $2 + local.get $0 + i32.load offset=4 + else + 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 + i32.const 1 + i32.or end - local.get $7 - i32.const 8 - i32.add - local.set $7 - br $while-continue|0 + call $~lib/set/Set#rehash end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load 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=16 + local.tee $4 + i32.const 1 + i32.add + i32.store offset=16 + local.get $4 + i32.const 3 + i32.shl + i32.add + local.tee $2 + local.get $1 + i32.store16 + 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=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 + local.get $1 + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=4 + local.get $0 + local.get $2 + i32.store end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store offset=8 - local.get $2 - local.get $6 - i32.store offset=12 - local.get $0 - local.get $6 - i32.store - local.get $0 - local.get $6 - call $~lib/rt/itcms/__link + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#add (param $0 i32) (param $1 f64) + (local $2 i64) + (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 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 offset=8 + i32.store local.get $0 local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer + local.get $1 + i64.reinterpret_f64 + local.tee $2 + 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 $2 + 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.store offset=12 - local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u local.get $3 - i32.store offset=8 - local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u local.get $3 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 + i32.xor + local.tee $3 + call $~lib/set/Set#find + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + 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 + i32.load offset=20 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $4 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + 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 + i32.const 1 + i32.or + end + call $~lib/set/Set#rehash + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load 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=16 + local.tee $5 + i32.const 1 + i32.add + i32.store offset=16 + local.get $5 + i32.const 4 + i32.shl + i32.add + local.tee $4 + local.get $1 + f64.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 $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $4 + local.get $5 + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=8 + local.get $0 + local.get $4 + i32.store + end global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#add (param $0 i32) (param $1 i32) + (func $~lib/set/Set#add (param $0 i32) (param $1 f32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3942,20 +3077,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.get $1 local.get $1 - i32.const 255 - i32.and + i32.reinterpret_f32 i32.const -1028477379 i32.mul - i32.const 374761394 + i32.const 374761397 i32.add i32.const 17 i32.rotl @@ -3980,8 +3113,8 @@ i32.shr_u local.get $2 i32.xor - local.tee $4 - call $~lib/set/Set#find + local.tee $2 + call $~lib/set/Set#find i32.eqz if global.get $~lib/memory/__stack_pointer @@ -3989,11 +3122,9 @@ i32.store local.get $0 i32.load offset=16 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 local.get $0 i32.load offset=12 i32.eq @@ -4006,12 +3137,12 @@ i32.store offset=4 local.get $0 i32.load offset=20 - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - local.get $2 + local.get $3 local.get $0 i32.load offset=12 i32.const 3 @@ -4036,40 +3167,37 @@ i32.const 1 i32.or end - call $~lib/set/Set#rehash + call $~lib/set/Set#rehash end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $0 i32.load offset=8 - local.set $3 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 local.get $0 i32.load offset=16 - local.tee $5 + local.tee $4 i32.const 1 i32.add i32.store offset=16 - local.get $3 - local.get $5 + local.get $4 i32.const 3 i32.shl i32.add local.tee $3 local.get $1 - i32.store8 - local.get $2 + f32.store + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -4078,18 +3206,18 @@ i32.const 1 i32.add i32.store offset=20 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load - local.set $1 - local.get $2 + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $3 - local.get $1 local.get $4 + local.get $2 local.get $0 i32.load offset=4 i32.and @@ -4101,808 +3229,651 @@ i32.store offset=4 local.get $0 local.get $3 - i32.store - end - 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) - (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 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 - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1616 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=4 - i32.add - i32.load8_u - local.set $0 - local.get $2 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/set/Set#delete (param $0 i32) (param $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 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 - local.tee $2 - i64.const 0 - i64.store - local.get $2 - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - i32.const 15 - i32.shr_u - local.get $1 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - i32.const 13 - i32.shr_u - local.get $1 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - i32.const 16 - i32.shr_u - local.get $1 - i32.xor - call $~lib/set/Set#find - local.tee $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - local.get $1 - local.get $1 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 - local.get $1 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $2 - local.get $1 - local.get $0 - i32.store - local.get $2 - i32.const 1 - i32.add - i32.const 4 - local.get $0 - i32.load offset=20 - local.tee $3 - local.get $3 - i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) - local.get $1 - local.get $0 - i32.store - local.get $0 - i32.load offset=20 - local.set $3 - local.get $1 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - else - i32.const 0 - end - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $2 - call $~lib/set/Set#rehash + i32.store end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/set/testNumeric + (func $~lib/rt/itcms/step (result i32) (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.const 20 - memory.fill - local.get $1 - call $~lib/set/Set#constructor - local.tee $1 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 100 - i32.lt_u - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable + 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 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + 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 - call $~lib/set/Set#has - i32.eqz + global.get $~lib/rt/itcms/toSpace + i32.ne if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable + 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 $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/set/Set#get:size - 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 50 - local.set $0 - loop $for-loop|1 - local.get $0 - i32.const 100 - i32.lt_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 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 14 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 34516 + 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/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + 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 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + global.set $~lib/rt/itcms/toSpace local.get $1 + global.set $~lib/rt/itcms/white local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|1 + 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/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 100 + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1568 - i32.const 18 + 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 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $1 - i32.store offset=4 - local.get $5 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - local.get $1 - i32.store - local.get $1 - i32.load offset=8 - local.set $3 - local.get $0 - local.get $1 - i32.store - local.get $1 - i32.load offset=16 - local.set $4 - local.get $0 - 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 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 16 - i32.const 7 - 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 - 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 $4 - i32.const 1073741820 - i32.gt_u - if - i32.const 1456 - i32.const 1616 - 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 - local.tee $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $6 - local.get $7 - i32.store - local.get $6 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - 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 - i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $2 - local.get $4 - i32.lt_s + i32.and + i32.ne if - local.get $3 - local.get $2 - i32.const 3 - i32.shl - i32.add - local.tee $7 - i32.load offset=4 - i32.const 1 + i32.const 0 + i32.const 1120 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34516 + 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.eqz + 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 34516 + i32.ge_u if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 + 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.get $7 - i32.load8_u - call $~lib/array/Array#__set + i32.const 4 + i32.sub + local.set $2 local.get $0 + i32.const 15 + i32.and i32.const 1 - i32.add - local.set $0 + 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 - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|00 end + i32.const 10 + return 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 $5 - local.get $6 + 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 - global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor - local.tee $0 - i32.store offset=12 i32.const 0 - local.set $2 - loop $for-loop|2 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/array/Array#get:length - local.get $2 - i32.gt_s - if - 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=16 + global.set $~lib/rt/itcms/state + end + i32.const 0 + ) + (func $~lib/set/Set#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 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 + 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 + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + loop $while-continue|0 + local.get $0 + if + local.get $0 + i32.load offset=4 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $0 + i32.load8_u local.get $1 - local.get $6 - local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 24 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + i32.const 255 + i32.and + i32.eq + end + if global.get $~lib/memory/__stack_pointer - local.tee $3 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 - local.get $3 - local.get $6 - i32.store offset=16 + return + end + local.get $2 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (func $~lib/set/Set#find (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 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 + 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 + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + loop $while-continue|0 + local.get $0 + if + local.get $0 + i32.load offset=8 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 local.get $0 - local.get $6 - local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#add - local.get $2 - i32.const 1 + i64.load + i64.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.set $2 - br $for-loop|2 + global.set $~lib/memory/__stack_pointer + local.get $0 + return end + local.get $2 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/set/Set#get:size - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (func $~lib/set/Set#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 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 + 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 + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + loop $while-continue|0 local.get $0 - i32.ne if - i32.const 0 - i32.const 1568 - i32.const 27 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|3 local.get $0 - i32.const 50 - i32.lt_u - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + i32.load offset=4 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else local.get $1 local.get $0 - call $~lib/set/Set#delete + i32.load + i32.eq + end + if global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 33 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 + i32.const 4 i32.add - local.set $0 - br $for-loop|3 + global.set $~lib/memory/__stack_pointer + local.get $0 + return end + local.get $2 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 50 - i32.ne + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (func $~lib/set/Set#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 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 + 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 + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + loop $while-continue|0 + local.get $0 if - i32.const 0 - i32.const 1568 - i32.const 35 - i32.const 3 - call $~lib/builtins/abort - unreachable - 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 $1 - i32.store offset=4 - local.get $1 + i32.load offset=4 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 39 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + i32.load16_u local.get $1 - local.get $0 - call $~lib/set/Set#add + i32.const 65535 + i32.and + i32.eq + end + if global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + return + end + local.get $2 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (func $~lib/set/Set#find (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 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 + 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 + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + loop $while-continue|0 + local.get $0 + if + local.get $0 + i32.load offset=8 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else local.get $1 local.get $0 - call $~lib/set/Set#delete + i64.load + i64.eq + end + if global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 43 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 + i32.const 4 i32.add - local.set $0 - br $for-loop|4 + global.set $~lib/memory/__stack_pointer + local.get $0 + return end + local.get $2 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 45 - 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/set/Set#clear - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - if - i32.const 0 - i32.const 1568 - i32.const 49 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - return end - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 ) - (func $~lib/set/Set#constructor (result i32) - (local $0 i32) + (func $~lib/set/Set#clear (param $0 i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -4917,27 +3888,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 24 - 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 + i32.store i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $0 local.get $1 i32.store @@ -4946,19 +3907,19 @@ call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store local.get $0 i32.const 3 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 - i32.const 32 + i32.store + i32.const 64 call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $0 local.get $1 i32.store offset=8 @@ -4967,31 +3928,29 @@ call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store local.get $0 i32.const 4 i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store local.get $0 i32.const 0 i32.store offset=16 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store local.get $0 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/set/Set#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/set/Set#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -5008,19 +3967,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load - local.set $4 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 local.get $2 local.get $0 i32.load offset=4 @@ -5041,11 +3997,9 @@ if (result i32) i32.const 0 else - local.get $0 - i32.load16_u local.get $1 - i32.const 65535 - i32.and + local.get $0 + i32.load i32.eq end if @@ -5069,8 +4023,8 @@ global.set $~lib/memory/__stack_pointer i32.const 0 ) - (func $~lib/set/Set#has (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/set/Set#find (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -5087,63 +4041,66 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - local.get $1 - local.get $1 - i32.extend16_s - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 + i32.load + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 + i32.store + local.get $2 local.get $0 - i32.const 16 - i32.shr_u - i32.xor - call $~lib/set/Set#find - i32.const 0 - i32.ne + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load local.set $0 + loop $while-continue|0 + local.get $0 + if + local.get $0 + i32.load offset=8 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + local.get $0 + f64.load + f64.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + local.get $2 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0 + end + end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 ) - (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/set/Set#find (param $0 i32) (param $1 f32) (param $2 i32) (result 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.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -5152,1267 +4109,1077 @@ 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 - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i64.const 0 - i64.store offset=8 - local.get $2 - local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $5 - i32.const 3 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 + 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 offset=8 + i32.store local.get $0 - i32.load offset=8 - local.set $7 + i32.load global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - local.get $7 + i32.store + local.get $2 local.get $0 - i32.load offset=16 - i32.const 3 + i32.load offset=4 + i32.and + i32.const 2 i32.shl i32.add - local.set $4 - local.get $3 - local.set $2 + i32.load + local.set $0 loop $while-continue|0 - local.get $4 - local.get $7 - i32.ne + local.get $0 if - local.get $7 + local.get $0 i32.load offset=4 + local.tee $2 i32.const 1 i32.and - i32.eqz - if - local.get $2 - local.get $7 - i32.load16_s - local.tee $8 - i32.store16 - local.get $2 - local.get $6 + if (result i32) + i32.const 0 + else local.get $1 - local.get $8 - i32.extend16_s - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $8 - local.get $8 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $8 - local.get $8 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $8 - local.get $8 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $8 - i32.load - i32.store offset=4 - local.get $8 - local.get $2 - i32.store - local.get $2 - i32.const 8 + local.get $0 + f32.load + f32.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.set $2 + global.set $~lib/memory/__stack_pointer + local.get $0 + return end - local.get $7 - i32.const 8 - i32.add - local.set $7 + local.get $2 + i32.const -2 + i32.and + local.set $0 br $while-continue|0 end end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store offset=8 - local.get $2 - local.get $6 - i32.store offset=12 - local.get $0 - local.get $6 - i32.store - local.get $0 - local.get $6 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (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.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $0 + 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.store offset=8 - local.get $0 + 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 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 + 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 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 + if + local.get $5 + local.get $4 + i32.store offset=4 + end + local.get $1 local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 + local.get $2 + i32.const 4 + i32.shl + local.get $3 i32.add - global.set $~lib/memory/__stack_pointer + 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/set/Set#add (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $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 1748 - i32.lt_s + (local $6 i32) + local.get $1 + i32.eqz if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 + 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 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - local.get $0 - i32.store - local.get $0 local.get $1 + i32.const 4 + i32.add local.get $1 - i32.extend16_s - i32.const -1028477379 - i32.mul - i32.const 374761395 + i32.load + i32.const -4 + i32.and 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 - call $~lib/set/Set#find - i32.eqz + i32.load + local.tee $2 + i32.const 1 + i32.and if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.load offset=12 - 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 - i32.load offset=20 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - 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 - i32.const 1 - i32.or - end - call $~lib/set/Set#rehash - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - local.set $3 - local.get $2 - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.store offset=4 - local.get $0 local.get $0 - i32.load offset=16 - local.tee $5 - i32.const 1 - i32.add - i32.store offset=16 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 local.get $3 - local.get $5 - i32.const 3 - i32.shl + i32.const 4 i32.add - local.tee $3 - local.get $1 - i32.store16 - local.get $2 - local.get $0 - i32.store local.get $2 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 + i32.const -4 + i32.and i32.add - i32.store offset=20 - local.get $2 - local.get $0 - i32.store - local.get $0 - i32.load - local.set $1 - local.get $2 - local.get $0 + local.tee $3 i32.store - local.get $3 local.get $1 - local.get $4 - local.get $0 - i32.load offset=4 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 i32.and - i32.const 2 - i32.shl i32.add - local.tee $0 + local.tee $4 i32.load - i32.store offset=4 - local.get $0 - local.get $3 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - 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 1748 - i32.lt_s - if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.set $2 end - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store local.get $3 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u + i32.const 2 + i32.and if local.get $1 - i32.const 0 - i32.lt_s + 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 1248 - i32.const 1616 - i32.const 130 - i32.const 22 + i32.const 0 + i32.const 1392 + i32.const 221 + i32.const 16 call $~lib/builtins/abort unreachable end local.get $0 local.get $1 - i32.const 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.const 1 - 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.tee $3 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 1 - i32.shl - i32.add + local.get $4 local.get $2 - i32.store16 + i32.const 2 + i32.or + i32.store local.get $3 - 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 1748 - i32.lt_s + i32.const -4 + i32.and + local.tee $2 + i32.const 12 + i32.lt_u if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1392 + i32.const 233 + i32.const 14 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 1 - i32.const 0 - call $~lib/array/ensureCapacity - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 + local.get $4 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/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s + local.get $2 + i32.add + i32.ne if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1392 + i32.const 234 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 + local.get $4 + i32.const 4 + i32.sub + local.get $1 i32.store local.get $2 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u + 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 1248 - i32.const 1616 - i32.const 114 - i32.const 42 + i32.const 0 + i32.const 1392 + i32.const 251 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store local.get $0 - i32.load offset=4 - local.get $1 - i32.const 1 + local.get $5 + i32.const 4 i32.shl - i32.add - i32.load16_s - local.set $0 local.get $2 - i32.const 4 i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/set/Set#delete (param $0 i32) (param $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 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 - local.tee $2 - i64.const 0 - i64.store - local.get $2 - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.extend16_s - i32.const -1028477379 - i32.mul - i32.const 374761395 + i32.const 2 + i32.shl i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - i32.const 15 - i32.shr_u - local.get $1 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - i32.const 13 - i32.shr_u + i32.load offset=96 + local.set $3 local.get $1 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - i32.const 16 - i32.shr_u + i32.const 0 + i32.store offset=4 local.get $1 - i32.xor - call $~lib/set/Set#find - local.tee $1 - i32.eqz + local.get $3 + i32.store offset=8 + local.get $3 if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return + local.get $3 + local.get $1 + i32.store offset=4 end - local.get $1 - local.get $1 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 - i32.store + local.get $5 + i32.const 4 + i32.shl + local.get $2 + i32.add + i32.const 2 + i32.shl + i32.add local.get $1 - local.get $0 - i32.store offset=4 + i32.store offset=96 local.get $0 local.get $0 - i32.load offset=20 + i32.load i32.const 1 - i32.sub - i32.store offset=20 - local.get $1 - local.get $0 + 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 - i32.shr_u - local.set $2 - local.get $1 - local.get $0 - i32.store local.get $2 - i32.const 1 - i32.add - i32.const 4 - local.get $0 - i32.load offset=20 - local.tee $3 - local.get $3 - i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) - local.get $1 - local.get $0 - i32.store - local.get $0 - i32.load offset=20 - local.set $3 - local.get $1 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - else - i32.const 0 - end - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $2 - call $~lib/set/Set#rehash - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + i32.shl + i32.or + i32.store offset=4 ) - (func $std/set/testNumeric - (local $0 i32) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.const 20 - memory.fill - local.get $1 - call $~lib/set/Set#constructor + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 local.tee $1 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 100 - 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/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 6 - 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 $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 8 - 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 $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 100 - i32.ne + i32.eqz if i32.const 0 - i32.const 1568 - i32.const 10 - i32.const 3 + i32.const 1120 + i32.const 148 + i32.const 30 call $~lib/builtins/abort unreachable end - i32.const 50 - local.set $0 - loop $for-loop|1 + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$904 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if local.get $0 - i32.const 100 - 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/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 14 - 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 $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|1 + i32.load offset=8 + i32.eqz + local.get $0 + i32.const 34516 + 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$904 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 100 - i32.ne + local.get $0 + i32.load offset=8 + local.tee $2 + i32.eqz if i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 3 + i32.const 1120 + i32.const 132 + i32.const 16 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $1 - i32.store offset=4 - local.get $5 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - local.get $1 - i32.store - local.get $1 - i32.load offset=8 - local.set $3 - local.get $0 - local.get $1 - i32.store local.get $1 - i32.load offset=16 - local.set $4 - local.get $0 - 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 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 16 - i32.const 9 - 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 - 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 + local.get $2 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $2 + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=12 - local.get $4 - i32.const 536870910 + 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 1648 + i32.load i32.gt_u if - i32.const 1456 - i32.const 1616 - i32.const 70 - i32.const 60 + i32.const 1248 + i32.const 1312 + i32.const 21 + i32.const 28 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 1 + local.get $1 + i32.const 2 i32.shl - local.tee $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $6 - local.get $7 - i32.store - local.get $6 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 1652 i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $2 - local.get $4 - i32.lt_s - if - local.get $3 - local.get $2 - i32.const 3 - i32.shl - i32.add - local.tee $7 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - local.get $7 - i32.load16_s - call $~lib/array/Array#__set + 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/__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 $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.const 1 - i32.add - local.set $0 + i32.load + call $~lib/rt/itcms/__visit + return end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|00 + 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 1748 + 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 + 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 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 + i32.const 4 + i32.sub global.set $~lib/memory/__stack_pointer - local.get $5 - local.get $6 - i32.store offset=8 global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor - local.tee $0 - i32.store offset=12 + i32.const 1748 + i32.lt_s + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer i32.const 0 - local.set $2 - loop $for-loop|2 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/array/Array#get:length - local.get $2 - i32.gt_s - if - 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=16 - local.get $1 - local.get $6 - local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 24 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store offset=4 - local.get $3 - local.get $6 - i32.store offset=16 - local.get $0 - local.get $6 - local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#add - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|2 - end - end + i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store local.get $0 - call $~lib/set/Set#get:size - local.set $0 + i32.load + call $~lib/rt/itcms/__visit global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - local.get $0 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (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 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 + 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/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 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 + 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/set/Set#rehash (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + 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 + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $6 + i32.const 3 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $4 + local.get $0 + i32.load offset=16 + i32.const 3 + i32.shl + i32.add + local.set $7 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $4 + local.get $7 i32.ne if - i32.const 0 - i32.const 1568 - i32.const 27 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|3 - local.get $0 - i32.const 50 - i32.lt_s + local.get $4 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - 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 $0 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + local.get $2 + local.get $4 + i32.load8_u + local.tee $8 + i32.store8 + local.get $2 + local.get $5 local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 33 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 + local.get $8 + i32.const -1028477379 + i32.mul + i32.const 374761394 i32.add - local.set $0 - br $for-loop|3 - end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 35 - i32.const 3 - call $~lib/builtins/abort - unreachable - 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 $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 39 - 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 $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - 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 $0 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $8 + local.get $8 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $8 + local.get $8 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $8 + local.get $8 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $8 + i32.load i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 43 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 + local.get $8 + local.get $2 + i32.store + local.get $2 + i32.const 8 i32.add - local.set $0 - br $for-loop|4 + local.set $2 end + local.get $4 + i32.const 8 + i32.add + local.set $4 + br $while-continue|0 end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $0 + local.get $5 + i32.store + local.get $0 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $6 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#delete (param $0 i32) (param $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 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 + local.get $0 + local.get $1 + local.get $1 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + call $~lib/set/Set#find + local.tee $1 + i32.eqz + if global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 45 - 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/set/Set#clear - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - if - i32.const 0 - i32.const 1568 - i32.const 49 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer return end - i32.const 34544 - i32.const 34592 + local.get $1 + local.get $1 + i32.load offset=4 + i32.const 1 + i32.or + i32.store offset=4 + 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=20 i32.const 1 + i32.sub + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 i32.const 1 - call $~lib/builtins/abort - unreachable + i32.shr_u + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.const 1 + i32.add + i32.const 4 + local.get $0 + i32.load offset=20 + local.tee $2 + local.get $2 + i32.const 4 + i32.lt_u + select + i32.ge_u + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $~lib/set/Set#rehash + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#constructor (result i32) + (func $~lib/set/Set#constructor (result i32) (local $0 i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -6431,15 +5198,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 24 - i32.const 10 + i32.const 6 call $~lib/rt/itcms/__new local.tee $0 i32.store @@ -6503,80 +5269,15 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/set/Set#has (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor - call $~lib/set/Set#find - i32.const 0 - i32.ne - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) + (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) + (local $6 i64) (local $7 i32) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -6593,13 +5294,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.const 1 i32.add @@ -6607,7 +5307,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 + local.tee $5 i32.store global.get $~lib/memory/__stack_pointer local.get $2 @@ -6615,8 +5315,8 @@ i32.shl i32.const 3 i32.div_s - local.tee $5 - i32.const 3 + local.tee $7 + i32.const 4 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $3 @@ -6626,100 +5326,111 @@ i32.store offset=8 local.get $0 i32.load offset=8 - local.set $7 + local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - local.get $7 + local.get $4 local.get $0 i32.load offset=16 - i32.const 3 + i32.const 4 i32.shl i32.add - local.set $4 + local.set $8 local.get $3 local.set $2 loop $while-continue|0 local.get $4 - local.get $7 + local.get $8 i32.ne if - local.get $7 - i32.load offset=4 + local.get $4 + i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $7 - i32.load16_u - local.tee $8 - i32.store16 + local.get $4 + i64.load + local.tee $6 + i64.store local.get $2 - local.get $6 + local.get $5 local.get $1 - local.get $8 + local.get $6 + i32.wrap_i64 i32.const -1028477379 i32.mul - i32.const 374761395 + i32.const 374761401 i32.add i32.const 17 i32.rotl i32.const 668265263 i32.mul - local.tee $8 - local.get $8 + local.get $6 + 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 $9 i32.const 15 i32.shr_u + local.get $9 i32.xor i32.const -2048144777 i32.mul - local.tee $8 - local.get $8 + local.tee $9 i32.const 13 i32.shr_u + local.get $9 i32.xor i32.const -1028477379 i32.mul - local.tee $8 - local.get $8 + local.tee $9 i32.const 16 i32.shr_u + local.get $9 i32.xor i32.and i32.const 2 i32.shl i32.add - local.tee $8 + local.tee $9 i32.load - i32.store offset=4 - local.get $8 + i32.store offset=8 + local.get $9 local.get $2 i32.store local.get $2 - i32.const 8 + i32.const 16 i32.add local.set $2 end - local.get $7 - i32.const 8 + local.get $4 + i32.const 16 i32.add - local.set $7 + local.set $4 br $while-continue|0 end end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=8 - local.get $2 - local.get $6 + global.get $~lib/memory/__stack_pointer + local.get $5 i32.store offset=12 local.get $0 - local.get $6 + local.get $5 i32.store local.get $0 - local.get $6 + local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 @@ -6743,7 +5454,7 @@ local.get $0 i32.store offset=8 local.get $0 - local.get $5 + local.get $7 i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $0 @@ -6760,11 +5471,9 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#add (param $0 i32) (param $1 i32) + (func $~lib/set/Set#delete (param $0 i32) (param $1 i64) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -6781,20 +5490,29 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.get $1 local.get $1 - i32.const 65535 - i32.and + 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.const 374761395 i32.add i32.const 17 i32.rotl @@ -6819,138 +5537,94 @@ i32.shr_u local.get $2 i32.xor - local.tee $4 - call $~lib/set/Set#find + call $~lib/set/Set#find + local.tee $2 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - local.set $2 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + local.get $2 + local.get $2 + i32.load offset=8 + i32.const 1 + i32.or + 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=20 + i32.const 1 + i32.sub + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 + i32.const 1 + i32.add + i32.const 4 + local.get $0 + i32.load offset=20 + local.tee $3 + local.get $3 + i32.const 4 + i32.lt_u + select + i32.ge_u + if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 local.get $0 - i32.load offset=12 - 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 - i32.load offset=20 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - 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 - i32.const 1 - i32.or - end - call $~lib/set/Set#rehash - end + i32.load offset=20 global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - local.set $3 - local.get $2 local.get $0 i32.store - local.get $2 - local.get $0 - i32.store offset=4 local.get $0 - local.get $0 - i32.load offset=16 - local.tee $5 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 - local.get $5 + i32.load offset=12 i32.const 3 - i32.shl - i32.add - local.tee $3 - local.get $1 - i32.store16 - local.get $2 - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - local.get $2 - local.get $0 - i32.store - local.get $0 - i32.load - local.set $1 - local.get $2 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 - local.get $1 - local.get $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=4 local.get $0 - local.get $3 - i32.store + local.get $2 + call $~lib/set/Set#rehash end 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) - (local $2 i32) + (func $~lib/set/Set#constructor (result i32) + (local $0 i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -6965,47 +5639,87 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + 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 24 + i32.const 18 + call $~lib/rt/itcms/__new + local.tee $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 local.get $0 + local.get $1 i32.store + local.get $0 local.get $1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1616 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end + i32.store offset=4 + local.get $0 + i32.const 3 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 - i32.store + i32.store offset=4 + i32.const 64 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 local.get $0 - i32.load offset=4 local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $0 - local.get $2 + i32.store offset=8 + local.get $0 + local.get $1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 4 + 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) + (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -7020,728 +5734,1141 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 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 $1 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store + global.get $~lib/memory/__stack_pointer local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $6 + i32.const 3 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=8 local.get $0 - local.get $1 - local.get $1 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 + i32.load offset=8 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $4 + local.get $0 + i32.load offset=16 + i32.const 3 + i32.shl i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - i32.const 15 - i32.shr_u - local.get $1 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - i32.const 13 - i32.shr_u - local.get $1 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - i32.const 16 - i32.shr_u - local.get $1 - i32.xor - call $~lib/set/Set#find - local.tee $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return + local.set $7 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $4 + local.get $7 + i32.ne + if + local.get $4 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $2 + local.get $4 + i32.load + local.tee $8 + i32.store + local.get $2 + local.get $5 + local.get $1 + local.get $8 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $8 + local.get $8 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $8 + local.get $8 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $8 + local.get $8 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $8 + i32.load + i32.store offset=4 + local.get $8 + local.get $2 + i32.store + local.get $2 + i32.const 8 + i32.add + local.set $2 + end + local.get $4 + i32.const 8 + i32.add + local.set $4 + br $while-continue|0 + end end - local.get $1 - local.get $1 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $0 + local.get $5 i32.store - local.get $1 local.get $0 - i32.store offset=4 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store offset=8 local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $2 - local.get $1 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $6 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 local.get $0 - i32.store - local.get $2 - i32.const 1 - i32.add - i32.const 4 local.get $0 i32.load offset=20 - local.tee $3 - local.get $3 - i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) - local.get $1 - local.get $0 - i32.store - local.get $0 - i32.load offset=20 - local.set $3 - local.get $1 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - else - i32.const 0 - end - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $2 - call $~lib/set/Set#rehash - end + i32.store offset=16 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/set/testNumeric - (local $0 i32) - (local $1 i32) + (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.const 20 - memory.fill - local.get $1 - call $~lib/set/Set#constructor - local.tee $1 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 100 - i32.lt_u - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 6 - 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 $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 8 - 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 $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - 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 50 - 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 $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 14 - 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 $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 16 - 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 $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + 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 + local.get $0 + local.get $1 + 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 $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + call $~lib/set/Set#find + local.tee $1 + i32.eqz + if global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $1 - i32.store offset=4 - local.get $5 i32.const 8 - i32.sub + i32.add global.set $~lib/memory/__stack_pointer + return + end + local.get $1 + local.get $1 + i32.load offset=4 + i32.const 1 + i32.or + i32.store offset=4 + 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=20 + i32.const 1 + i32.sub + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.const 1 + i32.add + i32.const 4 + local.get $0 + i32.load offset=20 + local.tee $2 + local.get $2 + i32.const 4 + i32.lt_u + select + i32.ge_u + if (result i32) global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store local.get $0 - local.get $1 i32.store - local.get $1 - i32.load offset=8 - local.set $3 local.get $0 - local.get $1 + i32.load offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $1 - i32.load offset=16 - local.set $4 local.get $0 - 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 1748 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s i32.lt_s - br_if $folding-inner1 + else + i32.const 0 + end + if global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 local.get $0 - 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 - 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 $4 - i32.const 536870910 - i32.gt_u - if - i32.const 1456 - i32.const 1616 - 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 + local.get $0 + local.get $1 + call $~lib/set/Set#rehash + end + 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) + (local $1 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 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 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + 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 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 32 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + 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.shl - local.tee $0 i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $6 - local.get $7 - i32.store - local.get $6 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 + 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 + local.get $1 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $6 + i32.const 3 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $4 + local.get $0 + i32.load offset=16 + i32.const 3 + i32.shl + i32.add + local.set $7 + local.get $3 + local.set $2 + loop $while-continue|0 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 - i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $2 + local.get $7 + i32.ne + if local.get $4 - i32.lt_s + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz if - local.get $3 local.get $2 - i32.const 3 - i32.shl - i32.add - local.tee $7 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - local.get $7 - i32.load16_u - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - end + local.get $4 + i32.load16_u + local.tee $8 + i32.store16 local.get $2 - i32.const 1 - i32.add - local.set $2 - 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 $5 - local.get $6 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor - local.tee $0 - i32.store offset=12 - i32.const 0 - local.set $2 - loop $for-loop|2 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/array/Array#get:length - local.get $2 - i32.gt_s - if - 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=16 + local.get $5 local.get $1 - local.get $6 - local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 24 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 + local.get $8 + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $8 + local.get $8 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $8 + local.get $8 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $8 + local.get $8 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $8 + i32.load i32.store offset=4 - local.get $3 - local.get $6 - i32.store offset=16 - local.get $0 - local.get $6 + local.get $8 local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#add + i32.store local.get $2 - i32.const 1 + i32.const 8 i32.add local.set $2 - br $for-loop|2 end + local.get $4 + i32.const 8 + i32.add + local.set $4 + br $while-continue|0 end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $0 + local.get $5 + i32.store + local.get $0 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $6 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#delete (param $0 i32) (param $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 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 + local.get $0 + local.get $1 + local.get $1 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + call $~lib/set/Set#find + local.tee $1 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + local.get $1 + local.get $1 + i32.load offset=4 + i32.const 1 + i32.or + i32.store offset=4 + 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=20 + i32.const 1 + i32.sub + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.const 1 + i32.add + i32.const 4 + local.get $0 + i32.load offset=20 + local.tee $2 + local.get $2 + i32.const 4 + i32.lt_u + select + i32.ge_u + if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store local.get $0 - call $~lib/set/Set#get:size - local.set $0 + i32.load offset=20 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size local.get $0 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 27 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|3 - local.get $0 - i32.const 50 - i32.lt_u - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - 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 $0 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 33 - 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.store + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 50 + call $~lib/set/Set#rehash + end + 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) + (local $1 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 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 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 32 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + 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 + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $6 + i32.const 3 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $4 + local.get $0 + i32.load offset=16 + i32.const 3 + i32.shl + i32.add + local.set $7 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $4 + local.get $7 i32.ne if - i32.const 0 - i32.const 1568 - i32.const 35 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|4 - local.get $0 - i32.const 50 - i32.lt_u + local.get $4 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 39 - 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 $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - 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 $0 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer + local.get $2 + local.get $4 + i32.load8_s + local.tee $8 + i32.store8 + local.get $2 + local.get $5 local.get $1 + local.get $8 + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $8 + local.get $8 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $8 + local.get $8 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $8 + local.get $8 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $8 + i32.load i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 43 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 + local.get $8 + local.get $2 + i32.store + local.get $2 + i32.const 8 i32.add - local.set $0 - br $for-loop|4 + local.set $2 end + local.get $4 + i32.const 8 + i32.add + local.set $4 + br $while-continue|0 end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $0 + local.get $5 + i32.store + local.get $0 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $6 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#delete (param $0 i32) (param $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 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 + local.get $0 + local.get $1 + local.get $1 + i32.extend8_s + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + call $~lib/set/Set#find + local.tee $1 + i32.eqz + if global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 45 - 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/set/Set#clear - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - if - i32.const 0 - i32.const 1568 - i32.const 49 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer return end - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $1 + i32.load offset=4 + i32.const 1 + i32.or + i32.store offset=4 + 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=20 + i32.const 1 + i32.sub + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.const 1 + i32.add + i32.const 4 + local.get $0 + i32.load offset=20 + local.tee $2 + local.get $2 + i32.const 4 + i32.lt_u + select + i32.ge_u + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $~lib/set/Set#rehash + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#constructor (result i32) + (func $~lib/set/Set#constructor (result i32) (local $0 i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -7760,15 +6887,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 24 - i32.const 12 + i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store @@ -7832,156 +6958,15 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/set/Set#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 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 - local.tee $3 - i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store - local.get $0 - i32.load - local.set $4 - local.get $3 - local.get $0 - i32.store - local.get $4 - local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - loop $while-continue|0 - local.get $0 - if - local.get $0 - i32.load offset=4 - local.tee $2 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $1 - local.get $0 - i32.load - i32.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $~lib/set/Set#has (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $0 - local.get $1 - 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 $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor - call $~lib/set/Set#find - i32.const 0 - i32.ne - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) + (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) + (local $6 i64) (local $7 i32) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -7998,13 +6983,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.const 1 i32.add @@ -8012,7 +6996,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 + local.tee $5 i32.store global.get $~lib/memory/__stack_pointer local.get $2 @@ -8020,8 +7004,8 @@ i32.shl i32.const 3 i32.div_s - local.tee $5 - i32.const 3 + local.tee $7 + i32.const 4 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $3 @@ -8031,100 +7015,111 @@ i32.store offset=8 local.get $0 i32.load offset=8 - local.set $7 + local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - local.get $7 + local.get $4 local.get $0 i32.load offset=16 - i32.const 3 + i32.const 4 i32.shl i32.add - local.set $4 + local.set $8 local.get $3 local.set $2 loop $while-continue|0 local.get $4 - local.get $7 + local.get $8 i32.ne if - local.get $7 - i32.load offset=4 + local.get $4 + i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $7 - i32.load - local.tee $8 - i32.store + local.get $4 + i64.load + local.tee $6 + i64.store local.get $2 - local.get $6 + local.get $5 local.get $1 - local.get $8 + local.get $6 + i32.wrap_i64 i32.const -1028477379 i32.mul - i32.const 374761397 + i32.const 374761401 i32.add i32.const 17 i32.rotl i32.const 668265263 i32.mul - local.tee $8 - local.get $8 + local.get $6 + 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 $9 i32.const 15 i32.shr_u + local.get $9 i32.xor i32.const -2048144777 i32.mul - local.tee $8 - local.get $8 + local.tee $9 i32.const 13 i32.shr_u + local.get $9 i32.xor i32.const -1028477379 i32.mul - local.tee $8 - local.get $8 + local.tee $9 i32.const 16 i32.shr_u + local.get $9 i32.xor i32.and i32.const 2 i32.shl i32.add - local.tee $8 + local.tee $9 i32.load - i32.store offset=4 - local.get $8 + i32.store offset=8 + local.get $9 local.get $2 i32.store local.get $2 - i32.const 8 + i32.const 16 i32.add local.set $2 end - local.get $7 - i32.const 8 + local.get $4 + i32.const 16 i32.add - local.set $7 + local.set $4 br $while-continue|0 end end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=8 - local.get $2 - local.get $6 + global.get $~lib/memory/__stack_pointer + local.get $5 i32.store offset=12 local.get $0 - local.get $6 + local.get $5 i32.store local.get $0 - local.get $6 + local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 @@ -8148,7 +7143,7 @@ local.get $0 i32.store offset=8 local.get $0 - local.get $5 + local.get $7 i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $0 @@ -8165,11 +7160,9 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#add (param $0 i32) (param $1 i32) + (func $~lib/set/Set#delete (param $0 i32) (param $1 i64) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -8186,18 +7179,29 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.get $1 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.const 374761397 i32.add i32.const 17 i32.rotl @@ -8222,209 +7226,94 @@ i32.shr_u local.get $2 i32.xor - local.tee $4 - call $~lib/set/Set#find + call $~lib/set/Set#find + local.tee $2 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.load offset=12 - 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 - i32.load offset=20 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - 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 - i32.const 1 - i32.or - end - call $~lib/set/Set#rehash - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - local.set $3 - local.get $2 - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $5 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 - local.get $5 - i32.const 3 - i32.shl - i32.add - local.tee $3 - local.get $1 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - local.get $2 - local.get $0 - i32.store - local.get $0 - i32.load - local.set $1 - local.get $2 - local.get $0 - i32.store - local.get $3 - local.get $1 - local.get $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl + i32.const 8 i32.add - local.tee $0 - i32.load - i32.store offset=4 - local.get $0 - local.get $3 - i32.store + global.set $~lib/memory/__stack_pointer + return end + local.get $2 + local.get $2 + i32.load offset=8 + i32.const 1 + i32.or + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 8 - 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) + local.get $0 + i32.store global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 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 + i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 + local.get $0 i32.store - local.get $3 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + local.get $2 + i32.const 1 + i32.add + i32.const 4 local.get $0 - i32.load offset=12 + i32.load offset=20 + local.tee $3 + local.get $3 + i32.const 4 + i32.lt_u + select i32.ge_u - if - local.get $1 - i32.const 0 - i32.lt_s - if - i32.const 1248 - i32.const 1616 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end + if (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 2 - i32.const 1 - call $~lib/array/ensureCapacity + i32.store + local.get $0 + i32.load offset=20 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - local.get $3 - i32.store offset=12 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 end - global.get $~lib/memory/__stack_pointer - local.tee $3 - 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 $3 - i32.const 4 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $2 + call $~lib/set/Set#rehash + end + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + (func $~lib/set/Set#constructor (result i32) + (local $0 i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -8439,83 +7328,87 @@ 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 + i32.const 24 + i32.const 16 + call $~lib/rt/itcms/__new + local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.const 2 - i32.const 0 - call $~lib/array/ensureCapacity + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 local.get $0 + local.get $1 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/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.store offset=4 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 + local.get $0 + i32.store offset=4 + i32.const 64 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 + local.get $1 + i32.store offset=8 local.get $0 - i32.store local.get $1 + i32.store offset=8 local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1616 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end + local.get $1 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 - i32.store + i32.store offset=4 local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - local.get $2 i32.const 4 + 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) + (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -8530,726 +7423,1171 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 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 $1 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store + global.get $~lib/memory/__stack_pointer local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $6 + i32.const 3 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=8 local.get $0 - local.get $1 - local.get $1 - i32.const -1028477379 - i32.mul - i32.const 374761397 + i32.load offset=8 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $4 + local.get $0 + i32.load offset=16 + i32.const 3 + i32.shl i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - i32.const 15 - i32.shr_u - local.get $1 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - i32.const 13 - i32.shr_u - local.get $1 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - i32.const 16 - i32.shr_u - local.get $1 - i32.xor - call $~lib/set/Set#find - local.tee $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return + local.set $7 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $4 + local.get $7 + i32.ne + if + local.get $4 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $2 + local.get $4 + i32.load + local.tee $8 + i32.store + local.get $2 + local.get $5 + local.get $1 + local.get $8 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $8 + local.get $8 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $8 + local.get $8 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $8 + local.get $8 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $8 + i32.load + i32.store offset=4 + local.get $8 + local.get $2 + i32.store + local.get $2 + i32.const 8 + i32.add + local.set $2 + end + local.get $4 + i32.const 8 + i32.add + local.set $4 + br $while-continue|0 + end end - local.get $1 - local.get $1 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $0 + local.get $5 i32.store - local.get $1 local.get $0 - i32.store offset=4 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store offset=8 local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $2 - local.get $1 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $6 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 local.get $0 - i32.store - local.get $2 - i32.const 1 - i32.add - i32.const 4 local.get $0 i32.load offset=20 - local.tee $3 - local.get $3 - i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) - local.get $1 - local.get $0 - i32.store - local.get $0 - i32.load offset=20 - local.set $3 - local.get $1 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - else - i32.const 0 - end - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $2 - call $~lib/set/Set#rehash - end + i32.store offset=16 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/set/testNumeric - (local $0 i32) - (local $1 i32) + (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.const 20 - memory.fill - local.get $1 - call $~lib/set/Set#constructor - local.tee $1 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 100 - 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/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 6 - 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 $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 8 - 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 $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - 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 50 - 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 $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 14 - 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 $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 16 - 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 $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + 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 + local.get $0 + local.get $1 + 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 $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + call $~lib/set/Set#find + local.tee $1 + i32.eqz + if global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $1 - i32.store offset=4 - local.get $5 i32.const 8 - i32.sub + i32.add global.set $~lib/memory/__stack_pointer + return + end + local.get $1 + local.get $1 + i32.load offset=4 + i32.const 1 + i32.or + i32.store offset=4 + 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=20 + i32.const 1 + i32.sub + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.const 1 + i32.add + i32.const 4 + local.get $0 + i32.load offset=20 + local.tee $2 + local.get $2 + i32.const 4 + i32.lt_u + select + i32.ge_u + if (result i32) global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store local.get $0 - local.get $1 i32.store - local.get $1 - i32.load offset=8 - local.set $3 local.get $0 - local.get $1 + i32.load offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $1 - i32.load offset=16 - local.set $4 local.get $0 - 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 1748 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s i32.lt_s - br_if $folding-inner1 + else + i32.const 0 + end + if global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 local.get $0 - i32.const 16 - i32.const 13 - 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 - 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 $4 - i32.const 268435455 - i32.gt_u - if - i32.const 1456 - i32.const 1616 - 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 $0 + local.get $0 + local.get $1 + call $~lib/set/Set#rehash + end + 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) + (local $1 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 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 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + 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 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 32 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + 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 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $6 - local.get $7 - i32.store - local.get $6 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 + 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 + local.get $1 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $6 + i32.const 3 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $4 + local.get $0 + i32.load offset=16 + i32.const 3 + i32.shl + i32.add + local.set $7 + local.get $3 + local.set $2 + loop $while-continue|0 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 - i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $2 + local.get $7 + i32.ne + if local.get $4 - i32.lt_s + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz if - local.get $3 local.get $2 - i32.const 3 - i32.shl - i32.add - local.tee $7 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - local.get $7 - i32.load - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - end + local.get $4 + i32.load16_s + local.tee $8 + i32.store16 local.get $2 - i32.const 1 - i32.add - local.set $2 - 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 $5 - local.get $6 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor - local.tee $0 - i32.store offset=12 - i32.const 0 - local.set $2 - loop $for-loop|2 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/array/Array#get:length - local.get $2 - i32.gt_s - if - 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=16 + local.get $5 local.get $1 - local.get $6 - local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 24 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 + local.get $8 + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $8 + local.get $8 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $8 + local.get $8 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $8 + local.get $8 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $8 + i32.load i32.store offset=4 - local.get $3 - local.get $6 - i32.store offset=16 - local.get $0 - local.get $6 + local.get $8 local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#add + i32.store local.get $2 - i32.const 1 + i32.const 8 i32.add local.set $2 - br $for-loop|2 end + local.get $4 + i32.const 8 + i32.add + local.set $4 + br $while-continue|0 end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $0 + local.get $5 + i32.store + local.get $0 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $6 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#delete (param $0 i32) (param $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 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 + local.get $0 + local.get $1 + local.get $1 + i32.extend16_s + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + call $~lib/set/Set#find + local.tee $1 + i32.eqz + if global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/set/Set#get:size - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - local.get $0 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 27 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|3 - local.get $0 - i32.const 50 - 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/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - 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 $0 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 33 - 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 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + local.get $1 + local.get $1 + i32.load offset=4 + i32.const 1 + i32.or + i32.store offset=4 + 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=20 + i32.const 1 + i32.sub + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.const 1 + i32.add + i32.const 4 + local.get $0 + i32.load offset=20 + local.tee $2 + local.get $2 + i32.const 4 + i32.lt_u + select + i32.ge_u + if (result i32) global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 50 + call $~lib/set/Set#rehash + end + 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) + (local $1 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 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 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + 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 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 32 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 f64) + (local $9 i64) + (local $10 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 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 + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $6 + i32.const 4 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $4 + local.get $0 + i32.load offset=16 + i32.const 4 + i32.shl + i32.add + local.set $7 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $4 + local.get $7 i32.ne if - i32.const 0 - i32.const 1568 - i32.const 35 - i32.const 3 - call $~lib/builtins/abort - unreachable - 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 $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 39 - 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 $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - 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 $0 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $2 + local.get $4 + f64.load + local.tee $8 + f64.store + local.get $2 + local.get $5 local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 43 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 + local.get $8 + i64.reinterpret_f64 + local.tee $9 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 i32.add - local.set $0 - br $for-loop|4 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $9 + 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 $10 + i32.const 15 + i32.shr_u + local.get $10 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $10 + i32.const 13 + i32.shr_u + local.get $10 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $10 + i32.const 16 + i32.shr_u + local.get $10 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $10 + i32.load + i32.store offset=8 + local.get $10 + local.get $2 + i32.store + local.get $2 + i32.const 16 + i32.add + local.set $2 end + local.get $4 + i32.const 16 + i32.add + local.set $4 + br $while-continue|0 end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $0 + local.get $5 + i32.store + local.get $0 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $6 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#delete (param $0 i32) (param $1 f64) + (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 + 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 + local.get $0 + local.get $1 + local.get $1 + i64.reinterpret_f64 + local.tee $2 + 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 $2 + 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 + call $~lib/set/Set#find + local.tee $3 + i32.eqz + if global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 45 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + local.get $3 + local.get $3 + i32.load offset=8 + i32.const 1 + i32.or + 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=20 + i32.const 1 + i32.sub + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + i32.const 1 + i32.add + i32.const 4 + local.get $0 + i32.load offset=20 + local.tee $4 + local.get $4 + i32.const 4 + i32.lt_u + select + i32.ge_u + if (result i32) global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#clear + local.get $0 + i32.store + local.get $0 + i32.load offset=20 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - if - i32.const 0 - i32.const 1568 - i32.const 49 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - return + local.get $0 + i32.store + local.get $0 + local.get $3 + call $~lib/set/Set#rehash end - i32.const 34544 - i32.const 34592 - 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 ) - (func $~lib/set/Set#constructor (result i32) + (func $~lib/set/Set#constructor (result i32) (local $0 i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -9268,15 +8606,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 24 - i32.const 14 + i32.const 22 call $~lib/rt/itcms/__new local.tee $0 i32.store @@ -9304,7 +8641,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - i32.const 32 + i32.const 64 call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 global.get $~lib/memory/__stack_pointer @@ -9340,149 +8677,7 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/set/Set#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 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 - local.tee $3 - i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store - local.get $0 - i32.load - local.set $4 - local.get $3 - local.get $0 - i32.store - local.get $4 - local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - loop $while-continue|0 - local.get $0 - if - local.get $0 - i32.load offset=4 - local.tee $2 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $1 - local.get $0 - i32.load - i32.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $~lib/set/Set#has (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $0 - local.get $1 - 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 $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor - call $~lib/set/Set#find - i32.const 0 - i32.ne - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) + (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9506,13 +8701,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.const 1 i32.add @@ -9520,7 +8714,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 + local.tee $5 i32.store global.get $~lib/memory/__stack_pointer local.get $2 @@ -9528,7 +8722,7 @@ i32.shl i32.const 3 i32.div_s - local.tee $5 + local.tee $6 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor @@ -9539,17 +8733,17 @@ i32.store offset=8 local.get $0 i32.load offset=8 - local.set $7 + local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - local.get $7 + local.get $4 local.get $0 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $4 + local.set $7 local.get $3 local.set $2 loop $while-continue|0 @@ -9557,19 +8751,21 @@ local.get $7 i32.ne if - local.get $7 + local.get $4 i32.load offset=4 i32.const 1 i32.and i32.eqz if - local.get $2 - local.get $7 + local.get $4 i32.load - local.tee $8 - i32.store + local.set $8 local.get $2 - local.get $6 + local.get $4 + f32.load + f32.store + local.get $2 + local.get $5 local.get $1 local.get $8 i32.const -1028477379 @@ -9614,25 +8810,24 @@ i32.add local.set $2 end - local.get $7 + local.get $4 i32.const 8 i32.add - local.set $7 + local.set $4 br $while-continue|0 end end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=8 - local.get $2 - local.get $6 + global.get $~lib/memory/__stack_pointer + local.get $5 i32.store offset=12 local.get $0 - local.get $6 + local.get $5 i32.store local.get $0 - local.get $6 + local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 @@ -9656,7 +8851,7 @@ local.get $0 i32.store offset=8 local.get $0 - local.get $5 + local.get $6 i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $0 @@ -9673,11 +8868,9 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#add (param $0 i32) (param $1 i32) + (func $~lib/set/Set#delete (param $0 i32) (param $1 f32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -9694,172 +8887,585 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + 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 + call $~lib/set/Set#find + local.tee $2 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + local.get $2 + local.get $2 + i32.load offset=4 + i32.const 1 + i32.or + i32.store offset=4 + 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=20 + i32.const 1 + i32.sub + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $2 + i32.const 1 + i32.add + i32.const 4 + local.get $0 + i32.load offset=20 + local.tee $3 + local.get $3 + i32.const 4 + i32.lt_u + select + i32.ge_u + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $2 + call $~lib/set/Set#rehash + end + 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) + (local $1 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 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 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 20 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 local.get $0 + local.get $1 i32.store local.get $0 local.get $1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 32 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $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 -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 + i32.lt_u local.get $2 - i32.xor - local.tee $4 - call $~lib/set/Set#find + i32.const 23 + i32.lt_u + i32.and i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - local.set $2 - global.get $~lib/memory/__stack_pointer + 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 - i32.store + 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 offset=12 - 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 - i32.load offset=20 - local.set $2 - global.get $~lib/memory/__stack_pointer + 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 - i32.store offset=4 + 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 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul + i32.ctz + local.get $1 i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - 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 - i32.const 1 - i32.or - end - call $~lib/set/Set#rehash + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + i32.const 0 end - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - local.set $3 - local.get $2 - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $5 + end + ) + (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 - i32.add - i32.store offset=16 + local.get $1 + 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 $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 34528 + 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 34528 + 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 34528 + i32.const 36100 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34528 + global.set $~lib/rt/tlsf/ROOT + ) + (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 - local.get $5 - i32.const 3 - i32.shl + i32.const 4 i32.add - local.tee $3 local.get $1 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - local.get $2 - local.get $0 - i32.store - local.get $0 - i32.load - local.set $1 - local.get $2 - local.get $0 - i32.store + 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 - local.get $4 + 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.load offset=4 - i32.and - i32.const 2 - i32.shl + i32.const 1572 i32.add - local.tee $0 - i32.load - i32.store offset=4 - local.get $0 - local.get $3 - i32.store + 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 - global.get $~lib/memory/__stack_pointer + 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 - global.set $~lib/memory/__stack_pointer + 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/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1248 + call $~lib/rt/itcms/__visit + i32.const 1456 + 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/array/Array#__get (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -9876,10 +9482,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -9895,28 +9500,22 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store + local.get $1 local.get $0 i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl i32.add - i32.load - local.set $0 - local.get $2 + i32.load8_u + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i64) + (local $2 i64) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -9926,735 +9525,738 @@ i32.const 34544 i32.const 34592 i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - local.get $0 - i32.store - local.get $0 - local.get $1 - 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 $1 - i32.const 15 - i32.shr_u - local.get $1 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - i32.const 13 - i32.shr_u - local.get $1 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - i32.const 16 - i32.shr_u - local.get $1 - i32.xor - call $~lib/set/Set#find - local.tee $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - local.get $1 - local.get $1 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 + 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.tee $1 local.get $0 i32.store local.get $1 local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 - local.get $1 + i32.load offset=12 + i32.ge_u + if + i32.const 1248 + i32.const 1616 + 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 - i32.const 1 - i32.shr_u - local.set $2 local.get $1 - local.get $0 - i32.store - local.get $2 - i32.const 1 + i32.const 3 + i32.shl i32.add + i64.load + global.get $~lib/memory/__stack_pointer i32.const 4 - local.get $0 - i32.load offset=20 - local.tee $3 - local.get $3 + 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.lt_u - select - i32.ge_u - if (result i32) - local.get $1 - local.get $0 - i32.store - local.get $0 - i32.load offset=20 - local.set $3 - local.get $1 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - else - i32.const 0 + 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 + 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $2 - call $~lib/set/Set#rehash + i32.const 1248 + i32.const 1616 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/set/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) + i32.load global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.const 20 - memory.fill - local.get $1 - call $~lib/set/Set#constructor - local.tee $1 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 100 - i32.lt_u - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 6 - 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 $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 8 - 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 $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - 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 50 - 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 $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 14 - 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 $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 16 - 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 $1 - i32.store offset=4 + 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 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 + 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 1248 + i32.const 1616 + 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 1 + i32.shl + i32.add + i32.load16_u + 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 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 + i32.const 0 + i32.store + local.get $0 + local.get $1 + i32.const 0 + 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/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 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 + 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 - call $~lib/set/Set#get:size - i32.const 100 - i32.ne + i32.const 0 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 3 + i32.const 1248 + i32.const 1616 + i32.const 130 + i32.const 22 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $1 - i32.store offset=4 - local.get $5 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - local.get $1 - i32.store - local.get $1 - i32.load offset=8 - local.set $3 local.get $0 local.get $1 - i32.store - local.get $1 - i32.load offset=16 - local.set $4 - local.get $0 - 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 1748 - i32.lt_s - br_if $folding-inner1 + i32.const 1 + i32.add + local.tee $3 + i32.const 0 + i32.const 1 + call $~lib/array/ensureCapacity global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 local.get $0 - i32.const 16 - i32.const 15 - 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 - 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 + local.get $0 + local.get $3 + i32.store offset=12 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=4 + i32.add + local.get $2 + i32.store8 + 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 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 + 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 1248 + i32.const 1616 + 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 $1 + local.get $0 + i32.load offset=4 + i32.add + i32.load8_s + 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 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 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 + 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.store offset=12 - local.get $4 - i32.const 268435455 - i32.gt_u + i32.lt_s if - i32.const 1456 + i32.const 1248 i32.const 1616 - i32.const 70 - i32.const 60 + i32.const 130 + i32.const 22 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 $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $6 - local.get $7 - i32.store - local.get $6 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 + local.get $1 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $2 - local.get $4 - i32.lt_s - if - local.get $3 - local.get $2 - i32.const 3 - i32.shl - i32.add - local.tee $7 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - local.get $7 - i32.load - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|00 - end - end + local.tee $3 + i32.const 3 + i32.const 1 + call $~lib/array/ensureCapacity global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 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 $5 - local.get $6 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor - local.tee $0 + local.get $3 i32.store offset=12 - i32.const 0 - local.set $2 - loop $for-loop|2 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/array/Array#get:length - local.get $2 - i32.gt_s - if - 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=16 - local.get $1 - local.get $6 - local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 24 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store offset=4 - local.get $3 - local.get $6 - i32.store offset=16 - local.get $0 - local.get $6 - local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#add - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|2 - end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/set/Set#get:size - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + 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#__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 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 + 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 1248 + i32.const 1616 + 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 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/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 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 + 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 - call $~lib/set/Set#get:size - local.get $0 - i32.ne + i32.const 0 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 27 - i32.const 3 + i32.const 1248 + i32.const 1616 + i32.const 130 + i32.const 22 call $~lib/builtins/abort unreachable end - i32.const 0 - local.set $0 - loop $for-loop|3 - local.get $0 - i32.const 50 - i32.lt_u - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - 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 $0 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 33 - 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 - global.get $~lib/memory/__stack_pointer + local.get $0 local.get $1 - i32.store offset=4 + 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#__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 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 + 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 1248 + i32.const 1616 + 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/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 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 + i32.const 0 + i32.store + local.get $0 + local.get $1 + i32.const 1 + 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/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 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 + 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 - call $~lib/set/Set#get:size - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 35 - i32.const 3 - call $~lib/builtins/abort - unreachable - 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 $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 39 - 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 $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - 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 $0 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 43 - 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 $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 50 - i32.ne + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 45 - i32.const 3 + i32.const 1248 + i32.const 1616 + i32.const 130 + i32.const 22 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#clear - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + local.get $0 local.get $1 - call $~lib/set/Set#get:size - if - i32.const 0 - i32.const 1568 - i32.const 49 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - return + local.tee $3 + i32.const 1 + 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 - i32.const 34544 - i32.const 34592 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 i32.const 1 + i32.shl + i32.add + local.get $2 + i32.store16 + 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 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 + 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 1248 + i32.const 1616 + 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 1 - call $~lib/builtins/abort - unreachable + i32.shl + i32.add + i32.load16_s + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#constructor (result i32) - (local $0 i32) - (local $1 i32) + (func $~lib/array/Array#__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 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 + 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 1248 + i32.const 1616 + 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 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/array/Array#__get (param $0 i32) (param $1 i32) (result f32) + (local $2 f32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -10669,1033 +10271,1221 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 24 - i32.const 16 - call $~lib/rt/itcms/__new - local.tee $0 i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 i32.store - local.get $0 local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 - i32.const 64 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 + i32.load offset=12 + i32.ge_u + if + i32.const 1248 + i32.const 1616 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 - local.get $1 - i32.store offset=8 + i32.store local.get $0 + i32.load offset=4 local.get $1 - call $~lib/rt/itcms/__link + i32.const 2 + i32.shl + i32.add + f32.load global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 i32.const 4 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/set/Set#find (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (func $~start + memory.size + i32.const 16 + i32.shl + i32.const 34516 + 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/set/testNumeric + call $std/set/testNumeric + call $std/set/testNumeric + call $std/set/testNumeric + call $std/set/testNumeric + call $std/set/testNumeric + call $std/set/testNumeric + call $std/set/testNumeric + call $std/set/testNumeric + call $std/set/testNumeric + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + global.get $~lib/rt/itcms/state + 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 + 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 + ) + (func $~lib/set/Set#values (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) (local $3 i32) - (local $4 i32) + (local $4 f64) + (local $5 i32) + (local $6 i32) + (local $7 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 1748 - i32.lt_s - if - i32.const 34544 - i32.const 34592 - i32.const 1 + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 1748 + 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=8 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + local.set $5 + global.get $~lib/memory/__stack_pointer + 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 1748 + 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 23 + 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 + 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 134217727 + i32.gt_u + if + i32.const 1456 + i32.const 1616 + i32.const 70 + 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 $0 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store - local.get $0 - i32.load - local.set $4 - local.get $3 - local.get $0 - i32.store - local.get $4 - local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - loop $while-continue|0 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $6 + local.get $7 + i32.store + local.get $6 + local.get $7 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 local.get $0 - if - local.get $0 - i32.load offset=8 - local.tee $2 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $1 - local.get $0 - i64.load - i64.eq - end + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + 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 $6 + i32.store offset=4 + loop $for-loop|0 + local.get $2 + local.get $5 + i32.lt_s if - global.get $~lib/memory/__stack_pointer + local.get $3 + local.get $2 i32.const 4 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $~lib/set/Set#has (param $0 i32) (param $1 i64) (result 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 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 - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $0 - local.get $1 - 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 $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - call $~lib/set/Set#find - i32.const 0 - i32.ne - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + local.tee $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $1 + local.tee $0 + i32.const 1 + i32.add + local.set $1 + local.get $7 + f64.load + 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 1748 + 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 $6 + i32.store + local.get $0 + local.get $6 + i32.load offset=12 + i32.ge_u + if + local.get $0 + i32.const 0 + i32.lt_s + if + i32.const 1248 + i32.const 1616 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $6 + local.get $0 + i32.const 1 + i32.add + local.tee $7 + i32.const 3 + i32.const 1 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $7 + i32.store offset=12 + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + i32.load offset=4 + local.get $0 + i32.const 3 + i32.shl + i32.add + local.get $4 + 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 $6 + i32.store + local.get $6 + 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 $6 + return + end + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) + (func $~lib/set/Set#values (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) + (local $4 f32) (local $5 i32) - (local $6 i64) + (local $6 i32) (local $7 i32) - (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + 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 - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i64.const 0 - i64.store offset=8 - local.get $2 - local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $5 - i32.const 4 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $8 - local.get $0 - i32.load offset=16 - i32.const 4 - i32.shl - i32.add - local.set $4 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $4 - local.get $8 - i32.ne + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 1748 + 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=8 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + local.set $5 + global.get $~lib/memory/__stack_pointer + 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 1748 + 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 21 + 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 + 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 268435455 + i32.gt_u if - local.get $8 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $2 - local.get $8 - i64.load - local.tee $6 - i64.store - local.get $2 - local.get $7 - local.get $1 - local.get $6 - 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 $6 - 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 $9 - i32.const 15 - i32.shr_u - local.get $9 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $9 - i32.const 13 - i32.shr_u - local.get $9 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $9 - i32.const 16 - i32.shr_u - local.get $9 - i32.xor - i32.and - i32.const 2 + i32.const 1456 + i32.const 1616 + i32.const 70 + 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 $0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $6 + local.get $7 + i32.store + local.get $6 + local.get $7 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + 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 $6 + i32.store offset=4 + loop $for-loop|0 + local.get $2 + local.get $5 + i32.lt_s + if + local.get $3 + local.get $2 + i32.const 3 i32.shl i32.add - local.tee $9 - i32.load - i32.store offset=8 - local.get $9 - local.get $2 - i32.store + local.tee $7 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $1 + local.tee $0 + i32.const 1 + i32.add + local.set $1 + local.get $7 + f32.load + 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 1748 + 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 $6 + i32.store + local.get $0 + local.get $6 + i32.load offset=12 + i32.ge_u + if + local.get $0 + i32.const 0 + i32.lt_s + if + i32.const 1248 + i32.const 1616 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $6 + local.get $0 + i32.const 1 + i32.add + local.tee $7 + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $7 + i32.store offset=12 + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + i32.load offset=4 + local.get $0 + i32.const 2 + i32.shl + i32.add + local.get $4 + 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 16 + i32.const 1 i32.add local.set $2 + br $for-loop|0 end - local.get $8 - i32.const 16 - i32.add - local.set $8 - br $while-continue|0 end - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store offset=8 - local.get $2 - local.get $7 - i32.store offset=12 - local.get $0 - local.get $7 - i32.store - local.get $0 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $3 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/set/Set#add (param $0 i32) (param $1 i64) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - local.tee $2 - i64.const 0 - i64.store - local.get $2 - local.get $0 - i32.store - local.get $0 - local.get $1 - 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 $2 - call $~lib/set/Set#find - i32.eqz - if global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - local.set $3 + local.get $6 + i32.store + local.get $6 + 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 $6 + return + end + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $std/set/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) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $1 i32.store - local.get $3 - local.get $0 - i32.load offset=12 - 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 - i32.load offset=20 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $3 + loop $for-loop|0 local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) + i32.const 100 + i32.lt_u + if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 + local.get $1 local.get $0 - i32.load offset=4 - else + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 6 + 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 $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl i32.const 1 - i32.or + i32.add + local.set $0 + br $for-loop|0 end - call $~lib/set/Set#rehash end global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - local.set $4 - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $5 - i32.const 1 - i32.add - i32.store offset=16 - local.get $4 - local.get $5 - i32.const 4 - i32.shl - i32.add - local.tee $4 local.get $1 - i64.store - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - local.get $3 - local.get $0 - i32.store - local.get $0 - i32.load - local.set $5 - local.get $3 - local.get $0 - i32.store - local.get $4 - local.get $5 - local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=8 - local.get $0 - local.get $4 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (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 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 - local.tee $3 - i32.const 0 - i32.store - local.get $3 - 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 + call $~lib/set/Set#get:size + 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 50 + 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 $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 14 + 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 $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 16 + 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 $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne if - i32.const 1248 - i32.const 1616 - i32.const 130 - i32.const 22 + i32.const 0 + i32.const 1568 + i32.const 18 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $0 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 3 - i32.const 1 - call $~lib/array/ensureCapacity + i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + 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 $0 - local.get $3 - i32.store offset=12 - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - 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 - local.get $3 - 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 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 - 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/array/Array#__get (param $0 i32) (param $1 i32) (result i64) - (local $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 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 - local.tee $3 - i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1616 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $2 - local.get $3 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $~lib/set/Set#delete (param $0 i32) (param $1 i64) - (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 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 - local.tee $2 - i64.const 0 - i64.store - local.get $2 - local.get $0 - i32.store - local.get $0 - local.get $1 - 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 - call $~lib/set/Set#find - local.tee $2 - i32.eqz - if + local.get $1 + i32.load offset=8 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=16 + local.set $5 + global.get $~lib/memory/__stack_pointer + 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 1748 + 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 $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 + 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.gt_u + if + i32.const 1456 + i32.const 1616 + i32.const 70 + 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 + local.tee $0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $6 + local.get $7 + i32.store + local.get $6 + local.get $7 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - return - end - local.get $2 - local.get $2 - i32.load offset=8 - i32.const 1 - i32.or - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 - local.get $2 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $3 - local.get $2 - local.get $0 - i32.store - local.get $3 - i32.const 1 - i32.add - i32.const 4 - local.get $0 - i32.load offset=20 - local.tee $4 - local.get $4 - i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) - local.get $2 - local.get $0 + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|00 + local.get $2 + local.get $5 + i32.lt_s + if + local.get $4 + local.get $2 + i32.const 3 + i32.shl + i32.add + local.tee $7 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $0 + local.get $7 + i32.load8_u + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|00 + end + end + global.get $~lib/memory/__stack_pointer + local.get $6 i32.store + local.get $6 local.get $0 - i32.load offset=20 - local.set $4 - local.get $2 + 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 + call $~lib/set/Set#constructor + local.tee $0 + i32.store offset=12 + i32.const 0 + local.set $2 + loop $for-loop|2 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + call $~lib/array/Array#get:length + local.get $2 + i32.gt_s + if + 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=16 + local.get $1 + local.get $6 + local.get $2 + call $~lib/array/Array#__get + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 24 + i32.const 5 + 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 $6 + i32.store offset=16 + local.get $0 + local.get $6 + local.get $2 + call $~lib/array/Array#__get + call $~lib/set/Set#add + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|2 + end + end + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - local.get $4 + i32.store offset=4 local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - else - i32.const 0 - end - if + call $~lib/set/Set#get:size + local.set $0 global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size local.get $0 - i32.store - local.get $0 - local.get $3 - call $~lib/set/Set#rehash - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/set/Set#clear (param $0 i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 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 - local.tee $1 - i64.const 0 - i64.store - local.get $1 - local.get $0 - i32.store - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - i32.const 64 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 4 - 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 - local.get $0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 27 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|3 + local.get $0 + i32.const 50 + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 31 + 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 $0 + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 33 + 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 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + 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 $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 39 + 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 $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + 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 $0 + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 43 + 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 $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 45 + 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/set/Set#clear + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + if + i32.const 0 + i32.const 1568 + i32.const 49 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $std/set/testNumeric + (func $std/set/testNumeric (local $0 i32) - (local $1 i64) - (local $2 i32) + (local $1 i32) + (local $2 i64) (local $3 i32) (local $4 i32) (local $5 i32) @@ -11713,25 +11503,24 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.const 20 memory.fill - local.get $3 - call $~lib/set/Set#constructor - local.tee $7 + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $1 i32.store loop $for-loop|0 - local.get $1 + local.get $2 i64.const 100 - i64.lt_s + i64.lt_u if global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 - call $~lib/set/Set#has + local.get $2 + call $~lib/set/Set#has if i32.const 0 i32.const 1568 @@ -11741,17 +11530,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 - call $~lib/set/Set#add + local.get $2 + call $~lib/set/Set#add global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 - call $~lib/set/Set#has + local.get $2 + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -11761,17 +11550,17 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i64.const 1 i64.add - local.set $1 + local.set $2 br $for-loop|0 end end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 call $~lib/set/Set#get:size i32.const 100 i32.ne @@ -11784,18 +11573,18 @@ unreachable end i64.const 50 - local.set $1 + local.set $2 loop $for-loop|1 - local.get $1 + local.get $2 i64.const 100 - i64.lt_s + i64.lt_u if global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 - call $~lib/set/Set#has + local.get $2 + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -11806,17 +11595,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 - call $~lib/set/Set#add + local.get $2 + call $~lib/set/Set#add global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 - call $~lib/set/Set#has + local.get $2 + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -11826,17 +11615,17 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i64.const 1 i64.add - local.set $1 + local.set $2 br $for-loop|1 end end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 call $~lib/set/Set#get:size i32.const 100 i32.ne @@ -11849,10 +11638,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $8 - local.get $7 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $8 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -11861,22 +11650,21 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $5 i64.const 0 i64.store - local.get $5 - local.get $7 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $7 + local.get $1 i32.load offset=8 - local.set $3 - local.get $5 - local.get $7 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $7 + local.get $1 i32.load offset=16 - local.set $4 - local.get $5 + local.set $6 + global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -11886,46 +11674,45 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $5 i64.const 0 i64.store - local.get $5 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 17 + i32.const 19 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $8 i32.store offset=4 - local.get $5 + local.get $8 i32.const 0 i32.store - local.get $5 + local.get $8 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $8 i32.store offset=4 - local.get $5 + local.get $8 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $8 i32.store offset=4 - local.get $5 + local.get $8 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $8 i32.store offset=4 - local.get $5 + local.get $8 i32.const 0 i32.store offset=12 - local.get $4 + local.get $6 i32.const 134217727 i32.gt_u if @@ -11938,8 +11725,8 @@ end global.get $~lib/memory/__stack_pointer i32.const 8 - local.get $4 - local.get $4 + local.get $6 + local.get $6 i32.const 8 i32.le_u select @@ -11948,66 +11735,66 @@ local.tee $9 i32.const 1 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $7 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=12 - local.get $5 - local.get $6 + local.get $8 + local.get $7 i32.store - local.get $5 - local.get $6 + local.get $8 + local.get $7 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $8 i32.store offset=4 - local.get $5 - local.get $6 + local.get $8 + local.get $7 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $8 i32.store offset=4 - local.get $5 + local.get $8 local.get $9 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $8 i32.store offset=4 - local.get $5 - local.get $4 + local.get $8 + 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 $5 + local.get $8 i32.store offset=4 loop $for-loop|00 - local.get $2 - local.get $4 + local.get $3 + local.get $6 i32.lt_s if + local.get $5 local.get $3 - local.get $2 i32.const 4 i32.shl i32.add - local.tee $6 + local.tee $7 i32.load offset=8 i32.const 1 i32.and i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $8 i32.store - local.get $5 + local.get $8 local.get $0 - local.get $6 + local.get $7 i64.load call $~lib/array/Array#__set local.get $0 @@ -12015,17 +11802,17 @@ i32.add local.set $0 end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|00 end end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $8 i32.store - local.get $5 + local.get $8 local.get $0 call $~lib/array/Array#set:length global.get $~lib/memory/__stack_pointer @@ -12033,34 +11820,33 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $8 - local.get $5 i32.store offset=8 global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor + call $~lib/set/Set#constructor local.tee $0 i32.store offset=12 i32.const 0 - local.set $2 + local.set $3 loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $8 i32.store offset=4 - local.get $5 + local.get $8 call $~lib/array/Array#get:length - local.get $2 + local.get $3 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $8 i32.store offset=16 - local.get $7 - local.get $5 - local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#has + local.get $1 + local.get $8 + local.get $3 + call $~lib/array/Array#__get + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -12071,21 +11857,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store offset=4 - local.get $3 - local.get $5 + global.get $~lib/memory/__stack_pointer + local.get $8 i32.store offset=16 local.get $0 - local.get $5 - local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#add - local.get $2 + local.get $8 + local.get $3 + call $~lib/array/Array#__get + call $~lib/set/Set#add + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|2 end end @@ -12096,9 +11881,9 @@ call $~lib/set/Set#get:size local.set $0 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 call $~lib/set/Set#get:size local.get $0 i32.ne @@ -12111,18 +11896,18 @@ unreachable end i64.const 0 - local.set $1 + local.set $2 loop $for-loop|3 - local.get $1 + local.get $2 i64.const 50 - i64.lt_s + i64.lt_u if global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 - call $~lib/set/Set#has + local.get $2 + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -12133,17 +11918,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 - call $~lib/set/Set#delete + local.get $2 + call $~lib/set/Set#delete global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 - call $~lib/set/Set#has + local.get $2 + call $~lib/set/Set#has if i32.const 0 i32.const 1568 @@ -12152,17 +11937,17 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i64.const 1 i64.add - local.set $1 + local.set $2 br $for-loop|3 end end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 call $~lib/set/Set#get:size i32.const 50 i32.ne @@ -12175,18 +11960,18 @@ unreachable end i64.const 0 - local.set $1 + local.set $2 loop $for-loop|4 - local.get $1 + local.get $2 i64.const 50 - i64.lt_s + i64.lt_u if global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 - call $~lib/set/Set#has + local.get $2 + call $~lib/set/Set#has if i32.const 0 i32.const 1568 @@ -12196,17 +11981,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 - call $~lib/set/Set#add + local.get $2 + call $~lib/set/Set#add global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 - call $~lib/set/Set#has + local.get $2 + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -12217,17 +12002,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 - call $~lib/set/Set#delete + local.get $2 + call $~lib/set/Set#delete global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 - call $~lib/set/Set#has + local.get $2 + call $~lib/set/Set#has if i32.const 0 i32.const 1568 @@ -12236,17 +12021,17 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i64.const 1 i64.add - local.set $1 + local.set $2 br $for-loop|4 end end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 call $~lib/set/Set#get:size i32.const 50 i32.ne @@ -12259,902 +12044,637 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/set/Set#clear - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/set/Set#get:size - if - i32.const 0 - i32.const 1568 - i32.const 49 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/set/Set#constructor (result i32) - (local $0 i32) - (local $1 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 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 - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 24 - i32.const 18 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 64 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/set/Set#find (param $0 i32) (param $1 i64) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 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 - local.tee $3 - i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store - local.get $0 - i32.load - local.set $4 - local.get $3 - local.get $0 - i32.store - local.get $4 - local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - loop $while-continue|0 - local.get $0 - if - local.get $0 - i32.load offset=8 - local.tee $2 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $1 - local.get $0 - i64.load - i64.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $~lib/set/Set#has (param $0 i32) (param $1 i64) (result 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 1748 - i32.lt_s - if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#clear + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + if + i32.const 0 + i32.const 1568 + i32.const 49 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $0 - local.get $1 - 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 $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - call $~lib/set/Set#find - i32.const 0 - i32.ne - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) + (func $std/set/testNumeric + (local $0 i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i64) + (local $6 i32) (local $7 i32) - (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 20 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 - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i64.const 0 - i64.store offset=8 - local.get $2 - local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $5 - i32.const 4 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $8 - local.get $0 - i32.load offset=16 - i32.const 4 - i32.shl - i32.add - local.set $4 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $4 - local.get $8 + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $1 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 100 + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 6 + 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 $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 8 + 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 $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + 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 50 + 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 $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 14 + 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 $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 16 + 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 $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 100 i32.ne if - local.get $8 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz + i32.const 0 + i32.const 1568 + i32.const 18 + 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 1748 + 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 offset=8 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=16 + local.set $5 + global.get $~lib/memory/__stack_pointer + 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 1748 + 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 $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 + 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 268435455 + i32.gt_u + if + i32.const 1456 + i32.const 1616 + i32.const 70 + 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 $0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $6 + local.get $7 + i32.store + local.get $6 + local.get $7 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + 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 $6 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|00 + local.get $2 + local.get $5 + i32.lt_s if + local.get $4 local.get $2 - local.get $8 - i64.load - local.tee $6 - i64.store + i32.const 3 + i32.shl + i32.add + local.tee $7 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $0 + local.get $7 + i32.load + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end local.get $2 - local.get $7 + i32.const 1 + i32.add + local.set $2 + 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 + call $~lib/set/Set#constructor + local.tee $0 + i32.store offset=12 + i32.const 0 + local.set $2 + loop $for-loop|2 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + call $~lib/array/Array#get:length + local.get $2 + i32.gt_s + if + 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=16 local.get $1 local.get $6 - 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 $2 + call $~lib/array/Array#__get + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 24 + i32.const 5 + 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 $6 + i32.store offset=16 + local.get $0 local.get $6 - 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 $9 - i32.const 15 - i32.shr_u - local.get $9 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $9 - i32.const 13 - i32.shr_u - local.get $9 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $9 - i32.const 16 - i32.shr_u - local.get $9 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $9 - i32.load - i32.store offset=8 - local.get $9 local.get $2 - i32.store + call $~lib/array/Array#__get + call $~lib/set/Set#add local.get $2 - i32.const 16 + i32.const 1 i32.add local.set $2 + br $for-loop|2 end - local.get $8 - i32.const 16 - i32.add - local.set $8 - br $while-continue|0 end - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store offset=8 - local.get $2 - local.get $7 - i32.store offset=12 - local.get $0 - local.get $7 - i32.store - local.get $0 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $3 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/set/Set#add (param $0 i32) (param $1 i64) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - local.tee $2 - i64.const 0 - i64.store - local.get $2 - local.get $0 - i32.store - local.get $0 - local.get $1 - 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 $2 - call $~lib/set/Set#find - i32.eqz - if global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=4 local.get $0 - i32.load offset=16 - local.set $3 + call $~lib/set/Set#get:size + local.set $0 global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size local.get $0 - i32.store - local.get $3 - local.get $0 - i32.load offset=12 - i32.eq + i32.ne 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=20 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $3 - local.get $0 - i32.load offset=12 + i32.const 0 + i32.const 1568 + i32.const 27 i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|3 + local.get $0 + i32.const 50 + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 + local.get $1 local.get $0 - i32.load offset=4 - else + call $~lib/set/Set#delete global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 33 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl i32.const 1 - i32.or + i32.add + local.set $0 + br $for-loop|3 end - call $~lib/set/Set#rehash end global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - local.set $4 - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $5 - i32.const 1 - i32.add - i32.store offset=16 - local.get $4 - local.get $5 - i32.const 4 - i32.shl - i32.add - local.tee $4 local.get $1 - i64.store - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - local.get $3 - local.get $0 - i32.store - local.get $0 - i32.load - local.set $5 - local.get $3 - local.get $0 - i32.store - local.get $4 - local.get $5 - local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=8 - local.get $0 - local.get $4 - i32.store - end - 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 i64) - (local $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 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 - local.tee $3 - i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1616 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $2 - local.get $3 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $~lib/set/Set#delete (param $0 i32) (param $1 i64) - (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 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 - local.tee $2 - i64.const 0 - i64.store - local.get $2 - local.get $0 - i32.store - local.get $0 - local.get $1 - 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 - call $~lib/set/Set#find - local.tee $2 - i32.eqz - if + local.get $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + 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 $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 39 + 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 $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + 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 $0 + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 43 + 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 - i32.const 8 + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 45 + 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/set/Set#clear + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + if + i32.const 0 + i32.const 1568 + i32.const 49 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer return end - local.get $2 - local.get $2 - i32.load offset=8 - i32.const 1 - i32.or - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 - local.get $2 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 + i32.const 34544 + i32.const 34592 i32.const 1 - i32.shr_u - local.set $3 - local.get $2 - local.get $0 - i32.store - local.get $3 i32.const 1 - i32.add - i32.const 4 - local.get $0 - i32.load offset=20 - local.tee $4 - local.get $4 - i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) - local.get $2 - local.get $0 - i32.store - local.get $0 - i32.load offset=20 - local.set $4 - local.get $2 - local.get $0 - i32.store - local.get $4 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - else - i32.const 0 - end - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $3 - call $~lib/set/Set#rehash - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + call $~lib/builtins/abort + unreachable ) - (func $std/set/testNumeric + (func $std/set/testNumeric (local $0 i32) - (local $1 i64) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -13165,25 +12685,24 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.const 20 memory.fill - local.get $3 - call $~lib/set/Set#constructor - local.tee $7 + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $1 i32.store loop $for-loop|0 - local.get $1 - i64.const 100 - i64.lt_u + local.get $0 + i32.const 100 + i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 - call $~lib/set/Set#has + local.get $0 + call $~lib/set/Set#has if i32.const 0 i32.const 1568 @@ -13193,17 +12712,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 - call $~lib/set/Set#add + local.get $0 + call $~lib/set/Set#add global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 - call $~lib/set/Set#has + local.get $0 + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -13213,17 +12732,17 @@ call $~lib/builtins/abort unreachable end - local.get $1 - i64.const 1 - i64.add - local.set $1 + 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 $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 call $~lib/set/Set#get:size i32.const 100 i32.ne @@ -13235,19 +12754,19 @@ call $~lib/builtins/abort unreachable end - i64.const 50 - local.set $1 + i32.const 50 + local.set $0 loop $for-loop|1 - local.get $1 - i64.const 100 - i64.lt_u + local.get $0 + i32.const 100 + i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 - call $~lib/set/Set#has + local.get $0 + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -13258,17 +12777,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 - call $~lib/set/Set#add + local.get $0 + call $~lib/set/Set#add global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 - call $~lib/set/Set#has + local.get $0 + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -13278,17 +12797,17 @@ call $~lib/builtins/abort unreachable end - local.get $1 - i64.const 1 - i64.add - local.set $1 + 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 $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 call $~lib/set/Set#get:size i32.const 100 i32.ne @@ -13301,10 +12820,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $8 - local.get $7 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $8 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -13313,22 +12832,21 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $5 i64.const 0 i64.store - local.get $5 - local.get $7 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $7 + local.get $1 i32.load offset=8 - local.set $3 - local.get $5 - local.get $7 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $7 + local.get $1 i32.load offset=16 - local.set $4 - local.get $5 + local.set $5 + global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -13338,47 +12856,46 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $5 i64.const 0 i64.store - local.get $5 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 19 + i32.const 11 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 - local.get $5 + local.get $6 i32.const 0 i32.store - local.get $5 + local.get $6 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 - local.get $5 + local.get $6 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 - local.get $5 + local.get $6 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 - local.get $5 + local.get $6 i32.const 0 i32.store offset=12 - local.get $4 - i32.const 134217727 + local.get $5 + i32.const 536870910 i32.gt_u if i32.const 1456 @@ -13390,78 +12907,80 @@ end global.get $~lib/memory/__stack_pointer i32.const 8 - local.get $4 - local.get $4 + local.get $5 + local.get $5 i32.const 8 i32.le_u select - i32.const 3 + i32.const 1 i32.shl - local.tee $9 + local.tee $0 i32.const 1 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $7 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=12 - local.get $5 local.get $6 + local.get $7 i32.store - local.get $5 local.get $6 + local.get $7 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 - local.get $5 local.get $6 + local.get $7 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 - local.get $5 - local.get $9 + local.get $6 + local.get $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 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 $5 + local.get $6 i32.store offset=4 + i32.const 0 + local.set $0 loop $for-loop|00 local.get $2 - local.get $4 + local.get $5 i32.lt_s if - local.get $3 + local.get $4 local.get $2 - i32.const 4 + i32.const 3 i32.shl i32.add - local.tee $6 - i32.load offset=8 + local.tee $7 + i32.load offset=4 i32.const 1 i32.and i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store - local.get $5 - local.get $0 local.get $6 - i64.load - call $~lib/array/Array#__set + local.get $0 + local.get $7 + i32.load16_u + call $~lib/array/Array#__set local.get $0 i32.const 1 i32.add @@ -13475,919 +12994,1043 @@ end end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store - local.get $5 + local.get $6 local.get $0 - call $~lib/array/Array#set:length + 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 - local.get $5 + local.get $6 i32.store offset=8 global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor + call $~lib/set/Set#constructor local.tee $0 i32.store offset=12 i32.const 0 local.set $2 loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 - local.get $5 + local.get $6 call $~lib/array/Array#get:length local.get $2 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $1 + local.get $6 + local.get $2 + call $~lib/array/Array#__get + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 24 + i32.const 5 + 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 $6 + i32.store offset=16 + local.get $0 + local.get $6 + local.get $2 + call $~lib/array/Array#__get + call $~lib/set/Set#add + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|2 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/set/Set#get:size + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + local.get $0 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 27 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|3 + local.get $0 + i32.const 50 + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 31 + 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 $0 + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 33 + 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 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + 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 $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 39 + 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 $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $7 - local.get $5 - local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#has + local.get $1 + local.get $0 + call $~lib/set/Set#has i32.eqz if i32.const 0 i32.const 1568 - i32.const 24 + i32.const 41 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $3 - local.get $5 - i32.store offset=16 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 43 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $0 - local.get $5 - local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#add - local.get $2 i32.const 1 i32.add - local.set $2 - br $for-loop|2 + local.set $0 + br $for-loop|4 end end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 call $~lib/set/Set#get:size - local.set $0 + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 + call $~lib/set/Set#clear + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 call $~lib/set/Set#get:size - local.get $0 - i32.ne if i32.const 0 i32.const 1568 - i32.const 27 + i32.const 49 i32.const 3 call $~lib/builtins/abort unreachable end - i64.const 0 - local.set $1 - loop $for-loop|3 - local.get $1 - i64.const 50 - i64.lt_u + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $std/set/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) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $1 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 100 + i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 - call $~lib/set/Set#has - i32.eqz + local.get $0 + call $~lib/set/Set#has if i32.const 0 i32.const 1568 - i32.const 31 + i32.const 6 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 - call $~lib/set/Set#delete + local.get $0 + call $~lib/set/Set#add global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 - call $~lib/set/Set#has + local.get $0 + call $~lib/set/Set#has + i32.eqz if i32.const 0 i32.const 1568 - i32.const 33 + i32.const 8 i32.const 5 call $~lib/builtins/abort unreachable end - local.get $1 - i64.const 1 - i64.add - local.set $1 - br $for-loop|3 + 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 $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 call $~lib/set/Set#get:size - i32.const 50 + i32.const 100 i32.ne if i32.const 0 i32.const 1568 - i32.const 35 + i32.const 10 i32.const 3 call $~lib/builtins/abort unreachable end - i64.const 0 - local.set $1 - loop $for-loop|4 - local.get $1 - i64.const 50 - i64.lt_u + i32.const 50 + 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 $7 - i32.store offset=4 - local.get $7 - local.get $1 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 39 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 local.get $1 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $7 i32.store offset=4 - local.get $7 local.get $1 - call $~lib/set/Set#has + local.get $0 + call $~lib/set/Set#has i32.eqz if i32.const 0 i32.const 1568 - i32.const 41 + i32.const 14 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 - call $~lib/set/Set#delete + local.get $0 + call $~lib/set/Set#add global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 - call $~lib/set/Set#has + local.get $0 + call $~lib/set/Set#has + i32.eqz if i32.const 0 i32.const 1568 - i32.const 43 + i32.const 16 i32.const 5 call $~lib/builtins/abort unreachable end - local.get $1 - i64.const 1 - i64.add - local.set $1 - br $for-loop|4 + 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 $7 + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 18 + 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 1748 + 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 offset=8 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=16 + local.set $5 + global.get $~lib/memory/__stack_pointer + 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 1748 + 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 $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 i32.store offset=4 - local.get $7 - call $~lib/set/Set#get:size - i32.const 50 - i32.ne + local.get $6 + i32.const 0 + i32.store + local.get $6 + 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.gt_u if - i32.const 0 - i32.const 1568 - i32.const 45 - i32.const 3 + i32.const 1456 + i32.const 1616 + i32.const 70 + i32.const 60 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + i32.const 8 + local.get $5 + local.get $5 + i32.const 8 + i32.le_u + select + local.tee $0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 i32.store offset=4 - local.get $7 - call $~lib/set/Set#clear global.get $~lib/memory/__stack_pointer local.get $7 + i32.store offset=12 + local.get $6 + local.get $7 + i32.store + local.get $6 + local.get $7 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 i32.store offset=4 + local.get $6 local.get $7 - call $~lib/set/Set#get:size - if - i32.const 0 - i32.const 1568 - i32.const 49 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 20 + local.get $6 + i32.store offset=4 + local.get $6 + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - return - end - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/set/Set#constructor (result i32) - (local $0 i32) - (local $1 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 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 - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 24 - i32.const 20 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/set/Set#find (param $0 i32) (param $1 f32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 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 - local.tee $3 - i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store - local.get $0 - i32.load - local.set $4 - local.get $3 - local.get $0 - i32.store - local.get $4 - local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - loop $while-continue|0 + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|00 + local.get $2 + local.get $5 + i32.lt_s + if + local.get $4 + local.get $2 + i32.const 3 + i32.shl + i32.add + local.tee $7 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $0 + local.get $7 + i32.load8_s + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|00 + end + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 local.get $0 - if - local.get $0 - i32.load offset=4 - local.tee $2 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else + 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 + call $~lib/set/Set#constructor + local.tee $0 + i32.store offset=12 + i32.const 0 + local.set $2 + loop $for-loop|2 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + call $~lib/array/Array#get:length + local.get $2 + i32.gt_s + if + 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=16 local.get $1 + local.get $6 + local.get $2 + call $~lib/array/Array#__get + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 24 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.get $0 - f32.load - f32.eq - end - if + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 local.get $0 - return + local.get $6 + local.get $2 + call $~lib/array/Array#__get + call $~lib/set/Set#add + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|2 end - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $~lib/set/Set#has (param $0 i32) (param $1 f32) (result 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 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 - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $0 - local.get $1 - 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 $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor - call $~lib/set/Set#find - i32.const 0 - i32.ne - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 f32) - (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 - 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 - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i64.const 0 - i64.store offset=8 - local.get $2 - local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $6 - i32.const 3 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $8 - local.get $0 - i32.load offset=16 - i32.const 3 - i32.shl - i32.add - local.set $5 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $5 - local.get $8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/set/Set#get:size + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + local.get $0 i32.ne if - local.get $8 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz + i32.const 0 + i32.const 1568 + i32.const 27 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|3 + local.get $0 + i32.const 50 + i32.lt_s if - local.get $2 - local.get $8 - f32.load - local.tee $4 - f32.store - local.get $2 - local.get $7 + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $4 - 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 $9 - local.get $9 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $9 - local.get $9 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $9 - local.get $9 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 31 + 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 $0 + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 33 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 i32.add - local.tee $9 - i32.load + local.set $0 + br $for-loop|3 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + 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 $1 i32.store offset=4 - local.get $9 - local.get $2 - i32.store - local.get $2 - i32.const 8 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 39 + 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 $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + 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 $0 + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 43 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 i32.add - local.set $2 + local.set $0 + br $for-loop|4 end - local.get $8 - i32.const 8 - i32.add - local.set $8 - br $while-continue|0 end - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store offset=8 - local.get $2 - local.get $7 - i32.store offset=12 - local.get $0 - local.get $7 - i32.store - local.get $0 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $3 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 45 + 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/set/Set#clear + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + if + i32.const 0 + i32.const 1568 + i32.const 49 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/set/Set#add (param $0 i32) (param $1 f32) - (local $2 i32) + (func $std/set/testNumeric + (local $0 i32) + (local $1 i32) + (local $2 i64) (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.const 20 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 - local.tee $2 - i64.const 0 - i64.store - local.get $2 - local.get $0 - i32.store - local.get $0 - local.get $1 - 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 $2 - call $~lib/set/Set#find - i32.eqz - if + block $folding-inner1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - local.set $3 + i32.const 1748 + i32.lt_s + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $1 i32.store - local.get $3 - local.get $0 - i32.load offset=12 - i32.eq + loop $for-loop|0 + local.get $2 + 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 $2 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 6 + 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 $2 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + 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 $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne 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=20 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $3 - local.get $0 - i32.load offset=12 + i32.const 0 + i32.const 1568 + i32.const 10 i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) + call $~lib/builtins/abort + unreachable + end + i64.const 50 + local.set $2 + loop $for-loop|1 + local.get $2 + i64.const 100 + i64.lt_s + if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 - i32.load offset=4 - else + local.get $1 + local.get $2 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or + local.get $1 + local.get $2 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 1 + i64.add + local.set $2 + br $for-loop|1 end - call $~lib/set/Set#rehash end global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - local.set $4 - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $5 - i32.const 1 - i32.add - i32.store offset=16 - local.get $4 - local.get $5 - i32.const 3 - i32.shl - i32.add - local.tee $4 local.get $1 - f32.store - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - local.get $3 - local.get $0 - i32.store - local.get $0 - i32.load - local.set $5 - local.get $3 - local.get $0 - i32.store - local.get $4 - local.get $5 - local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load + local.get $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 18 + 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 - local.get $0 - local.get $4 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/set/Set#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 8 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1748 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $6 i64.const 0 i64.store - local.get $6 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $0 + local.get $1 i32.load offset=8 - local.set $4 - local.get $6 - local.get $0 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $0 + local.get $1 i32.load offset=16 - local.set $2 + local.set $6 + global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -14397,47 +14040,46 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 21 + i32.const 17 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 0 i32.store - local.get $7 + local.get $8 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 0 i32.store offset=12 - local.get $2 - i32.const 268435455 + local.get $6 + i32.const 134217727 i32.gt_u if i32.const 1456 @@ -14449,1918 +14091,1952 @@ end global.get $~lib/memory/__stack_pointer i32.const 8 - local.get $2 - local.get $2 + local.get $6 + local.get $6 i32.const 8 i32.le_u select - i32.const 2 + i32.const 3 i32.shl - local.tee $0 + local.tee $9 i32.const 1 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $7 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 local.get $7 + i32.store offset=12 local.get $8 - i32.store local.get $7 + i32.store local.get $8 + local.get $7 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 local.get $8 + local.get $7 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 - local.get $0 + local.get $8 + local.get $9 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 - local.get $2 + local.get $8 + 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 $6 - local.get $7 + local.get $8 i32.store offset=4 - loop $for-loop|0 - local.get $2 + loop $for-loop|00 local.get $3 - i32.gt_s + local.get $6 + i32.lt_s if - local.get $4 + local.get $5 local.get $3 - i32.const 3 + i32.const 4 i32.shl i32.add - local.tee $6 - i32.load offset=4 + local.tee $7 + i32.load offset=8 i32.const 1 i32.and i32.eqz if global.get $~lib/memory/__stack_pointer - local.tee $8 - local.get $7 - i32.store - local.get $1 - local.tee $0 - i32.const 1 - i32.add - local.set $1 - local.get $6 - f32.load - local.set $5 local.get $8 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $6 - i32.const 0 - i32.store - local.get $6 - 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 1616 - i32.const 130 - 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.tee $6 - local.get $7 i32.store + local.get $8 + local.get $0 local.get $7 - i32.load offset=4 + i64.load + call $~lib/array/Array#__set local.get $0 - i32.const 2 - i32.shl - i32.add - local.get $5 - f32.store - local.get $6 - i32.const 4 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer + local.set $0 end local.get $3 i32.const 1 i32.add local.set $3 - br $for-loop|0 + br $for-loop|00 end end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 - local.get $1 - call $~lib/array/Array#set:length + 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 $7 - return - end - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result f32) - (local $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 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 - local.tee $3 - i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1616 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $2 - local.get $3 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $~lib/set/Set#delete (param $0 i32) (param $1 f32) - (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 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 - local.tee $2 - i64.const 0 - i64.store - local.get $2 - local.get $0 - i32.store - local.get $0 - local.get $1 - 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 - call $~lib/set/Set#find - local.tee $2 - i32.eqz - if + local.get $8 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - local.get $2 - local.get $2 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 - local.get $2 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $3 - local.get $2 - local.get $0 - i32.store - local.get $3 - i32.const 1 - i32.add - i32.const 4 - local.get $0 - i32.load offset=20 - local.tee $4 - local.get $4 - i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) - local.get $2 - local.get $0 - i32.store - local.get $0 - i32.load offset=20 - local.set $4 - local.get $2 - local.get $0 - i32.store - local.get $4 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - else + call $~lib/set/Set#constructor + local.tee $0 + i32.store offset=12 i32.const 0 - end - if + local.set $3 + loop $for-loop|2 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $~lib/array/Array#get:length + local.get $3 + i32.gt_s + if + 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=16 + local.get $1 + local.get $8 + local.get $3 + call $~lib/array/Array#__get + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 24 + i32.const 5 + 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 $8 + i32.store offset=16 + local.get $0 + local.get $8 + local.get $3 + call $~lib/array/Array#__get + call $~lib/set/Set#add + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|2 + end + end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=4 local.get $0 - local.get $3 - call $~lib/set/Set#rehash - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/set/testNumeric - (local $0 i32) - (local $1 f32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - 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 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 - local.tee $2 - i32.const 0 - i32.const 20 - memory.fill - local.get $2 - call $~lib/set/Set#constructor - local.tee $4 - i32.store - loop $for-loop|0 + call $~lib/set/Set#get:size + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $1 - f32.const 100 - f32.lt + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + local.get $0 + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $1 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $1 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $1 - call $~lib/set/Set#has - i32.eqz + i32.const 0 + i32.const 1568 + i32.const 27 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $2 + loop $for-loop|3 + local.get $2 + i64.const 50 + i64.lt_s if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 31 + 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 $2 + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 33 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 1 + i64.add + local.set $2 + br $for-loop|3 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 $4 - i32.store offset=4 - local.get $4 - call $~lib/set/Set#get:size - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 10 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - f32.const 50 - local.set $1 - loop $for-loop|1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $2 + loop $for-loop|4 + local.get $2 + 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 $2 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 39 + 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 $2 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + 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 $2 + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 43 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 1 + i64.add + local.set $2 + br $for-loop|4 + end + end + global.get $~lib/memory/__stack_pointer local.get $1 - f32.const 100 - f32.lt + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $1 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 14 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $1 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $1 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - f32.const 1 - f32.add - local.set $1 - br $for-loop|1 + i32.const 0 + i32.const 1568 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable end - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/set/Set#get:size - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $4 - i32.store offset=4 - local.get $2 - local.get $4 - call $~lib/set/Set#values - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor - local.tee $3 - i32.store offset=12 - loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 - local.get $2 - call $~lib/array/Array#get:length - local.get $0 - i32.gt_s + local.get $1 + call $~lib/set/Set#clear + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size if - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $4 - local.get $2 - local.get $0 - call $~lib/array/Array#__get - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 24 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $3 - i32.store offset=4 - local.get $5 - local.get $2 - i32.store offset=16 - local.get $3 - local.get $2 - local.get $0 - call $~lib/array/Array#__get - call $~lib/set/Set#add - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|2 + i32.const 0 + i32.const 1568 + i32.const 49 + i32.const 3 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return end + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $std/set/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) global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - call $~lib/set/Set#get:size - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/set/Set#get:size - local.get $0 - i32.ne - if + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1568 - i32.const 27 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - f32.const 0 - local.set $1 - loop $for-loop|3 - local.get $1 - f32.const 50 - f32.lt - if - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $1 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $1 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $1 - call $~lib/set/Set#has + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $1 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 100 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 33 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 6 + 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 $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 8 + 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 - local.get $1 - f32.const 1 - f32.add - local.set $1 - br $for-loop|3 end - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/set/Set#get:size - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 35 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - f32.const 0 - local.set $1 - loop $for-loop|4 + global.get $~lib/memory/__stack_pointer local.get $1 - f32.const 50 - f32.lt + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $1 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 39 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $1 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $1 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $1 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $1 - call $~lib/set/Set#has + i32.const 0 + i32.const 1568 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 50 + local.set $0 + loop $for-loop|1 + local.get $0 + i32.const 100 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 43 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 14 + 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 $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 16 + 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 - 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 $4 - i32.store offset=4 - local.get $4 - call $~lib/set/Set#get:size - i32.const 50 - i32.ne - if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 18 + 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 1748 + 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 offset=8 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=16 + local.set $5 + global.get $~lib/memory/__stack_pointer + 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 1748 + 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 $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 + 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.const 1568 - i32.const 45 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/set/Set#clear - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/set/Set#get:size - if + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 i32.const 0 - i32.const 1568 - i32.const 49 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/set/Set#constructor (result i32) - (local $0 i32) - (local $1 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 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 - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 24 - i32.const 22 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 64 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/set/Set#find (param $0 i32) (param $1 f64) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - if - i32.const 34544 - i32.const 34592 - i32.const 1 + 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 268435455 + i32.gt_u + if + i32.const 1456 + i32.const 1616 + i32.const 70 + 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 $0 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store - local.get $0 - i32.load - local.set $4 - local.get $3 - local.get $0 - i32.store - local.get $4 - local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - loop $while-continue|0 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $6 + local.get $7 + i32.store + local.get $6 + local.get $7 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + 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 $6 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|00 + local.get $2 + local.get $5 + i32.lt_s + if + local.get $4 + local.get $2 + i32.const 3 + i32.shl + i32.add + local.tee $7 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $0 + local.get $7 + i32.load + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|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 + call $~lib/set/Set#constructor + local.tee $0 + i32.store offset=12 + i32.const 0 + local.set $2 + loop $for-loop|2 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + call $~lib/array/Array#get:length + local.get $2 + i32.gt_s + if + 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=16 + local.get $1 + local.get $6 + local.get $2 + call $~lib/array/Array#__get + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 24 + i32.const 5 + 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 $6 + i32.store offset=16 + local.get $0 + local.get $6 + local.get $2 + call $~lib/array/Array#__get + call $~lib/set/Set#add + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|2 + end + end + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/set/Set#get:size + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + local.get $0 + i32.ne if + i32.const 0 + i32.const 1568 + i32.const 27 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|3 local.get $0 - i32.load offset=8 - local.tee $2 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else + i32.const 50 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 local.get $1 local.get $0 - f64.load - f64.eq + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 31 + 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 $0 + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 33 + 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 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + 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 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - return + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 39 + 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 $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + 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 $0 + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 43 + 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 - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 45 + 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/set/Set#clear + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + if + i32.const 0 + i32.const 1568 + i32.const 49 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $~lib/set/Set#has (param $0 i32) (param $1 f64) (result i32) - (local $2 i32) - (local $3 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 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 - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i64.reinterpret_f64 - local.tee $3 - 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 $3 - 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 $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - call $~lib/set/Set#find - i32.const 0 - i32.ne - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) + (func $std/set/testNumeric + (local $0 i32) + (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i64) - (local $5 f64) + (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 16 + i32.const 20 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 + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $1 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 100 + 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/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 6 + 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 $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 8 + 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 $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + 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 50 + 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 $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 14 + 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 $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 16 + 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 $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 18 + 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 1748 + 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 offset=8 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=16 + local.set $5 + global.get $~lib/memory/__stack_pointer + 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 1748 + 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 $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 + 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 536870910 + i32.gt_u + if + i32.const 1456 + i32.const 1616 + i32.const 70 + 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 1 + i32.shl + local.tee $0 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i64.const 0 - i64.store offset=8 - local.get $2 - local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $8 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $7 - i32.const 4 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $9 - local.get $0 - i32.load offset=16 - i32.const 4 - i32.shl - i32.add - local.set $6 - local.get $3 - local.set $2 - loop $while-continue|0 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $6 - local.get $9 - i32.ne - if - local.get $9 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $6 + local.get $7 + i32.store + local.get $6 + local.get $7 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + 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 $6 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|00 + local.get $2 + local.get $5 + i32.lt_s if - local.get $2 - local.get $9 - f64.load - local.tee $5 - f64.store - local.get $2 - local.get $8 - local.get $1 - local.get $5 - 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 $10 - i32.const 15 - i32.shr_u - local.get $10 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $10 - i32.const 13 - i32.shr_u - local.get $10 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $10 - i32.const 16 - i32.shr_u - local.get $10 - i32.xor - i32.and - i32.const 2 + local.get $2 + i32.const 3 i32.shl i32.add - local.tee $10 - i32.load - i32.store offset=8 - local.get $10 - local.get $2 - i32.store + local.tee $7 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $0 + local.get $7 + i32.load16_s + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end local.get $2 - i32.const 16 + i32.const 1 i32.add local.set $2 + br $for-loop|00 end - local.get $9 - i32.const 16 - i32.add - local.set $9 - br $while-continue|0 end - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store offset=8 - local.get $2 - local.get $8 - i32.store offset=12 - local.get $0 - local.get $8 - i32.store - local.get $0 - local.get $8 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $3 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/set/Set#add (param $0 i32) (param $1 f64) - (local $2 i64) - (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 - 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 - local.tee $3 - i64.const 0 - i64.store - local.get $3 - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i64.reinterpret_f64 - local.tee $2 - 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 $2 - 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 $3 - call $~lib/set/Set#find - i32.eqz - if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $6 i32.store + local.get $6 local.get $0 - i32.load offset=16 - local.set $4 + 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 + call $~lib/set/Set#constructor + local.tee $0 + i32.store offset=12 + i32.const 0 + local.set $2 + loop $for-loop|2 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + call $~lib/array/Array#get:length + local.get $2 + i32.gt_s + if + 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=16 + local.get $1 + local.get $6 + local.get $2 + call $~lib/array/Array#__get + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 24 + i32.const 5 + 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 $6 + i32.store offset=16 + local.get $0 + local.get $6 + local.get $2 + call $~lib/array/Array#__get + call $~lib/set/Set#add + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|2 + end + end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - local.get $4 + i32.store offset=4 local.get $0 - i32.load offset=12 - i32.eq + call $~lib/set/Set#get:size + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + local.get $0 + i32.ne 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=20 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $4 - local.get $0 - i32.load offset=12 + i32.const 0 + i32.const 1568 + i32.const 27 i32.const 3 - i32.mul - i32.const 4 - i32.div_s + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|3 + local.get $0 + i32.const 50 i32.lt_s - if (result i32) + if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 + local.get $1 local.get $0 - i32.load offset=4 - else + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 31 + 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 $0 + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 33 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl i32.const 1 - i32.or + i32.add + local.set $0 + br $for-loop|3 end - call $~lib/set/Set#rehash end global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - local.set $5 - local.get $4 - local.get $0 - i32.store - local.get $4 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $6 - i32.const 1 - i32.add - i32.store offset=16 - local.get $5 - local.get $6 - i32.const 4 - i32.shl - i32.add - local.tee $5 local.get $1 - f64.store - local.get $4 - local.get $0 - i32.store - local.get $4 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - local.get $4 - local.get $0 - i32.store - local.get $0 - i32.load - local.set $6 - local.get $4 - local.get $0 - i32.store - local.get $5 - local.get $6 - local.get $3 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=8 - local.get $0 - local.get $5 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/set/Set#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 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $6 - i64.const 0 - i64.store - local.get $6 - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - local.set $4 - local.get $6 - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - local.set $2 - 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 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 16 - i32.const 23 - 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 + local.get $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end i32.const 0 - call $~lib/rt/itcms/__link + 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 $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 39 + 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 $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + 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 $0 + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 43 + 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 $7 - i32.store offset=4 - local.get $7 - i32.const 0 + local.get $1 i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=8 + local.get $1 + call $~lib/set/Set#clear global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=12 - local.get $2 - i32.const 134217727 - i32.gt_u + local.get $1 + call $~lib/set/Set#get:size if - i32.const 1456 - i32.const 1616 - i32.const 70 - i32.const 60 + i32.const 0 + i32.const 1568 + i32.const 49 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $2 - local.get $2 - i32.const 8 - i32.le_u - select - i32.const 3 - i32.shl - local.tee $0 + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $std/set/testNumeric + (local $0 i32) + (local $1 f64) + (local $2 i32) + (local $3 i32) + (local $4 i32) + 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 1748 + i32.lt_s + if + i32.const 34544 + i32.const 34592 i32.const 1 - call $~lib/rt/itcms/__new - local.tee $8 - 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 $8 - i32.store offset=12 - local.get $7 - local.get $8 - i32.store - local.get $7 - local.get $8 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $0 - i32.store offset=8 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $0 + i32.store + 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/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 6 + 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/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 8 + 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/set/Set#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f64.const 50 + 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/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 14 + 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/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + 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/set/Set#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 18 + 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/set/Set#values + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $4 + i32.store offset=12 + loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $3 i32.store offset=4 - local.get $7 + local.get $3 + call $~lib/array/Array#get:length local.get $2 - 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 $7 - i32.store offset=4 - loop $for-loop|0 - local.get $2 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $3 - i32.gt_s + i32.store offset=16 + local.get $0 + local.get $3 + local.get $2 + call $~lib/array/Array#__get + call $~lib/set/Set#has + i32.eqz if - local.get $4 - local.get $3 - i32.const 4 - i32.shl - i32.add - local.tee $6 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.tee $8 - local.get $7 - i32.store - local.get $1 - local.tee $0 - i32.const 1 - i32.add - local.set $1 - local.get $6 - f64.load - local.set $5 - local.get $8 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $6 - i32.const 0 - i32.store - local.get $6 - 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 1616 - i32.const 130 - 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.tee $6 - 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 - local.get $6 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 + i32.const 0 + i32.const 1568 + i32.const 24 + i32.const 5 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=16 + local.get $4 + local.get $3 + local.get $2 + call $~lib/array/Array#__get + call $~lib/set/Set#add + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|2 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 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result f64) - (local $2 f64) - (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/set/Set#get:size + local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/set/Set#get:size + local.get $2 + i32.ne if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 27 + i32.const 3 call $~lib/builtins/abort unreachable end + f64.const 0 + local.set $1 + loop $for-loop|3 + 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/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + 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/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 33 + 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 global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $3 local.get $0 - i32.store - local.get $1 + i32.store offset=4 local.get $0 - i32.load offset=12 - i32.ge_u + call $~lib/set/Set#get:size + i32.const 50 + i32.ne if - i32.const 1248 - i32.const 1616 - i32.const 114 - i32.const 42 + i32.const 0 + i32.const 1568 + i32.const 35 + i32.const 3 call $~lib/builtins/abort unreachable 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/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 39 + 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/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + 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/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 43 + 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.tee $3 local.get $0 - i32.store + i32.store offset=4 local.get $0 - i32.load offset=4 - local.get $1 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $2 - local.get $3 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $~lib/set/Set#delete (param $0 i32) (param $1 f64) - (local $2 i64) - (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 1748 - i32.lt_s + call $~lib/set/Set#get:size + i32.const 50 + i32.ne if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 45 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 local.get $0 - i32.store + i32.store offset=4 local.get $0 - local.get $1 - local.get $1 - i64.reinterpret_f64 - local.tee $2 - 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 $2 - 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 - call $~lib/set/Set#find - local.tee $3 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - local.get $3 - local.get $3 - i32.load offset=8 - i32.const 1 - i32.or - i32.store offset=8 + call $~lib/set/Set#clear global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store - local.get $3 local.get $0 i32.store offset=4 local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 - local.get $3 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $4 - local.get $3 - local.get $0 - i32.store - local.get $4 - i32.const 1 - i32.add - i32.const 4 - local.get $0 - i32.load offset=20 - local.tee $5 - local.get $5 - i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) - local.get $3 - local.get $0 - i32.store - local.get $0 - i32.load offset=20 - local.set $5 - local.get $3 - local.get $0 - i32.store - local.get $5 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - else - i32.const 0 - end + call $~lib/set/Set#get:size if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $4 - call $~lib/set/Set#rehash + i32.const 0 + i32.const 1568 + i32.const 49 + i32.const 3 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/set/testNumeric + (func $std/set/testNumeric (local $0 i32) - (local $1 f64) + (local $1 f32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -16377,25 +16053,24 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 - i32.const 20 - memory.fill - local.get $2 - call $~lib/set/Set#constructor - local.tee $4 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $0 i32.store loop $for-loop|0 local.get $1 - f64.const 100 - f64.lt + f32.const 100 + f32.lt if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 local.get $1 - call $~lib/set/Set#has + call $~lib/set/Set#has if i32.const 0 i32.const 1568 @@ -16405,17 +16080,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 local.get $1 - call $~lib/set/Set#add + call $~lib/set/Set#add global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 local.get $1 - call $~lib/set/Set#has + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -16426,16 +16101,16 @@ unreachable end local.get $1 - f64.const 1 - f64.add + f32.const 1 + f32.add local.set $1 br $for-loop|0 end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 call $~lib/set/Set#get:size i32.const 100 i32.ne @@ -16447,19 +16122,19 @@ call $~lib/builtins/abort unreachable end - f64.const 50 + f32.const 50 local.set $1 loop $for-loop|1 local.get $1 - f64.const 100 - f64.lt + f32.const 100 + f32.lt if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 local.get $1 - call $~lib/set/Set#has + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -16470,17 +16145,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 local.get $1 - call $~lib/set/Set#add + call $~lib/set/Set#add global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 local.get $1 - call $~lib/set/Set#has + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -16491,16 +16166,16 @@ unreachable end local.get $1 - f64.const 1 - f64.add + f32.const 1 + f32.add local.set $1 br $for-loop|1 end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 call $~lib/set/Set#get:size i32.const 100 i32.ne @@ -16513,38 +16188,37 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $4 + local.get $0 i32.store offset=4 - local.get $2 - local.get $4 - call $~lib/set/Set#values - local.tee $2 - i32.store offset=8 global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor + local.get $0 + call $~lib/set/Set#values local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $4 i32.store offset=12 loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 call $~lib/array/Array#get:length - local.get $0 + local.get $2 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=16 - local.get $4 - local.get $2 local.get $0 - call $~lib/array/Array#__get - call $~lib/set/Set#has + local.get $3 + local.get $2 + call $~lib/array/Array#__get + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -16555,36 +16229,35 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $3 + local.get $4 i32.store offset=4 - local.get $5 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $3 i32.store offset=16 + local.get $4 local.get $3 local.get $2 - local.get $0 - call $~lib/array/Array#__get - call $~lib/set/Set#add - local.get $0 + call $~lib/array/Array#__get + call $~lib/set/Set#add + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|2 end end global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - call $~lib/set/Set#get:size - local.set $0 - global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 call $~lib/set/Set#get:size + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/set/Set#get:size + local.get $2 i32.ne if i32.const 0 @@ -16594,19 +16267,19 @@ call $~lib/builtins/abort unreachable end - f64.const 0 + f32.const 0 local.set $1 loop $for-loop|3 local.get $1 - f64.const 50 - f64.lt + f32.const 50 + f32.lt if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 local.get $1 - call $~lib/set/Set#has + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -16617,17 +16290,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 local.get $1 - call $~lib/set/Set#delete + call $~lib/set/Set#delete global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 local.get $1 - call $~lib/set/Set#has + call $~lib/set/Set#has if i32.const 0 i32.const 1568 @@ -16637,16 +16310,16 @@ unreachable end local.get $1 - f64.const 1 - f64.add + f32.const 1 + f32.add local.set $1 br $for-loop|3 end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 call $~lib/set/Set#get:size i32.const 50 i32.ne @@ -16658,19 +16331,19 @@ call $~lib/builtins/abort unreachable end - f64.const 0 + f32.const 0 local.set $1 loop $for-loop|4 local.get $1 - f64.const 50 - f64.lt + f32.const 50 + f32.lt if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 local.get $1 - call $~lib/set/Set#has + call $~lib/set/Set#has if i32.const 0 i32.const 1568 @@ -16680,17 +16353,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 local.get $1 - call $~lib/set/Set#add + call $~lib/set/Set#add global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 local.get $1 - call $~lib/set/Set#has + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -16701,17 +16374,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 local.get $1 - call $~lib/set/Set#delete + call $~lib/set/Set#delete global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 local.get $1 - call $~lib/set/Set#has + call $~lib/set/Set#has if i32.const 0 i32.const 1568 @@ -16721,16 +16394,16 @@ unreachable end local.get $1 - f64.const 1 - f64.add + f32.const 1 + f32.add local.set $1 br $for-loop|4 end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 call $~lib/set/Set#get:size i32.const 50 i32.ne @@ -16743,14 +16416,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 - call $~lib/set/Set#clear + local.get $0 + call $~lib/set/Set#clear global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 call $~lib/set/Set#get:size if i32.const 0 @@ -16765,46 +16438,4 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/arraybuffer/ArrayBuffer#constructor (param $0 i32) (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 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 - i32.const 0 - i32.store - local.get $0 - i32.const 1073741820 - i32.gt_u - if - i32.const 1456 - i32.const 1504 - i32.const 52 - i32.const 43 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) ) diff --git a/tests/compiler/std/static-array.debug.wat b/tests/compiler/std/static-array.debug.wat index 6beb21bf28..cfc3928c0c 100644 --- a/tests/compiler/std/static-array.debug.wat +++ b/tests/compiler/std/static-array.debug.wat @@ -1663,14 +1663,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + drop global.get $~lib/rt/itcms/total - i64.extend_i32_u i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 + i32.const 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold @@ -2488,12 +2491,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -3322,10 +3321,6 @@ (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 4 i32.sub @@ -3335,11 +3330,11 @@ i32.const 0 i32.store global.get $std/static-array/i - local.set $8 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.store - local.get $8 + local.get $4 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -3353,11 +3348,11 @@ unreachable end global.get $std/static-array/i - local.set $8 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.store - local.get $8 + local.get $4 i32.const 0 call $~lib/array/Array#__get i32.const 1 @@ -3372,11 +3367,11 @@ unreachable end global.get $std/static-array/i - local.set $8 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.store - local.get $8 + local.get $4 i32.const 1 call $~lib/array/Array#__get i32.const 2 @@ -3408,20 +3403,20 @@ call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace global.get $std/static-array/i - local.set $8 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.store - local.get $8 + local.get $4 i32.const 0 i32.const 2 call $~lib/array/Array#__set global.get $std/static-array/i - local.set $8 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.store - local.get $8 + local.get $4 i32.const 0 call $~lib/array/Array#__get i32.const 2 @@ -3436,11 +3431,11 @@ unreachable end global.get $std/static-array/I - local.set $8 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.store - local.get $8 + local.get $4 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -3454,11 +3449,11 @@ unreachable end global.get $std/static-array/I - local.set $8 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.store - local.get $8 + local.get $4 i32.const 0 call $~lib/array/Array#__get i64.const 3 @@ -3473,11 +3468,11 @@ unreachable end global.get $std/static-array/I - local.set $8 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.store - local.get $8 + local.get $4 i32.const 1 call $~lib/array/Array#__get i64.const 4 @@ -3492,20 +3487,20 @@ unreachable end global.get $std/static-array/I - local.set $8 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.store - local.get $8 + local.get $4 i32.const 0 i64.const 4 call $~lib/array/Array#__set global.get $std/static-array/I - local.set $8 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.store - local.get $8 + local.get $4 i32.const 0 call $~lib/array/Array#__get i64.const 4 @@ -3520,11 +3515,11 @@ unreachable end global.get $std/static-array/f - local.set $8 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.store - local.get $8 + local.get $4 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -3538,11 +3533,11 @@ unreachable end global.get $std/static-array/f - local.set $8 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.store - local.get $8 + local.get $4 i32.const 0 call $~lib/array/Array#__get f32.const 1.5 @@ -3557,11 +3552,11 @@ unreachable end global.get $std/static-array/f - local.set $8 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.store - local.get $8 + local.get $4 i32.const 1 call $~lib/array/Array#__get f32.const 2.5 @@ -3576,20 +3571,20 @@ unreachable end global.get $std/static-array/f - local.set $8 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.store - local.get $8 + local.get $4 i32.const 0 f32.const 2.5 call $~lib/array/Array#__set global.get $std/static-array/f - local.set $8 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.store - local.get $8 + local.get $4 i32.const 0 call $~lib/array/Array#__get f32.const 2.5 @@ -3604,11 +3599,11 @@ unreachable end global.get $std/static-array/F - local.set $8 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.store - local.get $8 + local.get $4 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -3622,11 +3617,11 @@ unreachable end global.get $std/static-array/F - local.set $8 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.store - local.get $8 + local.get $4 i32.const 0 call $~lib/array/Array#__get f64.const 1.25 @@ -3641,11 +3636,11 @@ unreachable end global.get $std/static-array/F - local.set $8 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.store - local.get $8 + local.get $4 i32.const 1 call $~lib/array/Array#__get f64.const 2.25 @@ -3660,20 +3655,20 @@ unreachable end global.get $std/static-array/F - local.set $8 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.store - local.get $8 + local.get $4 i32.const 0 f64.const 2.25 call $~lib/array/Array#__set global.get $std/static-array/F - local.set $8 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.store - local.get $8 + local.get $4 i32.const 0 call $~lib/array/Array#__get f64.const 2.25 diff --git a/tests/compiler/std/static-array.release.wat b/tests/compiler/std/static-array.release.wat index 8aeac945d1..14b3ca07e7 100644 --- a/tests/compiler/std/static-array.release.wat +++ b/tests/compiler/std/static-array.release.wat @@ -4,12 +4,12 @@ (type $2 (func (param i32 i32))) (type $3 (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) (result i32))) - (type $8 (func (param i32) (result i64))) - (type $9 (func (param i32) (result f32))) - (type $10 (func (param i32) (result f64))) + (type $5 (func (param i32) (result i64))) + (type $6 (func (param i32) (result f64))) + (type $7 (func (param i32) (result f32))) + (type $8 (func (param i32 i32) (result i32))) + (type $9 (func (param i32 i32 i64))) + (type $10 (func (result i32))) (import "env" "abort" (func $~lib/builtins/abort (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)) @@ -59,193 +59,6 @@ (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 - (local $0 i32) - (local $1 i32) - i32.const 1088 - call $~lib/rt/itcms/__visit - i32.const 1184 - call $~lib/rt/itcms/__visit - i32.const 1264 - call $~lib/rt/itcms/__visit - i32.const 1360 - call $~lib/rt/itcms/__visit - i32.const 1472 - call $~lib/rt/itcms/__visit - i32.const 1584 - 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 1696 - 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 1696 - 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$155 - 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 34756 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1696 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$155 - end - local.get $0 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1696 - 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 1952 - i32.load - i32.gt_u - if - i32.const 1472 - i32.const 1824 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.const 1956 - 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 @@ -270,195 +83,707 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (func $~lib/array/ensureCapacity (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 + (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 1904 - i32.const 268 - i32.const 14 + i32.const 34784 + i32.const 34832 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u + 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 + local.get $1 + i32.shr_u + i32.eqz if - i32.const 0 - i32.const 1904 - 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 1904 - 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.shr_u i32.eqz if - local.get $0 + i32.const 1584 + i32.const 1536 + 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$145 + i32.const 1073741820 local.get $2 - i32.const 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 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 $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$145 + end + local.get $4 + i32.load offset=12 + local.set $6 local.get $3 - i32.store offset=4 - 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 - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - i32.rotl + 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.store + i32.const 4 + i32.sub 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 1904 - 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 1904 - 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 + local.tee $8 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if + 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 + memory.size + local.tee $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.set $5 + local.get $1 + local.get $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 + 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 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.store offset=4 + local.get $1 + if + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1696 + 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 $2 + 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 $2 + i32.const 3 + i32.eq + i32.and + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + end + end + end + end + end + local.get $0 + local.get $3 + 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#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 34784 + i32.const 34832 + 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/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 1904 + 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 1904 + 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 1904 + 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 1904 + 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 1904 + 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 @@ -662,462 +987,391 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + (local $2 i32) (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 1904 - 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 + global.get $~lib/rt/itcms/iter + i32.eq if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz if i32.const 0 - i32.const 1904 - i32.const 389 - i32.const 16 + i32.const 1696 + i32.const 148 + i32.const 30 call $~lib/builtins/abort unreachable end - local.get $3 local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$155 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz if - local.get $3 - i32.load - local.set $4 - local.get $5 - local.set $1 + local.get $0 + i32.load offset=8 + i32.eqz + local.get $0 + i32.const 34756 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1696 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$155 end - else local.get $0 - i32.const 1572 - i32.add + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1696 + 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 1952 + i32.load i32.gt_u if - i32.const 0 - i32.const 1904 - i32.const 402 - i32.const 5 + i32.const 1472 + i32.const 1824 + i32.const 21 + i32.const 28 call $~lib/builtins/abort unreachable end + local.get $1 + i32.const 2 + i32.shl + i32.const 1956 + i32.add + i32.load + i32.const 32 + i32.and end + local.set $3 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.load offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz i32.const 2 - i32.and local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or + select + local.get $2 i32.or - i32.store - local.get $1 - i32.const 0 i32.store offset=4 + local.get $0 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 34768 - i32.const 0 - i32.store - i32.const 36336 - 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 34768 - 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 34768 - 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 34768 - i32.const 36340 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34768 - global.set $~lib/rt/tlsf/ROOT + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $2 + local.get $0 + i32.store offset=8 ) - (func $~lib/rt/itcms/step (result i32) - (local $0 i32) - (local $1 i32) - (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - local.get $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 - local.get $0 - i32.load offset=4 - 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 34756 - 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 + (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 20 - i32.add - call $~lib/rt/__visit_members + 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 $invalid end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 + return end + return 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 1696 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable + return end local.get $0 - i32.const 34756 - 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 34756 - 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.set $1 - 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 1904 - 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 $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 + i32.load + call $~lib/rt/itcms/__visit return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + 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 1988 + i32.lt_s + if + i32.const 34784 + i32.const 34832 + 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 + 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#__get (param $0 i32) (result i64) + (local $1 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 1988 + i32.lt_s + if + i32.const 34784 + i32.const 34832 + 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 1184 + i32.store + local.get $0 + i32.const 1196 + i32.load + i32.ge_u + if + i32.const 1472 + i32.const 1536 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1184 + i32.store + i32.const 1188 + i32.load + local.get $0 + 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/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 + i32.const 34784 + i32.const 34832 + 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 1472 + i32.const 1536 + 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/Array#__get (param $0 i32) (result f64) + (local $1 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 1988 + i32.lt_s + if + i32.const 34784 + i32.const 34832 + 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 1360 + i32.store + local.get $0 + i32.const 1372 + i32.load + i32.ge_u + if + i32.const 1472 + i32.const 1536 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1360 + i32.store + i32.const 1364 + i32.load + local.get $0 + 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/array/Array#__get (param $0 i32) (result f32) + (local $1 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 1988 + i32.lt_s + if + i32.const 34784 + i32.const 34832 + 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 1264 + i32.store + local.get $0 + i32.const 1276 + i32.load + i32.ge_u + if + i32.const 1472 + i32.const 1536 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1264 + i32.store + i32.const 1268 + i32.load + local.get $0 + 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/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1247,813 +1501,519 @@ end end ) - (func $~lib/rt/__visit_members (param $0 i32) + (func $~lib/rt/tlsf/initialize + (local $0 i32) (local $1 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 $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - 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 1988 - i32.lt_s - if - i32.const 34784 - i32.const 34832 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + memory.size local.tee $1 i32.const 0 - i32.store - local.get $1 - 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 - ) - (func $~start - call $start:std/static-array - ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1988 - i32.lt_s - if - i32.const 34784 - i32.const 34832 - i32.const 1 + i32.le_s + if (result i32) i32.const 1 - call $~lib/builtins/abort + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $1 + i32.const 34768 i32.const 0 i32.store - local.get $1 - local.get $0 + i32.const 36336 + i32.const 0 i32.store - local.get $0 - i32.load offset=12 - local.set $0 - local.get $1 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/array/Array#__get (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1988 - i32.lt_s - if - i32.const 34784 - i32.const 34832 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 34768 + 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 34768 + 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 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store + i32.const 34768 + i32.const 36340 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34768 + global.set $~lib/rt/tlsf/ROOT + ) + (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 - i32.const 1088 - i32.store - local.get $0 - i32.const 1100 - i32.load - i32.ge_u + i64.extend_i32_u + i64.lt_u if - i32.const 1472 - i32.const 1536 - i32.const 114 - i32.const 42 + i32.const 0 + i32.const 1904 + i32.const 382 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 1088 - i32.store - i32.const 1092 - i32.load - local.get $0 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 local.get $1 - i32.const 4 + i32.const 19 i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (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 -16 + i32.and i32.const 4 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1988 - i32.lt_s + local.set $1 + local.get $0 + i32.load offset=1568 + local.tee $3 if - i32.const 34784 - i32.const 34832 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1904 + 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 1904 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end end - global.get $~lib/memory/__stack_pointer - local.tee $2 + 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 $2 local.get $0 - i32.store + local.get $3 + i32.store offset=1568 local.get $0 - i32.load offset=8 - local.tee $2 local.get $1 - i32.shr_u - i32.eqz - if - i32.const 1073741820 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1088 + call $~lib/rt/itcms/__visit + i32.const 1184 + call $~lib/rt/itcms/__visit + i32.const 1264 + call $~lib/rt/itcms/__visit + i32.const 1360 + call $~lib/rt/itcms/__visit + i32.const 1472 + call $~lib/rt/itcms/__visit + i32.const 1584 + 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.shr_u - i32.eqz + i32.ne if - i32.const 1584 - i32.const 1536 - 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$145 - 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 - 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$145 - end - local.get $4 - i32.load offset=12 - local.set $6 - local.get $3 - i32.const 1073741804 - i32.ge_u + i32.load offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne if - i32.const 1632 + i32.const 0 i32.const 1696 - i32.const 261 - i32.const 31 + i32.const 160 + i32.const 16 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 $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 $~start + call $start:std/static-array + ) + (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 - i32.gt_s - br_if $do-loop|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 - global.get $~lib/rt/itcms/total - local.tee $1 - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - local.get $1 - i32.add - global.set $~lib/rt/itcms/threshold + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 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 + 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 - memory.size - local.tee $1 - local.get $8 - i32.const 256 - i32.ge_u - if (result i32) - local.get $8 - i32.const 536870910 + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 34756 i32.lt_u - if (result i32) - local.get $8 - i32.const 1 - i32.const 27 - local.get $8 - i32.clz - i32.sub - i32.shl + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + local.get $0 + i32.const 4 i32.add - i32.const 1 - i32.sub - else - local.get $8 + local.set $0 + br $while-continue|0 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 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 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 + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne if - unreachable + 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 $7 + 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 - 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 + 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 - local.get $8 - local.get $1 - i32.load + 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 - 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 + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz local.get $1 - i32.load - local.set $9 - local.get $8 - i32.const 4 - i32.add - i32.const 15 + i32.const 3 i32.and + i32.ne if i32.const 0 - i32.const 1904 - i32.const 361 - i32.const 14 + i32.const 1696 + i32.const 229 + i32.const 20 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 + local.get $0 + i32.const 34756 + i32.lt_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 + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 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 + global.get $~lib/rt/itcms/total + local.get $0 i32.load i32.const -4 i32.and + i32.const 4 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 - 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 - local.get $1 - i32.store - local.get $0 - local.get $1 - i32.store offset=4 - local.get $1 - if - local.get $0 - i32.eqz - if - i32.const 0 - i32.const 1696 - i32.const 295 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/itcms/white - local.tee $2 - local.get $1 - i32.const 20 i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 4 + i32.add + local.tee $0 + i32.const 34756 + i32.ge_u if - local.get $2 + 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 20 + i32.const 4 i32.sub - i32.load offset=4 - i32.const 3 + local.set $2 + local.get $0 + i32.const 15 i32.and - local.tee $2 - i32.eq - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - i32.eq + else local.get $2 - i32.const 3 - i32.eq + i32.load + i32.const 1 i32.and - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - end end + if + i32.const 0 + i32.const 1904 + 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 - local.get $0 - local.get $3 + 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 - 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) (result i64) - (local $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 1988 - i32.lt_s - if - i32.const 34784 - i32.const 34832 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 - i32.const 1184 - i32.store - local.get $0 - i32.const 1196 - i32.load - i32.ge_u - if - i32.const 1472 - i32.const 1536 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 1184 - i32.store - i32.const 1188 - i32.load - local.get $0 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $1 - local.get $2 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $~lib/array/Array#__get (param $0 i32) (result f32) - (local $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 1988 - i32.lt_s - if - i32.const 34784 - i32.const 34832 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 - i32.const 1264 - i32.store - local.get $0 - i32.const 1276 - i32.load - i32.ge_u - if - i32.const 1472 - i32.const 1536 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 1264 - i32.store - i32.const 1268 - i32.load - local.get $0 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $1 - local.get $2 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $~lib/array/Array#__get (param $0 i32) (result f64) - (local $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 1988 - i32.lt_s - if - i32.const 34784 - i32.const 34832 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 - i32.store - local.get $2 - i32.const 1360 - i32.store - local.get $0 - i32.const 1372 - i32.load - i32.ge_u - if - i32.const 1472 - i32.const 1536 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 1360 - i32.store - i32.const 1364 - i32.load - local.get $0 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $1 - local.get $2 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 ) (func $start:std/static-array - (local $0 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2064,10 +2024,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1088 i32.store i32.const 1088 @@ -2145,10 +2104,9 @@ i32.const 1856 global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1088 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2157,10 +2115,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1088 i32.store i32.const 1100 @@ -2178,14 +2135,13 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1088 i32.store i32.const 1092 i32.load i32.const 2 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -2250,10 +2206,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1184 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2262,10 +2217,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1184 i32.store i32.const 1196 @@ -2283,14 +2237,13 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1184 i32.store i32.const 1188 i32.load i64.const 4 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -2355,10 +2308,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1264 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2367,10 +2319,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1264 i32.store i32.const 1276 @@ -2388,14 +2339,13 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1264 i32.store i32.const 1268 i32.load f32.const 2.5 f32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -2460,10 +2410,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1360 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2472,10 +2421,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1360 i32.store i32.const 1372 @@ -2493,14 +2441,13 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1360 i32.store i32.const 1364 i32.load f64.const 2.25 f64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/std/staticarray.debug.wat b/tests/compiler/std/staticarray.debug.wat index 2f10a71907..fe1032fd29 100644 --- a/tests/compiler/std/staticarray.debug.wat +++ b/tests/compiler/std/staticarray.debug.wat @@ -1729,14 +1729,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 @@ -3117,161 +3120,6 @@ end end ) - (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) - (local $j i32) - (local $k i32) - (local $tmp i32) - local.get $i - local.get $right - i32.eq - if - local.get $i - return - end - local.get $i - local.set $j - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - local.get $ptr - local.get $j - i32.const 1 - i32.add - local.tee $j - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $2) - i32.const 0 - i32.gt_s - if - loop $while-continue|0 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $2) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 - end - end - local.get $j - local.set $k - loop $while-continue|1 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.set $tmp - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $tmp - i32.store - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 - end - end - else - loop $while-continue|2 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $2) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|2 - end - end - end - local.get $j - return - ) (func $~lib/util/sort/nodePower (param $left i32) (param $right i32) (param $startA i32) (param $startB i32) (param $endB i32) (result i32) (local $n i64) (local $s i32) @@ -3562,12 +3410,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -5789,13 +5633,13 @@ (func $~lib/staticarray/StaticArray<~lib/string/String>#toString (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 - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -5803,15 +5647,10 @@ i32.store local.get $1 i32.const 1936 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/staticarray/StaticArray<~lib/string/String>#join 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 @@ -6129,22 +5968,26 @@ (local $out i32) (local $outStart i32) (local $i i32) + (local $6 i32) (local $result i32) - (local $7 i32) + (local $8 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 i64.const 0 i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 local.get $this - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 call $~lib/staticarray/StaticArray#get:length local.set $len global.get $~lib/memory/__stack_pointer @@ -6156,11 +5999,11 @@ local.tee $out i32.store offset=4 local.get $out - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 call $~lib/array/Array#get:dataStart local.set $outStart i32.const 0 @@ -6170,6 +6013,10 @@ local.get $len i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn + local.tee $6 + i32.store offset=8 local.get $this local.get $i i32.const 2 @@ -6178,14 +6025,14 @@ i32.load local.get $i local.get $this - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn + local.get $6 i32.load call_indirect (type $3) local.set $result @@ -6206,34 +6053,35 @@ end end local.get $out - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) (func $~lib/staticarray/StaticArray#forEach (param $this i32) (param $fn i32) (local $i i32) (local $len i32) (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 call $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i64.const 0 + i64.store i32.const 0 local.set $i local.get $this - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 call $~lib/staticarray/StaticArray#get:length local.set $len loop $for-loop|0 @@ -6241,6 +6089,10 @@ local.get $len i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn + local.tee $4 + i32.store offset=4 local.get $this local.get $i i32.const 2 @@ -6249,14 +6101,14 @@ i32.load local.get $i local.get $this - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 i32.const 3 global.set $~argumentsLength - local.get $fn + local.get $4 i32.load call_indirect (type $5) local.get $i @@ -6267,7 +6119,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) @@ -6540,24 +6392,25 @@ (local $i i32) (local $len i32) (local $6 i32) + (local $7 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 $initialValue local.set $acc i32.const 0 local.set $i local.get $this - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store - local.get $6 + local.get $7 call $~lib/staticarray/StaticArray#get:length local.set $len loop $for-loop|0 @@ -6565,6 +6418,10 @@ local.get $len i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn + local.tee $6 + i32.store offset=4 local.get $acc local.get $this local.get $i @@ -6574,14 +6431,14 @@ i32.load local.get $i local.get $this - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store - local.get $6 + local.get $7 i32.const 4 global.set $~argumentsLength - local.get $fn + local.get $6 i32.load call_indirect (type $4) local.set $acc @@ -6593,34 +6450,35 @@ end end local.get $acc - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $7 return ) (func $~lib/staticarray/StaticArray#reduceRight (param $this i32) (param $fn i32) (param $initialValue i32) (result i32) (local $acc i32) (local $i i32) (local $5 i32) + (local $6 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 $initialValue local.set $acc local.get $this - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store - local.get $5 + local.get $6 call $~lib/staticarray/StaticArray#get:length i32.const 1 i32.sub @@ -6630,6 +6488,10 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $fn + local.tee $5 + i32.store offset=4 local.get $acc local.get $this local.get $i @@ -6639,14 +6501,14 @@ i32.load local.get $i local.get $this - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store - local.get $5 + local.get $6 i32.const 4 global.set $~argumentsLength - local.get $fn + local.get $5 i32.load call_indirect (type $4) local.set $acc @@ -6658,34 +6520,35 @@ end end local.get $acc - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $6 return ) (func $~lib/staticarray/StaticArray#some (param $this i32) (param $fn i32) (result i32) (local $i i32) (local $len i32) (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 call $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i64.const 0 + i64.store i32.const 0 local.set $i local.get $this - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 call $~lib/staticarray/StaticArray#get:length local.set $len loop $for-loop|0 @@ -6693,6 +6556,10 @@ local.get $len i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn + local.tee $4 + i32.store offset=4 local.get $this local.get $i i32.const 2 @@ -6701,24 +6568,24 @@ i32.load local.get $i local.get $this - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 i32.const 3 global.set $~argumentsLength - local.get $fn + local.get $4 i32.load call_indirect (type $3) if i32.const 1 - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $5 return end local.get $i @@ -6729,34 +6596,35 @@ end end i32.const 0 - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $5 return ) (func $~lib/staticarray/StaticArray#every (param $this i32) (param $fn i32) (result i32) (local $i i32) (local $len i32) (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 call $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i64.const 0 + i64.store i32.const 0 local.set $i local.get $this - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 call $~lib/staticarray/StaticArray#get:length local.set $len loop $for-loop|0 @@ -6764,6 +6632,10 @@ local.get $len i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn + local.tee $4 + i32.store offset=4 local.get $this local.get $i i32.const 2 @@ -6772,25 +6644,25 @@ i32.load local.get $i local.get $this - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 i32.const 3 global.set $~argumentsLength - local.get $fn + local.get $4 i32.load call_indirect (type $3) i32.eqz if i32.const 0 - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $5 return end local.get $i @@ -6801,34 +6673,35 @@ end end i32.const 1 - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $5 return ) (func $~lib/staticarray/StaticArray#findIndex (param $this i32) (param $fn i32) (result i32) (local $i i32) (local $len i32) (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 call $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i64.const 0 + i64.store i32.const 0 local.set $i local.get $this - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 call $~lib/staticarray/StaticArray#get:length local.set $len loop $for-loop|0 @@ -6836,6 +6709,10 @@ local.get $len i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn + local.tee $4 + i32.store offset=4 local.get $this local.get $i i32.const 2 @@ -6844,24 +6721,24 @@ i32.load local.get $i local.get $this - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 i32.const 3 global.set $~argumentsLength - local.get $fn + local.get $4 i32.load call_indirect (type $3) if local.get $i - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $5 return end local.get $i @@ -6872,31 +6749,32 @@ end end i32.const -1 - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $5 return ) (func $~lib/staticarray/StaticArray#findLastIndex (param $this i32) (param $fn i32) (result i32) (local $i 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 call $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i64.const 0 + i64.store local.get $this - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store - local.get $3 + local.get $4 call $~lib/staticarray/StaticArray#get:length i32.const 1 i32.sub @@ -6906,6 +6784,10 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $fn + local.tee $3 + i32.store offset=4 local.get $this local.get $i i32.const 2 @@ -6914,24 +6796,24 @@ i32.load local.get $i local.get $this - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store - local.get $3 + local.get $4 i32.const 3 global.set $~argumentsLength - local.get $fn + local.get $3 i32.load call_indirect (type $3) if local.get $i - local.set $3 + local.set $4 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 $4 return end local.get $i @@ -6942,12 +6824,12 @@ end end i32.const -1 - local.set $3 + local.set $4 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 $4 return ) (func $~lib/util/sort/SORT (param $ptr i32) (param $len i32) (param $comparator i32) @@ -7567,25 +7449,21 @@ (local $50 i32) (local $51 i32) (local $52 i32) - (local $53 i32) - (local $54 i32) - (local $55 i32) - (local $56 i32) global.get $~lib/memory/__stack_pointer - i32.const 108 + 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 108 + i32.const 104 memory.fill global.get $std/staticarray/arr1 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 2 @@ -7600,11 +7478,11 @@ unreachable end global.get $std/staticarray/arr1 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray#get:length i32.const 3 i32.eq @@ -7618,20 +7496,20 @@ unreachable end global.get $std/staticarray/arr1 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1 i32.const 4 call $~lib/staticarray/StaticArray#__set global.get $std/staticarray/arr1 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 4 @@ -7661,11 +7539,11 @@ unreachable end global.get $std/staticarray/arr2 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 2 @@ -7680,11 +7558,11 @@ unreachable end global.get $std/staticarray/arr2 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray#get:length i32.const 3 i32.eq @@ -7698,20 +7576,20 @@ unreachable end global.get $std/staticarray/arr2 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1 i32.const 4 call $~lib/staticarray/StaticArray#__set global.get $std/staticarray/arr2 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 4 @@ -7745,11 +7623,11 @@ call $std/staticarray/test global.set $std/staticarray/arr3 global.get $std/staticarray/arr3 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 0 call $~lib/staticarray/StaticArray#__get i32.const 5 @@ -7764,11 +7642,11 @@ unreachable end global.get $std/staticarray/arr3 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 6 @@ -7783,11 +7661,11 @@ unreachable end global.get $std/staticarray/arr3 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2 call $~lib/staticarray/StaticArray#__get i32.const 7 @@ -7802,11 +7680,11 @@ unreachable end global.get $std/staticarray/arr3 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray#get:length i32.const 3 i32.eq @@ -7820,20 +7698,20 @@ unreachable end global.get $std/staticarray/arr3 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1 i32.const 8 call $~lib/staticarray/StaticArray#__set global.get $std/staticarray/arr3 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 8 @@ -7850,11 +7728,11 @@ call $std/staticarray/test global.set $std/staticarray/arr3 global.get $std/staticarray/arr3 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 6 @@ -7898,11 +7776,11 @@ local.tee $3 i32.store offset=8 local.get $3 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray#get:length i32.const 3 i32.eq @@ -7920,20 +7798,20 @@ loop $for-loop|0 local.get $4 local.get $3 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray#get:length i32.lt_s if local.get $3 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 local.get $4 call $~lib/staticarray/StaticArray#__get i32.const 0 @@ -7960,31 +7838,31 @@ i32.const 7 i32.const 704 call $~lib/rt/__newArray - local.tee $7 + local.tee $6 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $7 - local.set $56 + local.get $6 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray.fromArray - local.tee $8 + local.tee $7 i32.store offset=16 - local.get $8 - local.set $56 + local.get $7 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray#get:length - local.get $7 - local.set $56 + local.get $6 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/array/Array#get:length i32.eq i32.eqz @@ -7997,33 +7875,33 @@ unreachable end i32.const 0 - local.set $9 + local.set $8 loop $for-loop|1 - local.get $9 - local.get $7 - local.set $56 + local.get $8 + local.get $6 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/array/Array#get:length i32.lt_s if - local.get $8 - local.set $56 + local.get $7 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 - local.get $9 + local.get $52 + local.get $8 call $~lib/staticarray/StaticArray#__get - local.get $7 - local.set $56 + local.get $6 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 - local.get $9 + local.get $52 + local.get $8 call $~lib/array/Array#__get i32.eq i32.eqz @@ -8035,10 +7913,10 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $8 i32.const 1 i32.add - local.set $9 + local.set $8 br $for-loop|1 end end @@ -8048,20 +7926,20 @@ i32.const 7 i32.const 800 call $~lib/rt/__newArray - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray.fromArray - local.tee $8 + local.tee $7 i32.store offset=16 - local.get $8 - local.set $56 + local.get $7 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray#get:length i32.const 0 i32.eq @@ -8079,33 +7957,33 @@ i32.const 4 i32.const 832 call $~lib/rt/__newBuffer - local.tee $13 + local.tee $11 i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.get $13 - local.set $56 + local.get $11 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 4 i32.const 4 i32.const 864 call $~lib/rt/__newBuffer - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=24 - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray#concat<~lib/staticarray/StaticArray> - local.tee $15 + local.tee $13 i32.store offset=28 - local.get $15 - local.set $56 + local.get $13 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray#get:length i32.const 3 i32.eq @@ -8119,37 +7997,37 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $13 - local.set $56 + local.get $11 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 0 i32.const 4 i32.const 896 call $~lib/rt/__newBuffer - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=24 - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray#concat<~lib/staticarray/StaticArray> - local.tee $15 + local.tee $13 i32.store offset=28 - local.get $15 - local.set $56 + local.get $13 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray#get:length - local.get $13 - local.set $56 + local.get $11 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray#get:length i32.eq i32.eqz @@ -8166,33 +8044,33 @@ i32.const 8 i32.const 992 call $~lib/rt/__newBuffer - local.tee $18 + local.tee $16 i32.store offset=32 global.get $~lib/memory/__stack_pointer - local.get $18 - local.set $56 + local.get $16 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 4 i32.const 8 i32.const 1056 call $~lib/rt/__newBuffer - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=24 - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#concat<~lib/staticarray/StaticArray<~lib/string/String>> - local.tee $20 + local.tee $18 i32.store offset=36 - local.get $20 - local.set $56 + local.get $18 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#get:length i32.const 3 i32.eq @@ -8210,35 +8088,35 @@ i32.const 8 i32.const 1264 call $~lib/rt/__newBuffer - local.tee $22 + local.tee $20 i32.store offset=40 global.get $~lib/memory/__stack_pointer - local.get $22 - local.set $56 + local.get $20 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 0 i32.const 0 global.set $~argumentsLength i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>>@varargs - local.tee $23 + local.tee $21 i32.store offset=44 - local.get $23 - local.set $56 + local.get $21 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#get:length - local.get $22 - local.set $56 + local.get $20 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#get:length i32.eq i32.eqz @@ -8251,44 +8129,44 @@ unreachable end i32.const 0 - local.set $24 + local.set $22 loop $for-loop|2 - local.get $24 local.get $22 - local.set $56 + local.get $20 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#get:length i32.lt_s if - local.get $22 - local.set $56 + local.get $20 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=48 - local.get $56 - local.get $24 + local.get $52 + local.get $22 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 - local.get $23 - local.set $56 + local.get $52 + local.get $21 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=48 - local.get $56 - local.get $24 + local.get $52 + local.get $22 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=24 - local.get $56 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -8299,31 +8177,31 @@ call $~lib/builtins/abort unreachable end - local.get $24 + local.get $22 i32.const 1 i32.add - local.set $24 + local.set $22 br $for-loop|2 end end global.get $~lib/memory/__stack_pointer - local.get $22 - local.set $56 + local.get $20 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1 i32.const 3 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> - local.tee $23 + local.tee $21 i32.store offset=44 - local.get $23 - local.set $56 + local.get $21 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#get:length i32.const 2 i32.eq @@ -8336,25 +8214,20 @@ call $~lib/builtins/abort unreachable end - local.get $23 - local.set $56 + local.get $21 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 - i32.store offset=48 - local.get $56 + local.get $52 + i32.store offset=24 + local.get $52 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1120 - local.set $56 - global.get $~lib/memory/__stack_pointer - local.get $56 - i32.store offset=24 - local.get $56 call $~lib/string/String.__eq i32.eqz if @@ -8365,25 +8238,20 @@ call $~lib/builtins/abort unreachable end - local.get $23 - local.set $56 + local.get $21 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 - i32.store offset=48 - local.get $56 + local.get $52 + i32.store offset=24 + local.get $52 i32.const 1 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1152 - local.set $56 - global.get $~lib/memory/__stack_pointer - local.get $56 - i32.store offset=24 - local.get $56 call $~lib/string/String.__eq i32.eqz if @@ -8395,32 +8263,32 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $22 - local.set $56 + local.get $20 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>>@varargs - local.tee $23 + local.tee $21 i32.store offset=44 - local.get $23 - local.set $56 + local.get $21 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#get:length - local.get $22 - local.set $56 + local.get $20 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#get:length i32.const 1 i32.sub @@ -8435,30 +8303,30 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $22 - local.set $56 + local.get $20 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 0 i32.const 50 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> - local.tee $23 + local.tee $21 i32.store offset=44 - local.get $23 - local.set $56 + local.get $21 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#get:length - local.get $22 - local.set $56 + local.get $20 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#get:length i32.eq i32.eqz @@ -8471,25 +8339,25 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $22 - local.set $56 + local.get $20 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 100 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>>@varargs - local.tee $23 + local.tee $21 i32.store offset=44 - local.get $23 - local.set $56 + local.get $21 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#get:length i32.const 0 i32.eq @@ -8503,25 +8371,25 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $22 - local.set $56 + local.get $20 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const -1 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>>@varargs - local.tee $23 + local.tee $21 i32.store offset=44 - local.get $23 - local.set $56 + local.get $21 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#get:length i32.const 1 i32.eq @@ -8534,25 +8402,20 @@ call $~lib/builtins/abort unreachable end - local.get $23 - local.set $56 + local.get $21 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 - i32.store offset=48 - local.get $56 + local.get $52 + i32.store offset=24 + local.get $52 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1216 - local.set $56 - global.get $~lib/memory/__stack_pointer - local.get $56 - i32.store offset=24 - local.get $56 call $~lib/string/String.__eq i32.eqz if @@ -8564,23 +8427,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $22 - local.set $56 + local.get $20 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const -2 i32.const -2 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> - local.tee $23 + local.tee $21 i32.store offset=44 - local.get $23 - local.set $56 + local.get $21 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#get:length i32.const 0 i32.eq @@ -8594,23 +8457,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $22 - local.set $56 + local.get $20 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2 i32.const -2 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> - local.tee $23 + local.tee $21 i32.store offset=44 - local.get $23 - local.set $56 + local.get $21 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#get:length i32.const 1 i32.eq @@ -8623,25 +8486,20 @@ call $~lib/builtins/abort unreachable end - local.get $23 - local.set $56 + local.get $21 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 - i32.store offset=48 - local.get $56 + local.get $52 + i32.store offset=24 + local.get $52 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1152 - local.set $56 - global.get $~lib/memory/__stack_pointer - local.get $56 - i32.store offset=24 - local.get $56 call $~lib/string/String.__eq i32.eqz if @@ -8657,41 +8515,41 @@ i32.const 8 i32.const 1440 call $~lib/rt/__newBuffer - local.tee $26 + local.tee $24 i32.store offset=52 global.get $~lib/memory/__stack_pointer - local.get $26 - local.set $56 + local.get $24 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 0 i32.const 2 i32.const 9 i32.const 1488 call $~lib/rt/__newArray - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=24 - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#concat<~lib/array/Array<~lib/string/String>> - local.tee $29 + local.tee $26 i32.store offset=56 - local.get $29 - local.set $56 + local.get $26 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/array/Array<~lib/string/String>#get:length - local.get $26 - local.set $56 + local.get $24 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#get:length i32.eq i32.eqz @@ -8706,38 +8564,38 @@ i32.const 1 drop global.get $~lib/memory/__stack_pointer - local.get $26 - local.set $56 + local.get $24 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1 i32.const 2 i32.const 9 i32.const 1552 call $~lib/rt/__newArray - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=24 - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#concat<~lib/array/Array<~lib/string/String>> - local.tee $29 + local.tee $26 i32.store offset=56 - local.get $29 - local.set $56 + local.get $26 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/array/Array<~lib/string/String>#get:length - local.get $26 - local.set $56 + local.get $24 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#get:length i32.const 1 i32.add @@ -8758,20 +8616,15 @@ i32.const 8 i32.const 1584 call $~lib/rt/__newBuffer - local.tee $33 + local.tee $29 i32.store offset=60 - local.get $33 - local.set $56 + local.get $29 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1120 - local.set $56 - global.get $~lib/memory/__stack_pointer - local.get $56 - i32.store offset=24 - local.get $56 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#includes i32.const 1 @@ -8785,18 +8638,13 @@ call $~lib/builtins/abort unreachable end - local.get $33 - local.set $56 + local.get $29 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1520 - local.set $56 - global.get $~lib/memory/__stack_pointer - local.get $56 - i32.store offset=24 - local.get $56 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#includes i32.const 0 @@ -8810,18 +8658,13 @@ call $~lib/builtins/abort unreachable end - local.get $33 - local.set $56 + local.get $29 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1216 - local.set $56 - global.get $~lib/memory/__stack_pointer - local.get $56 - i32.store offset=24 - local.get $56 i32.const 5 call $~lib/staticarray/StaticArray<~lib/string/String>#includes i32.const 0 @@ -8835,18 +8678,13 @@ call $~lib/builtins/abort unreachable end - local.get $33 - local.set $56 + local.get $29 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1216 - local.set $56 - global.get $~lib/memory/__stack_pointer - local.get $56 - i32.store offset=24 - local.get $56 i32.const -1 call $~lib/staticarray/StaticArray<~lib/string/String>#includes i32.const 1 @@ -8864,11 +8702,11 @@ i32.const 10 i32.const 1632 call $~lib/rt/__newBuffer - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 f64.const nan:0x8000000000000 i32.const 0 call $~lib/staticarray/StaticArray#includes @@ -8887,11 +8725,11 @@ i32.const 11 i32.const 1664 call $~lib/rt/__newBuffer - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 f32.const nan:0x400000 i32.const 0 call $~lib/staticarray/StaticArray#includes @@ -8911,14 +8749,14 @@ i32.const 4 i32.const 1696 call $~lib/rt/__newBuffer - local.tee $37 + local.tee $33 i32.store offset=64 - local.get $37 - local.set $56 + local.get $33 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2 i32.const 0 call $~lib/staticarray/StaticArray#indexOf @@ -8933,12 +8771,12 @@ call $~lib/builtins/abort unreachable end - local.get $37 - local.set $56 + local.get $33 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 7 i32.const 0 call $~lib/staticarray/StaticArray#indexOf @@ -8953,12 +8791,12 @@ call $~lib/builtins/abort unreachable end - local.get $37 - local.set $56 + local.get $33 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 9 i32.const 2 call $~lib/staticarray/StaticArray#indexOf @@ -8973,12 +8811,12 @@ call $~lib/builtins/abort unreachable end - local.get $37 - local.set $56 + local.get $33 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2 i32.const -1 call $~lib/staticarray/StaticArray#indexOf @@ -8993,12 +8831,12 @@ call $~lib/builtins/abort unreachable end - local.get $37 - local.set $56 + local.get $33 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2 i32.const -3 call $~lib/staticarray/StaticArray#indexOf @@ -9018,14 +8856,14 @@ i32.const 4 i32.const 1728 call $~lib/rt/__newBuffer - local.tee $39 + local.tee $35 i32.store offset=68 - local.get $39 - local.set $56 + local.get $35 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2 i32.const 1 global.set $~argumentsLength @@ -9042,12 +8880,12 @@ call $~lib/builtins/abort unreachable end - local.get $39 - local.set $56 + local.get $35 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 7 i32.const 1 global.set $~argumentsLength @@ -9064,12 +8902,12 @@ call $~lib/builtins/abort unreachable end - local.get $39 - local.set $56 + local.get $35 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2 i32.const 3 call $~lib/staticarray/StaticArray#lastIndexOf @@ -9084,12 +8922,12 @@ call $~lib/builtins/abort unreachable end - local.get $39 - local.set $56 + local.get $35 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2 i32.const 2 call $~lib/staticarray/StaticArray#lastIndexOf @@ -9104,12 +8942,12 @@ call $~lib/builtins/abort unreachable end - local.get $39 - local.set $56 + local.get $35 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2 i32.const -2 call $~lib/staticarray/StaticArray#lastIndexOf @@ -9124,12 +8962,12 @@ call $~lib/builtins/abort unreachable end - local.get $39 - local.set $56 + local.get $35 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2 i32.const -1 call $~lib/staticarray/StaticArray#lastIndexOf @@ -9149,32 +8987,22 @@ i32.const 8 i32.const 1872 call $~lib/rt/__newBuffer - local.tee $41 + local.tee $37 i32.store offset=72 - local.get $41 - local.set $56 + local.get $37 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 - i32.store offset=48 - local.get $56 + local.get $52 + i32.store offset=24 + local.get $52 i32.const 1936 - local.set $56 - global.get $~lib/memory/__stack_pointer - local.get $56 - i32.store offset=76 - local.get $56 call $~lib/staticarray/StaticArray<~lib/string/String>#join - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1968 - local.set $56 - global.get $~lib/memory/__stack_pointer - local.get $56 - i32.store offset=24 - local.get $56 call $~lib/string/String.__eq i32.eqz if @@ -9185,30 +9013,20 @@ call $~lib/builtins/abort unreachable end - local.get $41 - local.set $56 + local.get $37 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 - i32.store offset=48 - local.get $56 + local.get $52 + i32.store offset=24 + local.get $52 i32.const 1904 - local.set $56 - global.get $~lib/memory/__stack_pointer - local.get $56 - i32.store offset=76 - local.get $56 call $~lib/staticarray/StaticArray<~lib/string/String>#join - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2016 - local.set $56 - global.get $~lib/memory/__stack_pointer - local.get $56 - i32.store offset=24 - local.get $56 call $~lib/string/String.__eq i32.eqz if @@ -9219,30 +9037,20 @@ call $~lib/builtins/abort unreachable end - local.get $41 - local.set $56 + local.get $37 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 - i32.store offset=48 - local.get $56 + local.get $52 + i32.store offset=24 + local.get $52 i32.const 2064 - local.set $56 - global.get $~lib/memory/__stack_pointer - local.get $56 - i32.store offset=76 - local.get $56 call $~lib/staticarray/StaticArray<~lib/string/String>#join - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2096 - local.set $56 - global.get $~lib/memory/__stack_pointer - local.get $56 - i32.store offset=24 - local.get $56 call $~lib/string/String.__eq i32.eqz if @@ -9253,30 +9061,20 @@ call $~lib/builtins/abort unreachable end - local.get $41 - local.set $56 + local.get $37 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 - i32.store offset=48 - local.get $56 + local.get $52 + i32.store offset=24 + local.get $52 i32.const 2144 - local.set $56 - global.get $~lib/memory/__stack_pointer - local.get $56 - i32.store offset=76 - local.get $56 call $~lib/staticarray/StaticArray<~lib/string/String>#join - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2176 - local.set $56 - global.get $~lib/memory/__stack_pointer - local.get $56 - i32.store offset=24 - local.get $56 call $~lib/string/String.__eq i32.eqz if @@ -9287,36 +9085,31 @@ call $~lib/builtins/abort unreachable end - local.get $41 - local.set $56 + local.get $37 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=48 - local.get $56 + local.get $52 i32.const 1936 - local.set $56 - global.get $~lib/memory/__stack_pointer - local.get $56 - i32.store offset=76 - local.get $56 call $~lib/staticarray/StaticArray<~lib/string/String>#join - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 - local.get $41 - local.set $56 + local.get $52 + local.get $37 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=48 - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#toString - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=24 - local.get $56 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -9332,14 +9125,14 @@ i32.const 4 i32.const 2240 call $~lib/rt/__newBuffer - local.tee $43 - i32.store offset=80 - local.get $43 - local.set $56 + local.tee $39 + i32.store offset=76 + local.get $39 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1 i32.const 1 i32.const 2 @@ -9347,12 +9140,12 @@ i32.const 0 call $~lib/staticarray/StaticArray#fill@varargs drop - local.get $43 - local.set $56 + local.get $39 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 0 call $~lib/staticarray/StaticArray#__get i32.const 0 @@ -9366,12 +9159,12 @@ call $~lib/builtins/abort unreachable end - local.get $43 - local.set $56 + local.get $39 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 1 @@ -9390,22 +9183,22 @@ i32.const 4 i32.const 2272 call $~lib/rt/__newBuffer - local.tee $45 - i32.store offset=84 - local.get $45 - local.set $56 + local.tee $41 + i32.store offset=80 + local.get $41 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray#reverse drop - local.get $45 - local.set $56 + local.get $41 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 0 call $~lib/staticarray/StaticArray#__get i32.const 3 @@ -9419,12 +9212,12 @@ call $~lib/builtins/abort unreachable end - local.get $45 - local.set $56 + local.get $41 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 2 @@ -9438,12 +9231,12 @@ call $~lib/builtins/abort unreachable end - local.get $45 - local.set $56 + local.get $41 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2 call $~lib/staticarray/StaticArray#__get i32.const 1 @@ -9462,14 +9255,14 @@ i32.const 4 i32.const 2304 call $~lib/rt/__newBuffer - local.tee $47 - i32.store offset=88 - local.get $47 - local.set $56 + local.tee $43 + i32.store offset=84 + local.get $43 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 0 i32.const 3 i32.const 2 @@ -9477,12 +9270,12 @@ i32.const 0 call $~lib/staticarray/StaticArray#copyWithin@varargs drop - local.get $47 - local.set $56 + local.get $43 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 0 call $~lib/staticarray/StaticArray#__get i32.const 4 @@ -9496,12 +9289,12 @@ call $~lib/builtins/abort unreachable end - local.get $47 - local.set $56 + local.get $43 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 5 @@ -9515,12 +9308,12 @@ call $~lib/builtins/abort unreachable end - local.get $47 - local.set $56 + local.get $43 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2 call $~lib/staticarray/StaticArray#__get i32.const 3 @@ -9534,12 +9327,12 @@ call $~lib/builtins/abort unreachable end - local.get $47 - local.set $56 + local.get $43 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 3 call $~lib/staticarray/StaticArray#__get i32.const 4 @@ -9553,12 +9346,12 @@ call $~lib/builtins/abort unreachable end - local.get $47 - local.set $56 + local.get $43 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 4 call $~lib/staticarray/StaticArray#__get i32.const 5 @@ -9577,30 +9370,30 @@ i32.const 4 i32.const 2352 call $~lib/rt/__newBuffer - local.tee $49 - i32.store offset=92 + local.tee $45 + i32.store offset=88 global.get $~lib/memory/__stack_pointer - local.get $49 - local.set $56 + local.get $45 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2384 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=24 - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray#map - local.tee $50 - i32.store offset=96 - local.get $50 - local.set $56 + local.tee $46 + i32.store offset=92 + local.get $46 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 0 call $~lib/array/Array#__get i32.const 2 @@ -9614,12 +9407,12 @@ call $~lib/builtins/abort unreachable end - local.get $50 - local.set $56 + local.get $46 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1 call $~lib/array/Array#__get i32.const 3 @@ -9633,12 +9426,12 @@ call $~lib/builtins/abort unreachable end - local.get $50 - local.set $56 + local.get $46 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2 call $~lib/array/Array#__get i32.const 4 @@ -9652,18 +9445,18 @@ call $~lib/builtins/abort unreachable end - local.get $49 - local.set $56 + local.get $45 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2416 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=24 - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray#forEach global.get $std/staticarray/maxVal i32.const 3 @@ -9678,27 +9471,27 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $49 - local.set $56 + local.get $45 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2448 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=24 - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray#filter - local.tee $51 - i32.store offset=100 - local.get $51 - local.set $56 + local.tee $47 + i32.store offset=96 + local.get $47 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -9711,12 +9504,12 @@ call $~lib/builtins/abort unreachable end - local.get $51 - local.set $56 + local.get $47 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 0 call $~lib/array/Array#__get i32.const 2 @@ -9730,12 +9523,12 @@ call $~lib/builtins/abort unreachable end - local.get $51 - local.set $56 + local.get $47 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1 call $~lib/array/Array#__get i32.const 3 @@ -9749,22 +9542,22 @@ call $~lib/builtins/abort unreachable end - local.get $49 - local.set $56 + local.get $45 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2480 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=24 - local.get $56 + local.get $52 i32.const 0 call $~lib/staticarray/StaticArray#reduce - local.set $52 - local.get $52 + local.set $48 + local.get $48 i32.const 6 i32.eq i32.eqz @@ -9776,22 +9569,22 @@ call $~lib/builtins/abort unreachable end - local.get $49 - local.set $56 + local.get $45 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2512 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=24 - local.get $56 + local.get $52 i32.const 0 call $~lib/staticarray/StaticArray#reduceRight - local.set $53 - local.get $53 + local.set $49 + local.get $49 i32.const 6 i32.eq i32.eqz @@ -9803,18 +9596,18 @@ call $~lib/builtins/abort unreachable end - local.get $49 - local.set $56 + local.get $45 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2544 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=24 - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray#some i32.eqz if @@ -9825,18 +9618,18 @@ call $~lib/builtins/abort unreachable end - local.get $49 - local.set $56 + local.get $45 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2576 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=24 - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray#some i32.eqz i32.eqz @@ -9848,18 +9641,18 @@ call $~lib/builtins/abort unreachable end - local.get $49 - local.set $56 + local.get $45 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2608 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=24 - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray#every i32.eqz if @@ -9870,18 +9663,18 @@ call $~lib/builtins/abort unreachable end - local.get $49 - local.set $56 + local.get $45 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2640 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=24 - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray#every i32.eqz i32.eqz @@ -9893,18 +9686,18 @@ call $~lib/builtins/abort unreachable end - local.get $49 - local.set $56 + local.get $45 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2672 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=24 - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray#findIndex i32.const 1 i32.eq @@ -9917,18 +9710,18 @@ call $~lib/builtins/abort unreachable end - local.get $49 - local.set $56 + local.get $45 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2704 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=24 - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray#findIndex i32.const -1 i32.eq @@ -9941,18 +9734,18 @@ call $~lib/builtins/abort unreachable end - local.get $49 - local.set $56 + local.get $45 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2736 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=24 - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray#findLastIndex i32.const 1 i32.eq @@ -9965,18 +9758,18 @@ call $~lib/builtins/abort unreachable end - local.get $49 - local.set $56 + local.get $45 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2768 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=24 - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray#findLastIndex i32.const -1 i32.eq @@ -9994,25 +9787,25 @@ i32.const 4 i32.const 2800 call $~lib/rt/__newBuffer - local.tee $55 - i32.store offset=104 - local.get $55 - local.set $56 + local.tee $51 + i32.store offset=100 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 0 global.set $~argumentsLength i32.const 0 call $~lib/staticarray/StaticArray#sort@varargs drop - local.get $55 - local.set $56 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 0 call $~lib/staticarray/StaticArray#__get i32.const 0 @@ -10026,12 +9819,12 @@ call $~lib/builtins/abort unreachable end - local.get $55 - local.set $56 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 1 @@ -10045,12 +9838,12 @@ call $~lib/builtins/abort unreachable end - local.get $55 - local.set $56 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2 call $~lib/staticarray/StaticArray#__get i32.const 2 @@ -10064,12 +9857,12 @@ call $~lib/builtins/abort unreachable end - local.get $55 - local.set $56 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 3 call $~lib/staticarray/StaticArray#__get i32.const 3 @@ -10087,7 +9880,7 @@ global.set $~lib/memory/__stack_pointer call $~lib/rt/itcms/__collect global.get $~lib/memory/__stack_pointer - i32.const 108 + i32.const 104 i32.add global.set $~lib/memory/__stack_pointer ) @@ -10436,4 +10229,198 @@ local.get $7 return ) + (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) + (local $j i32) + (local $5 i32) + (local $6 i32) + (local $k i32) + (local $tmp i32) + (local $9 i32) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $i + local.get $right + i32.eq + if + local.get $i + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + end + local.get $i + local.set $j + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $5 + i32.store + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load + local.get $ptr + local.get $j + i32.const 1 + i32.add + local.tee $j + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect (type $2) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $6 + i32.store offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $6 + i32.load + call_indirect (type $2) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 + end + end + local.get $j + local.set $k + loop $while-continue|1 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.set $tmp + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $tmp + i32.store + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $9 + i32.store offset=8 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $9 + i32.load + call_indirect (type $2) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|2 + end + end + end + local.get $j + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + ) ) diff --git a/tests/compiler/std/staticarray.release.wat b/tests/compiler/std/staticarray.release.wat index b7dfeef3bc..e9b6c8eccb 100644 --- a/tests/compiler/std/staticarray.release.wat +++ b/tests/compiler/std/staticarray.release.wat @@ -5,12 +5,12 @@ (type $3 (func)) (type $4 (func (param i32 i32))) (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i32 i32 i32) (result i32))) - (type $7 (func (param i32) (result i32))) + (type $6 (func (param i32) (result i32))) + (type $7 (func (param i32 i32 i32 i32) (result i32))) (type $8 (func (param i32 i32 i32 i32))) (type $9 (func (result i32))) - (type $10 (func (param i32 i32 i64))) - (type $11 (func (param i32 i32 i32 i32 i32))) + (type $10 (func (param i32 i32 i32 i32 i32))) + (type $11 (func (param i32 i32 i64))) (import "env" "abort" (func $~lib/builtins/abort (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)) @@ -172,1018 +172,1379 @@ (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)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1056 - call $~lib/rt/itcms/__visit - i32.const 1280 - call $~lib/rt/itcms/__visit - global.get $std/staticarray/arr3 - local.tee $0 + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u if - local.get $0 - call $~lib/rt/itcms/__visit + i32.const 1344 + i32.const 1408 + i32.const 261 + i32.const 31 + call $~lib/builtins/abort + unreachable end - global.get $std/staticarray/arr4 - local.tee $0 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 1088 - call $~lib/rt/itcms/__visit - i32.const 1680 - call $~lib/rt/itcms/__visit - i32.const 2336 - call $~lib/rt/itcms/__visit - i32.const 1344 - 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 + 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.const 1408 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.gt_s + br_if $do-loop|0 end - local.get $0 - i32.const 20 + 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 - call $~lib/rt/__visit_members - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 + global.set $~lib/rt/itcms/threshold 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 + global.get $~lib/rt/tlsf/ROOT + i32.eqz if - local.get $0 - i32.load offset=8 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1408 - 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$267 - 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 36728 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1408 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$267 - end - local.get $0 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1408 - 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 + call $~lib/rt/tlsf/initialize end - global.get $~lib/rt/itcms/toSpace - local.set $2 + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.load offset=12 + i32.const 16 + i32.add + call $~lib/rt/tlsf/allocateBlock + local.tee $2 + local.get $1 + i32.store offset=12 + local.get $2 + local.get $0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace local.tee $1 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 3888 - i32.load - i32.gt_u - if - i32.const 1088 - i32.const 1536 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.const 3892 - i32.add - i32.load - i32.const 32 - i32.and - end + i32.load offset=8 local.set $3 local.get $2 - i32.load offset=8 - local.set $1 - local.get $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 $0 - local.get $1 + local.get $2 + local.get $3 i32.store offset=8 - local.get $1 - local.get $0 - local.get $1 + 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 - 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 + global.get $~lib/rt/itcms/total + local.get $2 + i32.load + i32.const -4 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) + 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 - 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 + ) + (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 3960 + i32.lt_s if - i32.const 0 - i32.const 1616 - i32.const 270 - i32.const 14 + i32.const 36752 + i32.const 36800 + i32.const 1 + i32.const 1 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 + 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 0 - i32.const 1616 - i32.const 284 - i32.const 14 + i32.const 1088 + i32.const 1152 + i32.const 78 + i32.const 41 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 + local.get $1 i32.const 2 i32.shl i32.add - local.tee $1 - i32.load offset=96 + i32.load + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (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 $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 + 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/insertBlock (param $0 i32) (param $1 i32) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - local.get $1 - i32.eqz + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3960 + i32.lt_s if - i32.const 0 - i32.const 1616 - i32.const 201 - i32.const 14 + i32.const 36752 + i32.const 36800 + 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.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + i32.eq if - i32.const 0 - i32.const 1616 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return 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 + block $folding-inner0 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.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.const 4 - i32.add + i32.store + local.get $3 local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $4 - i32.load + 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 - end - local.get $3 - i32.const 2 - i32.and - if + global.get $~lib/memory/__stack_pointer local.get $1 + i32.store offset=4 + local.get $3 + local.tee $0 i32.const 4 - i32.sub - i32.load - local.tee $1 - i32.load - local.tee $6 - i32.const 1 - i32.and + i32.ge_u + if (result i32) + local.get $2 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + else + i32.const 1 + end i32.eqz if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $0 + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + block $__inlined_func$~lib/util/string/compareImpl$106 + loop $while-continue|1 + local.get $0 + local.tee $3 + i32.const 1 + i32.sub + local.set $0 + local.get $3 + if + local.get $2 + i32.load16_u + local.tee $5 + local.get $1 + i32.load16_u + local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 + i32.ne + br_if $__inlined_func$~lib/util/string/compareImpl$106 + local.get $2 + i32.const 2 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end + end i32.const 0 - i32.const 1616 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable + local.set $3 end - local.get $0 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - local.get $6 - i32.const 4 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add + global.set $~lib/memory/__stack_pointer local.get $3 - i32.const -4 - i32.and - i32.add - local.tee $3 - i32.store + i32.eqz + return 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 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (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 1616 - i32.const 233 + i32.const 1408 + i32.const 295 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 + global.get $~lib/rt/itcms/white local.get $1 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + local.tee $0 + i32.load offset=4 + i32.const 3 + i32.and + local.tee $3 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $0 + local.get $1 + local.get $2 + select + call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + local.get $3 + i32.const 3 + i32.eq + i32.and + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + end + end + end + ) + (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.add - local.get $2 - i32.add - i32.ne + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3960 + i32.lt_s if - i32.const 0 - i32.const 1616 - i32.const 234 - i32.const 14 + i32.const 36752 + i32.const 36800 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $4 - i32.const 4 - i32.sub - local.get $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 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 + global.get $~lib/memory/__stack_pointer 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.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 - i32.store offset=4 + 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 $3 + 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/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 3960 + i32.lt_s if - local.get $3 - local.get $1 - i32.store offset=4 + 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 - local.get $5 + i32.store + local.get $0 + i32.load offset=12 + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.shl - local.get $2 i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/staticarray/StaticArray<~lib/string/String>#join (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 3960 + 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 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 i32.const 2 - i32.shl - i32.add + i32.shr_u + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=96 + i32.store local.get $0 + local.get $2 + local.get $1 + call $~lib/util/string/joinStringArray + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/staticarray/StaticArray<~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 3960 + 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 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load - i32.const 1 - local.get $5 - i32.shl - i32.or i32.store + local.get $1 local.get $0 - local.get $5 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 1088 + i32.const 1152 + i32.const 78 + i32.const 41 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 i32.const 2 i32.shl i32.add + i32.load 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 + local.get $0 + i32.eqz if - i32.const 0 - i32.const 1616 - i32.const 382 - i32.const 14 + i32.const 2336 + i32.const 1152 + i32.const 82 + i32.const 40 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 19 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - i32.const -16 - i32.and + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub - local.set $1 - local.get $0 - i32.load offset=1568 - local.tee $3 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3960 + i32.lt_s 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 + i32.const 36752 + i32.const 36800 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and + 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.sub - local.tee $3 - i32.const 20 - i32.lt_u + local.get $0 + i32.load offset=12 + i32.ge_u if - return + i32.const 1088 + i32.const 1776 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable 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 + local.get $0 i32.store + local.get $0 + i32.load offset=4 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.const 2 + i32.shl i32.add - local.get $3 + i32.load + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.tee $3 - i32.const 2 + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> (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 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3960 + 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 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store local.get $0 - local.get $3 - i32.store offset=1568 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.set $4 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 + i32.lt_s if (result i32) - i32.const 1 local.get $1 - i32.sub - memory.grow + local.get $4 + i32.add + local.tee $1 i32.const 0 - i32.lt_s - else + local.get $1 i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $4 + local.get $1 + local.get $4 + i32.lt_s + select end - if - unreachable + local.tee $5 + i32.const 2 + i32.shl + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 0 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $2 + local.get $4 + i32.add + local.tee $0 + i32.const 0 + local.get $0 + i32.const 0 + i32.gt_s + select + else + local.get $2 + local.get $4 + local.get $2 + local.get $4 + i32.lt_s + select end - i32.const 36736 + local.get $5 + i32.sub + local.tee $0 i32.const 0 - i32.store - i32.const 38304 + local.get $0 i32.const 0 - i32.store - loop $for-loop|0 + i32.gt_s + select + i32.const 2 + i32.shl + local.tee $0 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=4 + loop $while-continue|0 local.get $0 - i32.const 23 - i32.lt_u + local.get $1 + i32.gt_u if - local.get $0 - i32.const 2 - i32.shl - i32.const 36736 + local.get $1 + local.get $2 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 36736 - 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 + local.get $1 + local.get $3 i32.add - local.set $0 - br $for-loop|0 - end - end - i32.const 36736 - i32.const 38308 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 36736 - global.set $~lib/rt/tlsf/ROOT + i32.load + local.tee $4 + i32.store + local.get $2 + local.get $4 + i32.const 1 + call $~lib/rt/itcms/__link + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 ) - (func $~lib/rt/tlsf/__free (param $0 i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.const 36728 - i32.lt_u + (func $~lib/staticarray/StaticArray#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3960 + i32.lt_s if - return + i32.const 36752 + i32.const 36800 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/tlsf/ROOT + 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 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.tee $3 i32.eqz if - call $~lib/rt/tlsf/initialize + 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/rt/tlsf/ROOT + local.get $2 + local.get $3 + i32.add + local.get $3 + i32.const 1 + i32.sub + local.get $2 + local.get $2 + local.get $3 + i32.ge_s + select + local.get $2 + i32.const 0 + i32.lt_s + select local.set $2 - local.get $0 + loop $while-continue|0 + local.get $2 + i32.const 0 + i32.ge_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.sub + 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/staticarray/StaticArray#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub - local.set $1 - local.get $0 - i32.const 15 - i32.and - i32.const 1 - local.get $0 - select - if (result i32) + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3960 + i32.lt_s + if + i32.const 36752 + i32.const 36800 i32.const 1 - else - local.get $1 - 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 $1 - local.get $1 - i32.load - i32.const 1 - i32.or + 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 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.tee $3 + i32.eqz local.get $2 - local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/itcms/step (result i32) - (local $0 i32) - (local $1 i32) - (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount + local.get $3 + i32.ge_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 + 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 + 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 - 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 + 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/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>>@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3960 + 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 $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + br_table $0of2 $1of2 $2of2 $outOfRange end + unreachable 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 + local.set $1 + end + i32.const 2147483647 + local.set $2 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $2 + call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/staticarray/StaticArray<~lib/string/String>#includes (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 3960 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3960 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + block $__inlined_func$~lib/staticarray/StaticArray<~lib/string/String>#indexOf$275 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.tee $3 + i32.eqz + local.get $2 + local.get $3 + i32.ge_s + i32.or if global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const -1 + local.set $2 + br $__inlined_func$~lib/staticarray/StaticArray<~lib/string/String>#indexOf$275 + end + 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 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 36728 - i32.lt_u + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $4 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $4 + local.get $1 + call $~lib/string/String.__eq if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - local.get $0 - i32.const 4 + global.get $~lib/memory/__stack_pointer + i32.const 8 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 + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/staticarray/StaticArray<~lib/string/String>#indexOf$275 end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 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 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const -1 + local.set $2 end - global.get $~lib/rt/itcms/iter + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + i32.ge_s + return + end + i32.const 36752 + i32.const 36800 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (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 36736 + i32.const 0 + i32.store + i32.const 38304 + 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 36736 + 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 36736 + 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 36736 + i32.const 38308 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 36736 + 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 36728 + 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 @@ -1237,1035 +1598,998 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + 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 + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) local.get $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 $3 local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - i32.const -1 local.get $1 - i32.shl + i32.sub + i32.const 1 + i32.add + local.tee $4 + local.get $3 + i32.sub + i32.const 1 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 + i32.sub + local.get $4 + i32.const 1 + i32.and + local.get $3 + select + i32.add + local.set $6 + loop $for-loop|0 local.get $2 - i32.const 1 - i32.add - i32.shl - i32.and - local.tee $1 - if (result i32) + local.get $6 + i32.ge_s + if local.get $0 - local.get $1 - i32.ctz - local.tee $1 + local.get $6 i32.const 2 i32.shl i32.add + local.tee $3 i32.load offset=4 - local.tee $2 - i32.eqz + local.tee $5 + local.set $4 + local.get $3 + i32.load + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $5 + i32.const 3872 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s if - i32.const 0 - i32.const 1616 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable + local.get $3 + local.set $4 + local.get $5 + local.set $3 + end + local.get $6 + i32.const 1 + i32.sub + local.set $5 + loop $while-continue|1 + local.get $1 + local.get $5 + i32.le_s + if + block $while-break|1 + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.tee $7 + i32.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $3 + i32.const 3872 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $7 + local.get $8 + i32.store offset=8 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|1 + end + end end local.get $0 - local.get $2 - i32.ctz - local.get $1 - i32.const 4 + local.get $5 + i32.const 2 i32.shl i32.add + local.get $3 + i32.store offset=8 + loop $while-continue|2 + local.get $1 + local.get $5 + i32.le_s + if + block $while-break|2 + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.tee $3 + i32.load + local.set $7 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $4 + i32.const 3872 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $3 + local.get $7 + i32.store offset=4 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|2 + end + end + end + local.get $0 + local.get $5 i32.const 2 i32.shl i32.add - i32.load offset=96 - else - i32.const 0 + local.get $4 + i32.store offset=4 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $for-loop|0 end end ) - (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - local.get $1 - i32.const 1073741820 - i32.gt_u + (func $~lib/staticarray/StaticArray#__set (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 3960 + i32.lt_s if - i32.const 1344 - i32.const 1616 - i32.const 461 - i32.const 29 + 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 - local.get $1 - i32.const 12 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + i32.const 1 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 $3 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz if - memory.size - local.tee $1 - local.get $3 - i32.const 256 - i32.ge_u - if (result i32) - local.get $3 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $3 - i32.const 1 - i32.const 27 - local.get $3 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $3 - end - else - local.get $3 - end - i32.const 4 - local.get $0 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - i32.add - i32.const 65535 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $2 - local.get $1 - local.get $2 - i32.gt_s - select - memory.grow - i32.const 0 - i32.lt_s - if - local.get $2 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $0 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $0 - local.get $3 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1616 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end + i32.const 1088 + i32.const 1152 + i32.const 93 + i32.const 41 + call $~lib/builtins/abort + unreachable end - local.get $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (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 - i32.const -4 + local.tee $3 + i32.const 1 i32.and - i32.gt_u + i32.eqz if i32.const 0 i32.const 1616 - i32.const 501 + i32.const 268 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $0 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.set $4 local.get $3 - i32.const 4 - i32.add - i32.const 15 + i32.const -4 i32.and + local.tee $3 + i32.const 12 + i32.lt_u if i32.const 0 i32.const 1616 - i32.const 361 + i32.const 270 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 - i32.const -4 - i32.and local.get $3 - i32.sub - local.tee $2 - i32.const 16 - i32.ge_u - if - local.get $1 + i32.const 256 + i32.lt_u + if (result i32) local.get $3 - local.get $4 - i32.const 2 - i32.and - i32.or - i32.store - local.get $1 i32.const 4 - i32.add + i32.shr_u + else + i32.const 31 + i32.const 1073741820 local.get $3 - i32.add + local.get $3 + i32.const 1073741820 + i32.ge_u + select local.tee $3 - local.get $2 - i32.const 4 + i32.clz i32.sub - i32.const 1 - i32.or - i32.store - local.get $0 + local.tee $4 + i32.const 7 + i32.sub + local.set $2 local.get $3 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 local.get $4 - i32.const -2 - i32.and - i32.store - local.get $1 i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $0 - local.get $0 - i32.load - i32.const -3 - i32.and - i32.store + i32.sub + i32.shr_u + i32.const 16 + i32.xor end - local.get $1 - ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u + 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 1344 - i32.const 1408 - i32.const 261 - i32.const 31 + i32.const 0 + i32.const 1616 + i32.const 284 + 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$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 - 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 $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - local.tee $2 - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - local.get $2 - i32.add - global.set $~lib/rt/itcms/threshold - end - end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 16 - i32.add - call $~lib/rt/tlsf/allocateBlock - local.tee $2 local.get $1 - i32.store offset=12 - local.get $2 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $1 i32.load offset=8 - local.set $3 - local.get $2 + local.set $5 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) (param $2 i32) - (local $3 i32) - local.get $1 - i32.eqz + local.tee $4 if - return + local.get $4 + local.get $5 + i32.store offset=8 end - local.get $0 - i32.eqz + local.get $5 if - i32.const 0 - i32.const 1408 - i32.const 295 - i32.const 14 - call $~lib/builtins/abort - unreachable + local.get $5 + local.get $4 + i32.store offset=4 end - global.get $~lib/rt/itcms/white - local.tee $3 local.get $1 - i32.const 20 - i32.sub + 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=4 - i32.const 3 - i32.and + i32.load offset=96 i32.eq if - local.get $3 + local.get $1 + local.get $5 + i32.store offset=96 + local.get $5 i32.eqz - local.get $0 - i32.const 20 - i32.sub - local.tee $0 - i32.load offset=4 - i32.const 3 - i32.and - local.tee $3 - i32.eq if local.get $0 - local.get $1 local.get $2 - select - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=4 + i32.const -2 local.get $3 - i32.const 3 - i32.eq + 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 $1 - call $~lib/rt/itcms/Object#makeGray + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $2 + i32.rotl + i32.and + i32.store end end end ) - (func $start:std/staticarray~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - i32.const 1 - i32.add - ) - (func $start:std/staticarray~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) - global.get $std/staticarray/maxVal - local.tee $1 - local.get $0 - local.get $0 - local.get $1 - i32.lt_s - select - global.set $std/staticarray/maxVal - ) - (func $start:std/staticarray~anonymous|2 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - i32.const 2 - i32.ge_s - ) - (func $start:std/staticarray~anonymous|3 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - local.get $0 - local.get $1 - i32.add - ) - (func $start:std/staticarray~anonymous|5 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - i32.const 2 - i32.eq - ) - (func $start:std/staticarray~anonymous|6 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - i32.const 4 - i32.eq - ) - (func $start:std/staticarray~anonymous|7 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - i32.const 3 - i32.le_s - ) - (func $start:std/staticarray~anonymous|8 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - i32.const 3 - i32.gt_s - ) - (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) - (local $8 i32) local.get $1 - local.get $3 - local.get $2 + 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.sub + 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 - local.get $3 - i32.sub + i32.load + local.tee $2 i32.const 1 i32.and - i32.sub - local.get $4 - i32.const 1 - i32.and - local.get $3 - select - i32.add - local.set $6 - loop $for-loop|0 + 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 - local.get $6 - i32.ge_s + 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 - local.get $0 - local.get $6 - i32.const 2 - i32.shl - i32.add - local.tee $3 - i32.load offset=4 - local.tee $5 - local.set $4 - local.get $3 - i32.load - local.set $3 - i32.const 2 - global.set $~argumentsLength - local.get $3 - local.get $5 - i32.const 3872 - i32.load - call_indirect (type $0) i32.const 0 - i32.le_s - if - local.get $3 - local.set $4 - local.get $5 - local.set $3 - end - local.get $6 - i32.const 1 - i32.sub - local.set $5 - loop $while-continue|1 - local.get $1 - local.get $5 - i32.le_s - if - block $while-break|1 - local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - local.tee $8 - i32.load - local.set $7 - i32.const 2 - global.set $~argumentsLength - local.get $7 - local.get $3 - i32.const 3872 - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - br_if $while-break|1 - local.get $8 - local.get $7 - i32.store offset=8 - local.get $5 - i32.const 1 - i32.sub - local.set $5 - br $while-continue|1 - end - end - end - local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - local.get $3 - i32.store offset=8 - loop $while-continue|2 - local.get $1 - local.get $5 - i32.le_s - if - block $while-break|2 - local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - local.tee $3 - i32.load - local.set $7 - i32.const 2 - global.set $~argumentsLength - local.get $7 - local.get $4 - i32.const 3872 - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - br_if $while-break|2 - local.get $3 - local.get $7 - i32.store offset=4 - local.get $5 - i32.const 1 - i32.sub - local.set $5 - br $while-continue|2 - end - end - end - local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - local.get $4 - i32.store offset=4 - local.get $6 - i32.const 2 - i32.add - local.set $6 - br $for-loop|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 - ) - (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $1 + local.get $4 local.get $2 - i32.eq + 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 - local.get $1 - return + i32.const 0 + i32.const 1616 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable end - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $4 - local.get $0 + local.get $4 local.get $1 - i32.const 1 + i32.const 4 i32.add - local.tee $3 - i32.const 2 - i32.shl + local.get $2 i32.add - i32.load - local.set $5 - i32.const 2 - global.set $~argumentsLength - local.get $4 - local.get $5 - i32.const 3872 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s + i32.ne if - loop $while-continue|0 - local.get $2 - local.get $3 - i32.gt_s - if (result i32) - local.get $0 - local.get $3 - i32.const 2 - i32.shl - i32.add - local.tee $4 - i32.load offset=4 - local.set $5 - local.get $4 - i32.load - local.set $4 - i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $4 - i32.const 3872 - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $while-continue|0 - end - end + 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 - local.set $2 - loop $while-continue|1 - local.get $1 - local.get $2 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.tee $4 - i32.load - local.set $5 - local.get $4 - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $4 - i32.load - i32.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - local.get $4 - local.get $5 - i32.store - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|1 - end - end + 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/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $1 + i32.const 1073741820 + i32.gt_u + if + i32.const 1344 + i32.const 1616 + i32.const 461 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 else - loop $while-continue|2 - local.get $2 + local.get $1 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub + end + local.tee $3 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if + local.get $3 + i32.const 256 + i32.ge_u + if (result i32) local.get $3 - i32.gt_s + i32.const 536870910 + i32.lt_u if (result i32) - local.get $0 local.get $3 - i32.const 2 + i32.const 1 + i32.const 27 + local.get $3 + i32.clz + i32.sub i32.shl i32.add - local.tee $1 - i32.load offset=4 - local.set $4 - local.get $1 - i32.load - local.set $1 - i32.const 2 - global.set $~argumentsLength - local.get $4 - local.get $1 - i32.const 3872 - i32.load - call_indirect (type $0) - i32.const 0 - i32.ge_s + i32.const 1 + i32.sub else - i32.const 0 - end - if local.get $3 - i32.const 1 - i32.add - local.set $3 - br $while-continue|2 end + else + local.get $3 end - end - local.get $3 - ) - (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - local.get $2 - i32.const 1 - i32.sub - local.tee $5 - local.get $3 - i32.add - local.set $6 - local.get $5 - i32.const 1 - i32.add - local.set $2 - loop $for-loop|0 + i32.const 4 + local.get $0 + i32.load offset=1568 + memory.size + local.tee $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.set $2 + local.get $1 + local.get $2 local.get $1 local.get $2 + i32.gt_s + select + memory.grow + i32.const 0 i32.lt_s if local.get $2 - i32.const 1 - i32.sub - local.tee $2 - i32.const 2 - i32.shl - local.tee $7 - local.get $4 - i32.add - local.get $0 - local.get $7 - i32.add - i32.load - i32.store - br $for-loop|0 - end - end - loop $for-loop|1 - local.get $3 - local.get $5 - i32.gt_s - if - local.get $4 - local.get $6 - local.get $5 - i32.sub - i32.const 2 - i32.shl - i32.add - local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - i32.store - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|1 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end end - end - loop $for-loop|2 + local.get $0 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 $0 local.get $3 - i32.le_s + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz if - local.get $4 - local.get $5 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $6 - local.get $4 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $7 - i32.const 2 - global.set $~argumentsLength - local.get $6 - local.get $7 - i32.const 3872 - i32.load - call_indirect (type $0) i32.const 0 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $6 - i32.store - local.get $5 - i32.const 1 - i32.sub - local.set $5 - else - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $7 - i32.store - local.get $2 - i32.const 1 - i32.add - local.set $2 - end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|2 + i32.const 1616 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable end end - ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $3 + local.get $1 + i32.load + i32.const -4 + i32.and + i32.gt_u + if + i32.const 0 + i32.const 1616 + i32.const 501 + i32.const 14 + call $~lib/builtins/abort + unreachable + end local.get $0 local.get $1 + call $~lib/rt/tlsf/removeBlock + local.get $1 + i32.load + local.set $4 + local.get $3 + i32.const 4 + i32.add + i32.const 15 + i32.and + if + i32.const 0 + i32.const 1616 + i32.const 361 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const -4 + i32.and + local.get $3 i32.sub + local.tee $2 + i32.const 16 + i32.ge_u + if + local.get $1 + local.get $3 + local.get $4 + i32.const 2 + i32.and + i32.or + i32.store + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + local.get $2 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $0 + local.get $3 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $4 + i32.const -2 + i32.and + i32.store + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $0 + local.get $0 + i32.load + i32.const -3 + i32.and + i32.store + end + local.get $1 ) - (func $~lib/staticarray/StaticArray~visit (param $0 i32) + (func $~lib/rt/tlsf/__free (param $0 i32) (local $1 i32) (local $2 i32) local.get $0 + i32.const 36728 + 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 - i32.const 20 + i32.const 4 i32.sub - i32.load offset=16 - i32.add local.set $1 - loop $while-continue|0 - local.get $0 - local.get $1 - i32.lt_u - if + local.get $0 + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $1 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1616 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + i32.store + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (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 1408 + 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$268 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if local.get $0 - i32.load - local.tee $2 + i32.load offset=8 + i32.eqz + local.get $0 + i32.const 36728 + i32.lt_u + i32.and + i32.eqz if - local.get $2 - call $~lib/rt/itcms/__visit + i32.const 0 + i32.const 1408 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + br $__inlined_func$~lib/rt/itcms/Object#unlink$268 + end + local.get $0 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1408 + 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 3888 + i32.load + i32.gt_u + if + i32.const 1088 + i32.const 1536 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable end + local.get $1 + i32.const 2 + i32.shl + i32.const 3892 + 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/__visit_members (param $0 i32) (local $1 i32) @@ -2301,11 +2625,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end return @@ -2342,16 +2662,15 @@ i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 local.set $1 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -2409,10 +2728,9 @@ i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -2431,188 +2749,146 @@ call $~lib/builtins/abort unreachable ) - (func $~start - call $start:std/staticarray - ) - (func $~lib/staticarray/StaticArray#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3960 - 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 - local.tee $2 - i32.const 0 - i32.store - local.get $2 - 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 1088 - i32.const 1152 - i32.const 78 - i32.const 41 - call $~lib/builtins/abort - unreachable - end + (func $start:std/staticarray~anonymous|6 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - global.get $~lib/memory/__stack_pointer i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.eq ) - (func $~lib/staticarray/StaticArray#__set (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 3960 - 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 - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store + (func $start:std/staticarray~anonymous|5 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 i32.const 2 - i32.shr_u - i32.const 1 - i32.le_u - if - i32.const 1088 - i32.const 1152 - i32.const 93 - i32.const 41 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store - local.get $0 - local.get $1 - i32.store offset=4 - local.get $2 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.eq ) - (func $std/staticarray/Ref#constructor (result i32) - (local $0 i32) - (local $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $2 + i32.const 1 i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 3960 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 + local.tee $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + i32.const 1 + i32.add + local.set $2 + loop $for-loop|0 local.get $1 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3960 + local.get $2 i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $0 - i32.eqz if local.get $2 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $0 + i32.const 1 + i32.sub + local.tee $2 + i32.const 2 + i32.shl + local.tee $7 + local.get $4 + i32.add + local.get $0 + local.get $7 + i32.add + i32.load i32.store + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + end + loop $for-loop|1 + local.get $3 + local.get $5 + i32.gt_s + if + local.get $4 + local.get $6 + local.get $5 + i32.sub + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + loop $for-loop|2 local.get $1 - 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 - return + local.get $3 + i32.le_s + if + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $6 + local.get $4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $7 + i32.const 2 + global.set $~argumentsLength + local.get $6 + local.get $7 + i32.const 3872 + i32.load + call_indirect (type $0) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store + local.get $5 + i32.const 1 + i32.sub + local.set $5 + else + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 + end end - i32.const 36752 - i32.const 36800 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/util/sort/extendRunRight (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.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -2627,130 +2903,171 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store - local.get $1 - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - local.set $0 + i32.store offset=8 local.get $1 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/staticarray/StaticArray.fromArray (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 3960 - i32.lt_s + local.get $2 + i32.eq if - i32.const 36752 - i32.const 36800 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return end global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - local.get $0 + i32.const 3872 i32.store local.get $0 - call $~lib/array/Array#get:length + local.get $1 i32.const 2 i32.shl - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=4 - local.get $2 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3960 - 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 - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1088 - i32.const 1776 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store + i32.load local.get $0 - i32.load offset=4 local.get $1 + i32.const 1 + i32.add + local.tee $3 i32.const 2 i32.shl i32.add i32.load - local.set $0 - local.get $2 - i32.const 4 + i32.const 2 + global.set $~argumentsLength + i32.const 3872 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $2 + local.get $3 + i32.gt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 3872 + i32.store offset=4 + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.tee $4 + i32.load offset=4 + local.get $4 + i32.load + i32.const 2 + global.set $~argumentsLength + i32.const 3872 + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $while-continue|0 + end + end + local.get $3 + local.set $2 + loop $while-continue|1 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.tee $4 + i32.load + local.set $5 + local.get $4 + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.tee $4 + i32.load + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $4 + local.get $5 + i32.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $2 + local.get $3 + i32.gt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 3872 + i32.store offset=8 + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=4 + local.get $1 + i32.load + i32.const 2 + global.set $~argumentsLength + i32.const 3872 + i32.load + call_indirect (type $0) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $while-continue|2 + end + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $3 ) - (func $~lib/staticarray/StaticArray#concat<~lib/staticarray/StaticArray> (param $0 i32) (param $1 i32) (result i32) + (func $~lib/staticarray/StaticArray<~lib/string/String>#concat<~lib/array/Array<~lib/string/String>> (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2767,10 +3084,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -2779,20 +3095,16 @@ i32.load offset=16 i32.const 2 i32.shr_u - local.set $2 - local.get $3 + local.set $3 + 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 - local.tee $4 - local.get $2 + call $~lib/array/Array#get:length + local.tee $2 + local.get $3 i32.add - local.tee $3 + local.tee $4 i32.const 268435455 i32.gt_u if @@ -2803,46 +3115,136 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $0 - i32.store offset=4 - local.get $5 local.get $3 i32.const 2 i32.shl - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=4 - local.get $3 - local.get $0 - local.get $2 - i32.const 2 - i32.shl - local.tee $0 - memory.copy + local.set $5 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $3 - i32.add - local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $4 - i32.const 2 - i32.shl - memory.copy + i32.const 9 + i32.const 0 + call $~lib/rt/__newArray + local.tee $3 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer local.get $3 - ) - (func $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) + i32.store + local.get $3 + i32.load offset=4 + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $1 + i32.store + local.get $1 + i32.load offset=4 + local.set $6 + i32.const 0 + local.set $1 + loop $for-loop|0 + local.get $1 + local.get $5 + i32.lt_u + if + local.get $1 + local.get $4 + i32.add + local.get $0 + local.get $1 + i32.add + i32.load + local.tee $7 + i32.store + local.get $3 + local.get $7 + i32.const 1 + call $~lib/rt/itcms/__link + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $for-loop|0 + end + end + local.get $4 + local.get $5 + i32.add + local.set $1 + local.get $2 + i32.const 2 + i32.shl + local.set $2 + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $2 + i32.lt_u + if + local.get $0 + local.get $1 + i32.add + local.get $0 + local.get $6 + i32.add + i32.load + local.tee $4 + i32.store + local.get $3 + local.get $4 + i32.const 1 + call $~lib/rt/itcms/__link + local.get $0 + i32.const 4 + 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 + local.get $3 + ) + (func $~lib/staticarray/StaticArray~visit (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.add + local.set $1 + loop $while-continue|0 + local.get $0 + local.get $1 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + ) + (func $~lib/staticarray/StaticArray#some (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 @@ -2857,10 +3259,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -2869,109 +3270,53 @@ i32.load offset=16 i32.const 2 i32.shr_u - local.set $5 - local.get $0 - local.get $1 - i32.const 0 - i32.lt_s - if (result i32) - local.get $1 - local.get $5 - i32.add - local.tee $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - else - local.get $1 - local.get $5 - local.get $1 - local.get $5 - i32.lt_s - select - end - local.tee $6 - i32.const 2 - i32.shl - i32.add local.set $3 - global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $0 - i32.store offset=4 - i32.const 0 - local.set $1 - local.get $4 - local.get $2 - i32.const 0 - i32.lt_s - if (result i32) - local.get $2 - local.get $5 - i32.add - local.tee $0 - i32.const 0 - local.get $0 - i32.const 0 - i32.gt_s - select - else - local.get $2 - local.get $5 + loop $for-loop|0 local.get $2 - local.get $5 + local.get $3 i32.lt_s - select - end - local.get $6 - i32.sub - local.tee $0 - i32.const 0 - local.get $0 - i32.const 0 - i32.gt_s - select - i32.const 2 - i32.shl - local.tee $0 - i32.const 8 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=4 - loop $while-continue|0 - local.get $0 - local.get $1 - i32.gt_u if + global.get $~lib/memory/__stack_pointer local.get $1 + i32.store offset=4 + local.get $0 local.get $2 - i32.add - local.get $1 - local.get $3 + i32.const 2 + i32.shl i32.add i32.load - local.tee $4 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store + i32.const 3 + global.set $~argumentsLength local.get $2 - local.get $4 - i32.const 1 - call $~lib/rt/itcms/__link + local.get $0 local.get $1 - i32.const 4 + i32.load + call_indirect (type $1) + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return + end + local.get $2 + i32.const 1 i32.add - local.set $1 - br $while-continue|0 + local.set $2 + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + i32.const 0 ) - (func $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>>@varargs (param $0 i32) (param $1 i32) (result i32) + (func $~lib/staticarray/StaticArray#lastIndexOf@varargs (param $0 i32) (param $1 i32) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -2991,19 +3336,25 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $2of2 - block $1of2 - block $0of2 - block $outOfRange - global.get $~argumentsLength - br_table $0of2 $1of2 $2of2 $outOfRange - end - unreachable + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange end - i32.const 0 - local.set $1 + unreachable end - i32.const 2147483647 + 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 local.set $2 end global.get $~lib/memory/__stack_pointer @@ -3012,16 +3363,15 @@ local.get $0 local.get $1 local.get $2 - call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> - local.set $0 + call $~lib/staticarray/StaticArray#lastIndexOf global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/staticarray/StaticArray<~lib/string/String>#__get (param $0 i32) (param $1 i32) (result i32) + (func $~lib/staticarray/StaticArray#findLastIndex (param $0 i32) (param $1 i32) (result i32) (local $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3038,58 +3388,69 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + 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 1088 - i32.const 1152 - i32.const 78 - i32.const 41 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - 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 2336 - i32.const 1152 - i32.const 82 - i32.const 40 - call $~lib/builtins/abort - unreachable + i32.const 1 + i32.sub + local.set $2 + loop $for-loop|0 + local.get $2 + i32.const 0 + i32.ge_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $1) + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $for-loop|0 + end end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const -1 ) - (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (func $~lib/staticarray/StaticArray#findIndex (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 @@ -3106,157 +3467,67 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.eq - if - local.get $2 - 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.tee $4 - local.tee $2 - 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 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.set $3 + loop $for-loop|0 local.get $2 - 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 - local.get $4 - local.get $0 - i32.store - local.get $0 - local.set $2 - local.get $4 - local.get $1 - i32.store offset=4 local.get $3 - local.tee $0 - i32.const 4 - i32.ge_u - if (result i32) + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 local.get $2 - i32.const 7 - i32.and + i32.const 2 + i32.shl + i32.add + i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $0 local.get $1 - i32.const 7 - i32.and - i32.or - else - i32.const 1 - end - i32.eqz - if - loop $do-loop|0 + i32.load + call_indirect (type $1) + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer local.get $2 - i64.load - local.get $1 - i64.load - i64.eq - if - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end - end - end - block $__inlined_func$~lib/util/string/compareImpl$106 - loop $while-continue|1 - local.get $0 - local.tee $3 - i32.const 1 - i32.sub - local.set $0 - local.get $3 - if - local.get $2 - i32.load16_u - local.tee $5 - local.get $1 - i32.load16_u - local.tee $4 - i32.sub - local.set $3 - local.get $4 - local.get $5 - i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$106 - local.get $2 - i32.const 2 - i32.add - local.set $2 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 - end + return end - i32.const 0 - local.set $3 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - i32.eqz - return end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 + i32.const -1 ) - (func $~lib/staticarray/StaticArray<~lib/string/String>#concat<~lib/array/Array<~lib/string/String>> (param $0 i32) (param $1 i32) (result i32) + (func $~lib/staticarray/StaticArray#every (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3273,10 +3544,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -3286,258 +3556,58 @@ i32.const 2 i32.shr_u local.set $3 - local.get $2 - local.get $1 - i32.store - local.get $1 - call $~lib/array/Array#get:length - local.tee $5 - local.get $3 - i32.add - local.tee $4 - i32.const 268435455 - i32.gt_u - if - i32.const 1680 - i32.const 1152 - i32.const 178 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 2 - i32.shl - local.set $2 - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store offset=4 - local.get $3 - local.get $4 - i32.const 9 - i32.const 0 - call $~lib/rt/__newArray - local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - i32.load offset=4 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=4 - local.set $6 - i32.const 0 - local.set $1 loop $for-loop|0 - local.get $1 local.get $2 - i32.lt_u + local.get $3 + i32.lt_s if + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $4 - i32.add + i32.store offset=4 local.get $0 - local.get $1 + local.get $2 + i32.const 2 + i32.shl i32.add i32.load - local.tee $7 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $3 - local.get $7 - i32.const 1 - call $~lib/rt/itcms/__link - local.get $1 - i32.const 4 - i32.add - local.set $1 - br $for-loop|0 - end - end - local.get $2 - local.get $4 - i32.add - local.set $1 - local.get $5 - i32.const 2 - i32.shl - local.set $2 - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $2 - i32.lt_u - if + i32.const 3 + global.set $~argumentsLength + local.get $2 local.get $0 local.get $1 - i32.add - local.get $0 - local.get $6 - i32.add i32.load - local.tee $4 - i32.store - local.get $3 - local.get $4 - i32.const 1 - call $~lib/rt/itcms/__link - local.get $0 - i32.const 4 - 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 - local.get $3 - ) - (func $~lib/staticarray/StaticArray<~lib/string/String>#includes (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 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 3960 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $1 - i32.store offset=4 - local.get $3 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3960 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store - local.get $4 - local.get $0 - i32.store - block $__inlined_func$~lib/staticarray/StaticArray<~lib/string/String>#indexOf$274 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 2 - i32.shr_u - local.tee $3 + call_indirect (type $1) i32.eqz - local.get $2 - local.get $3 - i32.ge_s - i32.or if - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const -1 - local.set $2 - br $__inlined_func$~lib/staticarray/StaticArray<~lib/string/String>#indexOf$274 - end - 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 - loop $while-continue|0 - local.get $2 - local.get $3 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $5 - i32.store - local.get $4 - local.get $1 - i32.store offset=4 - local.get $5 - local.get $1 - call $~lib/string/String.__eq - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/staticarray/StaticArray<~lib/string/String>#indexOf$274 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $while-continue|0 - end + return end - global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $2 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - i32.const -1 local.set $2 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - i32.const 0 - i32.ge_s - return end - i32.const 36752 - i32.const 36800 - i32.const 1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer i32.const 1 - call $~lib/builtins/abort - unreachable ) - (func $~lib/staticarray/StaticArray#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/staticarray/StaticArray#concat<~lib/staticarray/StaticArray> (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 @@ -3552,10 +3622,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 - i32.const 0 - i32.store - local.get $4 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -3564,164 +3633,67 @@ i32.load offset=16 i32.const 2 i32.shr_u - local.tee $3 - i32.eqz - local.get $2 - local.get $3 - i32.ge_s - i32.or - if - local.get $4 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const -1 - return - end - 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 - 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/staticarray/StaticArray#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) + local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $1 + i32.store + local.get $1 + i32.const 20 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3960 - i32.lt_s + i32.load offset=16 + i32.const 2 + i32.shr_u + local.tee $2 + local.get $3 + i32.add + local.tee $4 + i32.const 268435455 + i32.gt_u if - i32.const 36752 - i32.const 36800 - i32.const 1 - i32.const 1 + i32.const 1680 + i32.const 1152 + i32.const 178 + i32.const 7 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 $4 + i32.const 2 + i32.shl + i32.const 4 + call $~lib/rt/itcms/__new local.tee $4 - i32.const 0 - i32.store + i32.store offset=4 local.get $4 local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 2 - i32.shr_u - local.tee $3 - i32.eqz - if - local.get $4 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const -1 - return - end - local.get $2 local.get $3 + i32.const 2 + i32.shl + local.tee $0 + memory.copy + local.get $0 + local.get $4 i32.add - local.get $3 - i32.const 1 - i32.sub - local.get $2 - local.get $2 - local.get $3 - i32.ge_s - select + local.get $1 local.get $2 - i32.const 0 - i32.lt_s - select - local.set $2 - loop $while-continue|0 - local.get $2 - i32.const 0 - i32.ge_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.sub - local.set $2 - br $while-continue|0 - end - end + i32.const 2 + i32.shl + memory.copy global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const -1 + local.get $4 ) - (func $~lib/staticarray/StaticArray#lastIndexOf@varargs (param $0 i32) (param $1 i32) (result i32) + (func $~lib/staticarray/StaticArray.fromArray (param $0 i32) (result i32) + (local $1 i32) (local $2 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 @@ -3736,730 +3708,425 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - 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 $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 2 - i32.shr_u - local.set $2 - end + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 + call $~lib/array/Array#get:length + i32.const 2 + i32.shl + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $1 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $2 - call $~lib/staticarray/StaticArray#lastIndexOf - local.set $0 + local.get $0 + i32.load offset=4 + local.get $1 + memory.copy global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $2 ) - (func $~lib/util/string/joinStringArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - 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 3960 - i32.lt_s + (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 - i32.const 36752 - i32.const 36800 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $6 - i64.const 0 - i64.store - local.get $6 - i64.const 0 - i64.store offset=8 - local.get $1 - i32.const 1 - i32.sub - local.tee $5 - i32.const 0 - i32.lt_s - if - local.get $6 + 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.add - global.set $~lib/memory/__stack_pointer - i32.const 2928 - return + i32.xor + local.set $1 + local.get $2 + i32.const 7 + i32.sub + local.set $2 end - local.get $5 + local.get $1 + i32.const 16 + i32.lt_u + local.get $2 + i32.const 23 + i32.lt_u + i32.and i32.eqz if - global.get $~lib/memory/__stack_pointer - local.tee $1 + 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 - i32.load - local.tee $0 - i32.store local.get $1 - i32.const 16 + i32.ctz + local.get $2 + i32.const 4 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.const 2928 + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else local.get $0 - select - return - end - loop $for-loop|0 - local.get $1 - local.get $4 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.tee $6 + 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 $4 + local.get $1 + i32.ctz + local.tee $1 i32.const 2 i32.shl i32.add - i32.load - local.tee $7 - i32.store offset=4 - local.get $7 + i32.load offset=4 + local.tee $2 + i32.eqz if - local.get $6 - local.get $7 - i32.store offset=8 - local.get $3 - local.get $7 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.add - local.set $3 + i32.const 0 + i32.const 1616 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable end - local.get $4 - i32.const 1 + local.get $0 + local.get $2 + i32.ctz + local.get $1 + i32.const 4 + i32.shl i32.add - local.set $4 - br $for-loop|0 + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + i32.const 0 end end - i32.const 0 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.tee $1 + ) + (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 - i32.store offset=8 local.get $1 - local.get $3 - local.get $2 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $6 - local.get $5 - i32.mul + 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 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=12 - i32.const 0 - local.set $3 - loop $for-loop|1 + 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 - local.get $5 - i32.lt_s + 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 - global.get $~lib/memory/__stack_pointer - local.tee $8 - local.get $0 local.get $3 - i32.const 2 - i32.shl - i32.add i32.load - local.tee $1 - i32.store offset=4 - local.get $1 - if - local.get $8 - local.get $1 - i32.store offset=8 - local.get $7 - local.get $4 - i32.const 1 - i32.shl - i32.add - local.get $1 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $1 - i32.const 1 - i32.shl - memory.copy - local.get $1 - local.get $4 - i32.add - local.set $4 - end - local.get $6 - if - local.get $7 - local.get $4 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $6 - i32.const 1 - i32.shl - memory.copy - local.get $4 - local.get $6 - i32.add - local.set $4 - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|1 + local.set $4 + local.get $5 + local.set $1 end - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $0 - i32.store offset=4 - local.get $0 - if - local.get $1 + else local.get $0 - i32.store offset=8 - local.get $7 - local.get $4 - i32.const 1 - i32.shl + i32.const 1572 i32.add - local.get $0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - memory.copy - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - ) - (func $~lib/staticarray/StaticArray<~lib/string/String>#join (param $0 i32) (param $1 i32) (result 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 3960 - 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 - local.tee $2 - i64.const 0 - i64.store - local.get $2 - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 2 - i32.shr_u - local.set $3 - local.get $2 - local.get $1 - i32.store - local.get $0 - local.get $3 - local.get $1 - call $~lib/util/string/joinStringArray - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/staticarray/StaticArray#filter (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - 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 3960 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store local.get $1 - i32.const 0 - i32.const 7 - i32.const 0 - call $~lib/rt/__newArray - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 2 - i32.shr_u - local.set $8 - loop $for-loop|0 - local.get $8 - local.get $10 - i32.gt_s - if - local.get $0 - local.get $10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 3 - global.set $~argumentsLength - local.get $9 - local.get $10 - local.get $0 - i32.const 3472 - i32.load - call_indirect (type $1) - if - global.get $~lib/memory/__stack_pointer - local.get $6 - 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 3960 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - local.get $6 - i32.store - local.get $6 - i32.load offset=12 - local.tee $7 - i32.const 1 - i32.add - local.tee $5 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3960 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - local.get $6 - i32.store - local.get $3 - local.get $6 - i32.load offset=8 - local.tee $1 - i32.const 2 - i32.shr_u - i32.gt_u - if - local.get $3 - i32.const 268435455 - i32.gt_u - if - i32.const 1680 - i32.const 1776 - i32.const 19 - i32.const 48 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - block $__inlined_func$~lib/rt/itcms/__renew$224 - i32.const 1073741820 - local.get $1 - i32.const 1 - i32.shl - local.tee $1 - local.get $1 - i32.const 1073741820 - i32.ge_u - select - local.tee $2 - i32.const 8 - local.get $3 - local.get $3 - 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 $4 - local.get $6 - i32.load - local.tee $1 - i32.const 20 - i32.sub - local.tee $3 - i32.load - i32.const -4 - i32.and - i32.const 16 - i32.sub - i32.le_u - if - local.get $3 - local.get $4 - i32.store offset=16 - local.get $1 - local.set $2 - br $__inlined_func$~lib/rt/itcms/__renew$224 - end - local.get $4 - local.get $3 - i32.load offset=12 - call $~lib/rt/itcms/__new - local.tee $2 - local.get $1 - local.get $4 - local.get $3 - i32.load offset=16 - local.tee $3 - local.get $3 - local.get $4 - i32.gt_u - select - memory.copy - end - local.get $1 - local.get $2 - i32.ne - if - local.get $6 - local.get $2 - i32.store - local.get $6 - local.get $2 - i32.store offset=4 - local.get $6 - local.get $2 - i32.const 0 - call $~lib/rt/itcms/__link - end - local.get $6 - local.get $4 - 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.tee $1 - local.get $6 - i32.store - local.get $6 - i32.load offset=4 - local.get $7 - i32.const 2 - i32.shl - i32.add - local.get $9 - i32.store - local.get $1 - local.get $6 - i32.store - local.get $6 - local.get $5 - i32.store offset=12 - local.get $1 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $10 - i32.const 1 - i32.add - local.set $10 - br $for-loop|0 - end + i32.gt_u + if + i32.const 0 + i32.const 1616 + i32.const 402 + i32.const 5 + 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 $6 - return end - i32.const 36752 - i32.const 36800 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/staticarray/StaticArray#some (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 + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3960 - i32.lt_s + local.tee $3 + i32.const 20 + i32.lt_u if - i32.const 36752 - i32.const 36800 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + return end - global.get $~lib/memory/__stack_pointer + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub local.tee $3 - i32.const 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 $3 - local.get $0 + i32.add + local.tee $3 + i32.const 2 i32.store local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 2 - i32.shr_u - local.set $3 - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_s + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1056 + call $~lib/rt/itcms/__visit + i32.const 1280 + call $~lib/rt/itcms/__visit + global.get $std/staticarray/arr3 + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/staticarray/arr4 + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 1088 + call $~lib/rt/itcms/__visit + i32.const 1680 + call $~lib/rt/itcms/__visit + i32.const 2336 + call $~lib/rt/itcms/__visit + i32.const 1344 + 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 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + i32.load offset=4 i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $1) + i32.and + i32.const 3 + i32.ne if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 - return + i32.const 0 + i32.const 1408 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end - local.get $2 - i32.const 1 + local.get $0 + i32.const 20 i32.add - local.set $2 - br $for-loop|0 + 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 ) - (func $~lib/staticarray/StaticArray#every (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + (func $std/staticarray/Ref#constructor (result i32) + (local $0 i32) + (local $1 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 3960 - 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 - local.tee $3 - i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 2 - i32.shr_u - local.set $3 - loop $for-loop|0 - local.get $2 - local.get $3 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 3960 i32.lt_s - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $1) - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - return - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 + 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 + i32.store + 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 3960 + i32.lt_s + br_if $folding-inner0 + 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 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 + return end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 36752 + i32.const 36800 i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/staticarray/StaticArray#findIndex (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $start:std/staticarray~anonymous|3 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) + (func $~start + call $start:std/staticarray + ) + (func $~lib/util/string/joinStringArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -4474,140 +4141,201 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store - local.get $0 - i32.const 20 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + local.get $1 + i32.const 1 i32.sub - i32.load offset=16 - i32.const 2 - i32.shr_u - local.set $3 + local.tee $5 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 2928 + return + end + local.get $5 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.const 2928 + local.get $0 + select + return + end loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_s + local.get $1 + local.get $4 + i32.gt_s if + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $2 + local.get $4 i32.const 2 i32.shl i32.add i32.load - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $1) + local.tee $6 + i32.store offset=4 + local.get $6 if global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $6 + i32.store offset=8 + local.get $3 + local.get $6 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return + local.set $3 end - local.get $2 + local.get $4 i32.const 1 i32.add - local.set $2 + local.set $4 br $for-loop|0 end end + i32.const 0 + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const -1 - ) - (func $~lib/staticarray/StaticArray#findLastIndex (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 3960 - i32.lt_s - if - i32.const 36752 - i32.const 36800 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + local.get $2 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store + local.get $3 local.get $2 - local.get $0 - i32.store - local.get $0 i32.const 20 i32.sub i32.load offset=16 - i32.const 2 + i32.const 1 i32.shr_u + local.tee $1 + local.get $5 + i32.mul + i32.add i32.const 1 - i32.sub - local.set $2 - loop $for-loop|0 - local.get $2 - i32.const 0 - i32.ge_s + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store offset=12 + i32.const 0 + local.set $3 + loop $for-loop|1 + local.get $3 + local.get $5 + i32.lt_s if + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $2 + local.get $3 i32.const 2 i32.shl i32.add i32.load - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - i32.const 3 - global.set $~argumentsLength - local.get $3 - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $1) + local.tee $7 + i32.store offset=4 + local.get $7 if global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $7 + i32.store offset=8 + local.get $6 + local.get $4 + i32.const 1 + i32.shl + i32.add + local.get $7 + local.get $7 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $7 + i32.const 1 + i32.shl + memory.copy + local.get $4 + local.get $7 + i32.add + local.set $4 + end + local.get $1 + if + local.get $6 + local.get $4 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $1 + i32.const 1 + i32.shl + memory.copy + local.get $1 + local.get $4 i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return + local.set $4 end - local.get $2 + local.get $3 i32.const 1 - i32.sub - local.set $2 - br $for-loop|0 + i32.add + local.set $3 + br $for-loop|1 end end global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $0 + i32.store offset=4 + local.get $0 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $6 + local.get $4 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 + i32.and + memory.copy + end + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - i32.const -1 + local.get $6 ) (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (local $2 i32) @@ -4810,245 +4538,532 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add - local.set $11 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 3872 + i32.store + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + local.tee $8 + call $~lib/util/sort/extendRunRight + local.tee $4 + i32.const 1 + i32.add + local.tee $1 + i32.const 32 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 3872 + i32.store + local.get $0 + i32.const 0 + i32.const 31 + local.get $8 + local.get $8 + i32.const 31 + i32.ge_s + select + local.tee $4 + local.get $1 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.set $1 + i32.const 0 + local.set $2 + loop $while-continue|2 + local.get $4 + local.get $8 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 3872 + i32.store + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $5 + local.get $8 + call $~lib/util/sort/extendRunRight + local.tee $3 + local.get $5 + i32.sub + i32.const 1 + i32.add + local.tee $6 + i32.const 32 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 3872 + i32.store + local.get $0 + local.get $5 + local.get $8 + local.get $5 + i32.const 31 + i32.add + local.tee $3 + local.get $3 + local.get $8 + i32.gt_s + select + local.tee $3 + local.get $6 + call $~lib/util/sort/insertionSort + end + local.get $2 + local.get $5 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $8 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $12 + i64.div_u + local.get $3 + local.get $5 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $12 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $6 + loop $for-loop|3 + local.get $1 + local.get $6 + i32.gt_u + if + local.get $1 + i32.const 2 + i32.shl + local.tee $13 + local.get $9 + i32.add + local.tee $14 + i32.load + local.tee $7 + i32.const -1 + i32.ne + if + local.get $10 + local.get $13 + i32.add + i32.load + i32.const 1 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 3872 + i32.store + local.get $0 + local.get $7 + local.get $2 + local.get $4 + local.get $11 + call $~lib/util/sort/mergeRuns + local.get $14 + i32.const -1 + i32.store + local.get $7 + local.set $2 + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|3 + end + end + local.get $6 + i32.const 2 + i32.shl + local.tee $1 + local.get $9 + i32.add + local.get $2 + i32.store + local.get $1 + local.get $10 + i32.add + local.get $4 + i32.store + local.get $5 + local.set $2 + local.get $3 + local.set $4 + local.get $6 + local.set $1 + br $while-continue|2 + end + end + loop $for-loop|4 + local.get $1 + if + local.get $1 + i32.const 2 + i32.shl + local.tee $2 + local.get $9 + i32.add + i32.load + local.tee $3 + i32.const -1 + i32.ne + if + local.get $2 + local.get $10 + i32.add + i32.load + i32.const 1 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 3872 + i32.store + local.get $0 + local.get $3 + local.get $2 + local.get $8 + local.get $11 + call $~lib/util/sort/mergeRuns + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|4 + end + end + local.get $11 + call $~lib/rt/tlsf/__free + local.get $9 + call $~lib/rt/tlsf/__free + 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.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.sub + ) + (func $~lib/staticarray/StaticArray#filter (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + 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 3872 - i32.store - local.get $0 - i32.const 0 - local.get $1 - i32.const 1 - i32.sub - local.tee $8 - call $~lib/util/sort/extendRunRight - local.tee $4 - i32.const 1 - i32.add - local.tee $1 - i32.const 32 + i32.const 3960 i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 3872 - i32.store - local.get $0 - i32.const 0 - i32.const 31 - local.get $8 - local.get $8 - i32.const 31 - i32.ge_s - select - local.tee $4 - local.get $1 - call $~lib/util/sort/insertionSort - end + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + i32.const 7 i32.const 0 - local.set $2 - loop $while-continue|2 - local.get $4 - local.get $8 - i32.lt_s + call $~lib/rt/__newArray + local.tee $10 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.set $7 + loop $for-loop|0 + local.get $7 + local.get $9 + i32.gt_s if - global.get $~lib/memory/__stack_pointer - i32.const 3872 - i32.store local.get $0 - local.get $4 - i32.const 1 + local.get $9 + i32.const 2 + i32.shl i32.add - local.tee $5 + i32.load + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 3 + global.set $~argumentsLength local.get $8 - call $~lib/util/sort/extendRunRight - local.tee $3 - local.get $5 - i32.sub - i32.const 1 - i32.add - local.tee $6 - i32.const 32 - i32.lt_s + local.get $9 + local.get $0 + i32.const 3472 + i32.load + call_indirect (type $1) if global.get $~lib/memory/__stack_pointer - i32.const 3872 + local.get $10 + 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 3960 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store - local.get $0 - local.get $5 - local.get $8 - local.get $5 - i32.const 31 + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store + local.get $10 + i32.load offset=12 + local.tee $6 + i32.const 1 i32.add - local.tee $3 + local.tee $5 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3960 + 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 $10 + i32.store local.get $3 - local.get $8 - i32.gt_s - select - local.tee $3 - local.get $6 - call $~lib/util/sort/insertionSort - end - local.get $2 - local.get $5 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $8 - i32.const 1 - i32.add - i64.extend_i32_u - local.tee $12 - i64.div_u - local.get $3 - local.get $5 - i32.add - i32.const 1 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $12 - i64.div_u - i64.xor - i32.wrap_i64 - i32.clz - local.set $6 - loop $for-loop|3 - local.get $1 - local.get $6 + local.get $10 + i32.load offset=8 + local.tee $1 + i32.const 2 + i32.shr_u i32.gt_u if + local.get $3 + i32.const 268435455 + i32.gt_u + if + i32.const 1680 + i32.const 1776 + i32.const 19 + i32.const 48 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store + block $__inlined_func$~lib/rt/itcms/__renew$225 + i32.const 1073741820 + local.get $1 + i32.const 1 + i32.shl + local.tee $1 + local.get $1 + i32.const 1073741820 + i32.ge_u + select + local.tee $2 + i32.const 8 + local.get $3 + local.get $3 + 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 $4 + local.get $10 + i32.load + local.tee $1 + i32.const 20 + i32.sub + local.tee $3 + i32.load + i32.const -4 + i32.and + i32.const 16 + i32.sub + i32.le_u + if + local.get $3 + local.get $4 + i32.store offset=16 + local.get $1 + local.set $2 + br $__inlined_func$~lib/rt/itcms/__renew$225 + end + local.get $4 + local.get $3 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.tee $2 + local.get $1 + local.get $4 + local.get $3 + i32.load offset=16 + local.tee $3 + local.get $3 + local.get $4 + i32.gt_u + select + memory.copy + end local.get $1 - i32.const 2 - i32.shl - local.tee $13 - local.get $9 - i32.add - local.tee $14 - i32.load - local.tee $7 - i32.const -1 + local.get $2 i32.ne if local.get $10 - local.get $13 - i32.add - i32.load - i32.const 1 - i32.add - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 3872 - i32.store - local.get $0 - local.get $7 local.get $2 - local.get $4 - local.get $11 - call $~lib/util/sort/mergeRuns - local.get $14 - i32.const -1 i32.store - local.get $7 - local.set $2 + local.get $10 + local.get $2 + i32.store offset=4 + local.get $10 + local.get $2 + i32.const 0 + call $~lib/rt/itcms/__link end - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|3 + local.get $10 + local.get $4 + i32.store offset=8 end - end - local.get $6 - i32.const 2 - i32.shl - local.tee $1 - local.get $9 - i32.add - local.get $2 - i32.store - local.get $1 - local.get $10 - i32.add - local.get $4 - i32.store - local.get $5 - local.set $2 - local.get $3 - local.set $4 - local.get $6 - local.set $1 - br $while-continue|2 - end - end - loop $for-loop|4 - local.get $1 - if - local.get $1 - i32.const 2 - i32.shl - local.tee $2 - local.get $9 - i32.add - i32.load - local.tee $3 - i32.const -1 - i32.ne - if - local.get $2 - local.get $10 - i32.add - i32.load - i32.const 1 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.set $2 + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3872 + local.get $10 i32.store - local.get $0 - local.get $3 - local.get $2 + local.get $10 + i32.load offset=4 + local.get $6 + i32.const 2 + i32.shl + i32.add local.get $8 - local.get $11 - call $~lib/util/sort/mergeRuns + i32.store + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store + local.get $10 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer end - local.get $1 + local.get $9 i32.const 1 - i32.sub - local.set $1 - br $for-loop|4 + i32.add + local.set $9 + br $for-loop|0 end end - local.get $11 - call $~lib/rt/tlsf/__free - local.get $9 - call $~lib/rt/tlsf/__free global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $10 return end - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 36752 + i32.const 36800 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $start:std/staticarray~anonymous|8 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 3 + i32.gt_s + ) + (func $start:std/staticarray~anonymous|7 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 3 + i32.le_s + ) + (func $start:std/staticarray~anonymous|2 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 2 + i32.ge_s + ) + (func $start:std/staticarray~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) + global.get $std/staticarray/maxVal + local.tee $1 + local.get $0 + local.get $0 + local.get $1 + i32.lt_s + select + global.set $std/staticarray/maxVal + ) + (func $start:std/staticarray~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer ) (func $start:std/staticarray (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 f64) - (local $4 f32) - (local $5 i32) + (local $3 i32) + (local $4 f64) + (local $5 f32) (local $6 i32) (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer - i32.const 108 + i32.const 104 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -5057,11 +5072,10 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $5 i32.const 0 - i32.const 108 + i32.const 104 memory.fill - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store i32.const 1056 @@ -5218,17 +5232,17 @@ i32.const 12 i32.const 4 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.const 1312 i32.const 12 memory.copy - local.get $5 + local.get $6 global.set $std/staticarray/arr3 global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $5 + local.tee $6 i32.store - local.get $5 + local.get $6 i32.const 0 call $~lib/staticarray/StaticArray#__get i32.const 5 @@ -5243,9 +5257,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $5 + local.tee $6 i32.store - local.get $5 + local.get $6 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 6 @@ -5260,9 +5274,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $5 + local.tee $6 i32.store - local.get $5 + local.get $6 i32.const 2 call $~lib/staticarray/StaticArray#__get i32.const 7 @@ -5277,9 +5291,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $5 + local.tee $6 i32.store - local.get $5 + local.get $6 i32.const 20 i32.sub i32.load offset=16 @@ -5297,16 +5311,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $5 + local.tee $6 i32.store - local.get $5 + local.get $6 i32.const 8 call $~lib/staticarray/StaticArray#__set global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $5 + local.tee $6 i32.store - local.get $5 + local.get $6 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 8 @@ -5322,17 +5336,17 @@ i32.const 12 i32.const 4 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.const 1312 i32.const 12 memory.copy - local.get $5 + local.get $6 global.set $std/staticarray/arr3 global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $5 + local.tee $6 i32.store - local.get $5 + local.get $6 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 6 @@ -5349,32 +5363,32 @@ i32.const 8 i32.const 6 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.store offset=4 - local.get $5 + local.get $6 call $std/staticarray/Ref#constructor - local.tee $6 + local.tee $7 i32.store - local.get $5 local.get $6 + local.get $7 i32.const 1 call $~lib/rt/itcms/__link - local.get $5 + local.get $6 call $std/staticarray/Ref#constructor - local.tee $6 + local.tee $7 i32.store offset=4 - local.get $5 local.get $6 + local.get $7 i32.const 1 call $~lib/rt/itcms/__link - local.get $5 + local.get $6 global.set $std/staticarray/arr4 i32.const 0 global.set $std/staticarray/arr3 i32.const 0 global.set $std/staticarray/arr4 global.get $~lib/memory/__stack_pointer - local.tee $5 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -5389,19 +5403,18 @@ i32.const 12 i32.const 4 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $7 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 - local.get $6 + local.get $7 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store - local.get $6 + local.get $7 i32.const 20 i32.sub i32.load offset=16 @@ -5419,11 +5432,10 @@ end loop $for-loop|0 global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $6 + local.get $7 i32.store - local.get $1 - local.get $6 + local.get $0 + local.get $7 i32.const 20 i32.sub i32.load offset=16 @@ -5431,11 +5443,11 @@ i32.shr_u i32.lt_s if - local.get $5 - local.get $6 + global.get $~lib/memory/__stack_pointer + local.get $7 i32.store - local.get $6 - local.get $1 + local.get $7 + local.get $0 call $~lib/staticarray/StaticArray#__get if i32.const 0 @@ -5445,10 +5457,10 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -5457,32 +5469,32 @@ i32.const 7 i32.const 1728 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 call $~lib/staticarray/StaticArray.fromArray - local.tee $5 + local.tee $6 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store - local.get $5 + local.get $6 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.set $6 + local.set $7 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 - local.get $6 + local.get $7 i32.ne if i32.const 0 @@ -5494,27 +5506,27 @@ end loop $for-loop|1 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 - call $~lib/array/Array#get:length local.get $0 + call $~lib/array/Array#get:length + local.get $1 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store - local.get $5 - local.get $0 + local.get $6 + local.get $1 call $~lib/staticarray/StaticArray#__get - local.set $6 + local.set $7 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 $6 + local.get $7 i32.ne if i32.const 0 @@ -5524,15 +5536,14 @@ 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 global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 0 i32.const 7 i32.const 1824 @@ -5541,7 +5552,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $0 local.get $1 call $~lib/staticarray/StaticArray.fromArray local.tee $0 @@ -5564,41 +5574,38 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 8 i32.const 4 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.const 1856 i64.load align=1 i64.store align=1 local.get $0 - local.get $1 i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.get $0 i32.store + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 4 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.const 1888 i32.load align=1 i32.store align=1 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=24 local.get $0 - local.get $1 - local.get $5 + local.get $6 call $~lib/staticarray/StaticArray#concat<~lib/staticarray/StaticArray> - local.tee $0 + local.tee $1 i32.store offset=28 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 @@ -5615,40 +5622,37 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.get $0 i32.store + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 4 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.const 1920 i32.const 0 memory.copy global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=24 local.get $0 - local.get $1 - local.get $5 + local.get $6 call $~lib/staticarray/StaticArray#concat<~lib/staticarray/StaticArray> - local.tee $0 + local.tee $1 i32.store offset=28 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store local.get $0 - local.get $1 i32.const 20 i32.sub i32.load offset=16 @@ -5664,7 +5668,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 8 i32.const 8 call $~lib/rt/itcms/__new @@ -5672,25 +5675,23 @@ i32.const 2016 i64.load align=1 i64.store align=1 - local.get $0 local.get $1 i32.store offset=32 global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store i32.const 4 i32.const 8 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $7 i32.const 2080 i32.load align=1 i32.store align=1 global.get $~lib/memory/__stack_pointer - local.tee $6 - local.get $5 + local.get $7 i32.store offset=24 - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -5699,10 +5700,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $6 i64.const 0 i64.store - local.get $6 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 @@ -5711,20 +5711,20 @@ i32.load offset=16 i32.const 2 i32.shr_u - local.set $7 - local.get $6 - local.get $5 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $7 i32.store - local.get $5 + local.get $0 + local.get $7 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $6 - local.get $7 - i32.add local.tee $8 + i32.add + local.tee $9 i32.const 268435455 i32.gt_u if @@ -5735,93 +5735,91 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $0 i32.const 2 i32.shl - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.tee $9 local.get $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $9 - local.get $8 i32.const 2 i32.shl i32.const 8 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $9 i32.store offset=4 - loop $for-loop|011 - local.get $2 - local.get $7 + loop $for-loop|03 + local.get $3 + local.get $10 i32.lt_u if - local.get $2 - local.get $8 + local.get $3 + local.get $9 i32.add local.get $1 - local.get $2 + local.get $3 i32.add i32.load - local.tee $9 + local.tee $0 i32.store - local.get $8 local.get $9 + local.get $0 i32.const 1 call $~lib/rt/itcms/__link - local.get $2 + local.get $3 i32.const 4 i32.add - local.set $2 - br $for-loop|011 + local.set $3 + br $for-loop|03 end end - local.get $7 - local.get $8 + local.get $9 + local.get $10 i32.add - local.set $2 - local.get $6 + local.set $1 + local.get $8 i32.const 2 i32.shl - local.set $6 + local.set $3 i32.const 0 - local.set $1 - loop $for-loop|112 - local.get $1 - local.get $6 + local.set $0 + loop $for-loop|14 + local.get $0 + local.get $3 i32.lt_u if + local.get $0 local.get $1 - local.get $2 i32.add - local.get $1 - local.get $5 + local.get $0 + local.get $7 i32.add i32.load - local.tee $7 + local.tee $8 i32.store + local.get $9 local.get $8 - local.get $7 i32.const 1 call $~lib/rt/itcms/__link - local.get $1 + local.get $0 i32.const 4 i32.add - local.set $1 - br $for-loop|112 + local.set $0 + br $for-loop|14 end end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $8 + local.get $9 i32.store offset=36 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store - local.get $8 + local.get $9 i32.const 20 i32.sub i32.load offset=16 @@ -5838,44 +5836,39 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 20 i32.const 8 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.const 2288 i32.const 20 memory.copy local.get $0 - local.get $1 i32.store offset=40 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.get $0 i32.store i32.const 0 global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>>@varargs - local.tee $2 + local.tee $3 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store - local.get $2 + local.get $3 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store local.get $0 - local.get $1 i32.const 20 i32.sub i32.load offset=16 @@ -5891,14 +5884,13 @@ unreachable end i32.const 0 - local.set $0 + local.set $1 loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $1 - i32.store local.get $0 + i32.store local.get $1 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -5906,28 +5898,28 @@ i32.shr_u i32.lt_s if - local.get $5 - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=48 - local.get $1 local.get $0 + local.get $1 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=48 - local.get $2 - local.get $0 + local.get $3 + local.get $1 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=24 - local.get $5 local.get $6 + local.get $7 call $~lib/string/String.__eq i32.eqz if @@ -5938,28 +5930,27 @@ 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 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.get $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.const 1 i32.const 3 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> - local.tee $0 + local.tee $1 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 @@ -5975,20 +5966,17 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=48 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=24 + local.get $1 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2144 - i32.store offset=24 - local.get $2 + local.get $3 i32.const 2144 call $~lib/string/String.__eq i32.eqz @@ -6001,19 +5989,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=48 - local.get $0 + local.get $1 + i32.store offset=24 + local.get $1 i32.const 1 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2176 - i32.store offset=24 - local.get $0 + local.get $1 i32.const 2176 call $~lib/string/String.__eq i32.eqz @@ -6026,32 +6011,29 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.get $0 i32.store i32.const 1 global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.const 1 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>>@varargs - local.tee $0 + local.tee $1 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store local.get $0 - local.get $1 i32.const 20 i32.sub i32.load offset=16 @@ -6069,31 +6051,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.get $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.const 0 i32.const 50 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> - local.tee $0 + local.tee $1 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store local.get $0 - local.get $1 i32.const 20 i32.sub i32.load offset=16 @@ -6109,21 +6088,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.get $0 i32.store i32.const 1 global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.const 100 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>>@varargs - local.tee $0 + local.tee $1 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 @@ -6138,21 +6116,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.get $0 i32.store i32.const 1 global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.const -1 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>>@varargs - local.tee $0 + local.tee $1 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 @@ -6169,19 +6146,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=48 - local.get $0 + local.get $1 + i32.store offset=24 + local.get $1 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2240 - i32.store offset=24 - local.get $0 + local.get $1 i32.const 2240 call $~lib/string/String.__eq i32.eqz @@ -6194,20 +6168,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.get $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.const -2 i32.const -2 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> - local.tee $0 + local.tee $1 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 @@ -6222,11 +6195,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.get $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.const 2 i32.const -2 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> @@ -6253,7 +6225,7 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=48 + i32.store offset=24 local.get $0 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#__get @@ -6261,9 +6233,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2176 - i32.store offset=24 local.get $0 i32.const 2176 call $~lib/string/String.__eq @@ -6277,46 +6246,41 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 20 i32.const 8 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.const 2464 i32.const 20 memory.copy local.get $0 - local.get $1 i32.store offset=52 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.get $0 i32.store + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 9 i32.const 2512 call $~lib/rt/__newArray - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=24 local.get $0 - local.get $1 - local.get $2 + local.get $3 call $~lib/staticarray/StaticArray<~lib/string/String>#concat<~lib/array/Array<~lib/string/String>> - local.tee $0 + local.tee $1 i32.store offset=56 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 call $~lib/array/Array#get:length - local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store local.get $0 - local.get $1 i32.const 20 i32.sub i32.load offset=16 @@ -6332,34 +6296,31 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.get $0 i32.store + global.get $~lib/memory/__stack_pointer i32.const 1 i32.const 9 i32.const 2576 call $~lib/rt/__newArray - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=24 local.get $0 - local.get $1 - local.get $2 + local.get $3 call $~lib/staticarray/StaticArray<~lib/string/String>#concat<~lib/array/Array<~lib/string/String>> - local.tee $0 + local.tee $1 i32.store offset=56 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 call $~lib/array/Array#get:length - local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store local.get $0 - local.get $1 i32.const 20 i32.sub i32.load offset=16 @@ -6377,26 +6338,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 20 i32.const 8 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.const 2608 i32.const 20 memory.copy local.get $0 - local.get $1 i32.store offset=60 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.get $0 i32.store local.get $0 i32.const 2144 - i32.store offset=24 - local.get $1 - i32.const 2144 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#includes i32.const 1 @@ -6410,14 +6365,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.get $0 i32.store local.get $0 i32.const 2544 - i32.store offset=24 - local.get $1 - i32.const 2544 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#includes if @@ -6429,14 +6380,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.get $0 i32.store local.get $0 i32.const 2240 - i32.store offset=24 - local.get $1 - i32.const 2240 i32.const 5 call $~lib/staticarray/StaticArray<~lib/string/String>#includes if @@ -6448,14 +6395,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.get $0 i32.store local.get $0 i32.const 2240 - i32.store offset=24 - local.get $1 - i32.const 2240 i32.const -1 call $~lib/staticarray/StaticArray<~lib/string/String>#includes i32.const 1 @@ -6468,64 +6411,60 @@ call $~lib/builtins/abort unreachable end - block $__inlined_func$~lib/staticarray/StaticArray#includes$276 (result i32) - i32.const 8 - i32.const 10 - call $~lib/rt/itcms/__new - local.tee $1 - i32.const 2656 - i64.load align=1 - i64.store align=1 - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 - i32.store - i32.const 0 - local.set $0 - local.get $2 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3960 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $1 - i32.store - local.get $1 + i32.const 8 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $0 + i32.const 2656 + i64.load align=1 + i64.store align=1 + 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 3960 + 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 + block $__inlined_func$~lib/staticarray/StaticArray#includes$277 (result i32) + local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 3 i32.shr_u - local.tee $5 + local.tee $1 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - br $__inlined_func$~lib/staticarray/StaticArray#includes$276 + br $__inlined_func$~lib/staticarray/StaticArray#includes$277 end loop $while-continue|0 - local.get $0 - local.get $5 - i32.lt_s + local.get $1 + local.get $2 + i32.gt_s if - local.get $1 local.get $0 + local.get $2 i32.const 3 i32.shl i32.add f64.load - local.tee $3 - local.get $3 + local.tee $4 + local.get $4 f64.ne if global.get $~lib/memory/__stack_pointer @@ -6533,12 +6472,12 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1 - br $__inlined_func$~lib/staticarray/StaticArray#includes$276 + br $__inlined_func$~lib/staticarray/StaticArray#includes$277 end - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $while-continue|0 end end @@ -6557,64 +6496,62 @@ call $~lib/builtins/abort unreachable end - block $__inlined_func$~lib/staticarray/StaticArray#includes$277 (result i32) - i32.const 4 - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $1 - i32.const 2688 - i32.load align=1 - i32.store align=1 - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 - i32.store - i32.const 0 - local.set $0 - local.get $2 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3960 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $1 - i32.store - local.get $1 + i32.const 4 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $0 + i32.const 2688 + i32.load align=1 + i32.store align=1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3960 + 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 + block $__inlined_func$~lib/staticarray/StaticArray#includes$278 (result i32) + local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $5 + local.tee $1 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - br $__inlined_func$~lib/staticarray/StaticArray#includes$277 + br $__inlined_func$~lib/staticarray/StaticArray#includes$278 end - loop $while-continue|026 - local.get $0 - local.get $5 - i32.lt_s + loop $while-continue|030 + local.get $1 + local.get $2 + i32.gt_s if - local.get $1 local.get $0 + local.get $2 i32.const 2 i32.shl i32.add f32.load - local.tee $4 - local.get $4 + local.tee $5 + local.get $5 f32.ne if global.get $~lib/memory/__stack_pointer @@ -6622,13 +6559,13 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1 - br $__inlined_func$~lib/staticarray/StaticArray#includes$277 + br $__inlined_func$~lib/staticarray/StaticArray#includes$278 end - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 - br $while-continue|026 + local.set $2 + br $while-continue|030 end end global.get $~lib/memory/__stack_pointer @@ -6647,21 +6584,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 12 i32.const 4 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.const 2720 i32.const 12 memory.copy local.get $0 - local.get $1 i32.store offset=64 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 2 i32.const 0 call $~lib/staticarray/StaticArray#indexOf @@ -6674,9 +6609,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 7 i32.const 0 call $~lib/staticarray/StaticArray#indexOf @@ -6691,9 +6626,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 9 i32.const 2 call $~lib/staticarray/StaticArray#indexOf @@ -6708,9 +6643,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 2 i32.const -1 call $~lib/staticarray/StaticArray#indexOf @@ -6725,9 +6660,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 2 i32.const -3 call $~lib/staticarray/StaticArray#indexOf @@ -6740,23 +6675,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 16 i32.const 4 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.const 2752 i32.const 16 memory.copy local.get $0 - local.get $1 i32.store offset=68 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $0 i32.const 2 call $~lib/staticarray/StaticArray#lastIndexOf@varargs i32.const 3 @@ -6770,11 +6703,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $0 i32.const 7 call $~lib/staticarray/StaticArray#lastIndexOf@varargs i32.const -1 @@ -6788,9 +6721,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 2 i32.const 3 call $~lib/staticarray/StaticArray#lastIndexOf @@ -6805,9 +6738,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 2 i32.const 2 call $~lib/staticarray/StaticArray#lastIndexOf @@ -6820,9 +6753,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 2 i32.const -2 call $~lib/staticarray/StaticArray#lastIndexOf @@ -6835,9 +6768,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 2 i32.const -1 call $~lib/staticarray/StaticArray#lastIndexOf @@ -6852,35 +6785,26 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 12 i32.const 8 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.const 2896 i32.const 12 memory.copy local.get $0 - local.get $1 i32.store offset=72 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=48 local.get $0 - i32.const 2960 - i32.store offset=76 - local.get $1 + i32.store offset=24 + local.get $0 i32.const 2960 call $~lib/staticarray/StaticArray<~lib/string/String>#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2992 - i32.store offset=24 - local.get $0 + local.get $1 i32.const 2992 call $~lib/string/String.__eq i32.eqz @@ -6893,23 +6817,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=48 local.get $0 - i32.const 2928 - i32.store offset=76 - local.get $1 + i32.store offset=24 + local.get $0 i32.const 2928 call $~lib/staticarray/StaticArray<~lib/string/String>#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3040 - i32.store offset=24 - local.get $0 + local.get $1 i32.const 3040 call $~lib/string/String.__eq i32.eqz @@ -6922,23 +6839,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=48 local.get $0 - i32.const 3088 - i32.store offset=76 - local.get $1 + i32.store offset=24 + local.get $0 i32.const 3088 call $~lib/staticarray/StaticArray<~lib/string/String>#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3120 - i32.store offset=24 - local.get $0 + local.get $1 i32.const 3120 call $~lib/string/String.__eq i32.eqz @@ -6951,23 +6861,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=48 local.get $0 - i32.const 3168 - i32.store offset=76 - local.get $1 + i32.store offset=24 + local.get $0 i32.const 3168 call $~lib/staticarray/StaticArray<~lib/string/String>#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3200 - i32.store offset=24 - local.get $0 + local.get $1 i32.const 3200 call $~lib/string/String.__eq i32.eqz @@ -6980,24 +6883,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.get $0 i32.store offset=48 local.get $0 i32.const 2960 - i32.store offset=76 - local.get $1 - i32.const 2960 call $~lib/staticarray/StaticArray<~lib/string/String>#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=48 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -7005,28 +6904,24 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - local.get $1 + i32.const 0 i32.store - local.get $2 - i32.const 2960 - i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 i32.const 2960 call $~lib/staticarray/StaticArray<~lib/string/String>#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 local.get $0 + i32.store offset=24 local.get $1 + local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -7038,24 +6933,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 8 i32.const 4 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.const 3264 i64.load align=1 i64.store align=1 local.get $0 - local.get $2 - i32.store offset=80 + i32.store offset=76 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $2 + local.get $0 i32.store i32.const 2 global.set $~argumentsLength - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -7067,10 +6959,9 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $2 - i32.store local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -7079,31 +6970,33 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $2 i32.store - i32.const 1 - local.get $2 + local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $0 - local.get $0 + local.set $2 i32.const 1 - i32.gt_u + local.get $2 + local.get $2 + i32.const 1 + i32.gt_s select local.set $1 - loop $for-loop|026 - local.get $0 + local.get $2 + local.set $2 + loop $for-loop|032 local.get $1 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $2 + local.get $0 local.get $1 i32.const 2 i32.shl @@ -7114,7 +7007,7 @@ i32.const 1 i32.add local.set $1 - br $for-loop|026 + br $for-loop|032 end end global.get $~lib/memory/__stack_pointer @@ -7126,9 +7019,9 @@ i32.add global.set $~lib/memory/__stack_pointer 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/staticarray/StaticArray#__get if @@ -7140,9 +7033,9 @@ 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/staticarray/StaticArray#__get i32.const 1 @@ -7156,22 +7049,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 12 i32.const 4 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.const 3296 i32.const 12 memory.copy local.get $0 - local.get $2 - i32.store offset=84 + i32.store offset=80 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $2 - i32.store local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -7180,38 +7070,37 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $2 i32.store - local.get $2 + local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $0 + local.tee $2 i32.const 1 i32.gt_u if i32.const 0 local.set $1 - local.get $0 + local.get $2 i32.const 1 i32.shr_u - local.set $5 - local.get $0 + local.set $3 + local.get $2 i32.const 1 i32.sub - local.set $0 - loop $while-continue|028 + local.set $2 + loop $while-continue|035 local.get $1 - local.get $5 + local.get $3 i32.lt_u if - local.get $2 + local.get $0 local.get $1 i32.const 2 i32.shl @@ -7220,8 +7109,8 @@ i32.load local.set $7 local.get $6 - local.get $2 local.get $0 + local.get $2 local.get $1 i32.sub i32.const 2 @@ -7237,7 +7126,7 @@ i32.const 1 i32.add local.set $1 - br $while-continue|028 + br $while-continue|035 end end end @@ -7246,9 +7135,9 @@ i32.add global.set $~lib/memory/__stack_pointer 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/staticarray/StaticArray#__get i32.const 3 @@ -7262,9 +7151,9 @@ 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/staticarray/StaticArray#__get i32.const 2 @@ -7278,9 +7167,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 i32.const 2 call $~lib/staticarray/StaticArray#__get i32.const 1 @@ -7294,24 +7183,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 20 i32.const 4 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.const 3328 i32.const 20 memory.copy local.get $0 - local.get $1 - i32.store offset=88 + i32.store offset=84 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.get $0 i32.store i32.const 2 global.set $~argumentsLength - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -7323,10 +7209,9 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -7335,51 +7220,58 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 - local.get $1 - i32.const 3 - local.get $1 + local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $0 + local.tee $1 + local.set $2 local.get $0 + local.get $0 + i32.const 3 + local.get $1 + local.get $1 i32.const 3 i32.gt_u select - local.tee $2 + local.tee $3 i32.const 2 i32.shl i32.add - local.get $0 + local.get $2 i32.const 0 i32.lt_s if (result i32) - local.get $0 - local.get $0 + local.get $1 + local.get $2 i32.add - local.tee $5 + local.tee $2 i32.const 0 - local.get $5 + local.get $2 i32.const 0 i32.gt_s select else - local.get $0 + local.get $2 + local.get $1 + local.get $1 + local.get $2 + i32.gt_s + select end - local.get $2 + local.get $3 i32.sub local.tee $2 - local.get $0 - local.get $0 + local.get $1 + local.tee $1 + local.get $1 local.get $2 i32.gt_s select @@ -7395,9 +7287,9 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/staticarray/StaticArray#__get i32.const 4 @@ -7411,9 +7303,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 5 @@ -7427,9 +7319,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 2 call $~lib/staticarray/StaticArray#__get i32.const 3 @@ -7443,9 +7335,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 3 call $~lib/staticarray/StaticArray#__get i32.const 4 @@ -7459,9 +7351,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 4 call $~lib/staticarray/StaticArray#__get i32.const 5 @@ -7475,26 +7367,24 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 12 i32.const 4 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.const 3376 i32.const 12 memory.copy local.get $0 - local.get $2 - i32.store offset=92 + i32.store offset=88 + global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $2 - i32.store local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer i32.const 3408 i32.store offset=24 - local.get $0 - i32.const 8 + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -7502,20 +7392,22 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 - local.get $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $1 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $5 + local.tee $3 i32.const 7 i32.const 0 call $~lib/rt/__newArray @@ -7529,21 +7421,24 @@ local.set $7 i32.const 0 local.set $1 - loop $for-loop|029 + loop $for-loop|038 local.get $1 - local.get $5 + local.get $3 i32.lt_s if + global.get $~lib/memory/__stack_pointer + i32.const 3408 + i32.store offset=8 + local.get $0 local.get $1 i32.const 2 i32.shl local.tee $8 - local.get $2 i32.add i32.load local.set $9 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 3 global.set $~argumentsLength @@ -7552,7 +7447,7 @@ i32.add local.get $9 local.get $1 - local.get $2 + local.get $0 i32.const 3408 i32.load call_indirect (type $1) @@ -7561,16 +7456,15 @@ i32.const 1 i32.add local.set $1 - br $for-loop|029 + br $for-loop|038 end end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $6 - i32.store offset=96 + i32.store offset=92 global.get $~lib/memory/__stack_pointer local.get $6 i32.store @@ -7620,14 +7514,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $2 - i32.store local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer i32.const 3440 i32.store offset=24 - local.get $0 - i32.const 4 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -7635,53 +7528,53 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store + i64.const 0 + i64.store i32.const 0 - local.set $0 - local.get $1 - local.get $2 + local.set $2 + 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 local.set $1 - loop $for-loop|030 - local.get $0 + loop $for-loop|040 local.get $1 - i32.lt_s + local.get $2 + i32.gt_s if - local.get $2 + global.get $~lib/memory/__stack_pointer + i32.const 3440 + i32.store offset=4 local.get $0 + local.get $2 i32.const 2 i32.shl i32.add i32.load - local.set $5 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 3 global.set $~argumentsLength - local.get $5 - local.get $0 local.get $2 + local.get $0 i32.const 3440 i32.load call_indirect (type $5) - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 - br $for-loop|030 + local.set $2 + br $for-loop|040 end end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer global.get $std/staticarray/maxVal @@ -7696,21 +7589,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $2 - i32.store local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer i32.const 3472 i32.store offset=24 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $2 call $~lib/staticarray/StaticArray#filter - local.tee $0 - i32.store offset=100 + local.tee $1 + i32.store offset=96 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 call $~lib/array/Array#get:length i32.const 2 i32.ne @@ -7723,9 +7615,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 2 @@ -7739,9 +7631,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.const 1 call $~lib/array/Array#__get i32.const 3 @@ -7755,16 +7647,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $2 + local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3504 i32.store offset=24 i32.const 0 - local.set $0 - local.get $1 - i32.const 4 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -7772,27 +7663,29 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $5 - i32.const 0 - i32.store + i64.const 0 + i64.store i32.const 0 local.set $1 - local.get $5 - local.get $2 + 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 - local.set $5 - loop $for-loop|031 + local.set $3 + loop $for-loop|042 local.get $1 - local.get $5 + local.get $3 i32.lt_s if - local.get $2 + global.get $~lib/memory/__stack_pointer + i32.const 3504 + i32.store offset=4 + local.get $0 local.get $1 i32.const 2 i32.shl @@ -7800,30 +7693,30 @@ i32.load local.set $6 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 4 global.set $~argumentsLength - local.get $0 + local.get $2 local.get $6 local.get $1 - local.get $2 + local.get $0 i32.const 3504 i32.load - call_indirect (type $6) - local.set $0 + call_indirect (type $7) + local.set $2 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|031 + br $for-loop|042 end end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.const 6 i32.ne if @@ -7835,16 +7728,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $2 + local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3536 i32.store offset=24 i32.const 0 - local.set $0 - local.get $1 - i32.const 4 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -7852,13 +7744,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - local.get $2 + i64.const 0 + i64.store + 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 @@ -7867,43 +7758,46 @@ i32.const 1 i32.sub local.set $1 - loop $for-loop|032 + loop $for-loop|044 local.get $1 i32.const 0 i32.ge_s if - local.get $2 + global.get $~lib/memory/__stack_pointer + i32.const 3536 + i32.store offset=4 + local.get $0 local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $5 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 4 global.set $~argumentsLength - local.get $0 - local.get $5 - local.get $1 local.get $2 + local.get $3 + local.get $1 + local.get $0 i32.const 3536 i32.load - call_indirect (type $6) - local.set $0 + call_indirect (type $7) + local.set $2 local.get $1 i32.const 1 i32.sub local.set $1 - br $for-loop|032 + br $for-loop|044 end end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.const 6 i32.ne if @@ -7915,13 +7809,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $2 - i32.store local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer i32.const 3568 i32.store offset=24 - local.get $2 + local.get $0 i32.const 3568 call $~lib/staticarray/StaticArray#some i32.eqz @@ -7934,13 +7827,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $2 - i32.store local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer i32.const 3600 i32.store offset=24 - local.get $2 + local.get $0 i32.const 3600 call $~lib/staticarray/StaticArray#some if @@ -7952,13 +7844,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $2 - i32.store local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer i32.const 3632 i32.store offset=24 - local.get $2 + local.get $0 i32.const 3632 call $~lib/staticarray/StaticArray#every i32.eqz @@ -7971,13 +7862,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $2 - i32.store local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer i32.const 3664 i32.store offset=24 - local.get $2 + local.get $0 i32.const 3664 call $~lib/staticarray/StaticArray#every if @@ -7989,13 +7879,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $2 - i32.store local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer i32.const 3696 i32.store offset=24 - local.get $2 + local.get $0 i32.const 3696 call $~lib/staticarray/StaticArray#findIndex i32.const 1 @@ -8009,13 +7898,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $2 - i32.store local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer i32.const 3728 i32.store offset=24 - local.get $2 + local.get $0 i32.const 3728 call $~lib/staticarray/StaticArray#findIndex i32.const -1 @@ -8029,13 +7917,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $2 - i32.store local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer i32.const 3760 i32.store offset=24 - local.get $2 + local.get $0 i32.const 3760 call $~lib/staticarray/StaticArray#findLastIndex i32.const 1 @@ -8049,13 +7936,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $2 - i32.store local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer i32.const 3792 i32.store offset=24 - local.get $2 + local.get $0 i32.const 3792 call $~lib/staticarray/StaticArray#findLastIndex i32.const -1 @@ -8069,24 +7955,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 16 i32.const 4 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.const 3824 i32.const 16 memory.copy local.get $0 - local.get $1 - i32.store offset=104 + i32.store offset=100 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.get $0 i32.store i32.const 0 global.set $~argumentsLength - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -8095,23 +7978,21 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 3872 i32.store global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=4 local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 3872 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -8120,24 +8001,23 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=4 - local.get $1 + local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.set $2 - local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer i32.const 3872 i32.store + local.get $0 local.get $1 - local.get $2 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 8 @@ -8148,9 +8028,9 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/staticarray/StaticArray#__get if @@ -8162,9 +8042,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 1 @@ -8178,9 +8058,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 2 call $~lib/staticarray/StaticArray#__get i32.const 2 @@ -8194,9 +8074,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 3 call $~lib/staticarray/StaticArray#__get i32.const 3 @@ -8215,12 +8095,12 @@ i32.const 0 i32.gt_s if - loop $while-continue|01 + loop $while-continue|047 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|01 + br $while-continue|047 end end end @@ -8245,7 +8125,7 @@ i32.add global.set $~lib/rt/itcms/threshold global.get $~lib/memory/__stack_pointer - i32.const 108 + i32.const 104 i32.add global.set $~lib/memory/__stack_pointer return @@ -8257,69 +8137,4 @@ call $~lib/builtins/abort unreachable ) - (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 3960 - 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 - local.tee $5 - i32.const 0 - i32.store - 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 $5 - 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 - ) ) diff --git a/tests/compiler/std/string-casemapping.debug.wat b/tests/compiler/std/string-casemapping.debug.wat index 21f3389d96..5e412bc990 100644 --- a/tests/compiler/std/string-casemapping.debug.wat +++ b/tests/compiler/std/string-casemapping.debug.wat @@ -1815,14 +1815,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 @@ -3437,12 +3440,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -4824,13 +4823,13 @@ (local $9 i64) (local $10 i32) global.get $~lib/memory/__stack_pointer - i32.const 28 + 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 28 + i32.const 20 memory.fill memory.size i32.const 16 @@ -4850,11 +4849,6 @@ call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace i32.const 32 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -4862,11 +4856,6 @@ i32.store local.get $10 i32.const 32 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -4878,11 +4867,6 @@ unreachable end i32.const 32 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -4890,11 +4874,6 @@ i32.store local.get $10 i32.const 32 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -4906,11 +4885,6 @@ unreachable end i32.const 10784 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -4918,11 +4892,6 @@ i32.store local.get $10 i32.const 10832 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -4934,11 +4903,6 @@ unreachable end i32.const 10880 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -4946,11 +4910,6 @@ i32.store local.get $10 i32.const 10928 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -4962,11 +4921,6 @@ unreachable end i32.const 10976 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -4974,11 +4928,6 @@ i32.store local.get $10 i32.const 11072 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -4990,11 +4939,6 @@ unreachable end i32.const 11072 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5002,11 +4946,6 @@ i32.store local.get $10 i32.const 11168 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5018,11 +4957,6 @@ unreachable end i32.const 11264 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5030,11 +4964,6 @@ i32.store local.get $10 i32.const 11328 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5046,11 +4975,6 @@ unreachable end i32.const 11328 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5058,11 +4982,6 @@ i32.store local.get $10 i32.const 11392 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5074,11 +4993,6 @@ unreachable end i32.const 11456 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5086,11 +5000,6 @@ i32.store local.get $10 i32.const 11552 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5102,11 +5011,6 @@ unreachable end i32.const 11552 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5114,11 +5018,6 @@ i32.store local.get $10 i32.const 11648 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5130,11 +5029,6 @@ unreachable end i32.const 11744 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5142,11 +5036,6 @@ i32.store local.get $10 i32.const 11840 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5158,11 +5047,6 @@ unreachable end i32.const 11840 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5170,11 +5054,6 @@ i32.store local.get $10 i32.const 11936 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5186,11 +5065,6 @@ unreachable end i32.const 12032 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5198,11 +5072,6 @@ i32.store local.get $10 i32.const 12112 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5214,11 +5083,6 @@ unreachable end i32.const 12192 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5226,11 +5090,6 @@ i32.store local.get $10 i32.const 12272 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5242,11 +5101,6 @@ unreachable end i32.const 12352 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5254,11 +5108,6 @@ i32.store local.get $10 i32.const 12416 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5270,11 +5119,6 @@ unreachable end i32.const 12480 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5282,11 +5126,6 @@ i32.store local.get $10 i32.const 12560 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5298,11 +5137,6 @@ unreachable end i32.const 12640 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5310,11 +5144,6 @@ i32.store local.get $10 i32.const 12720 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5326,11 +5155,6 @@ unreachable end i32.const 12800 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5338,11 +5162,6 @@ i32.store local.get $10 i32.const 12864 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5354,11 +5173,6 @@ unreachable end i32.const 12928 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5366,11 +5180,6 @@ i32.store local.get $10 i32.const 13008 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5382,11 +5191,6 @@ unreachable end i32.const 13088 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5394,11 +5198,6 @@ i32.store local.get $10 i32.const 13168 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5410,11 +5209,6 @@ unreachable end i32.const 13248 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5422,11 +5216,6 @@ i32.store local.get $10 i32.const 13408 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5438,11 +5227,6 @@ unreachable end i32.const 13248 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5450,11 +5234,6 @@ i32.store local.get $10 i32.const 13568 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5466,11 +5245,6 @@ unreachable end i32.const 13728 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5478,11 +5252,6 @@ i32.store local.get $10 i32.const 13760 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5494,11 +5263,6 @@ unreachable end i32.const 13792 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5506,11 +5270,6 @@ i32.store local.get $10 i32.const 13824 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5522,11 +5281,6 @@ unreachable end i32.const 13856 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5534,11 +5288,6 @@ i32.store local.get $10 i32.const 14064 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5550,16 +5299,11 @@ unreachable end i32.const 13728 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=12 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 - i32.store offset=8 + i32.store offset=4 local.get $10 call $~lib/string/String#toLowerCase local.set $10 @@ -5568,11 +5312,6 @@ i32.store local.get $10 i32.const 14272 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5584,16 +5323,11 @@ unreachable end i32.const 14304 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=12 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 - i32.store offset=8 + i32.store offset=4 local.get $10 call $~lib/string/String#toLowerCase local.set $10 @@ -5602,11 +5336,6 @@ i32.store local.get $10 i32.const 14336 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5618,16 +5347,11 @@ unreachable end i32.const 14368 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=12 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 - i32.store offset=8 + i32.store offset=4 local.get $10 call $~lib/string/String#toLowerCase local.set $10 @@ -5636,11 +5360,6 @@ i32.store local.get $10 i32.const 14368 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5656,7 +5375,7 @@ local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 - i32.store offset=8 + i32.store offset=4 local.get $10 call $~lib/string/String#toLowerCase local.set $10 @@ -5665,11 +5384,6 @@ i32.store local.get $10 i32.const 14624 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5685,7 +5399,7 @@ local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 - i32.store offset=8 + i32.store offset=4 local.get $10 call $~lib/string/String#toUpperCase local.set $10 @@ -5694,11 +5408,6 @@ i32.store local.get $10 i32.const 14624 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5710,11 +5419,6 @@ unreachable end i32.const 14656 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5722,11 +5426,6 @@ i32.store local.get $10 i32.const 14688 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5738,11 +5437,6 @@ unreachable end i32.const 14720 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5750,11 +5444,6 @@ i32.store local.get $10 i32.const 14752 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5766,11 +5455,6 @@ unreachable end i32.const 14784 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5778,11 +5462,6 @@ i32.store local.get $10 i32.const 14816 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5794,11 +5473,6 @@ unreachable end i32.const 14848 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5806,11 +5480,6 @@ i32.store local.get $10 i32.const 14880 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5822,11 +5491,6 @@ unreachable end i32.const 14912 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5834,11 +5498,6 @@ i32.store local.get $10 i32.const 14944 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5850,11 +5509,6 @@ unreachable end i32.const 14976 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5862,11 +5516,6 @@ i32.store local.get $10 i32.const 15008 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5878,11 +5527,6 @@ unreachable end i32.const 15040 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5890,11 +5534,6 @@ i32.store local.get $10 i32.const 15072 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5906,11 +5545,6 @@ unreachable end i32.const 15104 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5918,11 +5552,6 @@ i32.store local.get $10 i32.const 15136 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5934,11 +5563,6 @@ unreachable end i32.const 15168 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5946,11 +5570,6 @@ i32.store local.get $10 i32.const 15200 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5962,11 +5581,6 @@ unreachable end i32.const 15232 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5974,11 +5588,6 @@ i32.store local.get $10 i32.const 15264 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5990,11 +5599,6 @@ unreachable end i32.const 15296 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6002,11 +5606,6 @@ i32.store local.get $10 i32.const 15328 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6018,11 +5617,6 @@ unreachable end i32.const 15360 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6030,11 +5624,6 @@ i32.store local.get $10 i32.const 15392 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6046,11 +5635,6 @@ unreachable end i32.const 15424 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6058,11 +5642,6 @@ i32.store local.get $10 i32.const 15456 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6074,11 +5653,6 @@ unreachable end i32.const 15488 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6086,11 +5660,6 @@ i32.store local.get $10 i32.const 15520 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6102,11 +5671,6 @@ unreachable end i32.const 15552 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6114,11 +5678,6 @@ i32.store local.get $10 i32.const 15584 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6130,11 +5689,6 @@ unreachable end i32.const 15616 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6142,11 +5696,6 @@ i32.store local.get $10 i32.const 15648 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6158,11 +5707,6 @@ unreachable end i32.const 15680 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6170,11 +5714,6 @@ i32.store local.get $10 i32.const 15712 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6186,11 +5725,6 @@ unreachable end i32.const 15744 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6198,11 +5732,6 @@ i32.store local.get $10 i32.const 15776 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6214,11 +5743,6 @@ unreachable end i32.const 15808 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6226,11 +5750,6 @@ i32.store local.get $10 i32.const 15840 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6242,11 +5761,6 @@ unreachable end i32.const 15872 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6254,11 +5768,6 @@ i32.store local.get $10 i32.const 15904 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6270,11 +5779,6 @@ unreachable end i32.const 15936 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6282,11 +5786,6 @@ i32.store local.get $10 i32.const 15968 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6298,11 +5797,6 @@ unreachable end i32.const 16000 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6310,11 +5804,6 @@ i32.store local.get $10 i32.const 16032 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6326,11 +5815,6 @@ unreachable end i32.const 16064 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6338,11 +5822,6 @@ i32.store local.get $10 i32.const 16096 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6354,11 +5833,6 @@ unreachable end i32.const 16128 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6366,11 +5840,6 @@ i32.store local.get $10 i32.const 16160 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6382,11 +5851,6 @@ unreachable end i32.const 16192 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6394,11 +5858,6 @@ i32.store local.get $10 i32.const 16224 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6410,11 +5869,6 @@ unreachable end i32.const 16256 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6422,11 +5876,6 @@ i32.store local.get $10 i32.const 15328 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6438,11 +5887,6 @@ unreachable end i32.const 16288 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6450,11 +5894,6 @@ i32.store local.get $10 i32.const 16320 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6466,11 +5905,6 @@ unreachable end i32.const 16352 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6478,11 +5912,6 @@ i32.store local.get $10 i32.const 16384 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6494,11 +5923,6 @@ unreachable end i32.const 16416 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6506,11 +5930,6 @@ i32.store local.get $10 i32.const 16448 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6518,15 +5937,10 @@ i32.const 6000 i32.const 87 i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 16480 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 + call $~lib/builtins/abort + unreachable + end + i32.const 16480 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6534,11 +5948,6 @@ i32.store local.get $10 i32.const 16512 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6550,11 +5959,6 @@ unreachable end i32.const 16544 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6562,11 +5966,6 @@ i32.store local.get $10 i32.const 16576 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6578,11 +5977,6 @@ unreachable end i32.const 16608 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6590,11 +5984,6 @@ i32.store local.get $10 i32.const 16640 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6606,11 +5995,6 @@ unreachable end i32.const 16672 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6618,11 +6002,6 @@ i32.store local.get $10 i32.const 16704 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6634,11 +6013,6 @@ unreachable end i32.const 16736 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6646,11 +6020,6 @@ i32.store local.get $10 i32.const 16768 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6662,11 +6031,6 @@ unreachable end i32.const 16800 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6674,11 +6038,6 @@ i32.store local.get $10 i32.const 16832 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6690,11 +6049,6 @@ unreachable end i32.const 16864 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6702,11 +6056,6 @@ i32.store local.get $10 i32.const 16896 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6718,11 +6067,6 @@ unreachable end i32.const 16928 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6730,11 +6074,6 @@ i32.store local.get $10 i32.const 16960 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6746,11 +6085,6 @@ unreachable end i32.const 16992 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6758,11 +6092,6 @@ i32.store local.get $10 i32.const 17024 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6774,11 +6103,6 @@ unreachable end i32.const 17056 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6786,11 +6110,6 @@ i32.store local.get $10 i32.const 17088 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6802,11 +6121,6 @@ unreachable end i32.const 14304 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6814,11 +6128,6 @@ i32.store local.get $10 i32.const 17120 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6830,11 +6139,6 @@ unreachable end i32.const 17152 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6842,11 +6146,6 @@ i32.store local.get $10 i32.const 17184 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6858,11 +6157,6 @@ unreachable end i32.const 17216 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6870,11 +6164,6 @@ i32.store local.get $10 i32.const 17248 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6886,11 +6175,6 @@ unreachable end i32.const 17280 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6898,11 +6182,6 @@ i32.store local.get $10 i32.const 17312 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6914,11 +6193,6 @@ unreachable end i32.const 17344 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6926,11 +6200,6 @@ i32.store local.get $10 i32.const 17376 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6942,11 +6211,6 @@ unreachable end i32.const 17408 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6954,11 +6218,6 @@ i32.store local.get $10 i32.const 17376 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6970,11 +6229,6 @@ unreachable end i32.const 17440 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6982,11 +6236,6 @@ i32.store local.get $10 i32.const 17472 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6998,11 +6247,6 @@ unreachable end i32.const 17504 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -7010,11 +6254,6 @@ i32.store local.get $10 i32.const 17536 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -7026,11 +6265,6 @@ unreachable end i32.const 17568 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -7038,11 +6272,6 @@ i32.store local.get $10 i32.const 17600 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -7054,11 +6283,6 @@ unreachable end i32.const 17632 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -7066,11 +6290,6 @@ i32.store local.get $10 i32.const 17664 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -7082,11 +6301,6 @@ unreachable end i32.const 17696 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -7094,11 +6308,6 @@ i32.store local.get $10 i32.const 17728 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -7110,11 +6319,6 @@ unreachable end i32.const 17760 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -7122,11 +6326,6 @@ i32.store local.get $10 i32.const 17792 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -7148,7 +6347,7 @@ local.get $0 call $~lib/string/String.fromCodePoint local.tee $1 - i32.store offset=16 + i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $1 local.set $10 @@ -7158,7 +6357,7 @@ local.get $10 call $~lib/string/String#toLowerCase local.tee $2 - i32.store offset=20 + i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $1 local.set $10 @@ -7168,7 +6367,7 @@ local.get $10 call $~lib/string/String#toUpperCase local.tee $3 - i32.store offset=24 + i32.store offset=16 local.get $2 local.set $10 global.get $~lib/memory/__stack_pointer @@ -7344,11 +6543,6 @@ i64.ne if i32.const 17824 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store - local.get $10 i32.const 1 local.get $0 f64.convert_i32_s @@ -7358,18 +6552,13 @@ f64.const 0 call $~lib/builtins/trace i32.const 17920 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 local.get $6 i32.const 10 call $~lib/number/I64#toString local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 - i32.store offset=8 + i32.store offset=4 local.get $10 call $~lib/string/String.__concat local.set $10 @@ -7385,18 +6574,13 @@ f64.const 0 call $~lib/builtins/trace i32.const 19760 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 local.get $8 i32.const 10 call $~lib/number/I64#toString local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 - i32.store offset=8 + i32.store offset=4 local.get $10 call $~lib/string/String.__concat local.set $10 @@ -7417,11 +6601,6 @@ i64.ne if i32.const 19824 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store - local.get $10 i32.const 1 local.get $0 f64.convert_i32_s @@ -7431,18 +6610,13 @@ f64.const 0 call $~lib/builtins/trace i32.const 19920 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 local.get $7 i32.const 10 call $~lib/number/I64#toString local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 - i32.store offset=8 + i32.store offset=4 local.get $10 call $~lib/string/String.__concat local.set $10 @@ -7458,18 +6632,13 @@ f64.const 0 call $~lib/builtins/trace i32.const 19984 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 local.get $9 i32.const 10 call $~lib/number/I64#toString local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 - i32.store offset=8 + i32.store offset=4 local.get $10 call $~lib/string/String.__concat local.set $10 @@ -7493,7 +6662,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 28 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/std/string-casemapping.release.wat b/tests/compiler/std/string-casemapping.release.wat index 88f2339474..dc43d6fcf3 100644 --- a/tests/compiler/std/string-casemapping.release.wat +++ b/tests/compiler/std/string-casemapping.release.wat @@ -5,15 +5,15 @@ (type $3 (func (param i32))) (type $4 (func (param i32 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 $9 (func (param i32 i32 i32))) - (type $10 (func (param i64) (result i32))) + (type $6 (func (param i32 i32 f64 f64 f64 f64 f64))) + (type $7 (func (param i64) (result i32))) + (type $8 (func (param i32 i32 i32))) + (type $9 (func (param i32 i32 i64))) + (type $10 (func (result i32))) (import "env" "abort" (func $~lib/builtins/abort (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))) + (import "string_casemapping" "toUpperCaseFromIndex" (func $std/string-casemapping/toUpperCaseFromIndex (param i32 i32) (result i32))) + (import "string_casemapping" "toLowerCaseFromIndex" (func $std/string-casemapping/toLowerCaseFromIndex (param i32 i32) (result 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)) @@ -482,5801 +482,5275 @@ (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/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1280 - call $~lib/rt/itcms/__visit - i32.const 1088 - call $~lib/rt/itcms/__visit - i32.const 19632 - call $~lib/rt/itcms/__visit - i32.const 20688 - call $~lib/rt/itcms/__visit - i32.const 1488 - 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 + (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 21080 + i32.lt_s + if + i32.const 53872 + i32.const 53920 + 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 - if - local.get $0 - i32.load offset=4 - i32.const 3 + 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 i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1152 - 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 + local.get $1 + i32.const 7 i32.and - local.set $0 - br $while-continue|0 + i32.or + else + i32.const 1 + end + i32.eqz + if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $0 + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + block $__inlined_func$~lib/util/string/compareImpl$81 + loop $while-continue|1 + local.get $0 + local.tee $3 + i32.const 1 + i32.sub + local.set $0 + local.get $3 + if + local.get $2 + i32.load16_u + local.tee $5 + local.get $1 + i32.load16_u + local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 + i32.ne + br_if $__inlined_func$~lib/util/string/compareImpl$81 + local.get $2 + i32.const 2 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end + end + i32.const 0 + local.set $3 end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.eqz + return end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 ) - (func $~lib/rt/itcms/__visit (param $0 i32) + (func $~lib/string/String#toLowerCase (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - local.get $0 - i32.eqz + (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 + global.get $~lib/memory/__stack_pointer + i32.const 21080 + i32.lt_s if - return + i32.const 53872 + i32.const 53920 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/white + 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 - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $6 + i32.eqz 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 1152 - 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$143 - 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 53848 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1152 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$143 - end - local.get $1 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1152 - 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 21056 - i32.load - i32.gt_u - if - i32.const 1280 - i32.const 1344 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 21060 - 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 + global.get $~lib/memory/__stack_pointer + i32.const 8 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 1424 - 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 1424 - 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 1424 - 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 + global.set $~lib/memory/__stack_pointer + local.get $0 + return end - local.get $1 - local.get $0 - local.get $2 - i32.const 4 - i32.shl - local.get $3 - i32.add + global.get $~lib/memory/__stack_pointer + local.get $6 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 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store offset=4 + loop $for-loop|0 + local.get $3 + local.get $6 + i32.lt_u if local.get $0 - local.get $2 - i32.const 2 + local.get $3 + i32.const 1 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 + i32.load16_u + local.tee $4 + i32.const 7 + i32.shr_u 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 1424 - 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 1424 - 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 1424 - 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 1424 - 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 1424 - 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 1424 - 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 1424 - 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 1424 - 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 1424 - 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 53856 - i32.const 0 - i32.store - i32.const 55424 - 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 53856 - 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 53856 - i32.add - i32.const 0 - i32.store offset=96 - local.get $1 + block $for-continue|0 + local.get $4 + i32.const 55295 + i32.sub + i32.const 1025 + i32.lt_u + local.get $3 + local.get $6 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 53856 - i32.const 55428 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 53856 - 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.sub + i32.lt_u 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 53848 - 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 + i32.load16_u offset=2 local.tee $2 - i32.const 3 - i32.and - i32.ne + i32.const 56319 + i32.sub + i32.const 1025 + i32.lt_u if - local.get $0 + local.get $3 + i32.const 1 + i32.add + local.set $3 local.get $2 - i32.const -4 + i32.const 1023 i32.and - local.get $1 + local.get $4 + local.tee $1 + i32.const 1023 + i32.and + i32.const 10 + i32.shl i32.or - i32.store offset=4 - local.get $0 - i32.const 20 + i32.const 65536 i32.add - call $~lib/rt/__visit_members + local.tee $4 + i32.const 131072 + i32.ge_u + if + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $1 + local.get $2 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-continue|0 + end 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 1152 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 53848 - 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 53848 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz + local.get $4 + i32.const 304 + i32.eq if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.set $1 - 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) + local.get $7 + local.get $8 i32.const 1 - else - local.get $2 - i32.load + i32.shl + i32.add + i32.const 50790505 + i32.store + local.get $8 i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1424 - 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 $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.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 1424 - 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 1424 - 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 1088 - i32.const 1152 - i32.const 261 - i32.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 - 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 - local.tee $2 - local.get $2 - 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 1088 - i32.const 1424 - 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 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 1424 - 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 1424 - 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/util/casemap/casemap (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 8 - i32.shr_u - local.tee $2 - i32.const 6084 - i32.add - i32.load8_u - local.get $2 - i32.const 2444 - i32.add - i32.load8_u - i32.const 86 - i32.mul - i32.const 2444 - i32.add - local.get $0 - i32.const 255 - i32.and - local.tee $4 - i32.const 3 - i32.div_u - i32.add - i32.load8_u - local.get $4 - i32.const 3 - i32.rem_u - i32.const 2 - i32.shl - i32.const 5112 - i32.add - i32.load - i32.mul - i32.const 11 - i32.shr_u - i32.const 6 - i32.rem_u - i32.add - i32.const 2 - i32.shl - i32.const 5124 - i32.add - i32.load - local.tee $2 - i32.const 255 - i32.and - local.set $3 - local.get $2 - i32.const 8 - i32.shr_s - local.set $2 - block $folding-inner0 - local.get $3 - i32.const 2 - i32.lt_u - br_if $folding-inner0 - local.get $2 - i32.const 255 - i32.and - local.set $3 - local.get $2 - i32.const 8 - i32.shr_u - local.set $2 - loop $while-continue|0 - local.get $3 - if - local.get $2 - local.get $3 - i32.const 1 - i32.shr_u - local.tee $7 - i32.add - i32.const 1 - i32.shl - i32.const 6596 - i32.add - local.tee $5 - i32.load8_u - local.tee $6 - local.get $4 - i32.eq - if (result i32) - local.get $5 - i32.load8_u offset=1 - i32.const 2 - i32.shl - i32.const 5124 - i32.add - i32.load - local.tee $2 - i32.const 255 - i32.and - local.set $3 - local.get $2 - i32.const 8 - i32.shr_s - local.set $2 - local.get $3 - i32.const 2 - i32.lt_u - br_if $folding-inner0 - local.get $0 - i32.const 1 - i32.add - local.get $1 - i32.const 1 - i32.shl - i32.sub - return - else - local.get $4 - local.get $6 - i32.lt_u - if (result i32) - local.get $7 - else - local.get $2 - local.get $7 - i32.add - local.set $2 - local.get $3 - local.get $7 - i32.sub - end - end - local.set $3 - br $while-continue|0 - end - end - local.get $0 - return - end - local.get $0 - local.get $2 - i32.const 0 - local.get $1 - local.get $3 - i32.xor - i32.sub - i32.and - i32.add - ) - (func $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - local.get $1 - local.get $0 - i32.const 20 - i32.sub - local.tee $3 - i32.load - i32.const -4 - i32.and - i32.const 16 - i32.sub - i32.le_u - if - local.get $3 - local.get $1 - i32.store offset=16 - local.get $0 - return - end - local.get $1 - local.get $3 - i32.load offset=12 - call $~lib/rt/itcms/__new - local.tee $2 - local.get $0 - local.get $1 - local.get $3 - i32.load offset=16 - local.tee $0 - local.get $0 - local.get $1 - i32.gt_u - select - memory.copy - local.get $2 - ) - (func $~lib/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 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 - 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 19212 - 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/__visit_members (param $0 i32) - block $invalid - block $~lib/staticarray/StaticArray - 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/staticarray/StaticArray $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - return - end - return - end - unreachable - ) - (func $~start - call $start:std/string-casemapping - ) - (func $~lib/string/String#toUpperCase (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - global.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 - if - i32.const 53872 - i32.const 53920 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $8 - i32.eqz - if - local.get $1 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.const 6 - i32.mul - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1488 - i32.store - i32.const 1484 - i32.load - i32.const 1 - i32.shr_u - local.set $3 - loop $for-loop|0 - local.get $7 - local.get $8 - i32.lt_u - if - local.get $0 - local.get $7 - i32.const 1 - i32.shl - i32.add - local.tee $1 - i32.load16_u - local.tee $2 - i32.const 7 - i32.shr_u - if - block $for-continue|0 - local.get $2 - i32.const 55295 - i32.sub - i32.const 1025 - i32.lt_u - local.get $7 - local.get $8 - i32.const 1 - i32.sub - i32.lt_u - i32.and - if - local.get $1 - i32.load16_u offset=2 - local.tee $4 - i32.const 56319 - i32.sub - i32.const 1025 - i32.lt_u - if - local.get $7 - i32.const 1 - i32.add - local.set $7 - local.get $4 - i32.const 1023 - i32.and - local.get $2 - local.tee $1 - i32.const 1023 - i32.and - i32.const 10 - i32.shl - i32.or - i32.const 65536 - i32.add - local.tee $2 - i32.const 131072 - i32.ge_u - if - local.get $6 - local.get $5 - i32.const 1 - i32.shl - i32.add - local.get $1 - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-continue|0 - end - end - end - local.get $2 - i32.const 9424 - i32.sub - i32.const 25 - i32.le_u - if - local.get $6 - local.get $5 - i32.const 1 - i32.shl - i32.add - local.get $2 - i32.const 26 - i32.sub - i32.store16 - else - local.get $2 - i32.const 223 - i32.sub - i32.const 64056 - i32.le_u - if (result i32) - local.get $3 - local.set $1 - i32.const 0 - local.set $9 - block $~lib/util/casemap/bsearch|inlined.0 - loop $while-continue|1 - local.get $1 - local.get $9 - i32.ge_s - if - local.get $1 - local.get $9 - i32.add - i32.const 3 - i32.shr_u - i32.const 2 - i32.shl - local.tee $4 - i32.const 1 - i32.shl - i32.const 1488 - i32.add - i32.load16_u - local.get $2 - i32.sub - local.tee $10 - i32.eqz - br_if $~lib/util/casemap/bsearch|inlined.0 - local.get $10 - i32.const 31 - i32.shr_u - if - local.get $4 - i32.const 4 - i32.add - local.set $9 - else - local.get $4 - i32.const 4 - i32.sub - local.set $1 - end - br $while-continue|1 - end - end - i32.const -1 - local.set $4 - end - local.get $4 - else - i32.const -1 - end - local.tee $1 - i32.const -1 - i32.xor - if - local.get $1 - i32.const 1 - i32.shl - i32.const 1488 - i32.add - local.tee $1 - i32.load16_u offset=6 - local.set $2 - local.get $6 - local.get $5 - i32.const 1 - i32.shl - i32.add - local.tee $4 - local.get $1 - i32.load offset=2 - i32.store - local.get $4 - local.get $2 - i32.store16 offset=4 - local.get $5 - local.get $2 - i32.const 0 - i32.ne - i32.const 1 - i32.add - i32.add - local.set $5 - else - local.get $2 - i32.const 1 - call $~lib/util/casemap/casemap - i32.const 2097151 - i32.and - local.tee $1 - i32.const 65536 - i32.lt_u - if - local.get $6 - local.get $5 - i32.const 1 - i32.shl - i32.add - local.get $1 - i32.store16 - else - local.get $6 - local.get $5 - i32.const 1 - i32.shl - i32.add - local.get $1 - i32.const 65536 - i32.sub - local.tee $1 - i32.const 10 - i32.shr_u - i32.const 55296 - i32.or - local.get $1 - i32.const 1023 - i32.and - i32.const 56320 - i32.or - i32.const 16 - i32.shl - i32.or - i32.store - local.get $5 - i32.const 1 - i32.add - local.set $5 - end - end - end - end - else - local.get $6 - local.get $5 - i32.const 1 - i32.shl - i32.add - local.get $2 - i32.const 2316 - i32.add - i32.load8_u - i32.store16 - end - local.get $7 - i32.const 1 - i32.add - local.set $7 - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $6 - local.get $5 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__renew - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (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 21080 - i32.lt_s - if - i32.const 53872 - i32.const 53920 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $0 - local.get $1 - i32.eq - if - local.get $2 - 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.tee $4 - local.tee $2 - 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 - local.get $2 - 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 - local.get $4 - local.get $0 - i32.store - local.get $0 - local.set $2 - local.get $4 - 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 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - else - i32.const 1 - end - i32.eqz - if - loop $do-loop|0 - local.get $2 - i64.load - local.get $1 - i64.load - i64.eq - if - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end - end - end - block $__inlined_func$~lib/util/string/compareImpl$81 - loop $while-continue|1 - local.get $0 - local.tee $3 - i32.const 1 - i32.sub - local.set $0 - local.get $3 - if - local.get $2 - i32.load16_u - local.tee $5 - local.get $1 - i32.load16_u - local.tee $4 - i32.sub - local.set $3 - local.get $4 - local.get $5 - i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$81 - local.get $2 - i32.const 2 - i32.add - local.set $2 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 - end - end - i32.const 0 - local.set $3 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - i32.eqz - return - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $~lib/string/String#toLowerCase (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - global.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 - if - i32.const 53872 - i32.const 53920 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $6 - i32.eqz - if - local.get $1 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 2 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=4 - loop $for-loop|0 - local.get $3 - local.get $6 - i32.lt_u - if - local.get $0 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.tee $1 - i32.load16_u - local.tee $4 - i32.const 7 - i32.shr_u - if - block $for-continue|0 - local.get $4 - i32.const 55295 - i32.sub - i32.const 1025 - i32.lt_u - local.get $3 - local.get $6 - i32.const 1 - i32.sub - i32.lt_u - i32.and - if - local.get $1 - i32.load16_u offset=2 - local.tee $2 - i32.const 56319 - i32.sub - i32.const 1025 - i32.lt_u - if - local.get $3 - i32.const 1 - i32.add - local.set $3 - local.get $2 - i32.const 1023 - i32.and - local.get $4 - local.tee $1 - i32.const 1023 - i32.and - i32.const 10 - i32.shl - i32.or - i32.const 65536 - i32.add - local.tee $4 - i32.const 131072 - i32.ge_u - if - local.get $7 - local.get $8 - i32.const 1 - i32.shl - i32.add - local.get $1 - local.get $2 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $8 - i32.const 1 - i32.add - local.set $8 - br $for-continue|0 - end - end - end - local.get $4 - i32.const 304 - i32.eq - if - local.get $7 - local.get $8 - i32.const 1 - i32.shl - i32.add - i32.const 50790505 - i32.store - local.get $8 - i32.const 1 - i32.add - local.set $8 - else - local.get $4 - i32.const 931 - i32.eq - if - local.get $7 - local.get $8 - i32.const 1 - i32.shl - i32.add - i32.const 962 - i32.const 963 - local.get $6 - i32.const 1 - i32.gt_u - if (result i32) - block $~lib/util/string/isFinalSigma|inlined.0 (result i32) - i32.const 0 - local.set $1 - local.get $3 - local.tee $2 - i32.const 30 - i32.sub - local.tee $4 - i32.const 0 - local.get $4 - i32.const 0 - i32.ge_s - select - local.set $5 - loop $while-continue|1 - local.get $2 - local.get $5 - i32.gt_s - if - i32.const -1 - local.set $4 - block $~lib/util/string/codePointBefore|inlined.0 - local.get $2 - i32.const 0 - i32.le_s - br_if $~lib/util/string/codePointBefore|inlined.0 - local.get $0 - local.get $2 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.tee $9 - i32.const 64512 - i32.and - i32.const 56320 - i32.eq - local.get $2 - i32.const 2 - i32.sub - local.tee $4 - i32.const 0 - i32.ge_s - i32.and - if - local.get $9 - i32.const 1023 - i32.and - local.get $0 - local.get $4 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.tee $10 - i32.const 1023 - i32.and - i32.const 10 - i32.shl - i32.add - i32.const 65536 - i32.add - local.set $4 - local.get $10 - i32.const 64512 - i32.and - i32.const 55296 - i32.eq - br_if $~lib/util/string/codePointBefore|inlined.0 - end - i32.const 65533 - local.get $9 - local.get $9 - i32.const 63488 - i32.and - i32.const 55296 - i32.eq - select - local.set $4 - end - local.get $4 - i32.const 918000 - i32.lt_u - if (result i32) - local.get $4 - i32.const 8 - i32.shr_u - i32.const 7212 - i32.add - i32.load8_u - i32.const 5 - i32.shl - i32.const 7212 - i32.add - local.get $4 - i32.const 255 - i32.and - i32.const 3 - i32.shr_u - i32.add - i32.load8_u - local.get $4 - i32.const 7 - i32.and - i32.shr_u - i32.const 1 - i32.and - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - local.get $4 - i32.const 127370 - i32.lt_u - if (result i32) - local.get $4 - i32.const 8 - i32.shr_u - i32.const 10220 - i32.add - i32.load8_u - i32.const 5 - i32.shl - i32.const 10220 - i32.add - local.get $4 - i32.const 255 - i32.and - i32.const 3 - i32.shr_u - i32.add - i32.load8_u - local.get $4 - i32.const 7 - i32.and - i32.shr_u - i32.const 1 - i32.and - else - i32.const 0 - end - i32.eqz - br_if $~lib/util/string/isFinalSigma|inlined.0 - drop - i32.const 1 - local.set $1 - end - local.get $2 - local.get $4 - i32.const 65536 - i32.ge_s - i32.const 1 - i32.add - i32.sub - local.set $2 - br $while-continue|1 - end - end - i32.const 0 - local.get $1 - i32.eqz - br_if $~lib/util/string/isFinalSigma|inlined.0 - drop - local.get $3 - i32.const 1 - i32.add - local.tee $2 - i32.const 30 - i32.add - local.tee $1 - local.get $6 - local.get $1 - local.get $6 - i32.lt_s - select - local.set $4 - loop $while-continue|2 - local.get $2 - local.get $4 - i32.lt_s - if - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.tee $5 - i32.load16_u - local.tee $1 - i32.const 64512 - i32.and - i32.const 55296 - i32.eq - local.get $2 - i32.const 1 - i32.add - local.get $6 - i32.ne - i32.and - if - local.get $5 - i32.load16_u offset=2 - local.tee $5 - i32.const 64512 - i32.and - i32.const 56320 - i32.eq - if - local.get $1 - i32.const 10 - i32.shl - local.get $5 - i32.add - i32.const 56613888 - i32.sub - local.set $1 - end - end - local.get $1 - i32.const 918000 - i32.lt_u - if (result i32) - local.get $1 - i32.const 8 - i32.shr_u - i32.const 7212 - i32.add - i32.load8_u - i32.const 5 - i32.shl - i32.const 7212 - i32.add - local.get $1 - i32.const 255 - i32.and - i32.const 3 - i32.shr_u - i32.add - i32.load8_u - local.get $1 - i32.const 7 - i32.and - i32.shr_u - i32.const 1 - i32.and - else - i32.const 0 - end - i32.eqz - if - local.get $1 - i32.const 127370 - i32.lt_u - if (result i32) - local.get $1 - i32.const 8 - i32.shr_u - i32.const 10220 - i32.add - i32.load8_u - i32.const 5 - i32.shl - i32.const 10220 - i32.add - local.get $1 - i32.const 255 - i32.and - i32.const 3 - i32.shr_u - i32.add - i32.load8_u - local.get $1 - i32.const 7 - i32.and - i32.shr_u - i32.const 1 - i32.and - else - i32.const 0 - end - i32.eqz - br $~lib/util/string/isFinalSigma|inlined.0 - end - local.get $2 - local.get $1 - i32.const 65536 - i32.ge_u - i32.const 1 - i32.add - i32.add - local.set $2 - br $while-continue|2 - end - end - i32.const 1 - end - else - i32.const 0 - end - select - i32.store16 - else - local.get $4 - i32.const 9398 - i32.sub - i32.const 25 - i32.le_u - if - local.get $7 - local.get $8 - i32.const 1 - i32.shl - i32.add - local.get $4 - i32.const 26 - i32.add - i32.store16 - else - local.get $4 - i32.const 0 - call $~lib/util/casemap/casemap - i32.const 2097151 - i32.and - local.tee $1 - i32.const 65536 - i32.lt_u - if - local.get $7 - local.get $8 - i32.const 1 - i32.shl - i32.add - local.get $1 - i32.store16 - else - local.get $7 - local.get $8 - i32.const 1 - i32.shl - i32.add - local.get $1 - i32.const 65536 - i32.sub - local.tee $1 - i32.const 10 - i32.shr_u - i32.const 55296 - i32.or - local.get $1 - i32.const 1023 - i32.and - i32.const 56320 - i32.or - i32.const 16 - i32.shl - i32.or - i32.store - local.get $8 - i32.const 1 - i32.add - local.set $8 - end - end - end - end - end - else - local.get $7 - local.get $8 - i32.const 1 - i32.shl - i32.add - local.get $4 - i32.const 7084 - i32.add - i32.load8_u - i32.store16 - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - local.get $8 - i32.const 1 - i32.add - local.set $8 - br $for-loop|0 - end - end - local.get $7 - local.get $8 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__renew - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/string/String#codePointAt (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 21080 - i32.lt_s - if - i32.const 53872 - i32.const 53920 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $2 - local.get $1 - i32.le_u - if - local.get $3 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const -1 - return - end - block $folding-inner0 - local.get $1 - i32.const 1 - i32.add - local.get $2 - i32.eq - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.tee $0 - i32.load16_u - local.tee $1 - i32.const 64512 - i32.and - i32.const 55296 - i32.ne - i32.or - br_if $folding-inner0 - local.get $0 - i32.load16_u offset=2 - local.tee $0 - i32.const 64512 - i32.and - i32.const 56320 - i32.ne - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.const 10 - i32.shl - local.get $0 - i32.add - i32.const 56613888 - i32.sub - return - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - 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) - (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 21080 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - block $__inlined_func$~lib/string/String#concat$148 (result i32) - local.get $2 - local.get $0 - i32.store - local.get $2 - local.get $1 - i32.store offset=4 - local.get $2 - 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 - local.tee $5 - i64.const 0 - i64.store - local.get $5 - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $2 - local.get $5 - local.get $1 - i32.store - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $3 - local.get $2 - i32.add - local.tee $4 - i32.eqz - if - local.get $5 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1056 - br $__inlined_func$~lib/string/String#concat$148 - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store offset=4 - local.get $4 - local.get $0 - local.get $2 - memory.copy - local.get $2 - local.get $4 - i32.add - local.get $1 - local.get $3 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - end - local.set $0 - 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) - (local $2 i64) - (local $3 i64) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i64) - global.get $~lib/memory/__stack_pointer - i32.const 28 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 21080 - i32.lt_s - if - i32.const 53872 - i32.const 53920 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $5 - i32.const 0 - i32.const 28 - memory.fill - memory.size - i32.const 16 - i32.shl - i32.const 53848 - 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 - local.get $5 - i32.const 1056 - i32.store offset=8 - i32.const 1056 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 - local.get $5 - i32.const 1056 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 8 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=8 - i32.const 1056 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 - local.get $5 - i32.const 1056 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 9 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 11808 - i32.store offset=8 - i32.const 11808 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store offset=4 - local.get $5 - i32.const 11856 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 10 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 11904 - i32.store offset=8 - i32.const 11904 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11952 - i32.store offset=4 - local.get $5 - i32.const 11952 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 11 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 12000 - i32.store offset=8 - i32.const 12000 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 12096 - i32.store offset=4 - local.get $5 - i32.const 12096 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 12 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 12096 - i32.store offset=8 - i32.const 12096 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 12192 - i32.store offset=4 - local.get $5 - i32.const 12192 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 13 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 12288 - i32.store offset=8 - i32.const 12288 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 12352 - i32.store offset=4 - local.get $5 - i32.const 12352 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 14 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 12352 - i32.store offset=8 - i32.const 12352 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 12416 - i32.store offset=4 - local.get $5 - i32.const 12416 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 15 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 12480 - i32.store offset=8 - i32.const 12480 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 12576 - i32.store offset=4 - local.get $5 - i32.const 12576 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 16 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 12576 - i32.store offset=8 - i32.const 12576 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 12672 - i32.store offset=4 - local.get $5 - i32.const 12672 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 17 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 12768 - i32.store offset=8 - i32.const 12768 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 12864 - i32.store offset=4 - local.get $5 - i32.const 12864 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 18 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 12864 - i32.store offset=8 - i32.const 12864 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 12960 - i32.store offset=4 - local.get $5 - i32.const 12960 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 19 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 13056 - i32.store offset=8 - i32.const 13056 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13136 - i32.store offset=4 - local.get $5 - i32.const 13136 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 20 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 13216 - i32.store offset=8 - i32.const 13216 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13296 - i32.store offset=4 - local.get $5 - i32.const 13296 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 21 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 13376 - i32.store offset=8 - i32.const 13376 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13440 - i32.store offset=4 - local.get $5 - i32.const 13440 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 22 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 13504 - i32.store offset=8 - i32.const 13504 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13584 - i32.store offset=4 - local.get $5 - i32.const 13584 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 23 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 13664 - i32.store offset=8 - i32.const 13664 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13744 - i32.store offset=4 - local.get $5 - i32.const 13744 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 24 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 13824 - i32.store offset=8 - i32.const 13824 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13888 - i32.store offset=4 - local.get $5 - i32.const 13888 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 25 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 13952 - i32.store offset=8 - i32.const 13952 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14032 - i32.store offset=4 - local.get $5 - i32.const 14032 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 26 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 14112 - i32.store offset=8 - i32.const 14112 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14192 - i32.store offset=4 - local.get $5 - i32.const 14192 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 27 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 14272 - i32.store offset=8 - i32.const 14272 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14432 - i32.store offset=4 - local.get $5 - i32.const 14432 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 28 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 14272 - i32.store offset=8 - i32.const 14272 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14592 - i32.store offset=4 - local.get $5 - i32.const 14592 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 32 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 14752 - i32.store offset=8 - i32.const 14752 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14784 - i32.store offset=4 - local.get $5 - i32.const 14784 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 36 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 14816 - i32.store offset=8 - i32.const 14816 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14848 - i32.store offset=4 - local.get $5 - i32.const 14848 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 37 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 14880 - i32.store offset=8 - i32.const 14880 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15088 - i32.store offset=4 - local.get $5 - i32.const 15088 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 38 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 14752 - i32.store offset=12 - i32.const 14752 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15296 - i32.store offset=4 - local.get $5 - i32.const 15296 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 42 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 15328 - i32.store offset=12 - i32.const 15328 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15360 - i32.store offset=4 - local.get $5 - i32.const 15360 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 43 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 15392 - i32.store offset=12 - i32.const 15392 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15392 - i32.store offset=4 - local.get $5 - i32.const 15392 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 44 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 65536 - call $~lib/string/String.fromCodePoint - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15648 - i32.store offset=4 - local.get $5 - i32.const 15648 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 50 - i32.const 1 - call $~lib/builtins/abort - unreachable + i32.add + local.set $8 + else + local.get $4 + i32.const 931 + i32.eq + if + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + i32.const 962 + i32.const 963 + local.get $6 + i32.const 1 + i32.gt_u + if (result i32) + i32.const 0 + local.set $1 + local.get $3 + local.tee $2 + i32.const 30 + i32.sub + local.tee $4 + i32.const 0 + local.get $4 + i32.const 0 + i32.ge_s + select + local.set $5 + block $~lib/util/string/isFinalSigma|inlined.0 (result i32) + loop $while-continue|1 + local.get $2 + local.get $5 + i32.gt_s + if + i32.const -1 + local.set $4 + block $~lib/util/string/codePointBefore|inlined.0 + local.get $2 + i32.const 0 + i32.le_s + br_if $~lib/util/string/codePointBefore|inlined.0 + local.get $0 + local.get $2 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.tee $9 + i32.const 64512 + i32.and + i32.const 56320 + i32.eq + local.get $2 + i32.const 2 + i32.sub + local.tee $4 + i32.const 0 + i32.ge_s + i32.and + if + local.get $9 + i32.const 1023 + i32.and + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.tee $10 + i32.const 1023 + i32.and + i32.const 10 + i32.shl + i32.add + i32.const 65536 + i32.add + local.set $4 + local.get $10 + i32.const 64512 + i32.and + i32.const 55296 + i32.eq + br_if $~lib/util/string/codePointBefore|inlined.0 + end + i32.const 65533 + local.get $9 + local.get $9 + i32.const 63488 + i32.and + i32.const 55296 + i32.eq + select + local.set $4 + end + local.get $4 + i32.const 918000 + i32.lt_u + if (result i32) + local.get $4 + i32.const 8 + i32.shr_u + i32.const 7212 + i32.add + i32.load8_u + i32.const 5 + i32.shl + i32.const 7212 + i32.add + local.get $4 + i32.const 255 + i32.and + i32.const 3 + i32.shr_u + i32.add + i32.load8_u + local.get $4 + i32.const 7 + i32.and + i32.shr_u + i32.const 1 + i32.and + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + local.get $4 + i32.const 127370 + i32.lt_u + if (result i32) + local.get $4 + i32.const 8 + i32.shr_u + i32.const 10220 + i32.add + i32.load8_u + i32.const 5 + i32.shl + i32.const 10220 + i32.add + local.get $4 + i32.const 255 + i32.and + i32.const 3 + i32.shr_u + i32.add + i32.load8_u + local.get $4 + i32.const 7 + i32.and + i32.shr_u + i32.const 1 + i32.and + else + i32.const 0 + end + i32.eqz + br_if $~lib/util/string/isFinalSigma|inlined.0 + drop + i32.const 1 + local.set $1 + end + local.get $2 + local.get $4 + i32.const 65536 + i32.ge_s + i32.const 1 + i32.add + i32.sub + local.set $2 + br $while-continue|1 + end + end + i32.const 0 + local.get $1 + i32.eqz + br_if $~lib/util/string/isFinalSigma|inlined.0 + drop + local.get $3 + i32.const 1 + i32.add + local.tee $2 + i32.const 30 + i32.add + local.tee $1 + local.get $6 + local.get $1 + local.get $6 + i32.lt_s + select + local.set $4 + loop $while-continue|2 + local.get $2 + local.get $4 + i32.lt_s + if + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.tee $5 + i32.load16_u + local.tee $1 + i32.const 64512 + i32.and + i32.const 55296 + i32.eq + local.get $2 + i32.const 1 + i32.add + local.get $6 + i32.ne + i32.and + if + local.get $5 + i32.load16_u offset=2 + local.tee $5 + i32.const 64512 + i32.and + i32.const 56320 + i32.eq + if + local.get $1 + i32.const 10 + i32.shl + local.get $5 + i32.add + i32.const 56613888 + i32.sub + local.set $1 + end + end + local.get $1 + i32.const 918000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 8 + i32.shr_u + i32.const 7212 + i32.add + i32.load8_u + i32.const 5 + i32.shl + i32.const 7212 + i32.add + local.get $1 + i32.const 255 + i32.and + i32.const 3 + i32.shr_u + i32.add + i32.load8_u + local.get $1 + i32.const 7 + i32.and + i32.shr_u + i32.const 1 + i32.and + else + i32.const 0 + end + i32.eqz + if + local.get $1 + i32.const 127370 + i32.lt_u + if (result i32) + local.get $1 + i32.const 8 + i32.shr_u + i32.const 10220 + i32.add + i32.load8_u + i32.const 5 + i32.shl + i32.const 10220 + i32.add + local.get $1 + i32.const 255 + i32.and + i32.const 3 + i32.shr_u + i32.add + i32.load8_u + local.get $1 + i32.const 7 + i32.and + i32.shr_u + i32.const 1 + i32.and + else + i32.const 0 + end + i32.eqz + br $~lib/util/string/isFinalSigma|inlined.0 + end + local.get $2 + local.get $1 + i32.const 65536 + i32.ge_u + i32.const 1 + i32.add + i32.add + local.set $2 + br $while-continue|2 + end + end + i32.const 1 + end + else + i32.const 0 + end + select + i32.store16 + else + local.get $4 + i32.const 9398 + i32.sub + i32.const 25 + i32.le_u + if + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $4 + i32.const 26 + i32.add + i32.store16 + else + local.get $4 + i32.const 0 + call $~lib/util/casemap/casemap + i32.const 2097151 + i32.and + local.tee $1 + i32.const 65536 + i32.lt_u + if + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.store16 + else + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.const 65536 + i32.sub + local.tee $1 + i32.const 10 + i32.shr_u + i32.const 55296 + i32.or + local.get $1 + i32.const 1023 + i32.and + i32.const 56320 + i32.or + i32.const 16 + i32.shl + i32.or + i32.store + local.get $8 + i32.const 1 + i32.add + local.set $8 + end + end + end + end + end + else + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $4 + i32.const 7084 + i32.add + i32.load8_u + i32.store16 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|0 + end end - i32.const 65536 - call $~lib/string/String.fromCodePoint - local.set $5 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + call $~lib/rt/itcms/__renew global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String#toUpperCase - local.set $5 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/string/String#toUpperCase (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15648 - i32.store offset=4 - local.get $5 - i32.const 15648 - call $~lib/string/String.__eq - i32.eqz + i32.const 21080 + i32.lt_s if - i32.const 0 - i32.const 7024 - i32.const 51 + 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 15680 - i32.store offset=8 - i32.const 15680 - call $~lib/string/String#toLowerCase - local.set $5 + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15712 - i32.store offset=4 - local.get $5 - i32.const 15712 - call $~lib/string/String.__eq + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $8 i32.eqz if - i32.const 0 - i32.const 7024 - i32.const 54 - 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 + return end global.get $~lib/memory/__stack_pointer - i32.const 15744 - i32.store offset=8 - i32.const 15744 - call $~lib/string/String#toLowerCase - local.set $5 + local.get $8 + i32.const 6 + i32.mul + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $5 + i32.const 1488 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15776 - i32.store offset=4 - local.get $5 - i32.const 15776 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 55 - i32.const 1 - call $~lib/builtins/abort - unreachable + i32.const 1484 + i32.load + i32.const 1 + i32.shr_u + local.set $3 + loop $for-loop|0 + local.get $7 + local.get $8 + i32.lt_u + if + local.get $0 + local.get $7 + i32.const 1 + i32.shl + i32.add + local.tee $1 + i32.load16_u + local.tee $2 + i32.const 7 + i32.shr_u + if + block $for-continue|0 + local.get $2 + i32.const 55295 + i32.sub + i32.const 1025 + i32.lt_u + local.get $7 + local.get $8 + i32.const 1 + i32.sub + i32.lt_u + i32.and + if + local.get $1 + i32.load16_u offset=2 + local.tee $4 + i32.const 56319 + i32.sub + i32.const 1025 + i32.lt_u + if + local.get $7 + i32.const 1 + i32.add + local.set $7 + local.get $4 + i32.const 1023 + i32.and + local.get $2 + local.tee $1 + i32.const 1023 + i32.and + i32.const 10 + i32.shl + i32.or + i32.const 65536 + i32.add + local.tee $2 + i32.const 131072 + i32.ge_u + if + local.get $6 + local.get $5 + i32.const 1 + i32.shl + i32.add + local.get $1 + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-continue|0 + end + end + end + local.get $2 + i32.const 9424 + i32.sub + i32.const 25 + i32.le_u + if + local.get $6 + local.get $5 + i32.const 1 + i32.shl + i32.add + local.get $2 + i32.const 26 + i32.sub + i32.store16 + else + local.get $2 + i32.const 223 + i32.sub + i32.const 64056 + i32.le_u + if (result i32) + local.get $3 + local.set $1 + i32.const 0 + local.set $9 + block $~lib/util/casemap/bsearch|inlined.0 + loop $while-continue|1 + local.get $1 + local.get $9 + i32.ge_s + if + local.get $1 + local.get $9 + i32.add + i32.const 3 + i32.shr_u + i32.const 2 + i32.shl + local.tee $4 + i32.const 1 + i32.shl + i32.const 1488 + i32.add + i32.load16_u + local.get $2 + i32.sub + local.tee $10 + i32.eqz + br_if $~lib/util/casemap/bsearch|inlined.0 + local.get $10 + i32.const 31 + i32.shr_u + if + local.get $4 + i32.const 4 + i32.add + local.set $9 + else + local.get $4 + i32.const 4 + i32.sub + local.set $1 + end + br $while-continue|1 + end + end + i32.const -1 + local.set $4 + end + local.get $4 + else + i32.const -1 + end + local.tee $1 + i32.const -1 + i32.xor + if + local.get $1 + i32.const 1 + i32.shl + i32.const 1488 + i32.add + local.tee $1 + i32.load16_u offset=6 + local.set $2 + local.get $6 + local.get $5 + i32.const 1 + i32.shl + i32.add + local.tee $4 + local.get $1 + i32.load offset=2 + i32.store + local.get $4 + local.get $2 + i32.store16 offset=4 + local.get $5 + local.get $2 + i32.const 0 + i32.ne + i32.const 1 + i32.add + i32.add + local.set $5 + else + local.get $2 + i32.const 1 + call $~lib/util/casemap/casemap + i32.const 2097151 + i32.and + local.tee $1 + i32.const 65536 + i32.lt_u + if + local.get $6 + local.get $5 + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.store16 + else + local.get $6 + local.get $5 + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.const 65536 + i32.sub + local.tee $1 + i32.const 10 + i32.shr_u + i32.const 55296 + i32.or + local.get $1 + i32.const 1023 + i32.and + i32.const 56320 + i32.or + i32.const 16 + i32.shl + i32.or + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + end + end + end + end + else + local.get $6 + local.get $5 + i32.const 1 + i32.shl + i32.add + local.get $2 + i32.const 2316 + i32.add + i32.load8_u + i32.store16 + end + local.get $7 + i32.const 1 + i32.add + local.set $7 + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end end - global.get $~lib/memory/__stack_pointer - i32.const 15808 - i32.store offset=8 - i32.const 15808 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer + local.get $6 local.get $5 - i32.store + i32.const 1 + i32.shl + call $~lib/rt/itcms/__renew global.get $~lib/memory/__stack_pointer - i32.const 15840 - i32.store offset=4 - local.get $5 - i32.const 15840 - call $~lib/string/String.__eq + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/rt/itcms/__visit (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 i32.eqz if - i32.const 0 - i32.const 7024 - i32.const 56 - i32.const 1 - call $~lib/builtins/abort - unreachable + return end - global.get $~lib/memory/__stack_pointer - i32.const 15872 - i32.store offset=8 - i32.const 15872 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15904 - i32.store offset=4 - local.get $5 - i32.const 15904 - call $~lib/string/String.__eq - i32.eqz + 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 - i32.const 0 - i32.const 7024 - i32.const 59 + 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 1152 + 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$143 + 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 53848 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$143 + end + local.get $1 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1152 + 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 21056 + i32.load + i32.gt_u + if + i32.const 1280 + i32.const 1344 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 2 + i32.shl + i32.const 21060 + 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 - call $~lib/builtins/abort - unreachable + i32.add + global.set $~lib/rt/itcms/visitCount end - global.get $~lib/memory/__stack_pointer - i32.const 15936 - i32.store offset=8 - i32.const 15936 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15968 - i32.store offset=4 - local.get $5 - i32.const 15968 - call $~lib/string/String.__eq - i32.eqz + ) + (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 0 - i32.const 7024 - i32.const 60 - i32.const 1 + i32.const 1088 + i32.const 1152 + i32.const 261 + i32.const 31 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 16000 - i32.store offset=8 - i32.const 16000 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 16032 - i32.store offset=4 - local.get $5 - i32.const 16032 - call $~lib/string/String.__eq - i32.eqz + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - i32.const 0 - i32.const 7024 - i32.const 61 - i32.const 1 - call $~lib/builtins/abort - unreachable + block $__inlined_func$~lib/rt/itcms/interrupt$70 + i32.const 2048 + local.set $2 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$70 + end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.const 10 + i32.shl + i32.add + global.set $~lib/rt/itcms/threshold + end end - global.get $~lib/memory/__stack_pointer - i32.const 16064 - i32.store offset=8 - i32.const 16064 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 16096 - i32.store offset=4 - local.get $5 - i32.const 16096 - call $~lib/string/String.__eq + global.get $~lib/rt/tlsf/ROOT i32.eqz if - i32.const 0 - i32.const 7024 - i32.const 62 - i32.const 1 - call $~lib/builtins/abort - unreachable + call $~lib/rt/tlsf/initialize end - global.get $~lib/memory/__stack_pointer - i32.const 16128 - i32.store offset=8 - i32.const 16128 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 16160 - i32.store offset=4 - local.get $5 - i32.const 16160 - call $~lib/string/String.__eq - i32.eqz + 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 0 - i32.const 7024 - i32.const 63 - i32.const 1 + i32.const 1088 + i32.const 1424 + i32.const 461 + i32.const 29 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.store offset=8 - i32.const 16192 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 16224 - i32.store offset=4 - local.get $5 - i32.const 16224 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 64 - i32.const 1 - call $~lib/builtins/abort - unreachable + 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 - global.get $~lib/memory/__stack_pointer - i32.const 16256 - i32.store offset=8 - i32.const 16256 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 16288 - i32.store offset=4 - local.get $5 - i32.const 16288 - call $~lib/string/String.__eq + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 i32.eqz if + 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 + memory.size + local.tee $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.set $3 + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.gt_s + select + memory.grow i32.const 0 - i32.const 7024 - i32.const 65 - i32.const 1 - call $~lib/builtins/abort - unreachable + 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 1424 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end end - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.store offset=8 - i32.const 16320 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 16352 - i32.store offset=4 - local.get $5 - i32.const 16352 - call $~lib/string/String.__eq - i32.eqz + local.get $2 + i32.load + i32.const -4 + i32.and + i32.gt_u if i32.const 0 - i32.const 7024 - i32.const 66 - i32.const 1 + i32.const 1424 + i32.const 501 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 16384 - i32.store offset=8 - i32.const 16384 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 16416 - i32.store offset=4 + local.get $4 + local.get $2 + call $~lib/rt/tlsf/removeBlock + local.get $2 + i32.load + local.set $6 local.get $5 - i32.const 16416 - call $~lib/string/String.__eq - i32.eqz + i32.const 4 + i32.add + i32.const 15 + i32.and if i32.const 0 - i32.const 7024 - i32.const 67 - i32.const 1 + i32.const 1424 + i32.const 361 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 16448 - i32.store offset=8 - i32.const 16448 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 16480 - i32.store offset=4 + local.get $6 + i32.const -4 + i32.and local.get $5 - i32.const 16480 - call $~lib/string/String.__eq - i32.eqz + i32.sub + local.tee $3 + i32.const 16 + i32.ge_u if - i32.const 0 - i32.const 7024 - i32.const 68 + 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 - call $~lib/builtins/abort - unreachable + 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 - global.get $~lib/memory/__stack_pointer - i32.const 16512 + 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 - i32.const 16512 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 16544 + 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 $5 - i32.const 16544 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 69 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16576 + local.get $1 + local.get $2 i32.store offset=8 - i32.const 16576 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store + 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/string/String#codePointAt (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 16608 - i32.store offset=4 - local.get $5 - i32.const 16608 - call $~lib/string/String.__eq - i32.eqz + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 21080 + i32.lt_s if - i32.const 0 - i32.const 7024 - i32.const 70 + 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 16640 - i32.store offset=8 - i32.const 16640 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 + i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 16672 - i32.store offset=4 - local.get $5 - i32.const 16672 - call $~lib/string/String.__eq - i32.eqz + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $2 + local.get $1 + i32.le_u if - i32.const 0 - i32.const 7024 - i32.const 72 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const -1 + return + end + block $folding-inner0 + local.get $1 i32.const 1 - call $~lib/builtins/abort - unreachable + i32.add + local.get $2 + i32.eq + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.tee $0 + i32.load16_u + local.tee $1 + i32.const 64512 + i32.and + i32.const 55296 + i32.ne + i32.or + br_if $folding-inner0 + local.get $0 + i32.load16_u offset=2 + local.tee $0 + i32.const 64512 + i32.and + i32.const 56320 + i32.ne + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.const 10 + i32.shl + local.get $0 + i32.add + i32.const 56613888 + i32.sub + return end global.get $~lib/memory/__stack_pointer - i32.const 16704 - i32.store offset=8 - i32.const 16704 - call $~lib/string/String#toLowerCase - local.set $5 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/util/number/itoa64 (param $0 i64) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16736 - i32.store offset=4 - local.get $5 - i32.const 16736 - call $~lib/string/String.__eq - i32.eqz + i32.const 21080 + i32.lt_s if - i32.const 0 - i32.const 7024 - i32.const 73 + 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 16768 - i32.store offset=8 - i32.const 16768 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 + i32.const 0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 16800 - i32.store offset=4 - local.get $5 - i32.const 16800 - call $~lib/string/String.__eq - i32.eqz + local.get $0 + i64.eqz if - i32.const 0 - i32.const 7024 - i32.const 74 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 19200 + return + end + i64.const 0 + local.get $0 + i64.sub + local.get $0 + local.get $0 + i64.const 63 + i64.shr_u + i32.wrap_i64 + i32.const 1 + i32.shl + local.tee $2 + select + local.tee $0 + i64.const 4294967295 + i64.le_u + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.wrap_i64 + local.tee $1 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 100 + i32.lt_u + if (result i32) + local.get $1 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $1 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $1 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $1 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $1 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $1 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.tee $4 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $2 + local.get $3 + i32.add + local.get $1 + local.get $4 + call $~lib/util/number/utoa32_dec_lut + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i64.const 1000000000000000 + i64.lt_u + if (result i32) + local.get $0 + i64.const 1000000000000 + i64.lt_u + if (result i32) + local.get $0 + i64.const 100000000000 + i64.ge_u + i32.const 10 + i32.add + local.get $0 + i64.const 10000000000 + i64.ge_u + i32.add + else + local.get $0 + i64.const 100000000000000 + i64.ge_u + i32.const 13 + i32.add + local.get $0 + i64.const 10000000000000 + i64.ge_u + i32.add + end + else + local.get $0 + i64.const 100000000000000000 + i64.lt_u + if (result i32) + local.get $0 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 + i32.add + else + local.get $0 + i64.const -8446744073709551616 + i64.ge_u + i32.const 18 + i32.add + local.get $0 + i64.const 1000000000000000000 + i64.ge_u + i32.add + end + end + local.tee $1 i32.const 1 - call $~lib/builtins/abort - unreachable + i32.shl + local.get $2 + i32.add + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $2 + local.get $3 + i32.add + local.set $5 + loop $while-continue|0 + local.get $0 + i64.const 100000000 + i64.ge_u + if + local.get $5 + local.get $1 + i32.const 4 + i32.sub + local.tee $1 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $0 + i64.const 100000000 + i64.div_u + local.tee $0 + i64.const 100000000 + i64.mul + i64.sub + i32.wrap_i64 + local.tee $4 + i32.const 10000 + i32.rem_u + local.tee $6 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 19212 + i32.add + i64.load32_u + local.get $6 + 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 + 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 10000 + i32.div_u + local.tee $4 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 19212 + i32.add + i64.load32_u + local.get $4 + 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 $5 + local.get $0 + i32.wrap_i64 + local.get $1 + call $~lib/util/number/utoa32_dec_lut end - global.get $~lib/memory/__stack_pointer - i32.const 16832 - i32.store offset=8 - i32.const 16832 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 16864 - i32.store offset=4 - local.get $5 - i32.const 16864 - call $~lib/string/String.__eq - i32.eqz + local.get $2 if - i32.const 0 - i32.const 7024 - i32.const 75 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $3 + i32.const 45 + i32.store16 end global.get $~lib/memory/__stack_pointer - i32.const 16896 - i32.store offset=8 - i32.const 16896 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (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 16928 - i32.store offset=4 - local.get $5 - i32.const 16928 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 78 - i32.const 1 - call $~lib/builtins/abort - unreachable + 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$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 1056 + 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 53872 + i32.const 53920 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/string/String.fromCodePoint (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 16960 - i32.store offset=8 - i32.const 16960 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16992 - i32.store offset=4 - local.get $5 - i32.const 16992 - call $~lib/string/String.__eq - i32.eqz + i32.const 21080 + i32.lt_s if - i32.const 0 - i32.const 7024 - i32.const 79 + i32.const 53872 + i32.const 53920 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 17024 - i32.store offset=8 - i32.const 17024 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 17056 - i32.store offset=4 - local.get $5 - i32.const 17056 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 80 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 17088 - i32.store offset=8 - i32.const 17088 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 + i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 17120 - i32.store offset=4 - local.get $5 - i32.const 17120 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 81 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 17152 - i32.store offset=8 - i32.const 17152 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 + 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 - global.get $~lib/memory/__stack_pointer - i32.const 17184 - i32.store offset=4 - local.get $5 - i32.const 17184 - call $~lib/string/String.__eq - i32.eqz + local.get $2 if - i32.const 0 - i32.const 7024 - i32.const 82 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $0 + i32.const 1114111 + i32.gt_u + if + i32.const 0 + i32.const 15600 + 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.store16 end global.get $~lib/memory/__stack_pointer - i32.const 17216 - i32.store offset=8 - i32.const 17216 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 17248 - i32.store offset=4 - local.get $5 - i32.const 17248 - call $~lib/string/String.__eq + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (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 7024 - i32.const 83 - i32.const 1 + i32.const 1424 + i32.const 268 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 17280 - i32.store offset=8 - i32.const 17280 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 16352 - i32.store offset=4 - local.get $5 - i32.const 16352 - call $~lib/string/String.__eq - i32.eqz + local.get $3 + i32.const -4 + i32.and + local.tee $3 + i32.const 12 + i32.lt_u if i32.const 0 - i32.const 7024 - i32.const 84 - i32.const 1 + i32.const 1424 + i32.const 270 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 17312 - i32.store offset=8 - i32.const 17312 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 17344 - i32.store offset=4 - local.get $5 - i32.const 17344 - call $~lib/string/String.__eq + 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 7024 - i32.const 85 - i32.const 1 + i32.const 1424 + i32.const 284 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 17376 - i32.store offset=8 - i32.const 17376 - call $~lib/string/String#toLowerCase + local.get $1 + i32.load offset=8 local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 17408 - i32.store offset=4 + 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 - i32.const 17408 - call $~lib/string/String.__eq + 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 7024 - i32.const 86 - i32.const 1 + i32.const 1424 + i32.const 201 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 17440 - i32.store offset=8 - i32.const 17440 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 17472 - i32.store offset=4 - local.get $5 - i32.const 17472 - call $~lib/string/String.__eq + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and i32.eqz if i32.const 0 - i32.const 7024 - i32.const 87 - i32.const 1 + i32.const 1424 + i32.const 203 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 17504 - i32.store offset=8 - i32.const 17504 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 17536 - i32.store offset=4 - local.get $5 - i32.const 17536 - call $~lib/string/String.__eq - i32.eqz + 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 - i32.const 0 - i32.const 7024 - i32.const 88 + 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 - call $~lib/builtins/abort - unreachable + i32.and + i32.eqz + if + i32.const 0 + i32.const 1424 + 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 - global.get $~lib/memory/__stack_pointer - i32.const 17568 - i32.store offset=8 - i32.const 17568 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 + local.get $2 + i32.const 2 + i32.or i32.store - global.get $~lib/memory/__stack_pointer - i32.const 17600 - i32.store offset=4 - local.get $5 - i32.const 17600 - call $~lib/string/String.__eq - i32.eqz + local.get $3 + i32.const -4 + i32.and + local.tee $2 + i32.const 12 + i32.lt_u if i32.const 0 - i32.const 7024 - i32.const 89 - i32.const 1 + i32.const 1424 + i32.const 233 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 17632 - i32.store offset=8 - i32.const 17632 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 17664 - i32.store offset=4 - local.get $5 - i32.const 17664 - call $~lib/string/String.__eq - i32.eqz + local.get $4 + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + i32.ne if i32.const 0 - i32.const 7024 - i32.const 90 - i32.const 1 + i32.const 1424 + i32.const 234 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 17696 - i32.store offset=8 - i32.const 17696 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 + i32.const 4 + i32.sub + local.get $1 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 17728 - i32.store offset=4 + 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 17728 - call $~lib/string/String.__eq + i32.const 23 + i32.lt_u + i32.and i32.eqz if i32.const 0 - i32.const 7024 - i32.const 91 - i32.const 1 + i32.const 1424 + i32.const 251 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 17760 - i32.store offset=8 - i32.const 17760 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer + local.get $0 local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 17792 + 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 $5 - i32.const 17792 - call $~lib/string/String.__eq - i32.eqz + local.get $1 + local.get $3 + i32.store offset=8 + local.get $3 if - i32.const 0 - i32.const 7024 - i32.const 92 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $3 + local.get $1 + i32.store offset=4 end - global.get $~lib/memory/__stack_pointer - i32.const 17824 - i32.store offset=8 - i32.const 17824 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer + 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 - global.get $~lib/memory/__stack_pointer - i32.const 17856 - i32.store offset=4 + local.get $0 local.get $5 - i32.const 17856 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 93 - i32.const 1 - call $~lib/builtins/abort - unreachable + 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/__visit_members (param $0 i32) + block $invalid + block $~lib/staticarray/StaticArray + 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/staticarray/StaticArray $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + return + end + unreachable + ) + (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 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 - global.get $~lib/memory/__stack_pointer - i32.const 17888 - i32.store offset=8 - i32.const 17888 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 17920 - i32.store offset=4 - local.get $5 - i32.const 17920 - call $~lib/string/String.__eq - i32.eqz + local.get $1 + i32.const 100 + i32.ge_u if - i32.const 0 - i32.const 7024 - i32.const 94 + local.get $0 + local.get $2 + i32.const 2 + i32.sub + local.tee $2 i32.const 1 - call $~lib/builtins/abort - unreachable + 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 + local.get $1 + i32.const 100 + i32.div_u + local.set $1 end - global.get $~lib/memory/__stack_pointer - i32.const 17952 - i32.store offset=8 - i32.const 17952 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 17984 - i32.store offset=4 - local.get $5 - i32.const 17984 - call $~lib/string/String.__eq - i32.eqz + local.get $1 + i32.const 10 + i32.ge_u if - i32.const 0 - i32.const 7024 - i32.const 95 + local.get $0 + local.get $2 + i32.const 2 + i32.sub i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 18016 - i32.store offset=8 - i32.const 18016 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18048 - i32.store offset=4 - local.get $5 - i32.const 18048 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 96 + 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 + local.get $2 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 18080 - i32.store offset=8 - i32.const 18080 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18112 - i32.store offset=4 - local.get $5 - i32.const 18112 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 99 + i32.sub i32.const 1 - call $~lib/builtins/abort - unreachable + i32.shl + i32.add + local.get $1 + i32.const 48 + i32.add + i32.store16 end - global.get $~lib/memory/__stack_pointer - i32.const 15328 - i32.store offset=8 - i32.const 15328 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18144 - i32.store offset=4 - local.get $5 - i32.const 18144 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 100 - i32.const 1 - call $~lib/builtins/abort - unreachable + ) + (func $~lib/util/casemap/casemap (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 8 + i32.shr_u + local.tee $2 + i32.const 6084 + i32.add + i32.load8_u + local.get $2 + i32.const 2444 + i32.add + i32.load8_u + i32.const 86 + i32.mul + i32.const 2444 + i32.add + local.get $0 + i32.const 255 + i32.and + local.tee $4 + i32.const 3 + i32.div_u + i32.add + i32.load8_u + local.get $4 + i32.const 3 + i32.rem_u + i32.const 2 + i32.shl + i32.const 5112 + i32.add + i32.load + i32.mul + i32.const 11 + i32.shr_u + i32.const 6 + i32.rem_u + i32.add + i32.const 2 + i32.shl + i32.const 5124 + i32.add + i32.load + local.tee $2 + i32.const 255 + i32.and + local.set $3 + local.get $2 + i32.const 8 + i32.shr_s + local.set $2 + block $folding-inner0 + local.get $3 + i32.const 2 + i32.lt_u + br_if $folding-inner0 + local.get $2 + i32.const 255 + i32.and + local.set $3 + local.get $2 + i32.const 8 + i32.shr_u + local.set $2 + loop $while-continue|0 + local.get $3 + if + local.get $2 + local.get $3 + i32.const 1 + i32.shr_u + local.tee $7 + i32.add + i32.const 1 + i32.shl + i32.const 6596 + i32.add + local.tee $5 + i32.load8_u + local.tee $6 + local.get $4 + i32.eq + if (result i32) + local.get $5 + i32.load8_u offset=1 + i32.const 2 + i32.shl + i32.const 5124 + i32.add + i32.load + local.tee $2 + i32.const 255 + i32.and + local.set $3 + local.get $2 + i32.const 8 + i32.shr_s + local.set $2 + local.get $3 + i32.const 2 + i32.lt_u + br_if $folding-inner0 + local.get $0 + i32.const 1 + i32.add + local.get $1 + i32.const 1 + i32.shl + i32.sub + return + else + local.get $4 + local.get $6 + i32.lt_u + if (result i32) + local.get $7 + else + local.get $2 + local.get $7 + i32.add + local.set $2 + local.get $3 + local.get $7 + i32.sub + end + end + local.set $3 + br $while-continue|0 + end + end + local.get $0 + return end - global.get $~lib/memory/__stack_pointer - i32.const 18176 - i32.store offset=8 - i32.const 18176 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18208 - i32.store offset=4 - local.get $5 - i32.const 18208 - call $~lib/string/String.__eq - i32.eqz + local.get $0 + local.get $2 + i32.const 0 + local.get $1 + local.get $3 + i32.xor + i32.sub + i32.and + i32.add + ) + (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 - i32.const 0 - i32.const 7024 - i32.const 101 - i32.const 1 - call $~lib/builtins/abort - unreachable + 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 - global.get $~lib/memory/__stack_pointer - i32.const 18240 - i32.store offset=8 - i32.const 18240 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18272 - i32.store offset=4 - local.get $5 - i32.const 18272 - call $~lib/string/String.__eq + 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 7024 - i32.const 102 - i32.const 1 + i32.const 1424 + i32.const 334 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 18304 - i32.store offset=8 - i32.const 18304 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18336 - i32.store offset=4 - local.get $5 - i32.const 18336 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 103 + 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 - call $~lib/builtins/abort - unreachable + 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 1424 + 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 - global.get $~lib/memory/__stack_pointer - i32.const 18368 - i32.store offset=8 - i32.const 18368 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18400 - i32.store offset=4 - local.get $5 - i32.const 18400 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 104 + ) + (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 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 18432 - i32.store offset=8 - i32.const 18432 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18400 - i32.store offset=4 - local.get $5 - i32.const 18400 - call $~lib/string/String.__eq - i32.eqz - if + local.get $1 + i32.sub + memory.grow i32.const 0 - i32.const 7024 - i32.const 105 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 18464 - i32.store offset=8 - i32.const 18464 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18496 - i32.store offset=4 - local.get $5 - i32.const 18496 - call $~lib/string/String.__eq - i32.eqz - if + i32.lt_s + else i32.const 0 - i32.const 7024 - i32.const 106 - i32.const 1 - call $~lib/builtins/abort - unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 18528 - i32.store offset=8 - i32.const 18528 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18560 - i32.store offset=4 - local.get $5 - i32.const 18560 - call $~lib/string/String.__eq - i32.eqz if - i32.const 0 - i32.const 7024 - i32.const 107 - i32.const 1 - call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 18592 - i32.store offset=8 - i32.const 18592 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 + i32.const 53856 + i32.const 0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18624 - i32.store offset=4 - local.get $5 - i32.const 18624 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 108 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 18656 - i32.store offset=8 - i32.const 18656 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 + i32.const 55424 + i32.const 0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18688 - i32.store offset=4 - local.get $5 - i32.const 18688 - call $~lib/string/String.__eq - i32.eqz + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 53856 + 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 53856 + 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 53856 + i32.const 55428 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 53856 + global.set $~lib/rt/tlsf/ROOT + ) + (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 7024 - i32.const 109 - i32.const 1 + i32.const 1424 + i32.const 382 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 18720 - i32.store offset=8 - i32.const 18720 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18752 - i32.store offset=4 - local.get $5 - i32.const 18752 - call $~lib/string/String.__eq - i32.eqz + 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 1424 + 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 1424 + 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 - i32.const 0 - i32.const 7024 - i32.const 110 - i32.const 1 - call $~lib/builtins/abort - unreachable + return end - global.get $~lib/memory/__stack_pointer - i32.const 18784 - i32.store offset=8 - i32.const 18784 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 + 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 - global.get $~lib/memory/__stack_pointer - i32.const 18816 + local.get $1 + i32.const 0 i32.store offset=4 - local.get $5 - i32.const 18816 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 111 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - loop $for-loop|0 - local.get $4 - i32.const 1114111 - i32.le_s + 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/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1280 + call $~lib/rt/itcms/__visit + i32.const 1088 + call $~lib/rt/itcms/__visit + i32.const 19632 + call $~lib/rt/itcms/__visit + i32.const 20688 + call $~lib/rt/itcms/__visit + i32.const 1488 + 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 - global.get $~lib/memory/__stack_pointer - local.get $4 - call $~lib/string/String.fromCodePoint - local.tee $5 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $5 - call $~lib/string/String#toLowerCase - local.tee $6 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $5 - call $~lib/string/String#toUpperCase - local.tee $5 - i32.store offset=24 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - i32.const 0 - call $~lib/string/String#codePointAt - i64.extend_i32_s - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - i32.const 1 - call $~lib/string/String#codePointAt - i64.extend_i32_s - local.tee $1 - i64.const 0 - i64.ge_s + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne if - local.get $0 - local.get $1 - i64.const 16 - i64.shl - i64.add - local.set $0 - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - i32.const 2 - call $~lib/string/String#codePointAt - i64.extend_i32_s - local.tee $1 - i64.const 0 - i64.ge_s - if (result i64) - local.get $0 - local.get $1 - i64.const 32 - i64.shl - i64.add - else - local.get $0 + i32.const 0 + i32.const 1152 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 0 - call $~lib/string/String#codePointAt - i64.extend_i32_s + 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 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 1 - call $~lib/string/String#codePointAt - i64.extend_i32_s - local.tee $2 - i64.const 0 - i64.ge_s - if - local.get $0 - local.get $2 - i64.const 16 - i64.shl - i64.add - local.set $0 - end - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 2 - call $~lib/string/String#codePointAt - i64.extend_i32_s - local.tee $2 - i64.const 0 - i64.ge_s - if (result i64) - local.get $0 - local.get $2 - i64.const 32 - i64.shl - i64.add - else - local.get $0 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + local.get $0 + i32.const 20 + i32.sub + local.tee $3 + i32.load + i32.const -4 + i32.and + i32.const 16 + i32.sub + i32.le_u + if + local.get $3 + local.get $1 + i32.store offset=16 + local.get $0 + return + end + local.get $1 + local.get $3 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.tee $2 + local.get $0 + local.get $1 + local.get $3 + i32.load offset=16 + local.tee $0 + local.get $0 + local.get $1 + i32.gt_u + select + memory.copy + local.get $2 + ) + (func $~start + call $start:std/string-casemapping + ) + (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 - local.set $2 - local.get $4 - i32.const 0 - call $std/string-casemapping/toLowerCaseFromIndex - i64.extend_i32_s + 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 - local.get $4 - i32.const 1 - call $std/string-casemapping/toLowerCaseFromIndex - i64.extend_i32_s - local.tee $3 - i64.const 0 - i64.ge_s - if - local.get $0 - local.get $3 - i64.const 16 - i64.shl - i64.add - local.set $0 - end - local.get $4 - i32.const 2 - call $std/string-casemapping/toLowerCaseFromIndex - i64.extend_i32_s - local.tee $3 - i64.const 0 - i64.ge_s - if (result i64) - local.get $0 - local.get $3 - i64.const 32 - i64.shl - i64.add - else + 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 - local.set $3 - local.get $4 i32.const 0 - call $std/string-casemapping/toUpperCaseFromIndex - i64.extend_i32_s - local.set $0 - local.get $4 - i32.const 1 - call $std/string-casemapping/toUpperCaseFromIndex - i64.extend_i32_s - local.tee $7 - i64.const 0 - i64.ge_s + 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 $0 - local.get $7 - i64.const 16 - i64.shl - i64.add + global.get $~lib/memory/__stack_pointer local.set $0 - end - local.get $4 - i32.const 2 - call $std/string-casemapping/toUpperCaseFromIndex - i64.extend_i32_s - local.tee $7 - i64.const 0 - i64.ge_s - if - local.get $0 - local.get $7 - i64.const 32 - i64.shl - i64.add + loop $while-continue|0 + local.get $0 + i32.const 53848 + 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 - end - local.get $1 - local.get $3 - i64.ne - if - global.get $~lib/memory/__stack_pointer - i32.const 18848 - i32.store - i32.const 18848 - i32.const 1 - local.get $4 - f64.convert_i32_s - f64.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - global.get $~lib/memory/__stack_pointer - i32.const 18944 - i32.store offset=4 - local.get $1 - call $~lib/util/number/itoa64 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - i32.const 18944 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - global.get $~lib/memory/__stack_pointer - i32.const 20784 - i32.store offset=4 - local.get $3 - call $~lib/util/number/itoa64 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - i32.const 20784 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 + 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 - f64.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - call $~lib/builtins/trace + i32.const 1152 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable end local.get $0 - local.get $2 - i64.ne + i32.const 53848 + i32.lt_u if - global.get $~lib/memory/__stack_pointer - i32.const 20848 - i32.store - i32.const 20848 - i32.const 1 - local.get $4 - f64.convert_i32_s - f64.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - global.get $~lib/memory/__stack_pointer - i32.const 20944 - i32.store offset=4 - local.get $2 - call $~lib/util/number/itoa64 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - i32.const 20944 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 + local.get $0 i32.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - global.get $~lib/memory/__stack_pointer - i32.const 21008 i32.store offset=4 local.get $0 - call $~lib/util/number/itoa64 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - i32.const 21008 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 i32.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - call $~lib/builtins/trace + 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 53848 + 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 1424 + 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 - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 + 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 $start:std/string-casemapping + (local $0 i64) + (local $1 i64) + (local $2 i64) + (local $3 i64) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i64) + 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 21080 + i32.lt_s + if + 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 20 + memory.fill + memory.size + i32.const 16 + i32.shl + i32.const 53848 + 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 + i32.const 1056 + call $~lib/string/String#toUpperCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 1056 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 8 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1056 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 1056 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 9 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 11856 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 10 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 11952 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 11 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 12096 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 12 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 12192 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 13 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 12352 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 14 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 12416 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 15 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 12576 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 16 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 12672 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 17 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 12864 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 18 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 12960 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 19 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 13136 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 20 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 13296 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 21 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 13440 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 22 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 13584 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 23 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 13744 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 24 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 13888 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 25 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 14032 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 26 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 14192 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 27 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 14432 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 28 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 14592 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 32 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 14784 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 36 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 14848 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 37 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 15088 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 38 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 14752 + call $~lib/string/String#toUpperCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 15296 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 42 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 15328 + call $~lib/string/String#toUpperCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 15360 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 43 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 15392 + call $~lib/string/String#toUpperCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 15392 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 44 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 65536 + call $~lib/string/String.fromCodePoint + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 15648 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 50 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 65536 + call $~lib/string/String.fromCodePoint + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/string/String#toUpperCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 15648 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 51 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 15712 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 54 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 15776 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 55 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 15840 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 56 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 15904 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 59 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 15968 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 60 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 16032 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 61 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 16096 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 62 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 16160 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 63 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 16224 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 64 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 16288 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 65 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 16352 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 66 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 16416 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 67 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 16480 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 68 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 16544 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 69 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 16608 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 70 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 16672 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 72 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 16736 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 73 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 16800 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 74 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 16864 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 75 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 16928 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 78 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 16992 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 79 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 17056 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 80 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 17120 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 81 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 17184 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 82 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 17248 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 83 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 16352 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 84 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 17344 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 85 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 17408 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 86 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 17472 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 87 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 17536 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 88 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 17600 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 89 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 17664 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 90 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 17728 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 91 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 17792 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 92 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 17856 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 93 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 17920 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 94 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 17984 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 95 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 18048 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 96 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 18112 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 99 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 18144 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 100 + i32.const 1 + call $~lib/builtins/abort + unreachable end + i32.const 18176 + call $~lib/string/String#toUpperCase + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 28 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/string/String.fromCodePoint (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) + local.get $5 + i32.store + local.get $5 + i32.const 18208 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 101 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 18240 + call $~lib/string/String#toUpperCase + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 18272 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 102 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 18304 + call $~lib/string/String#toUpperCase + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 21080 - i32.lt_s + local.get $5 + i32.store + local.get $5 + i32.const 18336 + call $~lib/string/String.__eq + i32.eqz if - i32.const 53872 - i32.const 53920 + i32.const 0 + i32.const 7024 + i32.const 103 i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 18400 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 104 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 18432 + call $~lib/string/String#toUpperCase + local.set $5 global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 + local.get $5 i32.store - local.get $1 - 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 + local.get $5 + i32.const 18400 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 105 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 18464 + call $~lib/string/String#toUpperCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 i32.store - local.get $2 + local.get $5 + i32.const 18496 + call $~lib/string/String.__eq + i32.eqz if - local.get $0 - i32.const 1114111 - i32.gt_u - if - i32.const 0 - i32.const 15600 - 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.store16 + i32.const 0 + i32.const 7024 + i32.const 106 + i32.const 1 + call $~lib/builtins/abort + unreachable end + i32.const 18528 + call $~lib/string/String#toUpperCase + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $~lib/util/number/itoa64 (param $0 i64) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) + local.get $5 + i32.store + local.get $5 + i32.const 18560 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 107 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 18592 + call $~lib/string/String#toUpperCase + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 18624 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 108 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 18656 + call $~lib/string/String#toUpperCase + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 21080 - i32.lt_s + local.get $5 + i32.store + local.get $5 + i32.const 18688 + call $~lib/string/String.__eq + i32.eqz if - i32.const 53872 - i32.const 53920 + i32.const 0 + i32.const 7024 + i32.const 109 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 18752 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 110 i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 18816 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 111 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $0 - i64.eqz - if - local.get $1 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 19200 - return - end - i64.const 0 - local.get $0 - i64.sub - local.get $0 - local.get $0 - i64.const 63 - i64.shr_u - i32.wrap_i64 - i32.const 1 - i32.shl - local.tee $2 - select - local.tee $0 - i64.const 4294967295 - i64.le_u - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.wrap_i64 - local.tee $1 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $1 - i32.const 100 - i32.lt_u - if (result i32) - local.get $1 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $1 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add + loop $for-loop|0 + local.get $4 + i32.const 1114111 + i32.le_s + if + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/string/String.fromCodePoint + local.tee $5 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $5 + call $~lib/string/String#toLowerCase + local.tee $6 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $5 + call $~lib/string/String#toUpperCase + local.tee $5 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + i32.const 0 + call $~lib/string/String#codePointAt + i64.extend_i32_s + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + i32.const 1 + call $~lib/string/String#codePointAt + i64.extend_i32_s + local.tee $1 + i64.const 0 + i64.ge_s + if + local.get $0 local.get $1 - i32.const 1000 - i32.ge_u - i32.add + i64.const 16 + i64.shl + i64.add + local.set $0 end - else - local.get $1 - i32.const 10000000 - i32.lt_u - if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + i32.const 2 + call $~lib/string/String#codePointAt + i64.extend_i32_s + local.tee $1 + i64.const 0 + i64.ge_s + if (result i64) + local.get $0 local.get $1 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add + i64.const 32 + i64.shl + i64.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 + local.get $0 end - end - local.tee $4 - i32.const 1 - i32.shl - local.get $2 - i32.add - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - local.get $2 - local.get $3 - i32.add - local.get $1 - local.get $4 - call $~lib/util/number/utoa32_dec_lut - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i64.const 1000000000000000 - i64.lt_u - if (result i32) - local.get $0 - i64.const 1000000000000 - i64.lt_u - if (result i32) + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 0 + call $~lib/string/String#codePointAt + i64.extend_i32_s + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 1 + call $~lib/string/String#codePointAt + i64.extend_i32_s + local.tee $2 + i64.const 0 + i64.ge_s + if local.get $0 - i64.const 100000000000 - i64.ge_u - i32.const 10 - i32.add + local.get $2 + i64.const 16 + i64.shl + i64.add + local.set $0 + end + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 2 + call $~lib/string/String#codePointAt + i64.extend_i32_s + local.tee $2 + i64.const 0 + i64.ge_s + if (result i64) local.get $0 - i64.const 10000000000 - i64.ge_u - i32.add + local.get $2 + i64.const 32 + i64.shl + i64.add else local.get $0 - i64.const 100000000000000 - i64.ge_u - i32.const 13 - i32.add - local.get $0 - i64.const 10000000000000 - i64.ge_u - i32.add end - else - local.get $0 - i64.const 100000000000000000 - i64.lt_u - if (result i32) + local.set $2 + local.get $4 + i32.const 0 + call $std/string-casemapping/toLowerCaseFromIndex + i64.extend_i32_s + local.set $0 + local.get $4 + i32.const 1 + call $std/string-casemapping/toLowerCaseFromIndex + i64.extend_i32_s + local.tee $3 + i64.const 0 + i64.ge_s + if local.get $0 - i64.const 10000000000000000 - i64.ge_u - i32.const 16 - i32.add - else + local.get $3 + i64.const 16 + i64.shl + i64.add + local.set $0 + end + local.get $4 + i32.const 2 + call $std/string-casemapping/toLowerCaseFromIndex + i64.extend_i32_s + local.tee $3 + i64.const 0 + i64.ge_s + if (result i64) local.get $0 - i64.const -8446744073709551616 - i64.ge_u - i32.const 18 - i32.add + local.get $3 + i64.const 32 + i64.shl + i64.add + else local.get $0 - i64.const 1000000000000000000 - i64.ge_u - i32.add end - end - local.tee $1 - i32.const 1 - i32.shl - local.get $2 - i32.add - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - local.get $2 - local.get $3 - i32.add - local.set $5 - loop $while-continue|0 - local.get $0 - i64.const 100000000 - i64.ge_u + local.set $3 + local.get $4 + i32.const 0 + call $std/string-casemapping/toUpperCaseFromIndex + i64.extend_i32_s + local.set $0 + local.get $4 + i32.const 1 + call $std/string-casemapping/toUpperCaseFromIndex + i64.extend_i32_s + local.tee $7 + i64.const 0 + i64.ge_s if - local.get $5 - local.get $1 - i32.const 4 - i32.sub - local.tee $1 - i32.const 1 - i32.shl - i32.add local.get $0 + local.get $7 + i64.const 16 + i64.shl + i64.add + local.set $0 + end + local.get $4 + i32.const 2 + call $std/string-casemapping/toUpperCaseFromIndex + i64.extend_i32_s + local.tee $7 + i64.const 0 + i64.ge_s + if local.get $0 - i64.const 100000000 - i64.div_u - local.tee $0 - i64.const 100000000 - i64.mul - i64.sub - i32.wrap_i64 - local.tee $4 - i32.const 10000 - i32.rem_u - local.tee $6 - i32.const 100 - i32.div_u - i32.const 2 - i32.shl - i32.const 19212 - i32.add - i64.load32_u - local.get $6 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 19212 - i32.add - i64.load32_u + local.get $7 i64.const 32 i64.shl - i64.or - i64.store - local.get $5 - local.get $1 - i32.const 4 - i32.sub - local.tee $1 + i64.add + local.set $0 + end + local.get $1 + local.get $3 + i64.ne + if + i32.const 18848 i32.const 1 - i32.shl - i32.add local.get $4 - i32.const 10000 - i32.div_u - local.tee $4 - i32.const 100 - i32.div_u - i32.const 2 - i32.shl - i32.const 19212 - i32.add - i64.load32_u + f64.convert_i32_s + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + local.get $1 + call $~lib/util/number/itoa64 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + i32.const 18944 + local.get $5 + call $~lib/string/String.__concat + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + local.get $3 + call $~lib/util/number/itoa64 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + i32.const 20784 + local.get $5 + call $~lib/string/String.__concat + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + end + local.get $0 + local.get $2 + i64.ne + if + i32.const 20848 + i32.const 1 local.get $4 - 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 + f64.convert_i32_s + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + local.get $2 + call $~lib/util/number/itoa64 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + i32.const 20944 + local.get $5 + call $~lib/string/String.__concat + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + local.get $0 + call $~lib/util/number/itoa64 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + i32.const 21008 + local.get $5 + call $~lib/string/String.__concat + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/builtins/trace end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 end - local.get $5 - local.get $0 - i32.wrap_i64 - local.get $1 - call $~lib/util/number/utoa32_dec_lut - end - local.get $2 - if - local.get $3 - i32.const 45 - i32.store16 end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 ) ) diff --git a/tests/compiler/std/string-encoding.debug.wat b/tests/compiler/std/string-encoding.debug.wat index 8bc24bd177..eb35cd9489 100644 --- a/tests/compiler/std/string-encoding.debug.wat +++ b/tests/compiler/std/string-encoding.debug.wat @@ -1654,14 +1654,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + drop global.get $~lib/rt/itcms/total - i64.extend_i32_u i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 + i32.const 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold @@ -2859,6 +2862,41 @@ i32.const 0 drop ) + (func $start:std/string-encoding + call $std/string-encoding/testUTF16Length + 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 $std/string-encoding/testUTF16Encode + call $std/string-encoding/testUTF16Decode + call $std/string-encoding/testUTF16DecodeUnsafe + call $std/string-encoding/testUTF8Length + call $std/string-encoding/testUTF8Encode + call $std/string-encoding/testUTF8EncodeNullTerminated + call $std/string-encoding/testUTF8ErrorMode + call $std/string-encoding/testUTF8Decode + call $std/string-encoding/testUTF8DecodeNullTerminated + call $std/string-encoding/testUTF8DecodeUnsafe + i32.const 1088 + call $std/string-encoding/testRoundtrip + i32.const 14208 + call $std/string-encoding/testRoundtrip + call $~lib/rt/itcms/__collect + ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) global.get $std/string-encoding/str @@ -2885,12 +2923,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -3439,11 +3473,6 @@ i32.store local.get $3 i32.const 528 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -3487,11 +3516,6 @@ i32.store local.get $3 i32.const 560 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -3513,11 +3537,6 @@ i32.store local.get $3 i32.const 592 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -3539,11 +3558,6 @@ i32.store local.get $3 i32.const 624 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -3565,11 +3579,6 @@ i32.store local.get $3 i32.const 656 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -3591,11 +3600,6 @@ i32.store local.get $3 i32.const 528 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -4208,7 +4212,7 @@ (local $str 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 @@ -4216,15 +4220,7 @@ 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 880 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 0 i32.const 0 call $~lib/string/String.UTF8.encode @@ -4236,7 +4232,7 @@ i32.const 0 call $~lib/string/String.UTF8.decode local.tee $str - i32.store offset=8 + i32.store offset=4 local.get $str local.set $1 global.get $~lib/memory/__stack_pointer @@ -4244,11 +4240,6 @@ i32.store local.get $1 i32.const 880 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -4261,11 +4252,6 @@ end global.get $~lib/memory/__stack_pointer i32.const 880 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 0 i32.const 1 call $~lib/string/String.UTF8.encode @@ -4277,7 +4263,7 @@ i32.const 0 call $~lib/string/String.UTF8.decode local.tee $str - i32.store offset=8 + i32.store offset=4 local.get $str local.set $1 global.get $~lib/memory/__stack_pointer @@ -4285,11 +4271,6 @@ i32.store local.get $1 i32.const 912 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -4302,11 +4283,6 @@ end global.get $~lib/memory/__stack_pointer i32.const 944 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 0 i32.const 0 call $~lib/string/String.UTF8.encode @@ -4318,7 +4294,7 @@ i32.const 0 call $~lib/string/String.UTF8.decode local.tee $str - i32.store offset=8 + i32.store offset=4 local.get $str local.set $1 global.get $~lib/memory/__stack_pointer @@ -4326,11 +4302,6 @@ i32.store local.get $1 i32.const 944 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -4343,11 +4314,6 @@ end global.get $~lib/memory/__stack_pointer i32.const 944 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 0 i32.const 1 call $~lib/string/String.UTF8.encode @@ -4359,7 +4325,7 @@ i32.const 0 call $~lib/string/String.UTF8.decode local.tee $str - i32.store offset=8 + i32.store offset=4 local.get $str local.set $1 global.get $~lib/memory/__stack_pointer @@ -4367,11 +4333,6 @@ i32.store local.get $1 i32.const 912 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -4383,7 +4344,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) @@ -4714,11 +4675,6 @@ i32.store local.get $3 i32.const 528 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -4764,11 +4720,6 @@ i32.store local.get $3 i32.const 560 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -4791,11 +4742,6 @@ i32.store local.get $3 i32.const 624 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -4818,11 +4764,6 @@ i32.store local.get $3 i32.const 656 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -4845,11 +4786,6 @@ i32.store local.get $3 i32.const 528 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -4872,11 +4808,6 @@ i32.store local.get $3 i32.const 1056 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -4899,11 +4830,6 @@ i32.store local.get $3 i32.const 656 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -4926,11 +4852,6 @@ i32.store local.get $3 i32.const 528 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -5045,64 +4966,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $start:std/string-encoding - (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 - call $std/string-encoding/testUTF16Length - 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 $std/string-encoding/testUTF16Encode - call $std/string-encoding/testUTF16Decode - call $std/string-encoding/testUTF16DecodeUnsafe - call $std/string-encoding/testUTF8Length - call $std/string-encoding/testUTF8Encode - call $std/string-encoding/testUTF8EncodeNullTerminated - call $std/string-encoding/testUTF8ErrorMode - call $std/string-encoding/testUTF8Decode - call $std/string-encoding/testUTF8DecodeNullTerminated - call $std/string-encoding/testUTF8DecodeUnsafe - i32.const 1088 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $std/string-encoding/testRoundtrip - i32.const 14208 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $std/string-encoding/testRoundtrip - call $~lib/rt/itcms/__collect - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) (func $~lib/string/String.UTF16.decodeUnsafe (param $buf i32) (param $len i32) (result i32) (local $str i32) (local $3 i32) diff --git a/tests/compiler/std/string-encoding.release.wat b/tests/compiler/std/string-encoding.release.wat index b62fdf3037..fb72c04a38 100644 --- a/tests/compiler/std/string-encoding.release.wat +++ b/tests/compiler/std/string-encoding.release.wat @@ -2,12 +2,12 @@ (type $0 (func (param i32 i32) (result i32))) (type $1 (func)) (type $2 (func (param i32))) - (type $3 (func (param i32 i32))) + (type $3 (func (param i32 i32 i32) (result i32))) (type $4 (func (param i32) (result i32))) - (type $5 (func (param i32 i32 i32) (result i32))) + (type $5 (func (param i32 i32))) (type $6 (func (param i32 i32 i32 i32))) - (type $7 (func (param i32 i32 i64))) - (type $8 (func (result i32))) + (type $7 (func (result i32))) + (type $8 (func (param i32 i32 i64))) (import "env" "abort" (func $~lib/builtins/abort (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)) @@ -71,1239 +71,1073 @@ (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 - (local $0 i32) - (local $1 i32) - i32.const 1056 - call $~lib/rt/itcms/__visit - i32.const 1344 - call $~lib/rt/itcms/__visit - i32.const 1152 - call $~lib/rt/itcms/__visit - i32.const 1712 - 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) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - local.get $0 - i32.eqz + (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 22804 + i32.lt_s if - return + i32.const 55600 + i32.const 55648 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/white + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and + 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 - 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$156 - 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 55572 - 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$156 - 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 22784 - 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 22788 - i32.add - i32.load - i32.const 32 - i32.and - end + 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 - local.get $2 - i32.load offset=8 - local.set $0 + global.get $~lib/memory/__stack_pointer local.get $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 + i32.store local.get $3 - select - local.get $2 - i32.or - i32.store offset=4 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 offset=8 + i32.store local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer 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 + local.tee $0 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 + if (result i32) 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.const 7 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 + i32.const 7 + i32.and + i32.or + else + i32.const 1 + end + i32.eqz + if + loop $do-loop|0 local.get $2 - i32.rotl - i32.and - i32.store + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $0 + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + block $__inlined_func$~lib/util/string/compareImpl$94 + loop $while-continue|1 + local.get $0 + local.tee $3 + i32.const 1 + i32.sub + local.set $0 + local.get $3 + if + local.get $2 + i32.load16_u + local.tee $5 + local.get $1 + i32.load16_u + local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 + i32.ne + br_if $__inlined_func$~lib/util/string/compareImpl$94 + local.get $2 + i32.const 2 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end end + i32.const 0 + local.set $3 end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.eqz + return end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 ) - (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/string/String.UTF8.decodeUnsafe (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - local.get $1 - i32.eqz + (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 22804 + i32.lt_s if - i32.const 0 - i32.const 1488 - i32.const 201 - i32.const 14 + i32.const 55600 + i32.const 55648 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $1 - i32.load + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 local.tee $3 - i32.const 1 - i32.and - i32.eqz + local.get $1 + i32.add + local.set $5 + local.get $3 + local.get $5 + i32.gt_u if i32.const 0 - i32.const 1488 - i32.const 203 - i32.const 14 + i32.const 1776 + i32.const 770 + i32.const 7 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer 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.shl i32.const 2 - i32.and - if + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.set $1 + loop $while-continue|0 + local.get $3 + local.get $5 + i32.lt_u + if + block $while-break|0 + local.get $3 + i32.load8_u + local.set $6 + local.get $3 + i32.const 1 + i32.add + local.set $3 + local.get $6 + i32.const 128 + i32.and + if + local.get $3 + local.get $5 + i32.eq + br_if $while-break|0 + local.get $3 + i32.load8_u + i32.const 63 + i32.and + local.set $7 + local.get $3 + i32.const 1 + i32.add + local.set $3 + local.get $6 + i32.const 224 + i32.and + i32.const 192 + i32.eq + if + local.get $1 + local.get $6 + i32.const 31 + i32.and + i32.const 6 + i32.shl + local.get $7 + i32.or + i32.store16 + else + local.get $3 + local.get $5 + i32.eq + br_if $while-break|0 + local.get $3 + i32.load8_u + i32.const 63 + i32.and + local.set $4 + local.get $3 + i32.const 1 + i32.add + local.set $3 + local.get $6 + i32.const 240 + i32.and + i32.const 224 + i32.eq + if + local.get $6 + i32.const 15 + i32.and + i32.const 12 + i32.shl + local.get $7 + i32.const 6 + i32.shl + i32.or + local.get $4 + i32.or + local.set $4 + else + local.get $3 + local.get $5 + i32.eq + br_if $while-break|0 + local.get $3 + i32.load8_u + i32.const 63 + i32.and + local.get $6 + i32.const 7 + i32.and + i32.const 18 + i32.shl + local.get $7 + i32.const 12 + i32.shl + i32.or + local.get $4 + i32.const 6 + i32.shl + i32.or + i32.or + local.set $4 + local.get $3 + i32.const 1 + i32.add + local.set $3 + end + local.get $4 + i32.const 65536 + i32.lt_u + if + local.get $1 + local.get $4 + i32.store16 + else + local.get $1 + local.get $4 + i32.const 65536 + i32.sub + local.tee $4 + i32.const 10 + i32.shr_u + i32.const 55296 + i32.or + local.get $4 + i32.const 1023 + i32.and + i32.const 56320 + i32.or + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 2 + i32.add + local.set $1 + end + end + else + local.get $2 + local.get $6 + i32.eqz + i32.and + br_if $while-break|0 + local.get $1 + local.get $6 + i32.store16 + end + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|0 + end + end + end + block $__inlined_func$~lib/rt/itcms/__renew$157 local.get $1 - i32.const 4 + local.get $0 i32.sub + local.tee $2 + local.get $0 + i32.const 20 + i32.sub + local.tee $3 i32.load - local.tee $1 - i32.load - local.tee $6 - i32.const 1 + i32.const -4 i32.and - i32.eqz + i32.const 16 + i32.sub + i32.le_u if - i32.const 0 - i32.const 1488 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable + local.get $3 + local.get $2 + i32.store offset=16 + br $__inlined_func$~lib/rt/itcms/__renew$157 end + local.get $2 + local.get $3 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.tee $1 local.get $0 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - local.get $6 - i32.const 4 - i32.add + local.get $2 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 + i32.load offset=16 + local.tee $0 + local.get $0 + local.get $2 + i32.gt_u + select + memory.copy + local.get $1 + local.set $0 end - local.get $4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add - local.get $2 - i32.add - i32.ne + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/string/String.UTF8.encode@varargs (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 22804 + i32.lt_s if - i32.const 0 - i32.const 1488 - i32.const 234 - i32.const 14 + i32.const 55600 + i32.const 55648 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $4 - i32.const 4 - i32.sub - local.get $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 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 + block $2of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $2of2 $2of2 $outOfRange + end + unreachable + end i32.const 0 - i32.const 1488 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable + local.set $1 end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store 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 + call $~lib/string/String.UTF8.encode + global.get $~lib/memory/__stack_pointer 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 + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/string/String.UTF8.decode (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 22804 + i32.lt_s + if + 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.store + global.get $~lib/memory/__stack_pointer 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 + i32.const 20 + i32.sub + i32.load offset=16 local.get $1 - i64.extend_i32_u - i64.lt_u + call $~lib/string/String.UTF8.decodeUnsafe + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/string/String.UTF16.decodeUnsafe (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 22804 + i32.lt_s if - i32.const 0 - i32.const 1488 - i32.const 382 - i32.const 14 + 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.store + global.get $~lib/memory/__stack_pointer local.get $1 - i32.const 19 - i32.add - i32.const -16 + i32.const -2 i32.and + local.tee $2 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $1 + local.get $0 + local.get $2 + memory.copy + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.sub - local.set $1 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/string/String.UTF8.byteLength (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) 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 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.add + local.set $4 + local.get $1 + i32.const 0 + i32.ne + local.set $2 + loop $while-continue|0 + local.get $0 + local.get $4 + i32.lt_u 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 + block $while-break|0 + local.get $0 + i32.load16_u + local.tee $3 + i32.const 128 + i32.lt_u + if (result i32) + local.get $1 + local.get $3 + i32.eqz + i32.and + br_if $while-break|0 + local.get $2 + i32.const 1 + i32.add + else + local.get $3 + i32.const 2048 + i32.lt_u + if (result i32) + local.get $2 + i32.const 2 + i32.add + else + local.get $3 + i32.const 64512 + i32.and + i32.const 55296 + i32.eq + local.get $0 + i32.const 2 + i32.add + local.get $4 + i32.lt_u + i32.and + if + local.get $0 + i32.load16_u offset=2 + i32.const 64512 + i32.and + i32.const 56320 + i32.eq + if + local.get $2 + i32.const 4 + i32.add + local.set $2 + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + local.get $2 + i32.const 3 + i32.add + end + end + local.set $2 + local.get $0 + i32.const 2 + i32.add + local.set $0 + br $while-continue|0 + end end 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 + ) + (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 - 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 + global.get $~lib/rt/itcms/white local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size + i32.const 20 + i32.sub 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 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq if - unreachable - end - i32.const 55584 - i32.const 0 - i32.store - i32.const 57152 - i32.const 0 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 23 - i32.lt_u + 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 - i32.const 2 - i32.shl - i32.const 55584 - i32.add - i32.const 0 - i32.store offset=4 - i32.const 0 - local.set $1 - loop $for-loop|1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$158 + local.get $1 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $0 + i32.eqz + if local.get $1 - i32.const 16 + i32.load offset=8 + i32.eqz + local.get $1 + i32.const 55572 i32.lt_u + i32.and + i32.eqz if - local.get $0 - i32.const 4 - i32.shl - local.get $1 - i32.add - i32.const 2 - i32.shl - i32.const 55584 - i32.add i32.const 0 - i32.store offset=96 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|1 + i32.const 1216 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable end + br $__inlined_func$~lib/rt/itcms/Object#unlink$158 + 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 - i32.const 1 - i32.add - local.set $0 - br $for-loop|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 - end - i32.const 55584 - i32.const 57156 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 55584 - 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 + 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 22784 + i32.load + i32.gt_u + if + i32.const 1344 + i32.const 1408 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable 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 + local.get $0 + i32.const 2 + i32.shl + i32.const 22788 + i32.add + i32.load + i32.const 32 i32.and - local.set $0 - loop $while-continue|1 + 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/string/String.UTF8.encode (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 22804 + i32.lt_s + if + i32.const 55600 + i32.const 55648 + 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 + local.get $1 + call $~lib/string/String.UTF8.byteLength + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $5 + local.set $4 + local.get $0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 + i32.and + i32.add + local.set $6 + block $__inlined_func$~lib/string/String.UTF8.encodeUnsafe$1 + loop $while-continue|0 + local.get $0 + local.get $6 + i32.lt_u + if local.get $0 - global.get $~lib/rt/itcms/toSpace - i32.ne + i32.load16_u + local.tee $3 + i32.const 128 + i32.lt_u if - local.get $0 - global.set $~lib/rt/itcms/iter + local.get $4 + local.get $3 + i32.store8 + local.get $4 + i32.const 1 + i32.add + local.set $4 local.get $1 - local.get $0 - i32.load offset=4 - local.tee $2 - i32.const 3 + local.get $3 + i32.eqz i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 + br_if $__inlined_func$~lib/string/String.UTF8.encodeUnsafe$1 + else + local.get $3 + i32.const 2048 + i32.lt_u + if (result i32) + local.get $4 + local.get $3 + i32.const 6 + i32.shr_u + i32.const 192 + i32.or + local.get $3 + i32.const 63 i32.and - local.get $1 + i32.const 128 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 55572 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - local.get $0 - i32.const 4 + i32.const 8 + i32.shl + i32.or + i32.store16 + local.get $4 + i32.const 2 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 + else + local.get $3 + i32.const 63488 i32.and - i32.ne + i32.const 55296 + i32.eq if + local.get $3 + i32.const 56320 + i32.lt_u 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.const 2 i32.add - call $~lib/rt/__visit_members + local.get $6 + i32.lt_u + i32.and + if + local.get $0 + i32.load16_u offset=2 + local.tee $7 + i32.const 64512 + i32.and + i32.const 56320 + i32.eq + if + local.get $4 + local.get $3 + i32.const 1023 + i32.and + i32.const 10 + i32.shl + i32.const 65536 + i32.add + local.get $7 + i32.const 1023 + i32.and + i32.or + local.tee $3 + i32.const 63 + i32.and + i32.const 128 + i32.or + i32.const 24 + i32.shl + local.get $3 + i32.const 6 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + i32.const 16 + i32.shl + i32.or + local.get $3 + i32.const 12 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + i32.const 8 + i32.shl + i32.or + local.get $3 + i32.const 18 + i32.shr_u + i32.const 240 + i32.or + i32.or + i32.store + local.get $4 + i32.const 4 + i32.add + local.set $4 + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + local.get $2 + if + local.get $2 + i32.const 2 + i32.eq + if + i32.const 1712 + i32.const 1776 + i32.const 742 + i32.const 49 + call $~lib/builtins/abort + unreachable + end + i32.const 65533 + local.set $3 + end end - local.get $0 - i32.load offset=4 - i32.const -4 + local.get $4 + local.get $3 + i32.const 12 + i32.shr_u + i32.const 224 + i32.or + local.get $3 + i32.const 6 + i32.shr_u + i32.const 63 i32.and - local.set $0 - br $while-continue|2 + i32.const 128 + i32.or + i32.const 8 + i32.shl + i32.or + i32.store16 + local.get $4 + local.get $3 + i32.const 63 + i32.and + i32.const 128 + i32.or + i32.store8 offset=2 + local.get $4 + i32.const 3 + i32.add end + local.set $4 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 + i32.add + local.set $0 + br $while-continue|0 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 + local.get $1 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 + local.get $4 + i32.const 0 + i32.store8 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + ) + (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 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 $2 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$70 + end + local.get $2 i32.const 0 - i32.const 1216 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable + i32.gt_s + br_if $do-loop|0 end - local.get $0 - i32.const 55572 - 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 55572 - 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.set $1 - 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 $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.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) (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 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 $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 - local.tee $2 - local.get $2 - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 + 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 @@ -1352,8 +1186,6 @@ local.tee $2 i32.eqz if - memory.size - local.tee $2 local.get $5 i32.const 256 i32.ge_u @@ -1381,7 +1213,8 @@ i32.const 4 local.get $4 i32.load offset=1568 - local.get $2 + memory.size + local.tee $2 i32.const 16 i32.shl i32.const 4 @@ -1395,7 +1228,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.set $3 + local.get $2 + local.get $3 local.get $2 local.get $3 i32.gt_s @@ -1567,1582 +1402,1464 @@ memory.fill local.get $1 ) - (func $~lib/string/String.UTF8.byteLength (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + (func $~lib/string/String.UTF16.encode (param $0 i32) (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 22804 + i32.lt_s + if + i32.const 55600 + i32.const 55648 + 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.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 local.get $0 local.get $0 i32.const 20 i32.sub i32.load offset=16 + i32.const -2 + i32.and + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.set $4 + global.set $~lib/memory/__stack_pointer local.get $1 - i32.const 0 - i32.ne - local.set $2 - loop $while-continue|0 - local.get $0 - local.get $4 - i32.lt_u - if - block $while-break|0 + ) + (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 - i32.load16_u - local.tee $3 - i32.const 128 - i32.lt_u - if (result i32) + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + global.set $~lib/rt/itcms/iter local.get $1 - local.get $3 - i32.eqz + local.get $0 + i32.load offset=4 + local.tee $2 + i32.const 3 i32.and - br_if $while-break|0 - local.get $2 - i32.const 1 - i32.add - else - local.get $3 - i32.const 2048 - i32.lt_u - if (result i32) + i32.ne + if + local.get $0 local.get $2 - i32.const 2 - i32.add - else - local.get $3 - i32.const 64512 + i32.const -4 i32.and - i32.const 55296 - i32.eq + local.get $1 + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 - i32.const 2 + i32.const 20 i32.add - local.get $4 - i32.lt_u + 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 55572 + 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 - i32.load16_u offset=2 - i32.const 64512 + local.get $2 + i32.const -4 i32.and - i32.const 56320 - i32.eq - if - local.get $2 - i32.const 4 - i32.add - local.set $2 - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end + 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 $2 - i32.const 3 - i32.add + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 end end - local.set $2 + 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 - i32.add - local.set $0 - br $while-continue|0 + global.set $~lib/rt/itcms/state end + global.get $~lib/rt/itcms/visitCount + return end - end - local.get $2 - ) - (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 + global.get $~lib/rt/itcms/iter local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne if local.get $0 - call $~lib/rt/itcms/__visit + 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 55572 + 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 55572 + 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 - return + 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 - unreachable + i32.const 0 ) - (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-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 22804 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 + (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.store - local.get $0 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 22804 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $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.store - local.get $0 - i32.const 1056 - i32.store - i32.const 1052 - i32.load - i32.const 12 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 8 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + 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.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 + 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 - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 22804 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 1056 - i32.store - local.get $0 - i32.const 1056 - call $~lib/string/String.UTF16.encode - local.tee $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 + local.tee $4 + i32.const 7 i32.sub - i32.load offset=16 - i32.const 12 - i32.ne + 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 - i32.const 0 - i32.const 1088 - i32.const 15 - i32.const 3 - call $~lib/builtins/abort - unreachable + 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 - i32.load8_u + 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.ne + i32.and + i32.eqz if i32.const 0 - i32.const 1088 + i32.const 1488 + i32.const 221 i32.const 16 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=1 - i32.const 216 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 17 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=2 - i32.const 55 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 18 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=3 - i32.const 220 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 19 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=4 - i32.const 104 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 20 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=5 - if - i32.const 0 - i32.const 1088 - i32.const 21 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=6 - i32.const 105 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 22 - i32.const 3 call $~lib/builtins/abort unreachable end local.get $0 - i32.load8_u offset=7 - if - i32.const 0 - i32.const 1088 - i32.const 23 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=8 - i32.const 82 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 24 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=9 - i32.const 216 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 25 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=10 - i32.const 98 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 26 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=11 - i32.const 223 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 27 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $1 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $6 + i32.const 4 i32.add - global.set $~lib/memory/__stack_pointer - 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 22804 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 1056 - i32.store - local.get $0 - i32.const 1056 - call $~lib/string/String.UTF16.encode - local.tee $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - call $~lib/string/String.UTF16.decode - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=8 - local.get $0 - i32.const 1056 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 33 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 + local.get $3 + i32.const -4 + i32.and i32.add - global.set $~lib/memory/__stack_pointer - call $std/string-encoding/testUTF16DecodeUnsafe - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 22804 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 1056 + local.tee $3 i32.store - i32.const 1056 + 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 - call $~lib/string/String.UTF8.byteLength - i32.const 10 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 55 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - i32.const 1056 - i32.const 1 - call $~lib/string/String.UTF8.byteLength - i32.const 11 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + 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.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 + 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 - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 22804 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 1056 - i32.store - i32.const 1 - global.set $~argumentsLength - local.get $0 - i32.const 1056 - i32.const 0 - call $~lib/string/String.UTF8.encode@varargs - local.tee $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 + local.tee $3 + i32.const 7 i32.sub - i32.load offset=16 - i32.const 10 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 63 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u - i32.const 240 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 64 - i32.const 3 - call $~lib/builtins/abort - unreachable + 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/__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.load8_u offset=1 - i32.const 144 - i32.ne + i32.load + call $~lib/rt/itcms/__visit + return + end + unreachable + ) + (func $~lib/string/String.UTF16.decode (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 22804 + i32.lt_s + if + 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.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + call $~lib/string/String.UTF16.decodeUnsafe + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (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 - i32.const 0 - i32.const 1088 - i32.const 65 - i32.const 3 - call $~lib/builtins/abort - unreachable + 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 - i32.load8_u offset=2 - i32.const 144 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 66 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + 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.load8_u offset=3 - i32.const 183 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 67 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=4 - i32.const 104 - i32.ne - if + 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 - i32.const 1088 - i32.const 68 - i32.const 3 - call $~lib/builtins/abort - unreachable end + end + ) + (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 55584 + i32.const 0 + i32.store + i32.const 57152 + i32.const 0 + i32.store + loop $for-loop|0 local.get $0 - i32.load8_u offset=5 - i32.const 105 - i32.ne + i32.const 23 + i32.lt_u if + local.get $0 + i32.const 2 + i32.shl + i32.const 55584 + i32.add i32.const 0 - i32.const 1088 - i32.const 69 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=6 - i32.const 240 - i32.ne - if + i32.store offset=4 i32.const 0 - i32.const 1088 - i32.const 70 - i32.const 3 - call $~lib/builtins/abort - unreachable + 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 55584 + 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 - local.get $0 - i32.load8_u offset=7 - i32.const 164 - i32.ne + end + i32.const 55584 + i32.const 57156 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 55584 + global.set $~lib/rt/tlsf/ROOT + ) + (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 1088 - i32.const 71 - i32.const 3 + i32.const 1488 + i32.const 389 + i32.const 16 call $~lib/builtins/abort unreachable end - local.get $0 - i32.load8_u offset=8 - i32.const 173 - i32.ne + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq if - i32.const 0 - i32.const 1088 - i32.const 72 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $3 + i32.load + local.set $4 + local.get $5 + local.set $1 end + else local.get $0 - i32.load8_u offset=9 - i32.const 162 - i32.ne + i32.const 1572 + i32.add + local.get $1 + i32.gt_u if i32.const 0 - i32.const 1088 - i32.const 73 - i32.const 3 + i32.const 1488 + i32.const 402 + i32.const 5 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - call $std/string-encoding/testUTF8EncodeNullTerminated - 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 22804 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 1904 - i32.store offset=4 - i32.const 1904 - i32.const 0 - i32.const 0 - call $~lib/string/String.UTF8.encode - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $0 - local.get $1 - i32.const 0 - call $~lib/string/String.UTF8.decode - local.tee $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1904 - i32.store offset=4 - local.get $0 - i32.const 1904 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 101 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1904 - i32.store offset=4 - i32.const 1904 - i32.const 0 - i32.const 1 - call $~lib/string/String.UTF8.encode - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store + 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/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1056 + call $~lib/rt/itcms/__visit + i32.const 1344 + call $~lib/rt/itcms/__visit + i32.const 1152 + call $~lib/rt/itcms/__visit + i32.const 1712 + 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.const 0 - call $~lib/string/String.UTF8.decode - local.tee $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1936 - i32.store offset=4 - local.get $0 - i32.const 1936 - call $~lib/string/String.__eq - i32.eqz + i32.ne if - i32.const 0 - i32.const 1088 - i32.const 103 + local.get $0 + i32.load offset=4 i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1968 - i32.store offset=4 - i32.const 1968 - i32.const 0 - i32.const 0 - call $~lib/string/String.UTF8.encode - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $0 - local.get $1 - i32.const 0 - call $~lib/string/String.UTF8.decode - local.tee $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1968 - i32.store offset=4 - local.get $0 - i32.const 1968 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 106 + i32.and i32.const 3 - call $~lib/builtins/abort - unreachable + 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 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1968 - i32.store offset=4 - i32.const 1968 - i32.const 0 + end + ) + (func $std/string-encoding/testRoundtrip (param $0 i32) + (local $1 i32) + 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 22804 + i32.lt_s + if + i32.const 55600 + i32.const 55648 i32.const 1 - call $~lib/string/String.UTF8.encode - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $0 - local.get $1 - i32.const 0 - call $~lib/string/String.UTF8.decode - local.tee $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1936 - i32.store offset=4 - local.get $0 - i32.const 1936 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 108 - 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 - 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 22804 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 1056 - i32.store i32.const 1 - global.set $~argumentsLength - local.get $0 - i32.const 1056 - i32.const 0 - call $~lib/string/String.UTF8.encode@varargs - local.tee $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + call $~lib/string/String.UTF8.encode@varargs + local.tee $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $1 + i32.const 0 + call $~lib/string/String.UTF8.decode + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $1 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if i32.const 0 - call $~lib/string/String.UTF8.decode - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=8 - local.get $0 - i32.const 1056 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 114 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 32 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 22804 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 + i32.const 1088 + i32.const 153 + i32.const 3 + 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 + call $~lib/string/String.UTF16.encode + local.tee $1 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $1 + call $~lib/string/String.UTF16.decode + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $1 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if i32.const 0 - i32.const 32 - memory.fill - local.get $0 - i32.const 1056 - i32.store - i32.const 2 - global.set $~argumentsLength - local.get $0 - i32.const 1056 - i32.const 1 - call $~lib/string/String.UTF8.encode@varargs - local.tee $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - i32.const 1 - call $~lib/string/String.UTF8.decode - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=8 - local.get $0 - i32.const 1056 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 120 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 2000 - i32.store offset=16 - local.get $0 - i32.const 2000 - i32.store - i32.const 2000 - i32.const 1 - call $~lib/string/String.UTF8.byteLength - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 122 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 2000 - i32.store - i32.const 2 - global.set $~argumentsLength - local.get $0 - i32.const 2000 - i32.const 1 - call $~lib/string/String.UTF8.encode@varargs - local.tee $0 - i32.store offset=20 - 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 4 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 124 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 2048 - i32.store offset=24 - local.get $1 - i32.const 2048 - i32.store - i32.const 2048 - i32.const 1 - call $~lib/string/String.UTF8.byteLength - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 126 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - i32.const 1 - call $~lib/string/String.UTF8.decode - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2048 - i32.store offset=8 - local.get $0 - i32.const 2048 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 127 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 2000 - i32.store - i32.const 2 - global.set $~argumentsLength - local.get $0 - i32.const 2000 - i32.const 0 - call $~lib/string/String.UTF8.encode@varargs - local.tee $0 - i32.store offset=28 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - i32.const 1 - call $~lib/string/String.UTF8.decode - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2048 - i32.store offset=8 - local.get $0 - i32.const 2048 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 129 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 32 - i32.add - global.set $~lib/memory/__stack_pointer - call $std/string-encoding/testUTF8DecodeUnsafe - global.get $~lib/memory/__stack_pointer - i32.const 2112 - i32.store - i32.const 2112 - call $std/string-encoding/testRoundtrip - global.get $~lib/memory/__stack_pointer - i32.const 15232 - i32.store - i32.const 15232 - call $std/string-encoding/testRoundtrip - global.get $~lib/rt/itcms/state - i32.const 0 - i32.gt_s - if - loop $while-continue|0 - global.get $~lib/rt/itcms/state - 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 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 55600 - i32.const 55648 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/string/String.UTF16.encode (param $0 i32) (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 22804 - i32.lt_s - if - i32.const 55600 - i32.const 55648 + i32.const 1088 + i32.const 155 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~start + call $start:std/string-encoding + ) + (func $std/string-encoding/testUTF8EncodeNullTerminated + (local $0 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 22804 + i32.lt_s + if + i32.const 55600 + i32.const 55648 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 - local.get $0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 1056 i32.store - local.get $1 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 + i32.const 2 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 1056 i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 + call $~lib/string/String.UTF8.encode@varargs + local.tee $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 - local.get $0 local.get $0 i32.const 20 i32.sub i32.load offset=16 - i32.const -2 - i32.and - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $~lib/string/String.UTF16.decode (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 22804 - i32.lt_s + i32.const 11 + i32.ne if - i32.const 55600 - i32.const 55648 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1088 + i32.const 80 + i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - local.get $0 - i32.store local.get $0 + i32.load8_u + i32.const 240 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 81 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - call $~lib/string/String.UTF16.decodeUnsafe - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.load8_u offset=1 + i32.const 144 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 82 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - ) - (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 22804 - i32.lt_s + i32.load8_u offset=2 + i32.const 144 + i32.ne if - i32.const 55600 - i32.const 55648 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1088 + i32.const 83 + i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store local.get $0 - local.get $1 - i32.eq + i32.load8_u offset=3 + i32.const 183 + i32.ne if - local.get $2 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 - return + i32.const 0 + i32.const 1088 + i32.const 84 + i32.const 3 + call $~lib/builtins/abort + unreachable 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.tee $4 - local.tee $2 - 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 - local.get $2 - 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 - local.get $4 - local.get $0 - i32.store - local.get $0 - local.set $2 - local.get $4 - 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 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - else - i32.const 1 - end - i32.eqz - if - loop $do-loop|0 - local.get $2 - i64.load - local.get $1 - i64.load - i64.eq - if - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end - end - end - block $__inlined_func$~lib/util/string/compareImpl$88 - loop $while-continue|1 - local.get $0 - local.tee $3 - i32.const 1 - i32.sub - local.set $0 - local.get $3 - if - local.get $2 - i32.load16_u - local.tee $5 - local.get $1 - i32.load16_u - local.tee $4 - i32.sub - local.set $3 - local.get $4 - local.get $5 - i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$88 - local.get $2 - i32.const 2 - i32.add - local.set $2 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 - end - end - i32.const 0 - local.set $3 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - i32.eqz - return - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $std/string-encoding/testUTF16DecodeUnsafe - (local $0 i32) - (local $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 22804 - i32.lt_s - if - i32.const 55600 - i32.const 55648 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 1056 - i32.store - local.get $0 - i32.const 1056 - call $~lib/string/String.UTF16.encode - local.tee $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - i32.const 1052 - i32.load - local.set $1 local.get $0 - i32.const 0 - call $~lib/string/String.UTF16.decodeUnsafe - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1552 - i32.store offset=8 - local.get $2 - i32.const 1552 - call $~lib/string/String.__eq - i32.eqz + i32.load8_u offset=4 + i32.const 104 + i32.ne if i32.const 0 i32.const 1088 - i32.const 42 + i32.const 85 i32.const 3 call $~lib/builtins/abort unreachable end local.get $0 - local.get $1 - call $~lib/string/String.UTF16.decodeUnsafe - local.set $1 - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 - i32.store - local.get $2 - i32.const 1056 - i32.store offset=8 - local.get $1 - i32.const 1056 - call $~lib/string/String.__eq - i32.eqz + i32.load8_u offset=5 + i32.const 105 + i32.ne if i32.const 0 i32.const 1088 - i32.const 43 + i32.const 86 i32.const 3 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 4 - call $~lib/string/String.UTF16.decodeUnsafe - local.set $1 - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 - i32.store - local.get $2 - i32.const 1584 - i32.store offset=8 - local.get $1 - i32.const 1584 - call $~lib/string/String.__eq - i32.eqz + i32.load8_u offset=6 + i32.const 240 + i32.ne if i32.const 0 i32.const 1088 - i32.const 44 + i32.const 87 i32.const 3 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 4 - i32.add - i32.const 2 - call $~lib/string/String.UTF16.decodeUnsafe - local.set $1 - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 - i32.store - local.get $2 - i32.const 1616 - i32.store offset=8 - local.get $1 - i32.const 1616 - call $~lib/string/String.__eq - i32.eqz + i32.load8_u offset=7 + i32.const 164 + i32.ne if i32.const 0 i32.const 1088 - i32.const 45 + i32.const 88 i32.const 3 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 4 - i32.add - i32.const 4 - call $~lib/string/String.UTF16.decodeUnsafe - local.set $1 - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 - i32.store - local.get $2 - i32.const 1648 - i32.store offset=8 - local.get $1 - i32.const 1648 - call $~lib/string/String.__eq - i32.eqz + i32.load8_u offset=8 + i32.const 173 + i32.ne if i32.const 0 i32.const 1088 - i32.const 46 + i32.const 89 i32.const 3 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 8 - i32.add - i32.const 4 - call $~lib/string/String.UTF16.decodeUnsafe - local.set $1 - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 - i32.store - local.get $2 - i32.const 1680 - i32.store offset=8 - local.get $1 - i32.const 1680 - call $~lib/string/String.__eq - i32.eqz + i32.load8_u offset=9 + i32.const 162 + i32.ne if i32.const 0 i32.const 1088 - i32.const 47 + i32.const 90 i32.const 3 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 12 - i32.add - i32.const 0 - call $~lib/string/String.UTF16.decodeUnsafe - local.set $0 + i32.load8_u offset=10 + if + i32.const 0 + i32.const 1088 + i32.const 91 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1824 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 1824 + i32.store + i32.const 2 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 1824 + i32.const 1 + call $~lib/string/String.UTF8.encode@varargs + local.tee $0 + i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 1552 - i32.store offset=8 local.get $0 - i32.const 1552 - call $~lib/string/String.__eq - i32.eqz + i32.const 20 + i32.sub + i32.load offset=16 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 1824 + i32.store + i32.const 1824 + i32.const 1 + call $~lib/string/String.UTF8.byteLength + local.get $0 + i32.ne if i32.const 0 i32.const 1088 - i32.const 48 + i32.const 94 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/string/String.UTF8.encode (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) + (func $std/string-encoding/testUTF8DecodeUnsafe + (local $0 i32) + (local $1 i32) + (local $2 i32) 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 @@ -3157,1201 +2874,1322 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 2 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.const 1 + call $~lib/string/String.UTF8.encode@varargs + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 1056 + i32.const 0 + call $~lib/string/String.UTF8.byteLength + local.set $2 local.get $0 + i32.const 0 + i32.const 0 + call $~lib/string/String.UTF8.decodeUnsafe + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $3 + local.get $1 + i32.const 1552 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 138 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 + local.get $2 + i32.const 0 + call $~lib/string/String.UTF8.decodeUnsafe + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $1 - call $~lib/string/String.UTF8.byteLength - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=4 + i32.store global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=8 + local.get $1 + i32.const 1056 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 139 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 + i32.const 4 + i32.const 0 + call $~lib/string/String.UTF8.decodeUnsafe + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $5 - local.set $4 + local.get $1 + i32.const 1584 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 140 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 + i32.const 4 + i32.add + i32.const 2 + i32.const 0 + call $~lib/string/String.UTF8.decodeUnsafe + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 1648 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 141 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and + i32.const 6 i32.add - local.set $6 - block $__inlined_func$~lib/string/String.UTF8.encodeUnsafe$1 - loop $while-continue|0 - local.get $0 - local.get $6 - i32.lt_u - if - local.get $0 - i32.load16_u - local.tee $3 - i32.const 128 - i32.lt_u - if - local.get $4 - local.get $3 - i32.store8 - local.get $4 - i32.const 1 - i32.add - local.set $4 - local.get $1 - local.get $3 - i32.eqz - i32.and - br_if $__inlined_func$~lib/string/String.UTF8.encodeUnsafe$1 - else - local.get $3 - i32.const 2048 - i32.lt_u - if (result i32) - local.get $4 - local.get $3 - i32.const 6 - i32.shr_u - i32.const 192 - i32.or - local.get $3 - i32.const 63 - i32.and - i32.const 128 - i32.or - i32.const 8 - i32.shl - i32.or - i32.store16 - local.get $4 - i32.const 2 - i32.add - else - local.get $3 - i32.const 63488 - i32.and - i32.const 55296 - i32.eq - if - local.get $3 - i32.const 56320 - i32.lt_u - local.get $0 - i32.const 2 - i32.add - local.get $6 - i32.lt_u - i32.and - if - local.get $0 - i32.load16_u offset=2 - local.tee $7 - i32.const 64512 - i32.and - i32.const 56320 - i32.eq - if - local.get $4 - local.get $3 - i32.const 1023 - i32.and - i32.const 10 - i32.shl - i32.const 65536 - i32.add - local.get $7 - i32.const 1023 - i32.and - i32.or - local.tee $3 - i32.const 63 - i32.and - i32.const 128 - i32.or - i32.const 24 - i32.shl - local.get $3 - i32.const 6 - i32.shr_u - i32.const 63 - i32.and - i32.const 128 - i32.or - i32.const 16 - i32.shl - i32.or - local.get $3 - i32.const 12 - i32.shr_u - i32.const 63 - i32.and - i32.const 128 - i32.or - i32.const 8 - i32.shl - i32.or - local.get $3 - i32.const 18 - i32.shr_u - i32.const 240 - i32.or - i32.or - i32.store - local.get $4 - i32.const 4 - i32.add - local.set $4 - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - local.get $2 - if - local.get $2 - i32.const 2 - i32.eq - if - i32.const 1712 - i32.const 1776 - i32.const 742 - i32.const 49 - call $~lib/builtins/abort - unreachable - end - i32.const 65533 - local.set $3 - end - end - local.get $4 - local.get $3 - i32.const 12 - i32.shr_u - i32.const 224 - i32.or - local.get $3 - i32.const 6 - i32.shr_u - i32.const 63 - i32.and - i32.const 128 - i32.or - i32.const 8 - i32.shl - i32.or - i32.store16 - local.get $4 - local.get $3 - i32.const 63 - i32.and - i32.const 128 - i32.or - i32.store8 offset=2 - local.get $4 - i32.const 3 - i32.add - end - local.set $4 - end - local.get $0 - i32.const 2 - i32.add - local.set $0 - br $while-continue|0 - end - end - local.get $1 - if - local.get $4 - i32.const 0 - i32.store8 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - ) - (func $~lib/string/String.UTF8.encode@varargs (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 22804 - i32.lt_s - if - 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.store - block $2of2 - block $0of2 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of2 $2of2 $2of2 $outOfRange - end - unreachable - end - i32.const 0 - local.set $1 - end + call $~lib/string/String.UTF8.decodeUnsafe + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 local.get $1 - i32.const 0 - call $~lib/string/String.UTF8.encode - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $std/string-encoding/testUTF8EncodeNullTerminated - (local $0 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 22804 - i32.lt_s + i32.const 1680 + call $~lib/string/String.__eq + i32.eqz if - i32.const 55600 - i32.const 55648 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1088 + i32.const 142 + i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 1056 - i32.store - i32.const 2 - global.set $~argumentsLength local.get $0 - i32.const 1056 - i32.const 1 - call $~lib/string/String.UTF8.encode@varargs - local.tee $0 - i32.store offset=4 + i32.const 10 + i32.add + i32.const 0 + i32.const 0 + call $~lib/string/String.UTF8.decodeUnsafe + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 11 - i32.ne + local.get $1 + i32.const 1552 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1088 - i32.const 80 + i32.const 143 i32.const 3 call $~lib/builtins/abort unreachable end local.get $0 - i32.load8_u - i32.const 240 - i32.ne + i32.const 4 + i32.add + i32.const 100 + i32.const 1 + call $~lib/string/String.UTF8.decodeUnsafe + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 2080 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1088 - i32.const 81 + i32.const 145 i32.const 3 call $~lib/builtins/abort unreachable end local.get $0 - i32.load8_u offset=1 - i32.const 144 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 82 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=2 - i32.const 144 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 83 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=3 - i32.const 183 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 84 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=4 - i32.const 104 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 85 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=5 - i32.const 105 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 86 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=6 - i32.const 240 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 87 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=7 - i32.const 164 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 88 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=8 - i32.const 173 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 89 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=9 - i32.const 162 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 90 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=10 + i32.const 6 + i32.add + i32.const 100 + i32.const 1 + call $~lib/string/String.UTF8.decodeUnsafe + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 1680 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1088 - i32.const 91 + i32.const 146 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1824 - i32.store offset=8 - local.get $0 - i32.const 1824 - i32.store - i32.const 2 - global.set $~argumentsLength local.get $0 - i32.const 1824 + i32.const 10 + i32.add + i32.const 100 i32.const 1 - call $~lib/string/String.UTF8.encode@varargs - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 + call $~lib/string/String.UTF8.decodeUnsafe local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 1824 + local.get $0 i32.store - i32.const 1824 - i32.const 1 - call $~lib/string/String.UTF8.byteLength local.get $0 - i32.ne + i32.const 1552 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1088 - i32.const 94 + i32.const 147 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/string/String.UTF8.decode (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 22804 - i32.lt_s - if - i32.const 55600 - i32.const 55648 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - local.get $1 - call $~lib/string/String.UTF8.decodeUnsafe - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $std/string-encoding/testUTF8DecodeUnsafe + (func $start:std/string-encoding (local $0 i32) (local $1 i32) (local $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 22804 - i32.lt_s - if - i32.const 55600 - i32.const 55648 - i32.const 1 + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 22804 + 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 1056 + i32.store + i32.const 1052 + i32.load + i32.const 12 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 8 + 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 + memory.size + i32.const 16 + i32.shl + i32.const 55572 + i32.sub i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 1056 - i32.store - i32.const 2 - global.set $~argumentsLength - local.get $0 - i32.const 1056 - i32.const 1 - call $~lib/string/String.UTF8.encode@varargs - local.tee $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - i32.const 1056 - i32.const 0 - call $~lib/string/String.UTF8.byteLength - local.set $1 - local.get $0 - i32.const 0 - i32.const 0 - call $~lib/string/String.UTF8.decodeUnsafe - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1552 - i32.store offset=8 - local.get $2 - i32.const 1552 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 138 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 0 - call $~lib/string/String.UTF8.decodeUnsafe - local.set $1 - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 - i32.store - local.get $2 - i32.const 1056 - i32.store offset=8 - local.get $1 - i32.const 1056 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 139 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 4 - i32.const 0 - call $~lib/string/String.UTF8.decodeUnsafe - local.set $1 - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 - i32.store - local.get $2 - i32.const 1584 - i32.store offset=8 - local.get $1 - i32.const 1584 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 140 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 4 - i32.add - i32.const 2 - i32.const 0 - call $~lib/string/String.UTF8.decodeUnsafe - local.set $1 - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 - i32.store - local.get $2 - i32.const 1648 - i32.store offset=8 - local.get $1 - i32.const 1648 - call $~lib/string/String.__eq - i32.eqz - if + 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 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 1056 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + call $~lib/string/String.UTF16.encode + local.tee $0 + i32.store offset=4 + 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 12 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 15 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 16 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=1 + i32.const 216 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 17 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=2 + i32.const 55 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 18 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=3 + i32.const 220 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 19 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=4 + i32.const 104 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 20 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=5 + if + i32.const 0 + i32.const 1088 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=6 + i32.const 105 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 22 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=7 + if + i32.const 0 + i32.const 1088 + i32.const 23 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=8 + i32.const 82 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 24 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=9 + i32.const 216 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 25 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=10 + i32.const 98 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 26 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=11 + i32.const 223 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 27 + 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 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + 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 + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + call $~lib/string/String.UTF16.encode + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + call $~lib/string/String.UTF16.decode + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=8 + local.get $0 + i32.const 1056 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 33 + 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 + 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 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 0 - i32.const 1088 - i32.const 141 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 6 - i32.add - i32.const 4 - i32.const 0 - call $~lib/string/String.UTF8.decodeUnsafe - local.set $1 - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 - i32.store - local.get $2 - i32.const 1680 - i32.store offset=8 - local.get $1 - i32.const 1680 - call $~lib/string/String.__eq - i32.eqz - if + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + call $~lib/string/String.UTF16.encode + local.tee $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 1052 + i32.load + local.set $2 + local.get $1 i32.const 0 - i32.const 1088 - i32.const 142 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 10 - i32.add - i32.const 0 - i32.const 0 - call $~lib/string/String.UTF8.decodeUnsafe - local.set $1 - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 - i32.store - local.get $2 - i32.const 1552 - i32.store offset=8 - local.get $1 - i32.const 1552 - call $~lib/string/String.__eq - i32.eqz - if + call $~lib/string/String.UTF16.decodeUnsafe + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1552 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 42 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/string/String.UTF16.decodeUnsafe + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=8 + local.get $0 + i32.const 1056 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 43 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + call $~lib/string/String.UTF16.decodeUnsafe + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1584 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 44 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 2 + call $~lib/string/String.UTF16.decodeUnsafe + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1616 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 4 + call $~lib/string/String.UTF16.decodeUnsafe + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1648 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 8 + i32.add + i32.const 4 + call $~lib/string/String.UTF16.decodeUnsafe + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1680 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 47 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 12 + i32.add i32.const 0 - i32.const 1088 - i32.const 143 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 4 - i32.add - i32.const 100 - i32.const 1 - call $~lib/string/String.UTF8.decodeUnsafe - local.set $1 - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 - i32.store - local.get $2 - i32.const 2080 - i32.store offset=8 - local.get $1 - i32.const 2080 - call $~lib/string/String.__eq - i32.eqz - if + call $~lib/string/String.UTF16.decodeUnsafe + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1552 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 48 + 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 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 22804 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1088 - i32.const 145 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 6 - i32.add - i32.const 100 - i32.const 1 - call $~lib/string/String.UTF8.decodeUnsafe - local.set $1 - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 - i32.store - local.get $2 - i32.const 1680 - i32.store offset=8 - local.get $1 - i32.const 1680 - call $~lib/string/String.__eq - i32.eqz - if + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 1056 i32.const 0 - i32.const 1088 - i32.const 146 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 10 - i32.add - i32.const 100 - i32.const 1 - call $~lib/string/String.UTF8.decodeUnsafe - local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store - local.get $1 - i32.const 1552 - i32.store offset=8 - local.get $0 - i32.const 1552 - call $~lib/string/String.__eq - i32.eqz - if + call $~lib/string/String.UTF8.byteLength + i32.const 10 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 55 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 1056 + i32.const 1 + call $~lib/string/String.UTF8.byteLength + i32.const 11 + i32.ne + if + i32.const 0 + i32.const 1088 + 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 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + 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 1056 + i32.store + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.const 0 + call $~lib/string/String.UTF8.encode@varargs + local.tee $0 + i32.store offset=4 + 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 10 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 63 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u + i32.const 240 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 64 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=1 + i32.const 144 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 65 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=2 + i32.const 144 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 66 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=3 + i32.const 183 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 67 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=4 + i32.const 104 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 68 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=5 + i32.const 105 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 69 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=6 + i32.const 240 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 70 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=7 + i32.const 164 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 71 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=8 + i32.const 173 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 72 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=9 + i32.const 162 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 73 + 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 + call $std/string-encoding/testUTF8EncodeNullTerminated + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + 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 1904 i32.const 0 - i32.const 1088 - i32.const 147 - 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 $std/string-encoding/testRoundtrip (param $0 i32) - (local $1 i32) - 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 22804 - i32.lt_s - if - i32.const 55600 - i32.const 55648 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.const 20 - memory.fill - local.get $1 - local.get $0 - i32.store - i32.const 1 - global.set $~argumentsLength - local.get $1 - local.get $0 - i32.const 0 - call $~lib/string/String.UTF8.encode@varargs - local.tee $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $1 - i32.const 0 - call $~lib/string/String.UTF8.decode - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $1 - local.get $0 - call $~lib/string/String.__eq - i32.eqz - if i32.const 0 - i32.const 1088 - i32.const 153 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store - local.get $1 - local.get $0 - call $~lib/string/String.UTF16.encode - local.tee $1 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $1 - call $~lib/string/String.UTF16.decode - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $1 - local.get $0 - call $~lib/string/String.__eq - i32.eqz - if + call $~lib/string/String.UTF8.encode + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/string/String.UTF8.decode + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1904 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 101 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1904 i32.const 0 - i32.const 1088 - i32.const 155 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/string/String.UTF16.decodeUnsafe (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 22804 - i32.lt_s - if - i32.const 55600 - i32.const 55648 - i32.const 1 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $1 - i32.const -2 - i32.and - local.tee $1 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - local.get $0 - local.get $1 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $~lib/string/String.UTF8.decodeUnsafe (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 22804 - i32.lt_s - if - i32.const 55600 - i32.const 55648 + call $~lib/string/String.UTF8.encode + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/string/String.UTF8.decode + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1936 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 103 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1968 + i32.const 0 + i32.const 0 + call $~lib/string/String.UTF8.encode + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/string/String.UTF8.decode + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1968 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 106 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1968 + i32.const 0 i32.const 1 + call $~lib/string/String.UTF8.encode + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/string/String.UTF8.decode + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1936 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 108 + 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 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + 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 + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - local.tee $3 - local.get $1 - i32.add - local.set $5 - local.get $3 - local.get $5 - i32.gt_u - if + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 1056 i32.const 0 - i32.const 1776 - i32.const 770 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - local.set $1 - loop $while-continue|0 - local.get $3 - local.get $5 - i32.lt_u + call $~lib/string/String.UTF8.encode@varargs + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + i32.const 0 + call $~lib/string/String.UTF8.decode + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=8 + local.get $0 + i32.const 1056 + call $~lib/string/String.__eq + i32.eqz if - block $while-break|0 - local.get $3 - i32.load8_u - local.set $6 - local.get $3 - i32.const 1 - i32.add - local.set $3 - local.get $6 - i32.const 128 - i32.and - if - local.get $3 - local.get $5 - i32.eq - br_if $while-break|0 - local.get $3 - i32.load8_u - i32.const 63 - i32.and - local.set $7 - local.get $3 - i32.const 1 - i32.add - local.set $3 - local.get $6 - i32.const 224 - i32.and - i32.const 192 - i32.eq - if - local.get $1 - local.get $6 - i32.const 31 - i32.and - i32.const 6 - i32.shl - local.get $7 - i32.or - i32.store16 - else - local.get $3 - local.get $5 - i32.eq - br_if $while-break|0 - local.get $3 - i32.load8_u - i32.const 63 - i32.and - local.set $4 - local.get $3 - i32.const 1 - i32.add - local.set $3 - local.get $6 - i32.const 240 - i32.and - i32.const 224 - i32.eq - if - local.get $6 - i32.const 15 - i32.and - i32.const 12 - i32.shl - local.get $7 - i32.const 6 - i32.shl - i32.or - local.get $4 - i32.or - local.set $4 - else - local.get $3 - local.get $5 - i32.eq - br_if $while-break|0 - local.get $3 - i32.load8_u - i32.const 63 - i32.and - local.get $6 - i32.const 7 - i32.and - i32.const 18 - i32.shl - local.get $7 - i32.const 12 - i32.shl - i32.or - local.get $4 - i32.const 6 - i32.shl - i32.or - i32.or - local.set $4 - local.get $3 - i32.const 1 - i32.add - local.set $3 - end - local.get $4 - i32.const 65536 - i32.lt_u - if - local.get $1 - local.get $4 - i32.store16 - else - local.get $1 - local.get $4 - i32.const 65536 - i32.sub - local.tee $4 - i32.const 10 - i32.shr_u - i32.const 55296 - i32.or - local.get $4 - i32.const 1023 - i32.and - i32.const 56320 - i32.or - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 2 - i32.add - local.set $1 - end - end - else - local.get $2 - local.get $6 - i32.eqz - i32.and - br_if $while-break|0 - local.get $1 - local.get $6 - i32.store16 - end - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|0 - end + i32.const 0 + i32.const 1088 + i32.const 114 + i32.const 3 + call $~lib/builtins/abort + unreachable end - end - block $__inlined_func$~lib/rt/itcms/__renew$155 - local.get $1 - local.get $0 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 32 i32.sub - local.tee $2 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 22804 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 32 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 2 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.const 1 + call $~lib/string/String.UTF8.encode@varargs + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + i32.const 1 + call $~lib/string/String.UTF8.decode + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=8 + local.get $0 + i32.const 1056 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 120 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 2000 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 2000 + i32.store + i32.const 2000 + i32.const 1 + call $~lib/string/String.UTF8.byteLength + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 122 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 2000 + i32.store + i32.const 2 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 2000 + i32.const 1 + call $~lib/string/String.UTF8.encode@varargs + local.tee $0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $0 i32.const 20 i32.sub - local.tee $3 - i32.load - i32.const -4 - i32.and - i32.const 16 - i32.sub - i32.le_u + i32.load offset=16 + i32.const 4 + i32.ne if - local.get $3 - local.get $2 - i32.store offset=16 - br $__inlined_func$~lib/rt/itcms/__renew$155 + i32.const 0 + i32.const 1088 + i32.const 124 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $2 - local.get $3 - i32.load offset=12 - call $~lib/rt/itcms/__new - local.tee $1 + global.get $~lib/memory/__stack_pointer + i32.const 2048 + i32.store offset=24 + global.get $~lib/memory/__stack_pointer + i32.const 2048 + i32.store + i32.const 2048 + i32.const 1 + call $~lib/string/String.UTF8.byteLength + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 126 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $2 - local.get $3 - i32.load offset=16 + i32.store offset=12 + local.get $0 + i32.const 1 + call $~lib/string/String.UTF8.decode + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 2048 + i32.store offset=8 + local.get $0 + i32.const 2048 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 127 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 2000 + i32.store + i32.const 2 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 2000 + i32.const 0 + call $~lib/string/String.UTF8.encode@varargs local.tee $0 + i32.store offset=28 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $2 - i32.gt_u - select - memory.copy - local.get $1 + i32.store offset=12 + local.get $0 + i32.const 1 + call $~lib/string/String.UTF8.decode local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 2048 + i32.store offset=8 + local.get $0 + i32.const 2048 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 129 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 32 + i32.add + global.set $~lib/memory/__stack_pointer + call $std/string-encoding/testUTF8DecodeUnsafe + i32.const 2112 + call $std/string-encoding/testRoundtrip + i32.const 15232 + call $std/string-encoding/testRoundtrip + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + global.get $~lib/rt/itcms/state + 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 + 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 + return end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 55600 + i32.const 55648 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) ) diff --git a/tests/compiler/std/string-encoding.ts b/tests/compiler/std/string-encoding.ts index b184dc9f0d..7a131280dc 100644 --- a/tests/compiler/std/string-encoding.ts +++ b/tests/compiler/std/string-encoding.ts @@ -118,7 +118,7 @@ testUTF8Decode(); function testUTF8DecodeNullTerminated(): void { var buf = String.UTF8.encode(str, true); assert(String.UTF8.decode(buf, true) == str); - var str2 = "123\0456"; + var str2 = "123\x00456"; assert(String.UTF8.byteLength(str2, true) == 4); var buf2 = String.UTF8.encode(str2, true); assert(buf2.byteLength == 4); diff --git a/tests/compiler/std/string-nonnull.release.wat b/tests/compiler/std/string-nonnull.release.wat index 06ae093de0..b26fd35230 100644 --- a/tests/compiler/std/string-nonnull.release.wat +++ b/tests/compiler/std/string-nonnull.release.wat @@ -1,7 +1,7 @@ (module - (type $0 (func (result i32))) - (type $1 (func)) - (type $2 (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 (param i32 i32 i32 i32))) (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33836)) (memory $0 1) @@ -9,6 +9,64 @@ (data $0.1 (i32.const 1048) "\02") (export "memory" (memory $0)) (start $~start) + (func $~lib/string/String.__eq + global.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 33904 + 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 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/string/String.__ne (result i32) + (local $0 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 33904 + 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 1056 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=4 + call $~lib/string/String.__eq + i32.const 0 + i32.eqz + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~start (local $0 i32) global.get $~lib/memory/__stack_pointer @@ -21,13 +79,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store offset=4 call $~lib/string/String.__ne @@ -52,43 +109,35 @@ drop end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1056 i32.store offset=4 i32.const 1052 i32.load drop - local.get $0 + 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 + i32.const 1052 + i32.load + drop 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 - local.tee $0 i32.const 1056 i32.store offset=4 - local.get $0 + i32.const 1052 + i32.load + drop + 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 @@ -97,10 +146,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store i32.const 1052 @@ -108,12 +156,10 @@ i32.const 1 i32.shr_u i32.eqz - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -136,67 +182,4 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/string/String.__eq (result i32) - (local $0 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 33904 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $~lib/string/String.__ne (result i32) - (local $0 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 33904 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 1056 - i32.store - local.get $0 - i32.const 0 - i32.store offset=4 - call $~lib/string/String.__eq - i32.eqz - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) ) diff --git a/tests/compiler/std/string.debug.wat b/tests/compiler/std/string.debug.wat index b66caa8920..738795005a 100644 --- a/tests/compiler/std/string.debug.wat +++ b/tests/compiler/std/string.debug.wat @@ -20,10 +20,11 @@ (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) (result i32))) + (type $21 (func (param i32 f64 i32) (result i32))) (type $22 (func (param i32) (result f32))) (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 (param i32 i32 i32 i32))) (global $std/string/str (mut i32) (i32.const 32)) (global $std/string/nullStr (mut i32) (i32.const 0)) @@ -67,10 +68,12 @@ (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 25392)) - (global $~lib/memory/__data_end i32 (i32.const 25420)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 58188)) - (global $~lib/memory/__heap_base i32 (i32.const 58188)) + (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 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) ",\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") @@ -502,48 +505,52 @@ (data $427 (i32.const 23248) "\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 $428 (i32.const 23292) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\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") (data $429 (i32.const 23356) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\000\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") - (data $430 (i32.const 23436) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00,\00\00\004\00.\001\008\005\005\008\000\004\009\006\008\002\001\003\005\007\00e\00+\002\009\008\00") - (data $431 (i32.const 23500) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00.\00\00\002\00.\002\002\005\000\007\003\008\005\008\005\000\007\002\000\001\004\00e\00-\003\000\008\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $432 (i32.const 23580) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\004\00.\009\004\000\006\005\006\00e\00-\003\001\008\00\00\00") - (data $433 (i32.const 23628) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\009\000\006\000\008\000\001\001\005\003\004\003\003\006\000\000\00.\000\00\00\00\00\00\00\00\00\00") - (data $434 (i32.const 23692) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00*\00\00\004\007\000\008\003\005\006\000\002\004\007\001\001\005\001\002\000\000\000\00.\000\00\00\00") - (data $435 (i32.const 23756) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00*\00\00\009\004\000\009\003\004\000\000\001\002\005\006\008\002\004\008\000\000\000\00.\000\00\00\00") - (data $436 (i32.const 23820) "\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 $437 (i32.const 23852) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00-\001\00.\000\00\00\00\00\00") - (data $438 (i32.const 23884) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00-\000\00.\001\00\00\00\00\00") - (data $439 (i32.const 23916) ",\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\00.\000\00\00\00\00\00\00\00\00\00\00\00") - (data $440 (i32.const 23964) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\000\00.\000\000\000\000\000\001\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $441 (i32.const 24012) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00-\001\000\000\000\000\000\000\00.\000\00\00\00\00\00\00\00\00\00") - (data $442 (i32.const 24060) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\00-\000\00.\000\000\000\000\000\001\00\00\00\00\00\00\00\00\00\00\00") - (data $443 (i32.const 24108) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\001\000\000\000\000\000\000\000\00.\000\00\00\00\00\00\00\00\00\00") - (data $444 (i32.const 24156) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\001\00e\00-\007\00\00\00\00\00") - (data $445 (i32.const 24188) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00-\001\00e\00+\003\000\008\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $446 (i32.const 24236) "\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 $447 (i32.const 24268) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00-\001\00e\00-\003\000\008\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $448 (i32.const 24316) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\001\00e\00-\003\002\003\00") - (data $449 (i32.const 24348) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00-\001\00e\00-\003\002\003\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $450 (i32.const 24396) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\18\00\00\004\002\009\004\009\006\007\002\007\002\00.\000\00\00\00\00\00") - (data $451 (i32.const 24444) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00*\00\00\001\00.\002\003\001\002\001\004\005\006\007\003\004\005\006\002\003\004\00e\00-\008\00\00\00") - (data $452 (i32.const 24508) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\"\00\00\005\005\005\005\005\005\005\005\005\00.\005\005\005\005\005\005\006\00\00\00\00\00\00\00\00\00\00\00") - (data $453 (i32.const 24572) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\000\00.\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\00\00\00\00\00\00\00\00\00") - (data $454 (i32.const 24636) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\001\002\00.\003\004\00\00\00") - (data $455 (i32.const 24668) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\000\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") - (data $456 (i32.const 24732) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00.\00\00\001\002\003\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\00.\000\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $457 (i32.const 24812) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\001\00.\002\003\004\00e\00+\002\001\00\00\00\00\00\00\00\00\00\00\00") - (data $458 (i32.const 24860) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\002\00.\007\001\008\002\008\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $459 (i32.const 24908) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\000\00.\000\002\007\001\008\002\008\00\00\00\00\00\00\00\00\00\00\00") - (data $460 (i32.const 24956) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\002\007\001\00.\008\002\008\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $461 (i32.const 25004) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\001\00.\001\00e\00+\001\002\008\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $462 (i32.const 25052) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\001\00.\001\00e\00-\006\004\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $463 (i32.const 25100) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\000\00.\000\000\000\000\003\005\006\008\009\00\00\00\00\00\00\00") - (data $464 (i32.const 25148) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00H\00e\00l\00l\00o\00 \00") - (data $465 (i32.const 25180) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00W\00o\00r\00l\00d\00\00\00") - (data $466 (i32.const 25212) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00H\00e\00l\00l\00o\00 \00W\00o\00r\00l\00d\00\00\00\00\00\00\00") - (data $467 (i32.const 25260) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00b\00a\00r\00\00\00\00\00\00\00") - (data $468 (i32.const 25292) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00\c0\00\c8\00\00\00\00\00\00\00\00\00") - (data $469 (i32.const 25324) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00\d8S\cf\91\00\00\00\00\00\00\00\00") - (data $470 (i32.const 25356) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00A\d8\0e\dfA\d81\df\00\00\00\00") - (data $471 (i32.const 25392) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\t\00\00\02A\00\00") + (data $430 (i32.const 23436) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\18\00\00\001\00.\001\009\002\000\009\002\009\00e\00-\007\00\00\00\00\00") + (data $431 (i32.const 23484) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00-\001\00.\001\009\002\000\009\002\009\00e\00-\007\00\00\00") + (data $432 (i32.const 23532) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\003\00.\004\000\002\008\002\003\005\00e\00+\003\008\00\00\00") + (data $433 (i32.const 23580) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00-\003\00.\004\000\002\008\002\003\005\00e\00+\003\008\00") + (data $434 (i32.const 23628) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00,\00\00\004\00.\001\008\005\005\008\000\004\009\006\008\002\001\003\005\007\00e\00+\002\009\008\00") + (data $435 (i32.const 23692) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00.\00\00\002\00.\002\002\005\000\007\003\008\005\008\005\000\007\002\000\001\004\00e\00-\003\000\008\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $436 (i32.const 23772) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\004\00.\009\004\000\006\005\006\00e\00-\003\001\008\00\00\00") + (data $437 (i32.const 23820) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\009\000\006\000\008\000\001\001\005\003\004\003\003\006\000\000\00.\000\00\00\00\00\00\00\00\00\00") + (data $438 (i32.const 23884) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00*\00\00\004\007\000\008\003\005\006\000\002\004\007\001\001\005\001\002\000\000\000\00.\000\00\00\00") + (data $439 (i32.const 23948) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00*\00\00\009\004\000\009\003\004\000\000\001\002\005\006\008\002\004\008\000\000\000\00.\000\00\00\00") + (data $440 (i32.const 24012) "\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 $441 (i32.const 24044) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00-\001\00.\000\00\00\00\00\00") + (data $442 (i32.const 24076) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00-\000\00.\001\00\00\00\00\00") + (data $443 (i32.const 24108) ",\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\00.\000\00\00\00\00\00\00\00\00\00\00\00") + (data $444 (i32.const 24156) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\000\00.\000\000\000\000\000\001\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $445 (i32.const 24204) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00-\001\000\000\000\000\000\000\00.\000\00\00\00\00\00\00\00\00\00") + (data $446 (i32.const 24252) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\00-\000\00.\000\000\000\000\000\001\00\00\00\00\00\00\00\00\00\00\00") + (data $447 (i32.const 24300) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\001\000\000\000\000\000\000\000\00.\000\00\00\00\00\00\00\00\00\00") + (data $448 (i32.const 24348) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\001\00e\00-\007\00\00\00\00\00") + (data $449 (i32.const 24380) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00-\001\00e\00+\003\000\008\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $450 (i32.const 24428) "\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 $451 (i32.const 24460) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00-\001\00e\00-\003\000\008\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $452 (i32.const 24508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\001\00e\00-\003\002\003\00") + (data $453 (i32.const 24540) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00-\001\00e\00-\003\002\003\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $454 (i32.const 24588) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\18\00\00\004\002\009\004\009\006\007\002\007\002\00.\000\00\00\00\00\00") + (data $455 (i32.const 24636) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00*\00\00\001\00.\002\003\001\002\001\004\005\006\007\003\004\005\006\002\003\004\00e\00-\008\00\00\00") + (data $456 (i32.const 24700) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\"\00\00\005\005\005\005\005\005\005\005\005\00.\005\005\005\005\005\005\006\00\00\00\00\00\00\00\00\00\00\00") + (data $457 (i32.const 24764) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\000\00.\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\00\00\00\00\00\00\00\00\00") + (data $458 (i32.const 24828) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\001\002\00.\003\004\00\00\00") + (data $459 (i32.const 24860) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\000\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") + (data $460 (i32.const 24924) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00.\00\00\001\002\003\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\00.\000\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $461 (i32.const 25004) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\001\00.\002\003\004\00e\00+\002\001\00\00\00\00\00\00\00\00\00\00\00") + (data $462 (i32.const 25052) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\002\00.\007\001\008\002\008\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $463 (i32.const 25100) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\000\00.\000\002\007\001\008\002\008\00\00\00\00\00\00\00\00\00\00\00") + (data $464 (i32.const 25148) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\002\007\001\00.\008\002\008\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $465 (i32.const 25196) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\001\00.\001\00e\00+\001\002\008\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $466 (i32.const 25244) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\001\00.\001\00e\00-\006\004\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $467 (i32.const 25292) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\000\00.\000\000\000\000\003\005\006\008\009\00\00\00\00\00\00\00") + (data $468 (i32.const 25340) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00H\00e\00l\00l\00o\00 \00") + (data $469 (i32.const 25372) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00W\00o\00r\00l\00d\00\00\00") + (data $470 (i32.const 25404) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00H\00e\00l\00l\00o\00 \00W\00o\00r\00l\00d\00\00\00\00\00\00\00") + (data $471 (i32.const 25452) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00b\00a\00r\00\00\00\00\00\00\00") + (data $472 (i32.const 25484) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00\c0\00\c8\00\00\00\00\00\00\00\00\00") + (data $473 (i32.const 25516) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00\d8S\cf\91\00\00\00\00\00\00\00\00") + (data $474 (i32.const 25548) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00A\d8\0e\dfA\d81\df\00\00\00\00") + (data $475 (i32.const 25584) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\t\00\00\02A\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "getString" (func $std/string/getString)) @@ -2245,14 +2252,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 @@ -4924,26 +4934,30 @@ end unreachable ) - (func $~lib/util/number/dtoa_core (param $buffer i32) (param $value f64) (result i32) + (func $~lib/util/number/dtoa_core (param $buffer i32) (param $value f64) (param $isSingle i32) (result i32) (local $sign i32) - (local $value|3 f64) - (local $buffer|4 i32) - (local $sign|5 i32) - (local $uv i64) - (local $exp i32) - (local $sid i64) + (local $value|4 f64) + (local $buffer|5 i32) + (local $sign|6 i32) + (local $isSingle|7 i32) (local $frc i64) + (local $exp i32) + (local $uv i32) + (local $sid i32) + (local $uv|12 i64) + (local $sid|13 i64) (local $f i64) (local $e i32) - (local $frc|12 i64) - (local $exp|13 i32) + (local $isSingle|16 i32) + (local $frc|17 i64) + (local $exp|18 i32) (local $off i32) (local $m i32) (local $minExp i32) (local $dk f64) (local $k i32) (local $index i32) - (local $off|20 i32) + (local $off|25 i32) (local $frc_pow i64) (local $exp_pow i32) (local $u i64) @@ -4959,28 +4973,28 @@ (local $e1 i32) (local $e2 i32) (local $w_exp i32) - (local $u|36 i64) - (local $v|37 i64) - (local $u0|38 i64) - (local $v0|39 i64) - (local $u1|40 i64) - (local $v1|41 i64) - (local $l|42 i64) - (local $t|43 i64) - (local $w|44 i64) + (local $u|41 i64) + (local $v|42 i64) + (local $u0|43 i64) + (local $v0|44 i64) + (local $u1|45 i64) + (local $v1|46 i64) + (local $l|47 i64) + (local $t|48 i64) + (local $w|49 i64) (local $wp_frc i64) - (local $e1|46 i32) - (local $e2|47 i32) + (local $e1|51 i32) + (local $e2|52 i32) (local $wp_exp i32) - (local $u|49 i64) - (local $v|50 i64) - (local $u0|51 i64) - (local $v0|52 i64) - (local $u1|53 i64) - (local $v1|54 i64) - (local $l|55 i64) - (local $t|56 i64) - (local $w|57 i64) + (local $u|54 i64) + (local $v|55 i64) + (local $u0|56 i64) + (local $v0|57 i64) + (local $u1|58 i64) + (local $v1|59 i64) + (local $l|60 i64) + (local $t|61 i64) + (local $w|62 i64) (local $wm_frc i64) (local $delta i64) (local $len i32) @@ -4999,77 +5013,127 @@ end block $~lib/util/number/grisu2|inlined.0 (result i32) local.get $value - local.set $value|3 + local.set $value|4 local.get $buffer - local.set $buffer|4 + local.set $buffer|5 local.get $sign - local.set $sign|5 - local.get $value|3 - i64.reinterpret_f64 - local.set $uv - local.get $uv - i64.const 9218868437227405312 - i64.and - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.set $exp - local.get $uv - i64.const 4503599627370495 - i64.and - local.set $sid - local.get $exp - i32.const 0 - i32.ne - i64.extend_i32_u - i64.const 52 - i64.shl - local.get $sid - i64.add - local.set $frc - local.get $exp - i32.const 1 - local.get $exp - select - i32.const 1023 - i32.const 52 - i32.add - i32.sub - local.set $exp + local.set $sign|6 + local.get $isSingle + local.set $isSingle|7 + local.get $isSingle|7 + if + local.get $value|4 + f32.demote_f64 + i32.reinterpret_f32 + local.set $uv + local.get $uv + i32.const 2139095040 + i32.and + i32.const 23 + i32.shr_u + local.set $exp + local.get $uv + i32.const 8388607 + i32.and + local.set $sid + local.get $exp + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 23 + i64.shl + local.get $sid + i64.extend_i32_u + i64.add + local.set $frc + local.get $exp + if (result i32) + local.get $exp + else + i32.const 1 + end + i32.const 127 + i32.const 23 + i32.add + i32.sub + local.set $exp + else + local.get $value|4 + i64.reinterpret_f64 + local.set $uv|12 + local.get $uv|12 + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.set $exp + local.get $uv|12 + i64.const 4503599627370495 + i64.and + local.set $sid|13 + local.get $exp + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 52 + i64.shl + local.get $sid|13 + i64.add + local.set $frc + local.get $exp + if (result i32) + local.get $exp + else + i32.const 1 + end + i32.const 1023 + i32.const 52 + i32.add + i32.sub + local.set $exp + end local.get $frc local.set $f local.get $exp local.set $e + local.get $isSingle|7 + local.set $isSingle|16 local.get $f i64.const 1 i64.shl i64.const 1 i64.add - local.set $frc|12 + local.set $frc|17 local.get $e i32.const 1 i32.sub - local.set $exp|13 - local.get $frc|12 + local.set $exp|18 + local.get $frc|17 i64.clz i32.wrap_i64 local.set $off - local.get $frc|12 + local.get $frc|17 local.get $off i64.extend_i32_s i64.shl - local.set $frc|12 - local.get $exp|13 + local.set $frc|17 + local.get $exp|18 local.get $off i32.sub - local.set $exp|13 + local.set $exp|18 i32.const 1 local.get $f - i64.const 4503599627370496 + local.get $isSingle|16 + if (result i64) + i64.const 8388608 + else + i64.const 4503599627370496 + end i64.eq i32.add local.set $m - local.get $frc|12 + local.get $frc|17 global.set $~lib/util/number/_frc_plus local.get $f local.get $m @@ -5080,12 +5144,12 @@ local.get $e local.get $m i32.sub - local.get $exp|13 + local.get $exp|18 i32.sub i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_minus - local.get $exp|13 + local.get $exp|18 global.set $~lib/util/number/_exp global.get $~lib/util/number/_exp local.set $minExp @@ -5137,14 +5201,14 @@ local.get $frc i64.clz i32.wrap_i64 - local.set $off|20 + local.set $off|25 local.get $frc - local.get $off|20 + local.get $off|25 i64.extend_i32_s i64.shl local.set $frc local.get $exp - local.get $off|20 + local.get $off|25 i32.sub local.set $exp global.get $~lib/util/number/_frc_pow @@ -5229,63 +5293,63 @@ local.set $w_exp block $~lib/util/number/umul64f|inlined.1 (result i64) global.get $~lib/util/number/_frc_plus - local.set $u|36 + local.set $u|41 local.get $frc_pow - local.set $v|37 - local.get $u|36 + local.set $v|42 + local.get $u|41 i64.const 4294967295 i64.and - local.set $u0|38 - local.get $v|37 + local.set $u0|43 + local.get $v|42 i64.const 4294967295 i64.and - local.set $v0|39 - local.get $u|36 + local.set $v0|44 + local.get $u|41 i64.const 32 i64.shr_u - local.set $u1|40 - local.get $v|37 + local.set $u1|45 + local.get $v|42 i64.const 32 i64.shr_u - local.set $v1|41 - local.get $u0|38 - local.get $v0|39 + local.set $v1|46 + local.get $u0|43 + local.get $v0|44 i64.mul - local.set $l|42 - local.get $u1|40 - local.get $v0|39 + local.set $l|47 + local.get $u1|45 + local.get $v0|44 i64.mul - local.get $l|42 + local.get $l|47 i64.const 32 i64.shr_u i64.add - local.set $t|43 - local.get $u0|38 - local.get $v1|41 + local.set $t|48 + local.get $u0|43 + local.get $v1|46 i64.mul - local.get $t|43 + local.get $t|48 i64.const 4294967295 i64.and i64.add - local.set $w|44 - local.get $w|44 + local.set $w|49 + local.get $w|49 i64.const 2147483647 i64.add - local.set $w|44 - local.get $t|43 + local.set $w|49 + local.get $t|48 i64.const 32 i64.shr_u - local.set $t|43 - local.get $w|44 + local.set $t|48 + local.get $w|49 i64.const 32 i64.shr_u - local.set $w|44 - local.get $u1|40 - local.get $v1|41 + local.set $w|49 + local.get $u1|45 + local.get $v1|46 i64.mul - local.get $t|43 + local.get $t|48 i64.add - local.get $w|44 + local.get $w|49 i64.add br $~lib/util/number/umul64f|inlined.1 end @@ -5294,11 +5358,11 @@ local.set $wp_frc block $~lib/util/number/umul64e|inlined.1 (result i32) global.get $~lib/util/number/_exp - local.set $e1|46 + local.set $e1|51 local.get $exp_pow - local.set $e2|47 - local.get $e1|46 - local.get $e2|47 + local.set $e2|52 + local.get $e1|51 + local.get $e2|52 i32.add i32.const 64 i32.add @@ -5307,63 +5371,63 @@ local.set $wp_exp block $~lib/util/number/umul64f|inlined.2 (result i64) global.get $~lib/util/number/_frc_minus - local.set $u|49 + local.set $u|54 local.get $frc_pow - local.set $v|50 - local.get $u|49 + local.set $v|55 + local.get $u|54 i64.const 4294967295 i64.and - local.set $u0|51 - local.get $v|50 + local.set $u0|56 + local.get $v|55 i64.const 4294967295 i64.and - local.set $v0|52 - local.get $u|49 + local.set $v0|57 + local.get $u|54 i64.const 32 i64.shr_u - local.set $u1|53 - local.get $v|50 + local.set $u1|58 + local.get $v|55 i64.const 32 i64.shr_u - local.set $v1|54 - local.get $u0|51 - local.get $v0|52 + local.set $v1|59 + local.get $u0|56 + local.get $v0|57 i64.mul - local.set $l|55 - local.get $u1|53 - local.get $v0|52 + local.set $l|60 + local.get $u1|58 + local.get $v0|57 i64.mul - local.get $l|55 + local.get $l|60 i64.const 32 i64.shr_u i64.add - local.set $t|56 - local.get $u0|51 - local.get $v1|54 + local.set $t|61 + local.get $u0|56 + local.get $v1|59 i64.mul - local.get $t|56 + local.get $t|61 i64.const 4294967295 i64.and i64.add - local.set $w|57 - local.get $w|57 + local.set $w|62 + local.get $w|62 i64.const 2147483647 i64.add - local.set $w|57 - local.get $t|56 + local.set $w|62 + local.get $t|61 i64.const 32 i64.shr_u - local.set $t|56 - local.get $w|57 + local.set $t|61 + local.get $w|62 i64.const 32 i64.shr_u - local.set $w|57 - local.get $u1|53 - local.get $v1|54 + local.set $w|62 + local.get $u1|58 + local.get $v1|59 i64.mul - local.get $t|56 + local.get $t|61 i64.add - local.get $w|57 + local.get $w|62 i64.add br $~lib/util/number/umul64f|inlined.2 end @@ -5374,13 +5438,13 @@ local.get $wm_frc i64.sub local.set $delta - local.get $buffer|4 + local.get $buffer|5 local.get $w_frc local.get $w_exp local.get $wp_frc local.get $wp_exp local.get $delta - local.get $sign|5 + local.get $sign|6 call $~lib/util/number/genDigits br $~lib/util/number/grisu2|inlined.0 end @@ -5493,12 +5557,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -5571,8 +5631,8 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 58208 - i32.const 58256 + i32.const 58400 + i32.const 58448 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -11525,33 +11585,32 @@ ) (func $~lib/string/String#split (param $this i32) (param $separator i32) (param $limit i32) (result i32) (local $3 i32) - (local $4 i32) (local $length i32) (local $sepLen i32) + (local $6 i32) (local $7 i32) - (local $8 i32) (local $result i32) (local $resultStart i32) (local $i i32) (local $charStr i32) + (local $result|12 i32) (local $result|13 i32) - (local $result|14 i32) (local $end i32) (local $start i32) - (local $i|17 i32) + (local $i|16 i32) (local $len i32) (local $out i32) - (local $len|20 i32) - (local $out|21 i32) - (local $22 i32) + (local $len|19 i32) + (local $out|20 i32) + (local $21 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 36 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 40 + i32.const 36 memory.fill local.get $limit i32.eqz @@ -11561,12 +11620,12 @@ i32.const 5 i32.const 0 call $~lib/rt/__newArray - local.set $22 + local.set $21 global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 36 i32.add global.set $~lib/memory/__stack_pointer - local.get $22 + local.get $21 return end local.get $separator @@ -11581,38 +11640,33 @@ call $~lib/rt/__newArray local.tee $3 i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.load offset=4 - local.tee $4 - i32.store offset=4 local.get $3 i32.const 0 local.get $this call $~lib/array/Array<~lib/string/String>#__set local.get $3 - local.set $22 + local.set $21 global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 36 i32.add global.set $~lib/memory/__stack_pointer - local.get $22 + local.get $21 return end local.get $this - local.set $22 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 + local.get $21 + i32.store offset=4 + local.get $21 call $~lib/string/String#get:length local.set $length local.get $separator - local.set $22 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 + local.get $21 + i32.store offset=4 + local.get $21 call $~lib/string/String#get:length local.set $sepLen local.get $limit @@ -11633,20 +11687,20 @@ i32.const 5 i32.const 0 call $~lib/rt/__newArray - local.set $22 + local.set $21 global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 36 i32.add global.set $~lib/memory/__stack_pointer - local.get $22 + local.get $21 return end local.get $length - local.tee $7 + local.tee $6 local.get $limit - local.tee $8 + local.tee $7 + local.get $6 local.get $7 - local.get $8 i32.lt_s select local.set $length @@ -11657,13 +11711,13 @@ i32.const 0 call $~lib/rt/__newArray local.tee $result - i32.store offset=12 + i32.store offset=8 local.get $result - local.set $22 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 + local.get $21 + i32.store offset=4 + local.get $21 call $~lib/array/Array<~lib/string/String>#get:dataStart local.set $resultStart i32.const 0 @@ -11678,7 +11732,7 @@ i32.const 2 call $~lib/rt/itcms/__new local.tee $charStr - i32.store offset=16 + i32.store offset=12 local.get $charStr local.get $this local.get $i @@ -11706,12 +11760,12 @@ end end local.get $result - local.set $22 + local.set $21 global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 36 i32.add global.set $~lib/memory/__stack_pointer - local.get $22 + local.get $21 return else local.get $length @@ -11723,24 +11777,24 @@ i32.const 5 i32.const 0 call $~lib/rt/__newArray - local.tee $result|13 - i32.store offset=20 - local.get $result|13 - local.set $22 + local.tee $result|12 + i32.store offset=16 + local.get $result|12 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 + local.get $21 + i32.store offset=4 + local.get $21 call $~lib/array/Array<~lib/string/String>#get:dataStart i32.const 688 i32.store - local.get $result|13 - local.set $22 + local.get $result|12 + local.set $21 global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 36 i32.add global.set $~lib/memory/__stack_pointer - local.get $22 + local.get $21 return end end @@ -11750,27 +11804,27 @@ i32.const 5 i32.const 0 call $~lib/rt/__newArray - local.tee $result|14 - i32.store offset=24 + local.tee $result|13 + i32.store offset=20 i32.const 0 local.set $end i32.const 0 local.set $start i32.const 0 - local.set $i|17 + local.set $i|16 loop $while-continue|1 local.get $this - local.set $22 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 + local.get $21 + i32.store offset=4 + local.get $21 local.get $separator - local.set $22 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=28 - local.get $22 + local.get $21 + i32.store offset=24 + local.get $21 local.get $start call $~lib/string/String#indexOf local.tee $end @@ -11792,7 +11846,7 @@ i32.const 2 call $~lib/rt/itcms/__new local.tee $out - i32.store offset=32 + i32.store offset=28 local.get $out local.get $this local.get $start @@ -11803,50 +11857,45 @@ i32.const 1 i32.shl memory.copy - local.get $result|14 - local.set $22 + local.get $result|13 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 + local.get $21 + i32.store offset=4 + local.get $21 local.get $out - local.set $22 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=28 - local.get $22 + local.get $21 + i32.store offset=24 + local.get $21 call $~lib/array/Array<~lib/string/String>#push drop else - local.get $result|14 - local.set $22 + local.get $result|13 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 + local.get $21 + i32.store offset=4 + local.get $21 i32.const 688 - local.set $22 - global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=28 - local.get $22 call $~lib/array/Array<~lib/string/String>#push drop end - local.get $i|17 + local.get $i|16 i32.const 1 i32.add - local.tee $i|17 + local.tee $i|16 local.get $limit i32.eq if - local.get $result|14 - local.set $22 + local.get $result|13 + local.set $21 global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 36 i32.add global.set $~lib/memory/__stack_pointer - local.get $22 + local.get $21 return end local.get $end @@ -11859,92 +11908,87 @@ local.get $start i32.eqz if - local.get $result|14 - local.set $22 + local.get $result|13 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 + local.get $21 + i32.store offset=4 + local.get $21 local.get $this - local.set $22 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=28 - local.get $22 + local.get $21 + i32.store offset=24 + local.get $21 call $~lib/array/Array<~lib/string/String>#push drop - local.get $result|14 - local.set $22 + local.get $result|13 + local.set $21 global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 36 i32.add global.set $~lib/memory/__stack_pointer - local.get $22 + local.get $21 return end local.get $length local.get $start i32.sub - local.set $len|20 - local.get $len|20 + local.set $len|19 + local.get $len|19 i32.const 0 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $len|20 + local.get $len|19 i32.const 1 i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $out|21 - i32.store offset=36 - local.get $out|21 + local.tee $out|20 + i32.store offset=32 + local.get $out|20 local.get $this local.get $start i32.const 1 i32.shl i32.add - local.get $len|20 + local.get $len|19 i32.const 1 i32.shl memory.copy - local.get $result|14 - local.set $22 + local.get $result|13 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 - local.get $out|21 - local.set $22 + local.get $21 + i32.store offset=4 + local.get $21 + local.get $out|20 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=28 - local.get $22 + local.get $21 + i32.store offset=24 + local.get $21 call $~lib/array/Array<~lib/string/String>#push drop else - local.get $result|14 - local.set $22 + local.get $result|13 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 + local.get $21 + i32.store offset=4 + local.get $21 i32.const 688 - local.set $22 - global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=28 - local.get $22 call $~lib/array/Array<~lib/string/String>#push drop end - local.get $result|14 - local.set $22 + local.get $result|13 + local.set $21 global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 36 i32.add global.set $~lib/memory/__stack_pointer - local.get $22 + local.get $21 return ) (func $~lib/string/String#split@varargs (param $this i32) (param $separator i32) (param $limit i32) (result i32) @@ -12096,26 +12140,26 @@ (local $7 i32) (local $8 i32) (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) + (local $10 f64) + (local $11 f64) + (local $12 f64) (local $13 f64) (local $14 f64) (local $15 f64) (local $16 f64) - (local $17 f64) + (local $17 f32) (local $18 f64) - (local $19 f64) + (local $19 i32) (local $20 f32) - (local $21 f64) - (local $22 i32) - (local $23 f32) + (local $21 i32) + (local $22 f64) + (local $23 i32) (local $24 i32) - (local $25 f64) + (local $25 i32) (local $26 i32) - (local $27 i32) - (local $28 i32) - (local $29 i32) + (local $27 f64) + (local $28 f64) + (local $29 f64) (local $30 f64) (local $31 f64) (local $32 f64) @@ -12134,22 +12178,19 @@ (local $45 f64) (local $46 f64) (local $47 f64) - (local $48 f64) - (local $49 f64) - (local $50 f64) + (local $48 i32) + (local $49 i32) + (local $50 i32) (local $51 i32) (local $52 i32) - (local $53 i32) - (local $54 i32) - (local $55 i32) global.get $~lib/memory/__stack_pointer - i32.const 96 + i32.const 76 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 96 + i32.const 76 memory.fill global.get $std/string/str i32.const 32 @@ -12164,17 +12205,7 @@ unreachable end i32.const 144 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 144 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -12186,17 +12217,7 @@ unreachable end i32.const 176 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 176 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -12208,17 +12229,7 @@ unreachable end i32.const 208 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 208 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -12230,11 +12241,11 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/String#get:length i32.const 16 i32.eq @@ -12248,11 +12259,11 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 0 call $~lib/string/String#charCodeAt i32.const 104 @@ -12267,11 +12278,11 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1 call $~lib/string/String#codePointAt i32.const 105 @@ -12303,31 +12314,31 @@ call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 15 call $~lib/string/String#at - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 15 call $~lib/string/String#charAt - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -12339,39 +12350,39 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const -1 call $~lib/string/String#at - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 call $~lib/string/String#get:length i32.const 1 i32.sub call $~lib/string/String#charAt - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -12383,32 +12394,27 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const 0 global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 + local.get $52 + i32.store offset=8 + local.get $52 call $~lib/string/String#get:length i32.sub call $~lib/string/String#at - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 720 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -12420,11 +12426,6 @@ unreachable end i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/String.__not i32.eqz i32.const 0 @@ -12439,11 +12440,6 @@ unreachable end i32.const 752 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/String.__not i32.eqz i32.const 1 @@ -12458,11 +12454,6 @@ unreachable end i32.const 784 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/String.__not i32.eqz i32.const 1 @@ -12481,17 +12472,12 @@ global.set $~argumentsLength i32.const 0 call $~lib/string/String.fromCharCode@varargs - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 752 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -12507,17 +12493,12 @@ global.set $~argumentsLength i32.const 0 call $~lib/string/String.fromCharCode@varargs - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 816 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -12533,17 +12514,12 @@ global.set $~argumentsLength i32.const 0 call $~lib/string/String.fromCharCode@varargs - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 848 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -12561,17 +12537,12 @@ global.set $~argumentsLength i32.const 0 call $~lib/string/String.fromCharCode@varargs - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 848 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -12585,17 +12556,12 @@ i32.const 55296 i32.const 57088 call $~lib/string/String.fromCharCode - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 880 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -12611,23 +12577,18 @@ i32.const 4 i32.const 912 call $~lib/rt/__newArray - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 call $~lib/string/String.fromCharCodes - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 944 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -12643,23 +12604,18 @@ i32.const 4 i32.const 976 call $~lib/rt/__newArray - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 call $~lib/string/String.fromCharCodes - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1008 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -12675,23 +12631,18 @@ i32.const 4 i32.const 1040 call $~lib/rt/__newArray - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 call $~lib/string/String.fromCharCodes - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1088 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -12704,17 +12655,12 @@ end i32.const 0 call $~lib/string/String.fromCodePoint - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 752 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -12727,17 +12673,12 @@ end i32.const 54 call $~lib/string/String.fromCodePoint - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 848 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -12750,17 +12691,12 @@ end i32.const 119558 call $~lib/string/String.fromCodePoint - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1120 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -12772,17 +12708,12 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1152 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 i32.const 0 call $~lib/string/String#startsWith i32.eqz @@ -12795,17 +12726,12 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1184 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 i32.const 1 global.set $~argumentsLength i32.const 0 @@ -12820,17 +12746,12 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1216 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 i32.const 0 call $~lib/string/String#includes i32.eqz @@ -12843,30 +12764,25 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 0 i32.const 1248 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 call $~lib/string/String#padStart - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -12878,30 +12794,25 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 15 i32.const 1248 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 call $~lib/string/String#padStart - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -12913,30 +12824,15 @@ unreachable end i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 3 i32.const 1248 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 call $~lib/string/String#padStart - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1280 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -12948,30 +12844,15 @@ unreachable end i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 10 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 call $~lib/string/String#padStart - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -12983,30 +12864,15 @@ unreachable end i32.const 784 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 100 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 call $~lib/string/String#padStart - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 784 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -13018,30 +12884,15 @@ unreachable end i32.const 1312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 5 i32.const 1248 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 call $~lib/string/String#padStart - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1344 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -13053,30 +12904,15 @@ unreachable end i32.const 1312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 6 i32.const 1376 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 call $~lib/string/String#padStart - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1408 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -13088,30 +12924,15 @@ unreachable end i32.const 1312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 8 i32.const 1376 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 call $~lib/string/String#padStart - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1440 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -13123,30 +12944,25 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 0 i32.const 1248 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 call $~lib/string/String#padEnd - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -13158,30 +12974,25 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 15 i32.const 1248 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 call $~lib/string/String#padEnd - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -13193,30 +13004,15 @@ unreachable end i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 3 i32.const 1248 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 call $~lib/string/String#padEnd - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1280 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -13228,30 +13024,15 @@ unreachable end i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 10 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 call $~lib/string/String#padEnd - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -13263,30 +13044,15 @@ unreachable end i32.const 784 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 100 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 call $~lib/string/String#padEnd - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 784 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -13298,30 +13064,15 @@ unreachable end i32.const 1312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 5 i32.const 1248 - local.set $55 + call $~lib/string/String#padEnd + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 - call $~lib/string/String#padEnd - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1488 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -13333,30 +13084,15 @@ unreachable end i32.const 1312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 6 i32.const 1312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 call $~lib/string/String#padEnd - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1520 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -13368,30 +13104,15 @@ unreachable end i32.const 1312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 8 i32.const 1312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 call $~lib/string/String#padEnd - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1552 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -13403,17 +13124,7 @@ unreachable end i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 i32.const 0 call $~lib/string/String#indexOf i32.const 0 @@ -13428,17 +13139,7 @@ unreachable end i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 1152 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 i32.const 0 call $~lib/string/String#indexOf i32.const -1 @@ -13453,17 +13154,7 @@ unreachable end i32.const 784 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 784 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 i32.const 0 call $~lib/string/String#indexOf i32.const 0 @@ -13478,17 +13169,17 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 i32.const 0 call $~lib/string/String#indexOf i32.const 0 @@ -13503,17 +13194,12 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 i32.const 0 call $~lib/string/String#indexOf i32.const 0 @@ -13528,17 +13214,12 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1600 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 i32.const 0 call $~lib/string/String#indexOf i32.const 2 @@ -13553,17 +13234,12 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1632 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 i32.const 0 call $~lib/string/String#indexOf i32.const -1 @@ -13578,17 +13254,12 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1600 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 i32.const 2 call $~lib/string/String#indexOf i32.const 2 @@ -13603,17 +13274,12 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1600 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 i32.const 3 call $~lib/string/String#indexOf i32.const -1 @@ -13628,17 +13294,12 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1664 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 i32.const -1 call $~lib/string/String#indexOf i32.const 2 @@ -13653,17 +13314,7 @@ unreachable end i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 i32.const 1 global.set $~argumentsLength i32.const 0 @@ -13680,17 +13331,7 @@ unreachable end i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 1152 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 i32.const 1 global.set $~argumentsLength i32.const 0 @@ -13707,27 +13348,22 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/string/String#lastIndexOf@varargs global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/String#get:length i32.eq i32.eqz @@ -13740,17 +13376,12 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1600 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 i32.const 1 global.set $~argumentsLength i32.const 0 @@ -13767,17 +13398,12 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1632 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 i32.const 1 global.set $~argumentsLength i32.const 0 @@ -13794,17 +13420,12 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1696 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 i32.const 1 global.set $~argumentsLength i32.const 0 @@ -13821,17 +13442,12 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1600 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 i32.const 2 call $~lib/string/String#lastIndexOf i32.const 2 @@ -13846,17 +13462,12 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1600 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 i32.const 3 call $~lib/string/String#lastIndexOf i32.const 2 @@ -13871,17 +13482,12 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1664 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 i32.const -1 call $~lib/string/String#lastIndexOf i32.const -1 @@ -13896,17 +13502,12 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1728 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 i32.const 0 call $~lib/string/String#lastIndexOf i32.const -1 @@ -13921,17 +13522,12 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1152 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 i32.const 0 call $~lib/string/String#lastIndexOf i32.const 0 @@ -13946,17 +13542,7 @@ unreachable end i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String#localeCompare i32.const 0 i32.eq @@ -13970,17 +13556,7 @@ unreachable end i32.const 784 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String#localeCompare i32.const 1 i32.eq @@ -13994,17 +13570,7 @@ unreachable end i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 784 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String#localeCompare i32.const -1 i32.eq @@ -14018,17 +13584,7 @@ unreachable end i32.const 1760 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 1760 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String#localeCompare i32.const 0 i32.eq @@ -14042,17 +13598,7 @@ unreachable end i32.const 1312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 1792 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String#localeCompare i32.const -1 i32.eq @@ -14066,17 +13612,7 @@ unreachable end i32.const 1312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 1824 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String#localeCompare i32.const -1 i32.eq @@ -14090,17 +13626,7 @@ unreachable end i32.const 1792 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 1312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String#localeCompare i32.const 1 i32.eq @@ -14114,17 +13640,7 @@ unreachable end i32.const 1856 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 1312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String#localeCompare i32.const 1 i32.eq @@ -14138,17 +13654,7 @@ unreachable end i32.const 1888 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 1312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String#localeCompare i32.const 1 i32.eq @@ -14162,17 +13668,7 @@ unreachable end i32.const 1856 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 1920 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String#localeCompare i32.const 1 i32.eq @@ -14186,17 +13682,7 @@ unreachable end i32.const 1312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 1888 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String#localeCompare i32.const -1 i32.eq @@ -14210,17 +13696,7 @@ unreachable end i32.const 1920 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 1856 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String#localeCompare i32.const -1 i32.eq @@ -14234,17 +13710,7 @@ unreachable end i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 1280 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String#localeCompare i32.const -1 i32.eq @@ -14258,17 +13724,7 @@ unreachable end i32.const 752 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String#localeCompare i32.const 1 i32.eq @@ -14282,23 +13738,13 @@ unreachable end i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 call $~lib/string/String#trimStart - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -14310,23 +13756,13 @@ unreachable end i32.const 1952 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 call $~lib/string/String#trimStart - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1952 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -14338,23 +13774,13 @@ unreachable end i32.const 1984 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 call $~lib/string/String#trimStart - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 2032 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -14366,23 +13792,13 @@ unreachable end i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 call $~lib/string/String#trimEnd - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -14394,23 +13810,13 @@ unreachable end i32.const 1952 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 call $~lib/string/String#trimEnd - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1952 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -14422,23 +13828,13 @@ unreachable end i32.const 1984 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 call $~lib/string/String#trimEnd - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 2080 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -14450,23 +13846,13 @@ unreachable end i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 call $~lib/string/String#trim - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -14478,23 +13864,13 @@ unreachable end i32.const 1952 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 call $~lib/string/String#trim - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1952 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -14506,23 +13882,13 @@ unreachable end i32.const 1984 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 call $~lib/string/String#trim - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -14536,14 +13902,14 @@ block $~lib/builtins/bool.parse|inlined.0 (result i32) global.get $~lib/memory/__stack_pointer i32.const 2128 - local.tee $6 + local.tee $3 i32.store offset=16 - local.get $6 - local.set $55 + local.get $3 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/util/string/strtob br $~lib/builtins/bool.parse|inlined.0 end @@ -14563,14 +13929,14 @@ block $~lib/builtins/bool.parse|inlined.1 (result i32) global.get $~lib/memory/__stack_pointer i32.const 2176 - local.tee $7 + local.tee $4 i32.store offset=20 - local.get $7 - local.set $55 + local.get $4 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/util/string/strtob br $~lib/builtins/bool.parse|inlined.1 end @@ -14590,14 +13956,14 @@ block $~lib/builtins/bool.parse|inlined.2 (result i32) global.get $~lib/memory/__stack_pointer i32.const 2224 - local.tee $8 + local.tee $5 i32.store offset=24 - local.get $8 - local.set $55 + local.get $5 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/util/string/strtob br $~lib/builtins/bool.parse|inlined.2 end @@ -14617,14 +13983,14 @@ block $~lib/builtins/bool.parse|inlined.3 (result i32) global.get $~lib/memory/__stack_pointer i32.const 688 - local.tee $9 + local.tee $6 i32.store offset=28 - local.get $9 - local.set $55 + local.get $6 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/util/string/strtob br $~lib/builtins/bool.parse|inlined.3 end @@ -14644,14 +14010,14 @@ block $~lib/builtins/bool.parse|inlined.4 (result i32) global.get $~lib/memory/__stack_pointer i32.const 2272 - local.tee $10 + local.tee $7 i32.store offset=32 - local.get $10 - local.set $55 + local.get $7 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/util/string/strtob br $~lib/builtins/bool.parse|inlined.4 end @@ -14671,14 +14037,14 @@ block $~lib/builtins/bool.parse|inlined.5 (result i32) global.get $~lib/memory/__stack_pointer i32.const 2304 - local.tee $11 + local.tee $8 i32.store offset=36 - local.get $11 - local.set $55 + local.get $8 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/util/string/strtob br $~lib/builtins/bool.parse|inlined.5 end @@ -14698,14 +14064,14 @@ block $~lib/builtins/bool.parse|inlined.6 (result i32) global.get $~lib/memory/__stack_pointer i32.const 2336 - local.tee $12 + local.tee $9 i32.store offset=40 - local.get $12 - local.set $55 + local.get $9 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/util/string/strtob br $~lib/builtins/bool.parse|inlined.6 end @@ -14723,11 +14089,6 @@ unreachable end i32.const 2368 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 0 call $~lib/string/parseInt f64.const 0 @@ -14742,11 +14103,6 @@ unreachable end i32.const 2400 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 0 call $~lib/string/parseInt f64.const 0 @@ -14761,11 +14117,6 @@ unreachable end i32.const 2432 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 0 call $~lib/string/parseInt f64.const 1 @@ -14780,11 +14131,6 @@ unreachable end i32.const 2464 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 0 call $~lib/string/parseInt f64.const 1 @@ -14799,11 +14145,6 @@ unreachable end i32.const 2496 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 0 call $~lib/string/parseInt f64.const 5 @@ -14818,11 +14159,6 @@ unreachable end i32.const 2528 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 0 call $~lib/string/parseInt f64.const 455 @@ -14837,11 +14173,6 @@ unreachable end i32.const 2560 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 0 call $~lib/string/parseInt f64.const 3855 @@ -14856,11 +14187,6 @@ unreachable end i32.const 2592 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 0 call $~lib/string/parseInt f64.const 3855 @@ -14875,11 +14201,6 @@ unreachable end i32.const 2624 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 0 call $~lib/string/parseInt f64.const 11 @@ -14894,11 +14215,6 @@ unreachable end i32.const 2656 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 0 call $~lib/string/parseInt f64.const 1 @@ -14913,11 +14229,6 @@ unreachable end i32.const 2688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 0 call $~lib/string/parseInt f64.const -123 @@ -14932,11 +14243,6 @@ unreachable end i32.const 2720 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 0 call $~lib/string/parseInt f64.const 123 @@ -14951,11 +14257,6 @@ unreachable end i32.const 2752 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 0 call $~lib/string/parseInt f64.const -12 @@ -14970,11 +14271,6 @@ unreachable end i32.const 2368 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 0 call $~lib/string/parseInt f64.const 0 @@ -14989,11 +14285,6 @@ unreachable end i32.const 2784 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 0 call $~lib/string/parseInt f64.const 0 @@ -15008,11 +14299,6 @@ unreachable end i32.const 2816 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 16 call $~lib/string/parseInt f64.const 2833 @@ -15027,11 +14313,6 @@ unreachable end i32.const 2848 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 0 call $~lib/string/parseInt f64.const 1 @@ -15046,11 +14327,6 @@ unreachable end i32.const 2880 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 0 call $~lib/string/parseInt f64.const 1 @@ -15065,11 +14341,6 @@ unreachable end i32.const 2912 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 0 call $~lib/string/parseInt f64.const 1 @@ -15085,15 +14356,10 @@ end block $~lib/math/NativeMath.signbit|inlined.0 (result i32) i32.const 2944 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 0 call $~lib/string/parseInt - local.set $13 - local.get $13 + local.set $10 + local.get $10 i64.reinterpret_f64 i64.const 63 i64.shr_u @@ -15113,19 +14379,9 @@ unreachable end i32.const 2976 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 0 call $~lib/string/parseInt i32.const 3024 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 16 call $~lib/string/parseInt f64.eq @@ -15139,11 +14395,6 @@ unreachable end i32.const 3056 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 0 call $~lib/string/parseInt f64.const 36893488147419103232 @@ -15158,11 +14409,6 @@ unreachable end i32.const 3056 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 13 call $~lib/string/parseInt f64.const 5135857308667095285760 @@ -15177,11 +14423,6 @@ unreachable end i32.const 3120 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 10 call $~lib/string/parseInt f64.const -1.e+24 @@ -15196,11 +14437,6 @@ unreachable end i32.const 3200 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 16 call $~lib/string/parseInt f64.const 75557863725914323419136 @@ -15215,11 +14451,6 @@ unreachable end i32.const 3264 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 0 call $~lib/string/parseInt f64.const 1 @@ -15234,11 +14465,6 @@ unreachable end i32.const 3296 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 0 call $~lib/string/parseInt f64.const 2 @@ -15253,11 +14479,6 @@ unreachable end i32.const 3344 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 0 call $~lib/string/parseInt f64.const 1 @@ -15272,11 +14493,6 @@ unreachable end i32.const 3376 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 0 call $~lib/string/parseInt f64.const 2 @@ -15291,11 +14507,6 @@ unreachable end i32.const 3424 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 0 call $~lib/string/parseInt f64.const 0 @@ -15310,11 +14521,6 @@ unreachable end i32.const 3456 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 0 call $~lib/string/parseInt f64.const 1 @@ -15329,11 +14535,6 @@ unreachable end i32.const 3488 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 0 call $~lib/string/parseInt f64.const 0 @@ -15348,15 +14549,10 @@ unreachable end i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 0 call $~lib/string/parseInt - local.tee $14 - local.get $14 + local.tee $11 + local.get $11 f64.ne i32.eqz if @@ -15368,15 +14564,10 @@ unreachable end i32.const 3536 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 0 call $~lib/string/parseInt - local.tee $15 - local.get $15 + local.tee $12 + local.get $12 f64.ne i32.eqz if @@ -15388,15 +14579,10 @@ unreachable end i32.const 3568 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 0 call $~lib/string/parseInt - local.tee $16 - local.get $16 + local.tee $13 + local.get $13 f64.ne i32.eqz if @@ -15408,15 +14594,10 @@ unreachable end i32.const 1376 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 37 call $~lib/string/parseInt - local.tee $17 - local.get $17 + local.tee $14 + local.get $14 f64.ne i32.eqz if @@ -15428,15 +14609,10 @@ unreachable end i32.const 3600 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 0 call $~lib/string/parseInt - local.tee $18 - local.get $18 + local.tee $15 + local.get $15 f64.ne i32.eqz if @@ -15448,15 +14624,10 @@ unreachable end i32.const 3632 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 0 call $~lib/string/parseInt - local.tee $19 - local.get $19 + local.tee $16 + local.get $16 f64.ne i32.eqz if @@ -15468,14 +14639,9 @@ unreachable end i32.const 3632 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/number/F32.parseFloat - local.tee $20 - local.get $20 + local.tee $17 + local.get $17 f32.ne i32.eqz if @@ -15487,14 +14653,9 @@ unreachable end i32.const 3632 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/number/F64.parseFloat - local.tee $21 - local.get $21 + local.tee $18 + local.get $18 f64.ne i32.eqz if @@ -15508,20 +14669,20 @@ block $~lib/builtins/f32.parse|inlined.0 (result f32) global.get $~lib/memory/__stack_pointer i32.const 3632 - local.tee $22 + local.tee $19 i32.store offset=44 - local.get $22 - local.set $55 + local.get $19 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/util/string/strtod f32.demote_f64 br $~lib/builtins/f32.parse|inlined.0 end - local.tee $23 - local.get $23 + local.tee $20 + local.get $20 f32.ne i32.eqz if @@ -15535,19 +14696,19 @@ block $~lib/builtins/f64.parse|inlined.0 (result f64) global.get $~lib/memory/__stack_pointer i32.const 3632 - local.tee $24 + local.tee $21 i32.store offset=48 - local.get $24 - local.set $55 + local.get $21 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/util/string/strtod br $~lib/builtins/f64.parse|inlined.0 end - local.tee $25 - local.get $25 + local.tee $22 + local.get $22 f64.ne i32.eqz if @@ -15559,11 +14720,6 @@ unreachable end i32.const 3856 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 0 call $~lib/number/I32.parseInt global.get $~lib/number/I32.MAX_VALUE @@ -15580,17 +14736,17 @@ block $~lib/builtins/i32.parse|inlined.0 (result i32) global.get $~lib/memory/__stack_pointer i32.const 3856 - local.tee $26 + local.tee $23 i32.store offset=52 i32.const 0 - local.set $27 - local.get $26 - local.set $55 + local.set $24 + local.get $23 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 - local.get $27 + local.get $52 + local.get $24 call $~lib/util/string/strtol br $~lib/builtins/i32.parse|inlined.0 end @@ -15606,11 +14762,6 @@ unreachable end i32.const 3904 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 0 call $~lib/number/I64.parseInt global.get $~lib/number/I64.MAX_VALUE @@ -15627,17 +14778,17 @@ block $~lib/builtins/i64.parse|inlined.0 (result i64) global.get $~lib/memory/__stack_pointer i32.const 3904 - local.tee $28 + local.tee $25 i32.store offset=56 i32.const 0 - local.set $29 - local.get $28 - local.set $55 + local.set $26 + local.get $25 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 - local.get $29 + local.get $52 + local.get $26 call $~lib/util/string/strtol br $~lib/builtins/i64.parse|inlined.0 end @@ -15653,11 +14804,6 @@ unreachable end i32.const 2368 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -15671,11 +14817,6 @@ unreachable end i32.const 2432 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 1 f64.eq @@ -15689,11 +14830,6 @@ unreachable end i32.const 3968 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 1 f64.eq @@ -15707,11 +14843,6 @@ unreachable end i32.const 4000 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 1 f64.eq @@ -15725,11 +14856,6 @@ unreachable end i32.const 4032 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 1e-05 f64.eq @@ -15743,11 +14869,6 @@ unreachable end i32.const 4064 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const -1e-05 f64.eq @@ -15761,11 +14882,6 @@ unreachable end i32.const 4096 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const -3e-23 f64.eq @@ -15779,11 +14895,6 @@ unreachable end i32.const 4144 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 3e21 f64.eq @@ -15797,11 +14908,6 @@ unreachable end i32.const 4192 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 0.1 f64.eq @@ -15815,11 +14921,6 @@ unreachable end i32.const 4224 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 0.1 f64.eq @@ -15833,11 +14934,6 @@ unreachable end i32.const 4256 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 0.1 f64.eq @@ -15851,11 +14947,6 @@ unreachable end i32.const 4288 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 0.25 f64.eq @@ -15869,11 +14960,6 @@ unreachable end i32.const 4320 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 1e3 f64.eq @@ -15887,11 +14973,6 @@ unreachable end i32.const 4352 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 1e-10 f64.eq @@ -15905,11 +14986,6 @@ unreachable end i32.const 4400 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 1e-30 f64.eq @@ -15923,11 +14999,6 @@ unreachable end i32.const 4448 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 1e-323 f64.eq @@ -15941,11 +15012,6 @@ unreachable end i32.const 4496 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -15959,11 +15025,6 @@ unreachable end i32.const 4544 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 1.e+308 f64.eq @@ -15977,11 +15038,6 @@ unreachable end i32.const 4576 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const inf f64.eq @@ -15995,14 +15051,9 @@ unreachable end i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat - local.tee $30 - local.get $30 + local.tee $27 + local.get $27 f64.ne i32.eqz if @@ -16014,11 +15065,6 @@ unreachable end i32.const 4608 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 0.1 f64.eq @@ -16032,11 +15078,6 @@ unreachable end i32.const 4656 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 1e-10 f64.eq @@ -16050,11 +15091,6 @@ unreachable end i32.const 4704 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 10 f64.eq @@ -16068,11 +15104,6 @@ unreachable end i32.const 4752 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 1 f64.eq @@ -16086,11 +15117,6 @@ unreachable end i32.const 4784 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 1 f64.eq @@ -16104,11 +15130,6 @@ unreachable end i32.const 4816 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 10 f64.eq @@ -16122,11 +15143,6 @@ unreachable end i32.const 4864 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 123456789 f64.eq @@ -16140,11 +15156,6 @@ unreachable end i32.const 4912 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 1 f64.eq @@ -16158,11 +15169,6 @@ unreachable end i32.const 4960 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 1e-60 f64.eq @@ -16176,11 +15182,6 @@ unreachable end i32.const 4992 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 1.e+60 f64.eq @@ -16194,11 +15195,6 @@ unreachable end i32.const 5024 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 123.4 f64.eq @@ -16212,11 +15208,6 @@ unreachable end i32.const 5056 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 1 f64.eq @@ -16230,11 +15221,6 @@ unreachable end i32.const 5088 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const -1.1 f64.eq @@ -16248,11 +15234,6 @@ unreachable end i32.const 5136 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 10 f64.eq @@ -16266,11 +15247,6 @@ unreachable end i32.const 5184 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 10 f64.eq @@ -16284,11 +15260,6 @@ unreachable end i32.const 5232 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 0.022 f64.eq @@ -16302,11 +15273,6 @@ unreachable end i32.const 5280 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 11 f64.eq @@ -16320,11 +15286,6 @@ unreachable end i32.const 2784 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -16338,11 +15299,6 @@ unreachable end i32.const 5312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -16356,11 +15312,6 @@ unreachable end i32.const 5344 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -16374,11 +15325,6 @@ unreachable end i32.const 5376 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 1.1 f64.eq @@ -16392,11 +15338,6 @@ unreachable end i32.const 5408 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const -1.1 f64.eq @@ -16410,11 +15351,6 @@ unreachable end i32.const 5440 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const -1.1 f64.eq @@ -16428,11 +15364,6 @@ unreachable end i32.const 5472 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const -1.1 f64.eq @@ -16446,11 +15377,6 @@ unreachable end i32.const 5504 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const -1.1 f64.eq @@ -16464,11 +15390,6 @@ unreachable end i32.const 5536 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -16482,11 +15403,6 @@ unreachable end i32.const 5568 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -16500,11 +15416,6 @@ unreachable end i32.const 5600 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 1 f64.eq @@ -16518,11 +15429,6 @@ unreachable end i32.const 5632 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -16536,11 +15442,6 @@ unreachable end i32.const 5664 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -16554,11 +15455,6 @@ unreachable end i32.const 5696 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 10 f64.eq @@ -16572,11 +15468,6 @@ unreachable end i32.const 5728 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 10 f64.eq @@ -16590,11 +15481,6 @@ unreachable end i32.const 5776 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -16608,11 +15494,6 @@ unreachable end i32.const 5808 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 1 f64.eq @@ -16626,11 +15507,6 @@ unreachable end i32.const 5840 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 0.1 f64.eq @@ -16644,11 +15520,6 @@ unreachable end i32.const 5872 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 1 f64.eq @@ -16662,11 +15533,6 @@ unreachable end i32.const 5904 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 10 f64.eq @@ -16680,11 +15546,6 @@ unreachable end i32.const 5936 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 1 f64.eq @@ -16698,11 +15559,6 @@ unreachable end i32.const 5968 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 0.1 f64.eq @@ -16716,11 +15572,6 @@ unreachable end i32.const 6000 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 0.01 f64.eq @@ -16734,11 +15585,6 @@ unreachable end i32.const 6048 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -16752,11 +15598,6 @@ unreachable end i32.const 6080 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -16770,11 +15611,6 @@ unreachable end i32.const 6112 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -16788,11 +15624,6 @@ unreachable end i32.const 6144 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 0.1 f64.eq @@ -16806,11 +15637,6 @@ unreachable end i32.const 6176 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -16824,11 +15650,6 @@ unreachable end i32.const 6208 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -16842,11 +15663,6 @@ unreachable end i32.const 6240 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 1 f64.eq @@ -16860,11 +15676,6 @@ unreachable end i32.const 6272 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 0.1 f64.eq @@ -16878,11 +15689,6 @@ unreachable end i32.const 6304 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -16896,11 +15702,6 @@ unreachable end i32.const 6336 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 0 call $~lib/object/Object.is @@ -16916,11 +15717,6 @@ unreachable end i32.const 6368 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const -0 call $~lib/object/Object.is @@ -16936,11 +15732,6 @@ unreachable end i32.const 6400 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 0 call $~lib/object/Object.is @@ -16956,11 +15747,6 @@ unreachable end i32.const 2944 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const -0 call $~lib/object/Object.is @@ -16976,11 +15762,6 @@ unreachable end i32.const 6432 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const -0 call $~lib/object/Object.is @@ -16996,14 +15777,9 @@ unreachable end i32.const 3568 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat - local.tee $31 - local.get $31 + local.tee $28 + local.get $28 f64.ne i32.eqz if @@ -17015,14 +15791,9 @@ unreachable end i32.const 3536 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat - local.tee $32 - local.get $32 + local.tee $29 + local.get $29 f64.ne i32.eqz if @@ -17034,14 +15805,9 @@ unreachable end i32.const 6480 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat - local.tee $33 - local.get $33 + local.tee $30 + local.get $30 f64.ne i32.eqz if @@ -17053,14 +15819,9 @@ unreachable end i32.const 6512 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat - local.tee $34 - local.get $34 + local.tee $31 + local.get $31 f64.ne i32.eqz if @@ -17072,14 +15833,9 @@ unreachable end i32.const 6544 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat - local.tee $35 - local.get $35 + local.tee $32 + local.get $32 f64.ne i32.eqz if @@ -17091,14 +15847,9 @@ unreachable end i32.const 6576 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat - local.tee $36 - local.get $36 + local.tee $33 + local.get $33 f64.ne i32.eqz if @@ -17110,14 +15861,9 @@ unreachable end i32.const 6608 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat - local.tee $37 - local.get $37 + local.tee $34 + local.get $34 f64.ne i32.eqz if @@ -17129,14 +15875,9 @@ unreachable end i32.const 6640 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat - local.tee $38 - local.get $38 + local.tee $35 + local.get $35 f64.ne i32.eqz if @@ -17148,14 +15889,9 @@ unreachable end i32.const 6672 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat - local.tee $39 - local.get $39 + local.tee $36 + local.get $36 f64.ne i32.eqz if @@ -17167,14 +15903,9 @@ unreachable end i32.const 6704 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat - local.tee $40 - local.get $40 + local.tee $37 + local.get $37 f64.ne i32.eqz if @@ -17186,14 +15917,9 @@ unreachable end i32.const 6736 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat - local.tee $41 - local.get $41 + local.tee $38 + local.get $38 f64.ne i32.eqz if @@ -17205,14 +15931,9 @@ unreachable end i32.const 6768 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat - local.tee $42 - local.get $42 + local.tee $39 + local.get $39 f64.ne i32.eqz if @@ -17224,14 +15945,9 @@ unreachable end i32.const 6800 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat - local.tee $43 - local.get $43 + local.tee $40 + local.get $40 f64.ne i32.eqz if @@ -17243,14 +15959,9 @@ unreachable end i32.const 6832 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat - local.tee $44 - local.get $44 + local.tee $41 + local.get $41 f64.ne i32.eqz if @@ -17262,14 +15973,9 @@ unreachable end i32.const 6864 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat - local.tee $45 - local.get $45 + local.tee $42 + local.get $42 f64.ne i32.eqz if @@ -17281,14 +15987,9 @@ unreachable end i32.const 2336 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat - local.tee $46 - local.get $46 + local.tee $43 + local.get $43 f64.ne i32.eqz if @@ -17300,11 +16001,6 @@ unreachable end i32.const 6896 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 1e22 f64.eq @@ -17318,11 +16014,6 @@ unreachable end i32.const 6928 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 1e-22 f64.eq @@ -17336,11 +16027,6 @@ unreachable end i32.const 6960 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 1.e+23 f64.eq @@ -17354,11 +16040,6 @@ unreachable end i32.const 6992 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 1e-23 f64.eq @@ -17372,11 +16053,6 @@ unreachable end i32.const 7024 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 1.e+37 f64.eq @@ -17390,11 +16066,6 @@ unreachable end i32.const 7056 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 1e-37 f64.eq @@ -17408,11 +16079,6 @@ unreachable end i32.const 7088 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 1.e+38 f64.eq @@ -17426,11 +16092,6 @@ unreachable end i32.const 7120 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 1e-38 f64.eq @@ -17444,11 +16105,6 @@ unreachable end i32.const 7152 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat global.get $~lib/builtins/f64.EPSILON f64.eq @@ -17462,11 +16118,6 @@ unreachable end i32.const 7216 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat global.get $~lib/builtins/f64.MAX_VALUE f64.eq @@ -17480,11 +16131,6 @@ unreachable end i32.const 7296 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat global.get $~lib/builtins/f64.MIN_VALUE f64.eq @@ -17498,11 +16144,6 @@ unreachable end i32.const 7328 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 1.e+308 f64.eq @@ -17516,11 +16157,6 @@ unreachable end i32.const 7376 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 1 f64.eq @@ -17534,11 +16170,6 @@ unreachable end i32.const 7520 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -17552,11 +16183,6 @@ unreachable end i32.const 7568 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const inf f64.eq @@ -17570,11 +16196,6 @@ unreachable end i32.const 7616 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -17588,11 +16209,6 @@ unreachable end i32.const 7664 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const inf f64.neg @@ -17607,11 +16223,6 @@ unreachable end i32.const 7712 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -17625,11 +16236,6 @@ unreachable end i32.const 7760 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const inf f64.eq @@ -17643,11 +16249,6 @@ unreachable end i32.const 7808 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const inf f64.eq @@ -17661,11 +16262,6 @@ unreachable end i32.const 7840 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const inf f64.eq @@ -17679,11 +16275,6 @@ unreachable end i32.const 7888 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const inf f64.eq @@ -17697,11 +16288,6 @@ unreachable end i32.const 7936 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const inf f64.neg @@ -17716,11 +16302,6 @@ unreachable end i32.const 7984 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const inf f64.eq @@ -17734,11 +16315,6 @@ unreachable end i32.const 8032 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const inf f64.eq @@ -17752,14 +16328,9 @@ unreachable end i32.const 8080 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat - local.tee $47 - local.get $47 + local.tee $44 + local.get $44 f64.ne i32.eqz if @@ -17771,14 +16342,9 @@ unreachable end i32.const 8112 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat - local.tee $48 - local.get $48 + local.tee $45 + local.get $45 f64.ne i32.eqz if @@ -17790,14 +16356,9 @@ unreachable end i32.const 8160 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat - local.tee $49 - local.get $49 + local.tee $46 + local.get $46 f64.ne i32.eqz if @@ -17809,11 +16370,6 @@ unreachable end i32.const 8208 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -17827,11 +16383,6 @@ unreachable end i32.const 8400 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat global.get $std/string/Ox1p_1073 f64.eq @@ -17845,11 +16396,6 @@ unreachable end i32.const 8592 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat global.get $std/string/Ox1_0000000000001p_1022 f64.eq @@ -17863,59 +16409,34 @@ unreachable end i32.const 8784 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=72 - local.get $55 i32.const 8944 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=76 - local.get $55 call $~lib/string/String.__concat - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=64 - local.get $55 + local.get $52 + i32.store offset=12 + local.get $52 i32.const 9104 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=68 - local.get $55 call $~lib/string/String.__concat - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 + local.get $52 + i32.store offset=8 + local.get $52 i32.const 9264 - local.set $55 + call $~lib/string/String.__concat + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=60 - local.get $55 - call $~lib/string/String.__concat - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 i32.const 9424 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 call $~lib/string/String.__concat - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat global.get $~lib/builtins/f64.MAX_VALUE f64.eq @@ -17929,11 +16450,6 @@ unreachable end i32.const 9584 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 9.753531888799502e-104 f64.eq @@ -17947,11 +16463,6 @@ unreachable end i32.const 9696 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 0.5961860348131807 f64.eq @@ -17965,11 +16476,6 @@ unreachable end i32.const 9808 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 0.18150131692180388 f64.eq @@ -17983,11 +16489,6 @@ unreachable end i32.const 9920 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 0.42070823575344535 f64.eq @@ -18001,11 +16502,6 @@ unreachable end i32.const 10032 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 0.6654686306516261 f64.eq @@ -18019,11 +16515,6 @@ unreachable end i32.const 10144 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 0.6101852922970868 f64.eq @@ -18037,11 +16528,6 @@ unreachable end i32.const 10256 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 0.7696695208236968 f64.eq @@ -18055,11 +16541,6 @@ unreachable end i32.const 10368 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 0.25050653222286823 f64.eq @@ -18073,11 +16554,6 @@ unreachable end i32.const 10480 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 0.2740037230228005 f64.eq @@ -18091,11 +16567,6 @@ unreachable end i32.const 10592 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 0.20723093500497428 f64.eq @@ -18109,11 +16580,6 @@ unreachable end i32.const 10704 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 7.900280238081605 f64.eq @@ -18127,11 +16593,6 @@ unreachable end i32.const 10816 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 98.22860653737297 f64.eq @@ -18145,11 +16606,6 @@ unreachable end i32.const 10928 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 746.894972319037 f64.eq @@ -18163,11 +16619,6 @@ unreachable end i32.const 11040 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 1630.2683202827284 f64.eq @@ -18181,11 +16632,6 @@ unreachable end i32.const 11152 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 46371.68629719171 f64.eq @@ -18199,11 +16645,6 @@ unreachable end i32.const 11264 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 653780.5944497711 f64.eq @@ -18217,11 +16658,6 @@ unreachable end i32.const 11376 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 234632.43565024371 f64.eq @@ -18235,11 +16671,6 @@ unreachable end i32.const 11488 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 97094817.16420048 f64.eq @@ -18253,11 +16684,6 @@ unreachable end i32.const 11600 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 499690852.20518744 f64.eq @@ -18271,11 +16697,6 @@ unreachable end i32.const 11712 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 7925201200557245595648 f64.eq @@ -18289,11 +16710,6 @@ unreachable end i32.const 11824 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 6096564585983177528398588e5 f64.eq @@ -18307,11 +16723,6 @@ unreachable end i32.const 11936 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 4800416117477028695992383e42 f64.eq @@ -18325,11 +16736,6 @@ unreachable end i32.const 12048 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 8524829079817968137287277e80 f64.eq @@ -18343,11 +16749,6 @@ unreachable end i32.const 12160 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 3271239291709782092398754e243 f64.eq @@ -18361,14 +16762,9 @@ unreachable end i32.const 12272 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat - local.tee $50 - local.get $50 + local.tee $47 + local.get $47 f64.ne i32.eqz if @@ -18380,11 +16776,6 @@ unreachable end i32.const 12304 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/parseFloat f64.const 0.1 f64.eq @@ -18399,32 +16790,17 @@ end global.get $~lib/memory/__stack_pointer i32.const 784 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 12336 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__concat - local.tee $51 - i32.store offset=80 - local.get $51 - local.set $55 + local.tee $48 + i32.store offset=60 + local.get $48 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12368 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -18435,18 +16811,13 @@ call $~lib/builtins/abort unreachable end - local.get $51 - local.set $55 + local.get $48 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 784 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__ne i32.eqz if @@ -18458,17 +16829,7 @@ unreachable end i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -18480,11 +16841,11 @@ unreachable end global.get $std/string/nullStr - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 0 call $~lib/string/String.__eq i32.eqz @@ -18497,17 +16858,12 @@ unreachable end i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 global.get $std/string/nullStr - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 + local.get $52 + i32.store + local.get $52 call $~lib/string/String.__ne i32.eqz if @@ -18519,17 +16875,12 @@ unreachable end global.get $std/string/nullStr - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__ne i32.eqz if @@ -18541,17 +16892,7 @@ unreachable end i32.const 784 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 12336 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__ne i32.eqz if @@ -18563,17 +16904,7 @@ unreachable end i32.const 784 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 784 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -18585,17 +16916,7 @@ unreachable end i32.const 12400 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 12432 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__ne i32.eqz if @@ -18607,17 +16928,7 @@ unreachable end i32.const 12400 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 12400 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -18629,17 +16940,7 @@ unreachable end i32.const 12464 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 12496 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__ne i32.eqz if @@ -18651,17 +16952,7 @@ unreachable end i32.const 12528 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 12560 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__ne i32.eqz if @@ -18673,17 +16964,7 @@ unreachable end i32.const 12592 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 12592 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -18695,17 +16976,7 @@ unreachable end i32.const 12592 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 12640 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__ne i32.eqz if @@ -18717,17 +16988,7 @@ unreachable end i32.const 12688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 12736 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__ne i32.eqz if @@ -18739,17 +17000,7 @@ unreachable end i32.const 12336 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 784 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__gt i32.eqz if @@ -18761,17 +17012,7 @@ unreachable end i32.const 12784 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 784 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__gt i32.eqz if @@ -18783,17 +17024,7 @@ unreachable end i32.const 12784 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 12816 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__gte i32.eqz if @@ -18805,17 +17036,7 @@ unreachable end i32.const 12784 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 12368 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__gt i32.eqz if @@ -18827,17 +17048,7 @@ unreachable end i32.const 12784 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 12368 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__lt i32.eqz i32.eqz @@ -18850,17 +17061,7 @@ unreachable end i32.const 1312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__gt i32.eqz if @@ -18872,17 +17073,7 @@ unreachable end i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 1312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__lt i32.eqz if @@ -18894,17 +17085,7 @@ unreachable end i32.const 1312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__gte i32.eqz if @@ -18916,17 +17097,7 @@ unreachable end i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 1312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__lte i32.eqz if @@ -18938,17 +17109,7 @@ unreachable end i32.const 1312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__lt i32.eqz i32.eqz @@ -18961,17 +17122,7 @@ unreachable end i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 1312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__gt i32.eqz i32.eqz @@ -18984,17 +17135,7 @@ unreachable end i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__lt i32.eqz i32.eqz @@ -19007,17 +17148,7 @@ unreachable end i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__gt i32.eqz i32.eqz @@ -19030,17 +17161,7 @@ unreachable end i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__gte i32.eqz if @@ -19052,17 +17173,7 @@ unreachable end i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__lte i32.eqz if @@ -19074,17 +17185,7 @@ unreachable end i32.const 2432 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 12848 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__lt i32.eqz if @@ -19096,17 +17197,7 @@ unreachable end i32.const 12848 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 2432 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__gt i32.eqz if @@ -19118,17 +17209,7 @@ unreachable end i32.const 12880 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 12848 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__lt i32.eqz i32.eqz @@ -19141,17 +17222,7 @@ unreachable end i32.const 12848 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 12880 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__gt i32.eqz i32.eqz @@ -19164,17 +17235,7 @@ unreachable end i32.const 12880 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 12848 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__gt i32.eqz if @@ -19186,17 +17247,7 @@ unreachable end i32.const 12848 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 12880 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__lt i32.eqz if @@ -19208,17 +17259,7 @@ unreachable end i32.const 12880 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 12880 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__lt i32.eqz i32.eqz @@ -19231,17 +17272,7 @@ unreachable end i32.const 12880 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 12880 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__gt i32.eqz i32.eqz @@ -19254,17 +17285,7 @@ unreachable end i32.const 12880 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 12880 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__lte i32.eqz if @@ -19276,17 +17297,7 @@ unreachable end i32.const 12880 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 12880 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__gte i32.eqz if @@ -19298,17 +17309,7 @@ unreachable end i32.const 12848 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 12912 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__gte i32.eqz i32.eqz @@ -19321,17 +17322,7 @@ unreachable end i32.const 12912 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 12848 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__gte i32.eqz if @@ -19343,17 +17334,7 @@ unreachable end i32.const 12848 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 12912 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__lte i32.eqz if @@ -19365,17 +17346,7 @@ unreachable end i32.const 2432 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 2432 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -19387,17 +17358,7 @@ unreachable end i32.const 12880 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 12880 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -19409,17 +17370,7 @@ unreachable end i32.const 1376 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 1376 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -19431,17 +17382,7 @@ unreachable end i32.const 1376 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 12944 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__ne i32.eqz if @@ -19453,17 +17394,7 @@ unreachable end i32.const 12976 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 12976 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -19475,17 +17406,7 @@ unreachable end i32.const 13008 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 12976 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__ne i32.eqz if @@ -19499,38 +17420,38 @@ global.get $~lib/memory/__stack_pointer i32.const 65377 call $~lib/string/String.fromCodePoint - local.tee $52 - i32.store offset=84 + local.tee $49 + i32.store offset=64 global.get $~lib/memory/__stack_pointer i32.const 55296 call $~lib/string/String.fromCodePoint - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 56322 call $~lib/string/String.fromCodePoint - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 - call $~lib/string/String.__concat - local.tee $53 - i32.store offset=88 local.get $52 - local.set $55 + call $~lib/string/String.__concat + local.tee $50 + i32.store offset=68 + local.get $49 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 - local.get $53 - local.set $55 + local.get $52 + local.get $50 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__gt i32.eqz if @@ -19542,11 +17463,6 @@ unreachable end i32.const 1376 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 call $~lib/string/String#get:length i32.const 3 i32.eq @@ -19560,24 +17476,14 @@ unreachable end i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 100 call $~lib/string/String#repeat - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -19589,24 +17495,14 @@ unreachable end i32.const 784 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 0 call $~lib/string/String#repeat - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -19618,24 +17514,14 @@ unreachable end i32.const 784 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 1 call $~lib/string/String#repeat - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 784 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -19647,24 +17533,14 @@ unreachable end i32.const 784 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 2 call $~lib/string/String#repeat - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12816 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -19676,24 +17552,14 @@ unreachable end i32.const 784 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 3 call $~lib/string/String#repeat - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13088 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -19705,24 +17571,14 @@ unreachable end i32.const 12368 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 4 call $~lib/string/String#repeat - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13120 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -19734,24 +17590,14 @@ unreachable end i32.const 784 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 5 call $~lib/string/String#repeat - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13168 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -19763,24 +17609,14 @@ unreachable end i32.const 784 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 6 call $~lib/string/String#repeat - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13200 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -19792,24 +17628,14 @@ unreachable end i32.const 784 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 7 call $~lib/string/String#repeat - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13232 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -19821,35 +17647,15 @@ unreachable end i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=60 - local.get $55 call $~lib/string/String#replace - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -19861,35 +17667,15 @@ unreachable end i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 i32.const 3568 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=60 - local.get $55 call $~lib/string/String#replace - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 3568 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -19901,35 +17687,15 @@ unreachable end i32.const 3568 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 3568 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=60 - local.get $55 call $~lib/string/String#replace - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -19941,35 +17707,15 @@ unreachable end i32.const 3568 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=60 - local.get $55 call $~lib/string/String#replace - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 3568 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -19981,35 +17727,15 @@ unreachable end i32.const 1312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 3536 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 i32.const 3568 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=60 - local.get $55 call $~lib/string/String#replace - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -20021,35 +17747,15 @@ unreachable end i32.const 1312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 1312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 i32.const 3568 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=60 - local.get $55 call $~lib/string/String#replace - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 3568 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -20061,35 +17767,15 @@ unreachable end i32.const 1312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 1888 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 i32.const 3568 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=60 - local.get $55 call $~lib/string/String#replace - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -20101,35 +17787,15 @@ unreachable end i32.const 1312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 12368 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 i32.const 12368 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=60 - local.get $55 call $~lib/string/String#replace - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -20141,35 +17807,15 @@ unreachable end i32.const 13280 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 3536 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 i32.const 3568 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=60 - local.get $55 call $~lib/string/String#replace - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -20181,35 +17827,15 @@ unreachable end i32.const 1312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 i32.const 3568 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=60 - local.get $55 call $~lib/string/String#replace - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13344 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -20221,35 +17847,15 @@ unreachable end i32.const 13376 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 13408 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 i32.const 3568 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=60 - local.get $55 call $~lib/string/String#replace - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13344 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -20261,35 +17867,15 @@ unreachable end i32.const 1312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 13440 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 i32.const 13472 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=60 - local.get $55 call $~lib/string/String#replace - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13504 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -20301,35 +17887,15 @@ unreachable end i32.const 1312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 13440 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=60 - local.get $55 call $~lib/string/String#replace - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12368 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -20341,35 +17907,15 @@ unreachable end i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 i32.const 1312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=60 - local.get $55 call $~lib/string/String#replaceAll - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -20381,35 +17927,15 @@ unreachable end i32.const 1312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 3536 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 i32.const 3568 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=60 - local.get $55 call $~lib/string/String#replaceAll - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -20421,35 +17947,15 @@ unreachable end i32.const 1520 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 1312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 i32.const 3568 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=60 - local.get $55 call $~lib/string/String#replaceAll - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13472 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -20461,35 +17967,15 @@ unreachable end i32.const 13536 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 1312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 i32.const 3568 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=60 - local.get $55 call $~lib/string/String#replaceAll - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13584 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -20501,35 +17987,15 @@ unreachable end i32.const 1520 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 12368 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 i32.const 12368 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=60 - local.get $55 call $~lib/string/String#replaceAll - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1520 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -20541,35 +18007,15 @@ unreachable end i32.const 13616 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 784 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 i32.const 13584 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=60 - local.get $55 call $~lib/string/String#replaceAll - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13664 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -20581,35 +18027,15 @@ unreachable end i32.const 1520 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 12368 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 i32.const 13472 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=60 - local.get $55 call $~lib/string/String#replaceAll - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13712 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -20621,35 +18047,15 @@ unreachable end i32.const 13744 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 13776 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 i32.const 13472 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=60 - local.get $55 call $~lib/string/String#replaceAll - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13808 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -20661,35 +18067,15 @@ unreachable end i32.const 1312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 1888 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 i32.const 3568 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=60 - local.get $55 call $~lib/string/String#replaceAll - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -20701,35 +18087,15 @@ unreachable end i32.const 1888 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 13840 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 i32.const 13472 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=60 - local.get $55 call $~lib/string/String#replaceAll - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1888 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -20741,35 +18107,15 @@ unreachable end i32.const 1312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 13872 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 i32.const 3568 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=60 - local.get $55 call $~lib/string/String#replaceAll - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13904 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -20781,35 +18127,15 @@ unreachable end i32.const 12368 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 12368 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 i32.const 3568 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=60 - local.get $55 call $~lib/string/String#replaceAll - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 3568 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -20821,35 +18147,15 @@ unreachable end i32.const 13280 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 3536 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 i32.const 3568 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=60 - local.get $55 call $~lib/string/String#replaceAll - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 - i32.const 13936 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 + local.get $52 + i32.const 13936 call $~lib/string/String.__eq i32.eqz if @@ -20861,35 +18167,15 @@ unreachable end i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=60 - local.get $55 call $~lib/string/String#replaceAll - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -20901,35 +18187,15 @@ unreachable end i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 i32.const 3568 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=60 - local.get $55 call $~lib/string/String#replaceAll - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 3568 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -20941,35 +18207,15 @@ unreachable end i32.const 3568 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 3568 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=60 - local.get $55 call $~lib/string/String#replaceAll - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -20981,35 +18227,15 @@ unreachable end i32.const 3568 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=60 - local.get $55 call $~lib/string/String#replaceAll - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 3568 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -21021,35 +18247,15 @@ unreachable end i32.const 1312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 1312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 i32.const 3536 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=60 - local.get $55 call $~lib/string/String#replaceAll - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 3536 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -21061,35 +18267,15 @@ unreachable end i32.const 1312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 1792 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 i32.const 3536 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=60 - local.get $55 call $~lib/string/String#replaceAll - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -21101,35 +18287,15 @@ unreachable end i32.const 1312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 i32.const 3568 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=60 - local.get $55 call $~lib/string/String#replaceAll - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13968 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -21141,35 +18307,15 @@ unreachable end i32.const 1312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=60 - local.get $55 call $~lib/string/String#replaceAll - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -21181,35 +18327,15 @@ unreachable end i32.const 14016 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 784 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 i32.const 14048 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=60 - local.get $55 call $~lib/string/String#replaceAll - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 14080 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -21221,35 +18347,15 @@ unreachable end i32.const 12368 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 12368 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 i32.const 14128 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=60 - local.get $55 call $~lib/string/String#replaceAll - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 14128 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -21261,35 +18367,15 @@ unreachable end i32.const 13088 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 784 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 i32.const 14160 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=60 - local.get $55 call $~lib/string/String#replaceAll - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 14192 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -21301,35 +18387,15 @@ unreachable end i32.const 13088 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 12816 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 i32.const 14048 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=60 - local.get $55 call $~lib/string/String#replaceAll - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 14240 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -21343,27 +18409,22 @@ i32.const 14272 global.set $std/string/str global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const 0 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/string/String#slice@varargs - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 14272 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -21375,27 +18436,22 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const -1 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/string/String#slice@varargs - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 14320 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -21407,27 +18463,22 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const -5 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/string/String#slice@varargs - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 14352 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -21439,25 +18490,20 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const 2 i32.const 7 call $~lib/string/String#slice - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 14384 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -21469,25 +18515,20 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const -11 i32.const -6 call $~lib/string/String#slice - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 14416 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -21499,25 +18540,20 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const 4 i32.const 3 call $~lib/string/String#slice - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -21529,25 +18565,20 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const 0 i32.const -1 call $~lib/string/String#slice - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 14448 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -21559,27 +18590,22 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const 0 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/string/String#substr@varargs - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 14272 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -21591,27 +18617,22 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const -1 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/string/String#substr@varargs - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 14320 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -21623,27 +18644,22 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const -5 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/string/String#substr@varargs - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 14352 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -21655,25 +18671,20 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const 2 i32.const 7 call $~lib/string/String#substr - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 14496 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -21685,25 +18696,20 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const -11 i32.const -6 call $~lib/string/String#substr - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -21715,25 +18721,20 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const 4 i32.const 3 call $~lib/string/String#substr - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 14544 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -21745,25 +18746,20 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const 0 i32.const -1 call $~lib/string/String#substr - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -21775,25 +18771,20 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const 0 i32.const 100 call $~lib/string/String#substr - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 14272 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -21805,25 +18796,20 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const 4 i32.const 4 call $~lib/string/String#substr - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 14576 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -21835,25 +18821,20 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const 4 i32.const -3 call $~lib/string/String#substr - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -21865,27 +18846,22 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const 0 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/string/String#substring@varargs - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 14272 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -21897,27 +18873,22 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const -1 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/string/String#substring@varargs - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 14272 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -21929,27 +18900,22 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const -5 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/string/String#substring@varargs - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 14272 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -21961,25 +18927,20 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const 2 i32.const 7 call $~lib/string/String#substring - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 14384 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -21991,25 +18952,20 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const -11 i32.const -6 call $~lib/string/String#substring - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -22021,25 +18977,20 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const 4 i32.const 3 call $~lib/string/String#substring - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 14608 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -22051,25 +19002,20 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const 0 i32.const -1 call $~lib/string/String#substring - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -22081,25 +19027,20 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const 0 i32.const 100 call $~lib/string/String#substring - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 14272 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -22111,25 +19052,20 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const 4 i32.const 4 call $~lib/string/String#substring - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -22141,25 +19077,20 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const 4 i32.const -3 call $~lib/string/String#substring - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1888 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -22169,50 +19100,40 @@ i32.const 1 call $~lib/builtins/abort unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 + end + global.get $~lib/memory/__stack_pointer + i32.const 688 i32.const 0 i32.const 0 global.set $~argumentsLength i32.const 0 call $~lib/string/String#split@varargs - local.tee $54 - i32.store offset=92 - local.get $54 - local.set $55 + local.tee $51 + i32.store offset=72 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/array/Array<~lib/string/String>#get:length i32.const 1 i32.eq if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq else i32.const 0 @@ -22228,29 +19149,19 @@ end global.get $~lib/memory/__stack_pointer i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/string/String#split@varargs - local.tee $54 - i32.store offset=92 - local.get $54 - local.set $55 + local.tee $51 + i32.store offset=72 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/array/Array<~lib/string/String>#get:length i32.const 0 i32.eq @@ -22265,52 +19176,37 @@ end global.get $~lib/memory/__stack_pointer i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 1600 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/string/String#split@varargs - local.tee $54 - i32.store offset=92 - local.get $54 - local.set $55 + local.tee $51 + i32.store offset=72 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/array/Array<~lib/string/String>#get:length i32.const 1 i32.eq if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq else i32.const 0 @@ -22326,52 +19222,37 @@ end global.get $~lib/memory/__stack_pointer i32.const 14816 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 6608 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/string/String#split@varargs - local.tee $54 - i32.store offset=92 - local.get $54 - local.set $55 + local.tee $51 + i32.store offset=72 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/array/Array<~lib/string/String>#get:length i32.const 1 i32.eq if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 14816 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq else i32.const 0 @@ -22387,100 +19268,75 @@ end global.get $~lib/memory/__stack_pointer i32.const 14816 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 1600 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/string/String#split@varargs - local.tee $54 - i32.store offset=92 - local.get $54 - local.set $55 + local.tee $51 + i32.store offset=72 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/array/Array<~lib/string/String>#get:length i32.const 3 i32.eq if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 784 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq else i32.const 0 end if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12336 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq else i32.const 0 end if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13440 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq else i32.const 0 @@ -22496,100 +19352,75 @@ end global.get $~lib/memory/__stack_pointer i32.const 14848 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 14896 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/string/String#split@varargs - local.tee $54 - i32.store offset=92 - local.get $54 - local.set $55 + local.tee $51 + i32.store offset=72 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/array/Array<~lib/string/String>#get:length i32.const 3 i32.eq if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 784 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq else i32.const 0 end if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12336 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq else i32.const 0 end if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13440 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq else i32.const 0 @@ -22605,124 +19436,94 @@ end global.get $~lib/memory/__stack_pointer i32.const 14928 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 1600 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/string/String#split@varargs - local.tee $54 - i32.store offset=92 - local.get $54 - local.set $55 + local.tee $51 + i32.store offset=72 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/array/Array<~lib/string/String>#get:length i32.const 4 i32.eq if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 784 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq else i32.const 0 end if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12336 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq else i32.const 0 end if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq else i32.const 0 end if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const 3 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13440 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq else i32.const 0 @@ -22738,124 +19539,94 @@ end global.get $~lib/memory/__stack_pointer i32.const 14960 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 1600 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/string/String#split@varargs - local.tee $54 - i32.store offset=92 - local.get $54 - local.set $55 + local.tee $51 + i32.store offset=72 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/array/Array<~lib/string/String>#get:length i32.const 4 i32.eq if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq else i32.const 0 end if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 784 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq else i32.const 0 end if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12336 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq else i32.const 0 end if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const 3 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13440 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq else i32.const 0 @@ -22871,124 +19642,94 @@ end global.get $~lib/memory/__stack_pointer i32.const 14992 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 1600 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/string/String#split@varargs - local.tee $54 - i32.store offset=92 - local.get $54 - local.set $55 + local.tee $51 + i32.store offset=72 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/array/Array<~lib/string/String>#get:length i32.const 4 i32.eq if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 784 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq else i32.const 0 end if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12336 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq else i32.const 0 end if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13440 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq else i32.const 0 end if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const 3 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq else i32.const 0 @@ -23004,100 +19745,75 @@ end global.get $~lib/memory/__stack_pointer i32.const 1312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/string/String#split@varargs - local.tee $54 - i32.store offset=92 - local.get $54 - local.set $55 + local.tee $51 + i32.store offset=72 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/array/Array<~lib/string/String>#get:length i32.const 3 i32.eq if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 784 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq else i32.const 0 end if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12336 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq else i32.const 0 end if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13440 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq else i32.const 0 @@ -23113,27 +19829,17 @@ end global.get $~lib/memory/__stack_pointer i32.const 1312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 i32.const 0 call $~lib/string/String#split - local.tee $54 - i32.store offset=92 - local.get $54 - local.set $55 + local.tee $51 + i32.store offset=72 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/array/Array<~lib/string/String>#get:length i32.const 0 i32.eq @@ -23148,50 +19854,35 @@ end global.get $~lib/memory/__stack_pointer i32.const 1312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 i32.const 1 call $~lib/string/String#split - local.tee $54 - i32.store offset=92 - local.get $54 - local.set $55 + local.tee $51 + i32.store offset=72 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/array/Array<~lib/string/String>#get:length i32.const 1 i32.eq if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 784 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq else i32.const 0 @@ -23207,50 +19898,35 @@ end global.get $~lib/memory/__stack_pointer i32.const 14816 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 1600 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 i32.const 1 call $~lib/string/String#split - local.tee $54 - i32.store offset=92 - local.get $54 - local.set $55 + local.tee $51 + i32.store offset=72 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/array/Array<~lib/string/String>#get:length i32.const 1 i32.eq if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 784 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq else i32.const 0 @@ -23266,98 +19942,73 @@ end global.get $~lib/memory/__stack_pointer i32.const 1312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 i32.const 4 call $~lib/string/String#split - local.tee $54 - i32.store offset=92 - local.get $54 - local.set $55 + local.tee $51 + i32.store offset=72 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/array/Array<~lib/string/String>#get:length i32.const 3 i32.eq if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 784 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq else i32.const 0 end if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12336 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq else i32.const 0 end if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13440 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq else i32.const 0 @@ -23373,98 +20024,73 @@ end global.get $~lib/memory/__stack_pointer i32.const 1312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 i32.const -1 call $~lib/string/String#split - local.tee $54 - i32.store offset=92 - local.get $54 - local.set $55 + local.tee $51 + i32.store offset=72 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/array/Array<~lib/string/String>#get:length i32.const 3 i32.eq if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 784 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq else i32.const 0 end if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12336 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq else i32.const 0 end if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13440 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq else i32.const 0 @@ -23480,98 +20106,73 @@ end global.get $~lib/memory/__stack_pointer i32.const 14816 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 i32.const 1600 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 i32.const -1 call $~lib/string/String#split - local.tee $54 - i32.store offset=92 - local.get $54 - local.set $55 + local.tee $51 + i32.store offset=72 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/array/Array<~lib/string/String>#get:length i32.const 3 i32.eq if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 784 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq else i32.const 0 end if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12336 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq else i32.const 0 end if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + local.get $52 + i32.store offset=4 + local.get $52 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13440 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq else i32.const 0 @@ -23588,17 +20189,12 @@ i32.const 0 i32.const 10 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 2368 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -23612,17 +20208,12 @@ i32.const 1 i32.const 10 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 2432 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -23636,17 +20227,12 @@ i32.const 8 i32.const 10 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 16768 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -23660,17 +20246,12 @@ i32.const 12 i32.const 10 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 16800 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -23684,17 +20265,12 @@ i32.const 123 i32.const 10 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1376 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -23708,17 +20284,12 @@ i32.const -1000 i32.const 10 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 16832 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -23732,17 +20303,12 @@ i32.const 1234 i32.const 10 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12976 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -23756,17 +20322,12 @@ i32.const 12345 i32.const 10 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 16864 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -23780,17 +20341,12 @@ i32.const 123456 i32.const 10 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 - i32.const 16896 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 + local.get $52 + i32.const 16896 call $~lib/string/String.__eq i32.eqz if @@ -23804,17 +20360,12 @@ i32.const 1111111 i32.const 10 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 16928 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -23828,17 +20379,12 @@ i32.const 1234567 i32.const 10 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 16976 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -23852,17 +20398,12 @@ i32.const 12345678 i32.const 10 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17024 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -23876,17 +20417,12 @@ i32.const 123456789 i32.const 10 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17072 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -23900,17 +20436,12 @@ i32.const 2147483646 i32.const 10 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17120 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -23924,17 +20455,12 @@ i32.const 2147483647 i32.const 10 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17168 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -23948,17 +20474,12 @@ i32.const -2147483648 i32.const 10 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17216 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -23972,17 +20493,12 @@ i32.const -1 i32.const 10 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17264 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -23996,17 +20512,12 @@ global.get $~lib/builtins/i8.MIN_VALUE i32.const 10 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17296 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -24020,17 +20531,12 @@ global.get $~lib/builtins/i16.MIN_VALUE i32.const 10 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17328 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -24044,17 +20550,12 @@ global.get $~lib/builtins/i32.MIN_VALUE i32.const 10 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17216 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -24068,17 +20569,12 @@ i32.const 0 i32.const 10 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 2368 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -24092,17 +20588,12 @@ i32.const 1000 i32.const 10 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17360 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -24116,17 +20607,12 @@ i32.const 2147483647 i32.const 10 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17168 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -24140,17 +20626,12 @@ i32.const -2147483648 i32.const 10 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17392 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -24164,17 +20645,12 @@ global.get $~lib/builtins/u32.MAX_VALUE i32.const 10 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17440 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -24188,17 +20664,12 @@ i32.const 0 i32.const 16 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 2368 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -24212,17 +20683,12 @@ i32.const 1 i32.const 16 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 2432 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -24236,17 +20702,12 @@ i32.const 8 i32.const 16 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 16768 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -24260,17 +20721,12 @@ i32.const 12 i32.const 16 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13440 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -24284,17 +20740,12 @@ i32.const 123 i32.const 16 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17488 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -24308,17 +20759,12 @@ i32.const 1234 i32.const 16 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17520 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -24332,17 +20778,12 @@ i32.const 12345 i32.const 16 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17552 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -24356,17 +20797,12 @@ i32.const 123456 i32.const 16 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17584 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -24380,17 +20816,12 @@ i32.const 1111111 i32.const 16 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17616 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -24404,17 +20835,12 @@ i32.const 1234567 i32.const 16 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17648 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -24428,17 +20854,12 @@ i32.const 12345678 i32.const 16 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17680 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -24452,17 +20873,12 @@ i32.const 123456789 i32.const 16 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17712 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -24476,17 +20892,12 @@ i32.const 2147483646 i32.const 16 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17760 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -24500,17 +20911,12 @@ i32.const 2147483647 i32.const 16 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17808 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -24524,17 +20930,12 @@ i32.const -2147483648 i32.const 16 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17856 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -24548,17 +20949,12 @@ i32.const -1 i32.const 16 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17904 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -24572,17 +20968,12 @@ i32.const 0 i32.const 16 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 2368 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -24596,17 +20987,12 @@ i32.const -4096 i32.const 16 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 16832 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -24620,17 +21006,12 @@ i32.const 2147483647 i32.const 16 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17808 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -24644,17 +21025,12 @@ i32.const -2147483647 i32.const 16 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17952 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -24668,17 +21044,12 @@ i32.const -268435455 i32.const 16 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 18000 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -24692,17 +21063,12 @@ i32.const -2147483648 i32.const 16 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 18048 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -24716,17 +21082,12 @@ i32.const -2147483648 i32.const 16 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 18048 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -24740,17 +21101,12 @@ i32.const 0 i32.const 2 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 2368 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -24764,17 +21120,12 @@ i32.const 1 i32.const 2 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 2432 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -24788,17 +21139,12 @@ i32.const 3 i32.const 2 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12880 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -24812,17 +21158,12 @@ i32.const 7 i32.const 2 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 18096 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -24836,17 +21177,12 @@ i32.const 14 i32.const 2 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 18128 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -24860,17 +21196,12 @@ i32.const 29 i32.const 2 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 18160 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -24884,17 +21215,12 @@ i32.const 59 i32.const 2 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 18192 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -24908,17 +21234,12 @@ i32.const 4095 i32.const 2 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 18224 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -24932,17 +21253,12 @@ i32.const 33554431 i32.const 2 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 18272 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -24956,17 +21272,12 @@ i32.const -12 i32.const 2 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 18352 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -24980,17 +21291,12 @@ i32.const -4 i32.const 2 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 18448 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -25004,17 +21310,12 @@ i32.const -2 i32.const 2 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 - i32.const 18544 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 + local.get $52 + i32.const 18544 call $~lib/string/String.__eq i32.eqz if @@ -25028,17 +21329,12 @@ i32.const -1 i32.const 2 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 18640 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -25052,17 +21348,12 @@ i32.const -2047 i32.const 2 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 18736 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -25076,17 +21367,12 @@ i32.const -1 i32.const 3 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 18784 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -25100,17 +21386,12 @@ i32.const -1 i32.const 4 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 18848 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -25124,17 +21405,12 @@ i32.const -1 i32.const 5 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 18912 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -25148,17 +21424,12 @@ i32.const -1 i32.const 8 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 18960 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -25172,17 +21443,12 @@ i32.const -1 i32.const 11 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 19008 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -25196,17 +21462,12 @@ i32.const -1 i32.const 15 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 19056 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -25220,17 +21481,12 @@ i32.const -1 i32.const 17 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 19104 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -25244,17 +21500,12 @@ i32.const -1 i32.const 21 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 19152 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -25268,17 +21519,12 @@ i32.const -1 i32.const 27 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 19200 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -25292,17 +21538,12 @@ i32.const -1 i32.const 32 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 19248 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -25316,17 +21557,12 @@ i32.const -1 i32.const 36 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 19296 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -25340,17 +21576,12 @@ i64.const 0 i32.const 10 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 2368 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -25364,17 +21595,12 @@ i64.const 12 i32.const 10 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 16800 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -25388,17 +21614,12 @@ i64.const 123 i32.const 10 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1376 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -25412,17 +21633,12 @@ i64.const 1234 i32.const 10 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12976 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -25436,17 +21652,12 @@ i64.const 12345 i32.const 10 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 16864 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -25460,17 +21671,12 @@ i64.const 123456 i32.const 10 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 16896 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -25484,17 +21690,12 @@ i64.const 1234567 i32.const 10 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 16976 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -25508,17 +21709,12 @@ i64.const 99999999 i32.const 10 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 19344 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -25532,17 +21728,12 @@ i64.const 100000000 i32.const 10 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 19392 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -25556,17 +21747,12 @@ i64.const 4294967295 i32.const 10 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17440 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -25580,17 +21766,12 @@ i64.const 4294967297 i32.const 10 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 19440 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -25604,17 +21785,12 @@ i64.const 68719476735 i32.const 10 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 19488 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -25628,17 +21804,12 @@ i64.const 868719476735 i32.const 10 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 19536 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -25652,17 +21823,12 @@ i64.const 8687194767350 i32.const 10 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 19584 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -25676,17 +21842,12 @@ i64.const 86871947673501 i32.const 10 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 19632 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -25700,17 +21861,12 @@ i64.const 999868719476735 i32.const 10 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 19680 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -25724,17 +21880,12 @@ i64.const 9999868719476735 i32.const 10 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 19744 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -25748,17 +21899,12 @@ i64.const 19999868719476735 i32.const 10 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 19808 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -25772,17 +21918,12 @@ i64.const 129999868719476735 i32.const 10 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 19872 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -25796,17 +21937,12 @@ i64.const 1239999868719476735 i32.const 10 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 19936 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -25820,17 +21956,12 @@ global.get $~lib/builtins/u64.MAX_VALUE i32.const 10 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 20000 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -25844,17 +21975,12 @@ i64.const 0 i32.const 10 call $~lib/util/number/itoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 2368 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -25868,17 +21994,12 @@ i64.const -1234 i32.const 10 call $~lib/util/number/itoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 20064 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -25892,17 +22013,12 @@ i64.const 4294967295 i32.const 10 call $~lib/util/number/itoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17440 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -25916,17 +22032,12 @@ i64.const 4294967297 i32.const 10 call $~lib/util/number/itoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 19440 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -25940,17 +22051,12 @@ i64.const -4294967295 i32.const 10 call $~lib/util/number/itoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 20096 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -25964,17 +22070,12 @@ i64.const 68719476735 i32.const 10 call $~lib/util/number/itoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 19488 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -25988,17 +22089,12 @@ i64.const -68719476735 i32.const 10 call $~lib/util/number/itoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 20144 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -26012,17 +22108,12 @@ i64.const -868719476735 i32.const 10 call $~lib/util/number/itoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 20192 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -26036,17 +22127,12 @@ i64.const -999868719476735 i32.const 10 call $~lib/util/number/itoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 20240 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -26060,17 +22146,12 @@ i64.const -19999868719476735 i32.const 10 call $~lib/util/number/itoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 20304 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -26084,17 +22165,12 @@ global.get $~lib/builtins/i64.MAX_VALUE i32.const 10 call $~lib/util/number/itoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 20368 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -26108,17 +22184,12 @@ global.get $~lib/builtins/i64.MIN_VALUE i32.const 10 call $~lib/util/number/itoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 20432 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -26132,17 +22203,12 @@ i64.const 0 i32.const 16 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 2368 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -26156,17 +22222,12 @@ i64.const 1 i32.const 16 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 2432 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -26180,17 +22241,12 @@ i64.const 12 i32.const 16 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13440 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -26204,17 +22260,12 @@ i64.const 1234 i32.const 16 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17520 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -26228,17 +22279,12 @@ i64.const 1111111 i32.const 16 call $~lib/util/number/utoa64 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 - i32.const 17616 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 + local.get $52 + i32.store + local.get $52 + i32.const 17616 call $~lib/string/String.__eq i32.eqz if @@ -26252,17 +22298,12 @@ i64.const 8589934591 i32.const 16 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 20496 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -26276,17 +22317,12 @@ i64.const 5942249508321 i32.const 16 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 20544 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -26300,17 +22336,12 @@ i64.const 76310993685985 i32.const 16 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 20592 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -26324,17 +22355,12 @@ i64.const 920735923817967 i32.const 16 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 20640 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -26348,17 +22374,12 @@ i64.const 9927935178558959 i32.const 16 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 20688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -26372,17 +22393,12 @@ i64.const 81985529216486895 i32.const 16 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 20736 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -26396,17 +22412,12 @@ i64.const 1311768467463790320 i32.const 16 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 20800 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -26420,17 +22431,12 @@ i64.const 9223372036854775807 i32.const 16 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 20864 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -26444,17 +22450,12 @@ i64.const -1 i32.const 16 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 20928 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -26468,17 +22469,12 @@ i64.const -9223372036854775807 i32.const 16 call $~lib/util/number/itoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 20992 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -26492,17 +22488,12 @@ i64.const -9223372036854775808 i32.const 16 call $~lib/util/number/itoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 21056 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -26516,17 +22507,12 @@ i64.const -9223372036854775808 i32.const 16 call $~lib/util/number/itoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 21056 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -26540,17 +22526,12 @@ i64.const 0 i32.const 2 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 2368 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -26564,17 +22545,12 @@ i64.const 1 i32.const 2 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 2432 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -26588,17 +22564,12 @@ i64.const 7 i32.const 2 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 18096 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -26612,17 +22583,12 @@ i64.const 14 i32.const 2 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 18128 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -26636,17 +22602,12 @@ i64.const 59 i32.const 2 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 18192 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -26660,17 +22621,12 @@ i64.const 4095 i32.const 2 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 18224 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -26684,17 +22640,12 @@ i64.const 4294967295 i32.const 2 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 18640 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -26708,17 +22659,12 @@ i64.const 562949953421311 i32.const 2 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 21120 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -26732,17 +22678,12 @@ i64.const -1 i32.const 2 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 21248 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -26756,17 +22697,12 @@ i64.const -8589934591 i32.const 2 call $~lib/util/number/itoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 21408 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -26780,17 +22716,12 @@ i64.const -1 i32.const 3 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 21504 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -26804,17 +22735,12 @@ i64.const -1 i32.const 4 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 21616 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -26828,17 +22754,12 @@ i64.const -1 i32.const 5 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 21712 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -26852,17 +22773,12 @@ i64.const -1 i32.const 8 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 21792 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -26876,17 +22792,12 @@ i64.const -1 i32.const 11 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 21856 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -26900,17 +22811,12 @@ i64.const -1 i32.const 15 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 21920 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -26924,17 +22830,12 @@ i64.const -1 i32.const 17 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 21984 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -26948,17 +22849,12 @@ i64.const -1 i32.const 21 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 22048 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -26972,17 +22868,12 @@ i64.const -1 i32.const 27 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 22112 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -26996,17 +22887,12 @@ i64.const -1 i32.const 32 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 22160 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -27020,17 +22906,12 @@ i64.const -1 i32.const 36 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 22208 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -27042,18 +22923,13 @@ unreachable end f64.const 0 - call $~lib/util/number/dtoa - local.set $55 + call $~lib/util/number/dtoa + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 22256 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -27065,18 +22941,13 @@ unreachable end f64.const -0 - call $~lib/util/number/dtoa - local.set $55 + call $~lib/util/number/dtoa + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 22256 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -27088,18 +22959,13 @@ unreachable end f64.const nan:0x8000000000000 - call $~lib/util/number/dtoa - local.set $55 + call $~lib/util/number/dtoa + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 6672 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -27111,18 +22977,13 @@ unreachable end f64.const inf - call $~lib/util/number/dtoa - local.set $55 + call $~lib/util/number/dtoa + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 22288 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -27135,18 +22996,13 @@ end f64.const inf f64.neg - call $~lib/util/number/dtoa - local.set $55 + call $~lib/util/number/dtoa + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 7936 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -27158,18 +23014,13 @@ unreachable end global.get $~lib/builtins/f64.EPSILON - call $~lib/util/number/dtoa - local.set $55 + call $~lib/util/number/dtoa + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 7152 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -27182,18 +23033,13 @@ end global.get $~lib/builtins/f64.EPSILON f64.neg - call $~lib/util/number/dtoa - local.set $55 + call $~lib/util/number/dtoa + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 23312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -27205,18 +23051,13 @@ unreachable end global.get $~lib/builtins/f64.MAX_VALUE - call $~lib/util/number/dtoa - local.set $55 + call $~lib/util/number/dtoa + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 7216 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -27229,18 +23070,13 @@ end global.get $~lib/builtins/f64.MAX_VALUE f64.neg - call $~lib/util/number/dtoa - local.set $55 + call $~lib/util/number/dtoa + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 23376 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -27251,19 +23087,14 @@ call $~lib/builtins/abort unreachable end - f64.const 4185580496821356722454785e274 - call $~lib/util/number/dtoa - local.set $55 + global.get $~lib/builtins/f32.EPSILON + call $~lib/util/number/dtoa + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 23456 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if @@ -27274,19 +23105,15 @@ call $~lib/builtins/abort unreachable end - f64.const 2.2250738585072014e-308 - call $~lib/util/number/dtoa - local.set $55 + global.get $~lib/builtins/f32.EPSILON + f32.neg + call $~lib/util/number/dtoa + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 - i32.const 23520 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 + local.get $52 + i32.const 23504 call $~lib/string/String.__eq i32.eqz if @@ -27297,19 +23124,51 @@ call $~lib/builtins/abort unreachable end - f64.const 4.940656e-318 - call $~lib/util/number/dtoa - local.set $55 + global.get $~lib/builtins/f32.MAX_VALUE + call $~lib/util/number/dtoa + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 + i32.const 23552 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 747 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/builtins/f32.MAX_VALUE + f32.neg + call $~lib/util/number/dtoa + local.set $52 + global.get $~lib/memory/__stack_pointer + local.get $52 + i32.store + local.get $52 i32.const 23600 - local.set $55 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 748 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4185580496821356722454785e274 + call $~lib/util/number/dtoa + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 + local.get $52 + i32.store + local.get $52 + i32.const 23648 call $~lib/string/String.__eq i32.eqz if @@ -27320,669 +23179,560 @@ call $~lib/builtins/abort unreachable end + f64.const 2.2250738585072014e-308 + call $~lib/util/number/dtoa + local.set $52 + global.get $~lib/memory/__stack_pointer + local.get $52 + i32.store + local.get $52 + i32.const 23712 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 750 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4.940656e-318 + call $~lib/util/number/dtoa + local.set $52 + global.get $~lib/memory/__stack_pointer + local.get $52 + i32.store + local.get $52 + i32.const 23792 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 751 + i32.const 1 + call $~lib/builtins/abort + unreachable + end f64.const 9060801153433600 - call $~lib/util/number/dtoa - local.set $55 + call $~lib/util/number/dtoa + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 - i32.const 23648 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 + local.get $52 + i32.const 23840 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 750 + i32.const 752 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 4708356024711512064 - call $~lib/util/number/dtoa - local.set $55 + call $~lib/util/number/dtoa + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 - i32.const 23712 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 + local.get $52 + i32.const 23904 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 751 + i32.const 753 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 9409340012568248320 - call $~lib/util/number/dtoa - local.set $55 + call $~lib/util/number/dtoa + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 - i32.const 23776 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 + local.get $52 + i32.const 23968 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 752 + i32.const 754 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 5e-324 - call $~lib/util/number/dtoa - local.set $55 + call $~lib/util/number/dtoa + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 7296 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 753 + i32.const 755 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 1 - call $~lib/util/number/dtoa - local.set $55 + call $~lib/util/number/dtoa + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 - i32.const 23840 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 + local.get $52 + i32.const 24032 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 759 + i32.const 757 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 0.1 - call $~lib/util/number/dtoa - local.set $55 + call $~lib/util/number/dtoa + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 4256 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 760 + i32.const 758 i32.const 1 call $~lib/builtins/abort unreachable end f64.const -1 - call $~lib/util/number/dtoa - local.set $55 + call $~lib/util/number/dtoa + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 - i32.const 23872 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 + local.get $52 + i32.const 24064 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 761 + i32.const 759 i32.const 1 call $~lib/builtins/abort unreachable end f64.const -0.1 - call $~lib/util/number/dtoa - local.set $55 + call $~lib/util/number/dtoa + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 - i32.const 23904 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 + local.get $52 + i32.const 24096 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 762 + i32.const 760 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 1e6 - call $~lib/util/number/dtoa - local.set $55 + call $~lib/util/number/dtoa + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 - i32.const 23936 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 + local.get $52 + i32.const 24128 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 764 + i32.const 762 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 1e-06 - call $~lib/util/number/dtoa - local.set $55 + call $~lib/util/number/dtoa + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 - i32.const 23984 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 + local.get $52 + i32.const 24176 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 765 + i32.const 763 i32.const 1 call $~lib/builtins/abort unreachable end f64.const -1e6 - call $~lib/util/number/dtoa - local.set $55 + call $~lib/util/number/dtoa + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 - i32.const 24032 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 + local.get $52 + i32.const 24224 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 766 + i32.const 764 i32.const 1 call $~lib/builtins/abort unreachable end f64.const -1e-06 - call $~lib/util/number/dtoa - local.set $55 + call $~lib/util/number/dtoa + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 - i32.const 24080 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 + local.get $52 + i32.const 24272 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 767 + i32.const 765 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 1e7 - call $~lib/util/number/dtoa - local.set $55 + call $~lib/util/number/dtoa + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 - i32.const 24128 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 + local.get $52 + i32.const 24320 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 768 + i32.const 766 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 1e-07 - call $~lib/util/number/dtoa - local.set $55 + call $~lib/util/number/dtoa + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 - i32.const 24176 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 + local.get $52 + i32.const 24368 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 769 + i32.const 767 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 1.e+308 - call $~lib/util/number/dtoa - local.set $55 + call $~lib/util/number/dtoa + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 4544 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 771 + i32.const 769 i32.const 1 call $~lib/builtins/abort unreachable end f64.const -1.e+308 - call $~lib/util/number/dtoa - local.set $55 + call $~lib/util/number/dtoa + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 - i32.const 24208 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 + local.get $52 + i32.const 24400 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 772 + i32.const 770 i32.const 1 call $~lib/builtins/abort unreachable end f64.const inf - call $~lib/util/number/dtoa - local.set $55 + call $~lib/util/number/dtoa + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 22288 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 773 + i32.const 771 i32.const 1 call $~lib/builtins/abort unreachable end f64.const -inf - call $~lib/util/number/dtoa - local.set $55 + call $~lib/util/number/dtoa + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 7936 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 774 + i32.const 772 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 1e-308 - call $~lib/util/number/dtoa - local.set $55 + call $~lib/util/number/dtoa + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 - i32.const 24256 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 + local.get $52 + i32.const 24448 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 775 + i32.const 773 i32.const 1 call $~lib/builtins/abort unreachable end f64.const -1e-308 - call $~lib/util/number/dtoa - local.set $55 + call $~lib/util/number/dtoa + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 - i32.const 24288 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 + local.get $52 + i32.const 24480 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 776 + i32.const 774 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 1e-323 - call $~lib/util/number/dtoa - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 - i32.const 24336 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 + call $~lib/util/number/dtoa + local.set $52 + global.get $~lib/memory/__stack_pointer + local.get $52 + i32.store + local.get $52 + i32.const 24528 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 777 + i32.const 775 i32.const 1 call $~lib/builtins/abort unreachable end f64.const -1e-323 - call $~lib/util/number/dtoa - local.set $55 + call $~lib/util/number/dtoa + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 - i32.const 24368 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 + local.get $52 + i32.const 24560 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 778 + i32.const 776 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 0 - call $~lib/util/number/dtoa - local.set $55 + call $~lib/util/number/dtoa + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 22256 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 779 + i32.const 777 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 4294967272 - call $~lib/util/number/dtoa - local.set $55 + i32.const -24 + call $~lib/util/number/dtoa + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 - i32.const 24416 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 + local.get $52 + i32.const 24608 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 781 + i32.const 779 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 1.2312145673456234e-08 - call $~lib/util/number/dtoa - local.set $55 + call $~lib/util/number/dtoa + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 - i32.const 24464 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 + local.get $52 + i32.const 24656 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 782 + i32.const 780 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 555555555.5555556 - call $~lib/util/number/dtoa - local.set $55 + call $~lib/util/number/dtoa + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 - i32.const 24528 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 + local.get $52 + i32.const 24720 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 784 + i32.const 781 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 0.9999999999999999 - call $~lib/util/number/dtoa - local.set $55 + call $~lib/util/number/dtoa + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 - i32.const 24592 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 + local.get $52 + i32.const 24784 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 785 + i32.const 782 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 1 - call $~lib/util/number/dtoa - local.set $55 + call $~lib/util/number/dtoa + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 - i32.const 23840 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 + local.get $52 + i32.const 24032 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 786 + i32.const 783 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 12.34 - call $~lib/util/number/dtoa - local.set $55 + call $~lib/util/number/dtoa + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 - i32.const 24656 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 + local.get $52 + i32.const 24848 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 787 + i32.const 784 i32.const 1 call $~lib/builtins/abort unreachable @@ -27990,432 +23740,287 @@ f64.const 1 f64.const 3 f64.div - call $~lib/util/number/dtoa - local.set $55 + call $~lib/util/number/dtoa + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 - i32.const 24688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 + local.get $52 + i32.const 24880 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 789 + i32.const 785 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 1234e17 - call $~lib/util/number/dtoa - local.set $55 + call $~lib/util/number/dtoa + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 - i32.const 24752 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 + local.get $52 + i32.const 24944 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 790 + i32.const 786 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 1234e18 - call $~lib/util/number/dtoa - local.set $55 + call $~lib/util/number/dtoa + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 - i32.const 24832 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 + local.get $52 + i32.const 25024 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 791 + i32.const 787 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 2.71828 - call $~lib/util/number/dtoa - local.set $55 + call $~lib/util/number/dtoa + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 - i32.const 24880 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 + local.get $52 + i32.const 25072 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 792 + i32.const 788 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 0.0271828 - call $~lib/util/number/dtoa - local.set $55 + call $~lib/util/number/dtoa + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 - i32.const 24928 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 + local.get $52 + i32.const 25120 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 793 + i32.const 789 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 271.828 - call $~lib/util/number/dtoa - local.set $55 + call $~lib/util/number/dtoa + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 - i32.const 24976 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 + local.get $52 + i32.const 25168 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 794 + i32.const 790 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 1.1e+128 - call $~lib/util/number/dtoa - local.set $55 + call $~lib/util/number/dtoa + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 - i32.const 25024 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 + local.get $52 + i32.const 25216 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 795 + i32.const 791 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 1.1e-64 - call $~lib/util/number/dtoa - local.set $55 + call $~lib/util/number/dtoa + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 - i32.const 25072 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 + local.get $52 + i32.const 25264 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 796 + i32.const 792 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 0.000035689 - call $~lib/util/number/dtoa - local.set $55 + call $~lib/util/number/dtoa + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 - i32.const 25120 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 + local.get $52 + i32.const 25312 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 797 + i32.const 793 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 25168 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 - i32.const 25200 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 + i32.const 25360 + i32.const 25392 call $~lib/string/String#concat - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 - i32.const 25232 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 + local.get $52 + i32.const 25424 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 96 - i32.const 802 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 - i32.const 25280 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 + i32.const 96 + i32.const 820 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 688 + i32.const 25472 call $~lib/string/String#concat - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 - i32.const 25280 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 + local.get $52 + i32.const 25472 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 803 + i32.const 821 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 25280 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 + i32.const 25472 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 call $~lib/string/String#concat - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 - i32.const 25280 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 + local.get $52 + i32.const 25472 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 804 + i32.const 822 i32.const 1 call $~lib/builtins/abort unreachable end i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=8 - local.get $55 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=12 - local.get $55 call $~lib/string/String#concat - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 805 + i32.const 823 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 25312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 - i32.const 25312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 + i32.const 25504 + i32.const 25504 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 816 + i32.const 831 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 25312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 - i32.const 25312 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 + i32.const 25504 + i32.const 25504 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 817 + i32.const 832 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 25344 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 - i32.const 25344 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 + i32.const 25536 + i32.const 25536 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 818 + i32.const 833 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 25376 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store - local.get $55 - i32.const 25376 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store offset=4 - local.get $55 + i32.const 25568 + i32.const 25568 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 819 + i32.const 834 i32.const 1 call $~lib/builtins/abort unreachable @@ -28426,7 +24031,7 @@ global.set $~lib/memory/__stack_pointer call $~lib/rt/itcms/__collect global.get $~lib/memory/__stack_pointer - i32.const 96 + i32.const 76 i32.add global.set $~lib/memory/__stack_pointer ) @@ -29439,10 +25044,12 @@ local.get $18 return ) - (func $~lib/util/number/dtoa (param $value f64) (result i32) + (func $~lib/util/number/dtoa (param $value f64) (result i32) + (local $value|1 f64) + (local $isSingle i32) (local $size i32) (local $result i32) - (local $3 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -29451,76 +25058,220 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $value - f64.const 0 - f64.eq - if - i32.const 22256 - local.set $3 + block $~lib/util/number/dtoa_impl|inlined.0 (result i32) + local.get $value + local.set $value|1 + i32.const 0 + local.set $isSingle + local.get $value|1 + f64.const 0 + f64.eq + if + i32.const 22256 + 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 6672 + br $~lib/util/number/dtoa_impl|inlined.0 + end + 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 22320 + 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 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return + local.get $size + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $result + i32.store + local.get $result + i32.const 22320 + local.get $size + memory.copy + local.get $result + br $~lib/util/number/dtoa_impl|inlined.0 end - local.get $value - local.get $value - f64.sub - f64.const 0 - f64.eq - i32.eqz - if - 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/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.1 (result i32) local.get $value - f64.ne + 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 6672 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return + i32.const 22256 + br $~lib/util/number/dtoa_impl|inlined.1 end - i32.const 7936 - i32.const 22288 - local.get $value + local.get $value|1 + local.get $value|1 + f64.sub f64.const 0 - f64.lt - select - local.set $3 + f64.eq + i32.eqz + if + local.get $value|1 + local.get $value|1 + f64.ne + if + i32.const 6672 + br $~lib/util/number/dtoa_impl|inlined.1 + end + 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 22320 + 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 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return + local.get $size + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $result + i32.store + local.get $result + i32.const 22320 + local.get $size + memory.copy + local.get $result + br $~lib/util/number/dtoa_impl|inlined.1 end - i32.const 22320 - local.get $value - call $~lib/util/number/dtoa_core - i32.const 1 - i32.shl - local.set $size + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $size - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $result + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + ) + (func $~lib/util/number/dtoa (param $value i32) (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 - local.get $result - i32.const 22320 - local.get $size - memory.copy - local.get $result - local.set $3 + block $~lib/util/number/dtoa_impl|inlined.2 (result i32) + local.get $value + f64.convert_i32_u + local.set $value|1 + i32.const 0 + local.set $isSingle + local.get $value|1 + f64.const 0 + f64.eq + if + i32.const 22256 + br $~lib/util/number/dtoa_impl|inlined.2 + 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 6672 + br $~lib/util/number/dtoa_impl|inlined.2 + end + 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 22320 + 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 22320 + local.get $size + memory.copy + local.get $result + br $~lib/util/number/dtoa_impl|inlined.2 + end + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $5 return ) ) diff --git a/tests/compiler/std/string.release.wat b/tests/compiler/std/string.release.wat index d1deec7441..ed9cf71122 100644 --- a/tests/compiler/std/string.release.wat +++ b/tests/compiler/std/string.release.wat @@ -2,23 +2,25 @@ (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 i32))) + (type $3 (func (param i32 i32))) + (type $4 (func)) (type $5 (func (param i32))) (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32))) - (type $8 (func (param f64) (result i32))) + (type $7 (func (param i32) (result f64))) + (type $8 (func (param i64 i32) (result 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))) + (type $10 (func (param i32 i32 i32))) + (type $11 (func (param i32 i32 i32 i32))) + (type $12 (func (param f64) (result i32))) (type $13 (func (param i32 i32 i32 i32) (result i32))) - (type $14 (func (param i32 i32 i64))) - (type $15 (func (param f64 i32) (result f64))) - (type $16 (func (param i32 i64 i32 i32))) - (type $17 (func (param i32 i64 i32))) - (type $18 (func (param i64 i64 i32 i64 i32) (result i32))) - (type $19 (func (result i64))) + (type $14 (func (param i32 i64 i32 i32))) + (type $15 (func (param f32) (result i32))) + (type $16 (func (param f64 i32) (result i32))) + (type $17 (func (result i64))) + (type $18 (func (param i32 i64 i32))) + (type $19 (func (param i32 i32 i64))) + (type $20 (func (param f64 i32) (result f64))) + (type $21 (func (param i64 i64 i32 i64 i32) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $std/string/str (mut i32) (i32.const 1056)) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) @@ -39,7 +41,7 @@ (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 59212)) + (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") @@ -888,3459 +890,2948 @@ (data $428.1 (i32.const 24328) "\02\00\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 $429 (i32.const 24380) "L") (data $429.1 (i32.const 24392) "\02\00\00\000\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 $430 (i32.const 24460) "<") - (data $430.1 (i32.const 24472) "\02\00\00\00,\00\00\004\00.\001\008\005\005\008\000\004\009\006\008\002\001\003\005\007\00e\00+\002\009\008") - (data $431 (i32.const 24524) "L") - (data $431.1 (i32.const 24536) "\02\00\00\00.\00\00\002\00.\002\002\005\000\007\003\008\005\008\005\000\007\002\000\001\004\00e\00-\003\000\008") - (data $432 (i32.const 24604) ",") - (data $432.1 (i32.const 24616) "\02\00\00\00\1a\00\00\004\00.\009\004\000\006\005\006\00e\00-\003\001\008") - (data $433 (i32.const 24652) "<") - (data $433.1 (i32.const 24664) "\02\00\00\00$\00\00\009\000\006\000\008\000\001\001\005\003\004\003\003\006\000\000\00.\000") - (data $434 (i32.const 24716) "<") - (data $434.1 (i32.const 24728) "\02\00\00\00*\00\00\004\007\000\008\003\005\006\000\002\004\007\001\001\005\001\002\000\000\000\00.\000") - (data $435 (i32.const 24780) "<") - (data $435.1 (i32.const 24792) "\02\00\00\00*\00\00\009\004\000\009\003\004\000\000\001\002\005\006\008\002\004\008\000\000\000\00.\000") - (data $436 (i32.const 24844) "\1c") - (data $436.1 (i32.const 24856) "\02\00\00\00\06\00\00\001\00.\000") - (data $437 (i32.const 24876) "\1c") - (data $437.1 (i32.const 24888) "\02\00\00\00\08\00\00\00-\001\00.\000") - (data $438 (i32.const 24908) "\1c") - (data $438.1 (i32.const 24920) "\02\00\00\00\08\00\00\00-\000\00.\001") - (data $439 (i32.const 24940) ",") - (data $439.1 (i32.const 24952) "\02\00\00\00\12\00\00\001\000\000\000\000\000\000\00.\000") - (data $440 (i32.const 24988) ",") - (data $440.1 (i32.const 25000) "\02\00\00\00\10\00\00\000\00.\000\000\000\000\000\001") - (data $441 (i32.const 25036) ",") - (data $441.1 (i32.const 25048) "\02\00\00\00\14\00\00\00-\001\000\000\000\000\000\000\00.\000") - (data $442 (i32.const 25084) ",") - (data $442.1 (i32.const 25096) "\02\00\00\00\12\00\00\00-\000\00.\000\000\000\000\000\001") + (data $430 (i32.const 24460) ",") + (data $430.1 (i32.const 24472) "\02\00\00\00\18\00\00\001\00.\001\009\002\000\009\002\009\00e\00-\007") + (data $431 (i32.const 24508) ",") + (data $431.1 (i32.const 24520) "\02\00\00\00\1a\00\00\00-\001\00.\001\009\002\000\009\002\009\00e\00-\007") + (data $432 (i32.const 24556) ",") + (data $432.1 (i32.const 24568) "\02\00\00\00\1a\00\00\003\00.\004\000\002\008\002\003\005\00e\00+\003\008") + (data $433 (i32.const 24604) ",") + (data $433.1 (i32.const 24616) "\02\00\00\00\1c\00\00\00-\003\00.\004\000\002\008\002\003\005\00e\00+\003\008") + (data $434 (i32.const 24652) "<") + (data $434.1 (i32.const 24664) "\02\00\00\00,\00\00\004\00.\001\008\005\005\008\000\004\009\006\008\002\001\003\005\007\00e\00+\002\009\008") + (data $435 (i32.const 24716) "L") + (data $435.1 (i32.const 24728) "\02\00\00\00.\00\00\002\00.\002\002\005\000\007\003\008\005\008\005\000\007\002\000\001\004\00e\00-\003\000\008") + (data $436 (i32.const 24796) ",") + (data $436.1 (i32.const 24808) "\02\00\00\00\1a\00\00\004\00.\009\004\000\006\005\006\00e\00-\003\001\008") + (data $437 (i32.const 24844) "<") + (data $437.1 (i32.const 24856) "\02\00\00\00$\00\00\009\000\006\000\008\000\001\001\005\003\004\003\003\006\000\000\00.\000") + (data $438 (i32.const 24908) "<") + (data $438.1 (i32.const 24920) "\02\00\00\00*\00\00\004\007\000\008\003\005\006\000\002\004\007\001\001\005\001\002\000\000\000\00.\000") + (data $439 (i32.const 24972) "<") + (data $439.1 (i32.const 24984) "\02\00\00\00*\00\00\009\004\000\009\003\004\000\000\001\002\005\006\008\002\004\008\000\000\000\00.\000") + (data $440 (i32.const 25036) "\1c") + (data $440.1 (i32.const 25048) "\02\00\00\00\06\00\00\001\00.\000") + (data $441 (i32.const 25068) "\1c") + (data $441.1 (i32.const 25080) "\02\00\00\00\08\00\00\00-\001\00.\000") + (data $442 (i32.const 25100) "\1c") + (data $442.1 (i32.const 25112) "\02\00\00\00\08\00\00\00-\000\00.\001") (data $443 (i32.const 25132) ",") - (data $443.1 (i32.const 25144) "\02\00\00\00\14\00\00\001\000\000\000\000\000\000\000\00.\000") - (data $444 (i32.const 25180) "\1c") - (data $444.1 (i32.const 25192) "\02\00\00\00\08\00\00\001\00e\00-\007") - (data $445 (i32.const 25212) ",") - (data $445.1 (i32.const 25224) "\02\00\00\00\0e\00\00\00-\001\00e\00+\003\000\008") - (data $446 (i32.const 25260) "\1c") - (data $446.1 (i32.const 25272) "\02\00\00\00\0c\00\00\001\00e\00-\003\000\008") - (data $447 (i32.const 25292) ",") - (data $447.1 (i32.const 25304) "\02\00\00\00\0e\00\00\00-\001\00e\00-\003\000\008") - (data $448 (i32.const 25340) "\1c") - (data $448.1 (i32.const 25352) "\02\00\00\00\0c\00\00\001\00e\00-\003\002\003") - (data $449 (i32.const 25372) ",") - (data $449.1 (i32.const 25384) "\02\00\00\00\0e\00\00\00-\001\00e\00-\003\002\003") - (data $450 (i32.const 25420) ",") - (data $450.1 (i32.const 25432) "\02\00\00\00\18\00\00\004\002\009\004\009\006\007\002\007\002\00.\000") - (data $451 (i32.const 25468) "<") - (data $451.1 (i32.const 25480) "\02\00\00\00*\00\00\001\00.\002\003\001\002\001\004\005\006\007\003\004\005\006\002\003\004\00e\00-\008") - (data $452 (i32.const 25532) "<") - (data $452.1 (i32.const 25544) "\02\00\00\00\"\00\00\005\005\005\005\005\005\005\005\005\00.\005\005\005\005\005\005\006") - (data $453 (i32.const 25596) "<") - (data $453.1 (i32.const 25608) "\02\00\00\00$\00\00\000\00.\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009") - (data $454 (i32.const 25660) "\1c") - (data $454.1 (i32.const 25672) "\02\00\00\00\n\00\00\001\002\00.\003\004") - (data $455 (i32.const 25692) "<") - (data $455.1 (i32.const 25704) "\02\00\00\00$\00\00\000\00.\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003") - (data $456 (i32.const 25756) "L") - (data $456.1 (i32.const 25768) "\02\00\00\00.\00\00\001\002\003\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\00.\000") - (data $457 (i32.const 25836) ",") - (data $457.1 (i32.const 25848) "\02\00\00\00\12\00\00\001\00.\002\003\004\00e\00+\002\001") - (data $458 (i32.const 25884) ",") - (data $458.1 (i32.const 25896) "\02\00\00\00\0e\00\00\002\00.\007\001\008\002\008") - (data $459 (i32.const 25932) ",") - (data $459.1 (i32.const 25944) "\02\00\00\00\12\00\00\000\00.\000\002\007\001\008\002\008") - (data $460 (i32.const 25980) ",") - (data $460.1 (i32.const 25992) "\02\00\00\00\0e\00\00\002\007\001\00.\008\002\008") + (data $443.1 (i32.const 25144) "\02\00\00\00\12\00\00\001\000\000\000\000\000\000\00.\000") + (data $444 (i32.const 25180) ",") + (data $444.1 (i32.const 25192) "\02\00\00\00\10\00\00\000\00.\000\000\000\000\000\001") + (data $445 (i32.const 25228) ",") + (data $445.1 (i32.const 25240) "\02\00\00\00\14\00\00\00-\001\000\000\000\000\000\000\00.\000") + (data $446 (i32.const 25276) ",") + (data $446.1 (i32.const 25288) "\02\00\00\00\12\00\00\00-\000\00.\000\000\000\000\000\001") + (data $447 (i32.const 25324) ",") + (data $447.1 (i32.const 25336) "\02\00\00\00\14\00\00\001\000\000\000\000\000\000\000\00.\000") + (data $448 (i32.const 25372) "\1c") + (data $448.1 (i32.const 25384) "\02\00\00\00\08\00\00\001\00e\00-\007") + (data $449 (i32.const 25404) ",") + (data $449.1 (i32.const 25416) "\02\00\00\00\0e\00\00\00-\001\00e\00+\003\000\008") + (data $450 (i32.const 25452) "\1c") + (data $450.1 (i32.const 25464) "\02\00\00\00\0c\00\00\001\00e\00-\003\000\008") + (data $451 (i32.const 25484) ",") + (data $451.1 (i32.const 25496) "\02\00\00\00\0e\00\00\00-\001\00e\00-\003\000\008") + (data $452 (i32.const 25532) "\1c") + (data $452.1 (i32.const 25544) "\02\00\00\00\0c\00\00\001\00e\00-\003\002\003") + (data $453 (i32.const 25564) ",") + (data $453.1 (i32.const 25576) "\02\00\00\00\0e\00\00\00-\001\00e\00-\003\002\003") + (data $454 (i32.const 25612) ",") + (data $454.1 (i32.const 25624) "\02\00\00\00\18\00\00\004\002\009\004\009\006\007\002\007\002\00.\000") + (data $455 (i32.const 25660) "<") + (data $455.1 (i32.const 25672) "\02\00\00\00*\00\00\001\00.\002\003\001\002\001\004\005\006\007\003\004\005\006\002\003\004\00e\00-\008") + (data $456 (i32.const 25724) "<") + (data $456.1 (i32.const 25736) "\02\00\00\00\"\00\00\005\005\005\005\005\005\005\005\005\00.\005\005\005\005\005\005\006") + (data $457 (i32.const 25788) "<") + (data $457.1 (i32.const 25800) "\02\00\00\00$\00\00\000\00.\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009") + (data $458 (i32.const 25852) "\1c") + (data $458.1 (i32.const 25864) "\02\00\00\00\n\00\00\001\002\00.\003\004") + (data $459 (i32.const 25884) "<") + (data $459.1 (i32.const 25896) "\02\00\00\00$\00\00\000\00.\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003") + (data $460 (i32.const 25948) "L") + (data $460.1 (i32.const 25960) "\02\00\00\00.\00\00\001\002\003\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\00.\000") (data $461 (i32.const 26028) ",") - (data $461.1 (i32.const 26040) "\02\00\00\00\10\00\00\001\00.\001\00e\00+\001\002\008") + (data $461.1 (i32.const 26040) "\02\00\00\00\12\00\00\001\00.\002\003\004\00e\00+\002\001") (data $462 (i32.const 26076) ",") - (data $462.1 (i32.const 26088) "\02\00\00\00\0e\00\00\001\00.\001\00e\00-\006\004") + (data $462.1 (i32.const 26088) "\02\00\00\00\0e\00\00\002\00.\007\001\008\002\008") (data $463 (i32.const 26124) ",") - (data $463.1 (i32.const 26136) "\02\00\00\00\16\00\00\000\00.\000\000\000\000\003\005\006\008\009") - (data $464 (i32.const 26172) "\1c") - (data $464.1 (i32.const 26184) "\02\00\00\00\0c\00\00\00H\00e\00l\00l\00o\00 ") - (data $465 (i32.const 26204) "\1c") - (data $465.1 (i32.const 26216) "\02\00\00\00\n\00\00\00W\00o\00r\00l\00d") - (data $466 (i32.const 26236) ",") - (data $466.1 (i32.const 26248) "\02\00\00\00\16\00\00\00H\00e\00l\00l\00o\00 \00W\00o\00r\00l\00d") - (data $467 (i32.const 26284) "\1c") - (data $467.1 (i32.const 26296) "\02\00\00\00\06\00\00\00b\00a\00r") - (data $468 (i32.const 26316) "\1c") - (data $468.1 (i32.const 26328) "\02\00\00\00\04\00\00\00\c0\00\c8") - (data $469 (i32.const 26348) "\1c") - (data $469.1 (i32.const 26360) "\02\00\00\00\04\00\00\00\d8S\cf\91") - (data $470 (i32.const 26380) "\1c") - (data $470.1 (i32.const 26392) "\02\00\00\00\08\00\00\00A\d8\0e\dfA\d81\df") - (data $471 (i32.const 26416) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\t\00\00\02A") + (data $463.1 (i32.const 26136) "\02\00\00\00\12\00\00\000\00.\000\002\007\001\008\002\008") + (data $464 (i32.const 26172) ",") + (data $464.1 (i32.const 26184) "\02\00\00\00\0e\00\00\002\007\001\00.\008\002\008") + (data $465 (i32.const 26220) ",") + (data $465.1 (i32.const 26232) "\02\00\00\00\10\00\00\001\00.\001\00e\00+\001\002\008") + (data $466 (i32.const 26268) ",") + (data $466.1 (i32.const 26280) "\02\00\00\00\0e\00\00\001\00.\001\00e\00-\006\004") + (data $467 (i32.const 26316) ",") + (data $467.1 (i32.const 26328) "\02\00\00\00\16\00\00\000\00.\000\000\000\000\003\005\006\008\009") + (data $468 (i32.const 26364) "\1c") + (data $468.1 (i32.const 26376) "\02\00\00\00\0c\00\00\00H\00e\00l\00l\00o\00 ") + (data $469 (i32.const 26396) "\1c") + (data $469.1 (i32.const 26408) "\02\00\00\00\n\00\00\00W\00o\00r\00l\00d") + (data $470 (i32.const 26428) ",") + (data $470.1 (i32.const 26440) "\02\00\00\00\16\00\00\00H\00e\00l\00l\00o\00 \00W\00o\00r\00l\00d") + (data $471 (i32.const 26476) "\1c") + (data $471.1 (i32.const 26488) "\02\00\00\00\06\00\00\00b\00a\00r") + (data $472 (i32.const 26508) "\1c") + (data $472.1 (i32.const 26520) "\02\00\00\00\04\00\00\00\c0\00\c8") + (data $473 (i32.const 26540) "\1c") + (data $473.1 (i32.const 26552) "\02\00\00\00\04\00\00\00\d8S\cf\91") + (data $474 (i32.const 26572) "\1c") + (data $474.1 (i32.const 26584) "\02\00\00\00\08\00\00\00A\d8\0e\dfA\d81\df") + (data $475 (i32.const 26608) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\t\00\00\02A") (export "getString" (func $std/string/getString)) (export "memory" (memory $0)) (start $~start) - (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (local $4 i32) + (func $~lib/string/String.__eq (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 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 + i64.const 0 + i64.store local.get $0 local.get $1 - i32.const 1 - i32.shl - i32.add - local.set $1 - local.get $3 - i32.const 4 - i32.ge_u - if (result i32) + 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.const 7 - i32.and - local.get $2 - i32.const 7 - i32.and + i32.eqz + local.get $0 + i32.eqz i32.or - else + 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 $2 + 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 1 + i32.shr_u + i32.ne + 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 + local.get $0 + i32.const 0 + local.get $1 + local.get $2 + call $~lib/util/string/compareImpl + i32.eqz + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return end - i32.eqz + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (func $~lib/number/F64.parseFloat (param $0 i32) (result f64) + (local $1 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 26636 + i32.lt_s if - loop $do-loop|0 - local.get $1 - i64.load - local.get $2 - i64.load - i64.eq - if - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $3 - i32.const 4 - i32.sub - local.tee $3 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end - end - end - loop $while-continue|1 - local.get $3 - local.tee $0 + i32.const 59424 + i32.const 59472 i32.const 1 - i32.sub - local.set $3 - local.get $0 - if - local.get $1 - i32.load16_u - local.tee $0 - local.get $2 - i32.load16_u - local.tee $4 - i32.ne - if - local.get $0 - local.get $4 - i32.sub - return - end - local.get $1 - i32.const 2 - i32.add - local.set $1 - local.get $2 - i32.const 2 - i32.add - local.set $2 - br $while-continue|1 - end + 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 + call $~lib/util/string/strtod + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - global.get $std/string/str - local.tee $0 + (func $~lib/util/number/utoa64 (param $0 i64) (param $1 i32) (result i32) + (local $2 i64) + (local $3 i32) + (local $4 i64) + (local $5 i64) + (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 26636 + i32.lt_s if - local.get $0 - call $~lib/rt/itcms/__visit + i32.const 59424 + i32.const 59472 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - i32.const 1264 - call $~lib/rt/itcms/__visit - i32.const 14064 - call $~lib/rt/itcms/__visit - i32.const 15712 - call $~lib/rt/itcms/__visit - i32.const 1376 - call $~lib/rt/itcms/__visit - i32.const 16640 - call $~lib/rt/itcms/__visit - i32.const 17696 - 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 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 2 + i32.lt_s + local.get $1 + i32.const 36 + i32.gt_s + i32.or + if + i32.const 16048 + i32.const 16176 + i32.const 401 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + 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 3392 + return + end + local.get $1 + i32.const 10 + i32.eq + if local.get $0 - local.get $1 - i32.ne + i64.const 4294967295 + i64.le_u if + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1440 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.wrap_i64 + local.tee $1 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 100 + i32.lt_u + if (result i32) + local.get $1 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $1 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $1 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $1 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $1 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $1 + i32.const 100000000 + i32.ge_u + i32.add + end end + local.tee $6 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.get $1 + local.get $6 + call $~lib/util/number/utoa32_dec_lut + else + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members + i64.const 1000000000000000 + i64.lt_u + if (result i32) + local.get $0 + i64.const 1000000000000 + i64.lt_u + if (result i32) + local.get $0 + i64.const 100000000000 + i64.ge_u + i32.const 10 + i32.add + local.get $0 + i64.const 10000000000 + i64.ge_u + i32.add + else + local.get $0 + i64.const 100000000000000 + i64.ge_u + i32.const 13 + i32.add + local.get $0 + i64.const 10000000000000 + i64.ge_u + i32.add + end + else + local.get $0 + i64.const 100000000000000000 + i64.lt_u + if (result i32) + local.get $0 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 + i32.add + else + local.get $0 + i64.const -8446744073709551616 + i64.ge_u + i32.const 18 + i32.add + local.get $0 + i64.const 1000000000000000000 + i64.ge_u + i32.add + end + end + local.tee $1 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 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 1440 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable + local.get $1 + call $~lib/util/number/utoa64_dec_lut end + else local.get $1 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$284 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $1 - i32.eqz + i32.const 16 + i32.eq if + global.get $~lib/memory/__stack_pointer + i32.const 63 local.get $0 - i32.load offset=8 - i32.eqz - local.get $0 - i32.const 59212 - i32.lt_u + i64.clz + i32.wrap_i64 + i32.sub + i32.const 2 + i32.shr_s + i32.const 1 + i32.add + local.tee $1 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + loop $while-continue|0 + local.get $1 + i32.const 2 + i32.ge_u + if + local.get $3 + local.get $1 + i32.const 2 + i32.sub + local.tee $1 + i32.const 1 + i32.shl + i32.add + local.get $0 + i32.wrap_i64 + i32.const 255 + i32.and + i32.const 2 + i32.shl + i32.const 16640 + i32.add + i32.load + i32.store + local.get $0 + i64.const 8 + i64.shr_u + local.set $0 + br $while-continue|0 + end + end + local.get $1 + i32.const 1 i32.and - i32.eqz if - i32.const 0 - i32.const 1440 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable + local.get $3 + local.get $0 + i32.wrap_i64 + i32.const 6 + i32.shl + i32.const 16640 + i32.add + i32.load16_u + i32.store16 end - br $__inlined_func$~lib/rt/itcms/Object#unlink$284 - end - local.get $0 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1440 - 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 26416 - i32.load - i32.gt_u - if - i32.const 1264 - i32.const 1568 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable + else + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + block $__inlined_func$~lib/util/number/ulog_base$180 (result i32) + local.get $1 + i32.popcnt + i32.const 1 + i32.eq + if + i32.const 63 + local.get $0 + i64.clz + i32.wrap_i64 + i32.sub + i32.const 31 + local.get $1 + i32.clz + i32.sub + i32.div_u + i32.const 1 + i32.add + br $__inlined_func$~lib/util/number/ulog_base$180 + end + local.get $1 + i64.extend_i32_s + local.tee $5 + local.set $4 + i32.const 1 + local.set $3 + loop $while-continue|01 + local.get $2 + local.get $4 + i64.ge_u + if + local.get $2 + local.get $4 + i64.div_u + local.set $2 + local.get $4 + local.get $4 + i64.mul + local.set $4 + local.get $3 + i32.const 1 + i32.shl + local.set $3 + br $while-continue|01 + end + end + loop $while-continue|1 + local.get $2 + i64.const 0 + i64.ne + if + local.get $2 + local.get $5 + i64.div_u + local.set $2 + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $while-continue|1 + end + end + local.get $3 + i32.const 1 + i32.sub + end + local.tee $6 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.get $0 + local.get $6 + local.get $1 + call $~lib/util/number/utoa64_any_core end - local.get $1 - i32.const 2 - i32.shl - i32.const 26420 - 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 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer 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 + (func $~lib/util/number/dtoa (param $0 f64) (result i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - local.tee $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq + 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 + i32.const 23280 + local.set $1 + block $~lib/util/number/dtoa_impl|inlined.0 local.get $0 - call $~lib/rt/itcms/Object#makeGray - global.get $~lib/rt/itcms/visitCount + f64.const 0 + f64.eq + br_if $~lib/util/number/dtoa_impl|inlined.0 + local.get $0 + local.get $0 + f64.sub + f64.const 0 + f64.ne + if + 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 8960 + i32.const 23312 + local.get $0 + f64.const 0 + f64.lt + select + local.set $1 + br $~lib/util/number/dtoa_impl|inlined.0 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + call $~lib/util/number/dtoa_core i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount + i32.shl + local.tee $2 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $1 + i32.const 23344 + local.get $2 + memory.copy end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (func $~lib/util/number/utoa32 (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + (local $3 i64) + (local $4 i64) + (local $5 i64) + (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 26636 + i32.lt_s if - i32.const 0 - i32.const 1648 - i32.const 268 - i32.const 14 + i32.const 59424 + i32.const 59472 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 2 + i32.lt_s + local.get $1 + i32.const 36 + i32.gt_s + i32.or if - i32.const 0 - i32.const 1648 - i32.const 270 - i32.const 14 + i32.const 16048 + i32.const 16176 + i32.const 350 + i32.const 5 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 + local.get $0 i32.eqz if - i32.const 0 - i32.const 1648 - 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 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 3392 + return 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.const 10 i32.eq if + 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 $1 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.get $0 local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz + call $~lib/util/number/utoa32_dec_lut + else + local.get $1 + i32.const 16 + i32.eq if + global.get $~lib/memory/__stack_pointer + i32.const 31 local.get $0 - local.get $2 + i32.clz + i32.sub i32.const 2 - i32.shl + i32.shr_s + i32.const 1 i32.add local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $0 + i64.extend_i32_u local.set $3 + loop $while-continue|0 + local.get $1 + i32.const 2 + i32.ge_u + if + local.get $2 + local.get $1 + i32.const 2 + i32.sub + local.tee $1 + i32.const 1 + i32.shl + i32.add + local.get $3 + i32.wrap_i64 + i32.const 255 + i32.and + i32.const 2 + i32.shl + i32.const 16640 + i32.add + i32.load + i32.store + local.get $3 + i64.const 8 + i64.shr_u + local.set $3 + br $while-continue|0 + end + end local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz + i32.const 1 + i32.and if - local.get $0 - local.get $0 - i32.load - i32.const -2 local.get $2 - i32.rotl - i32.and - i32.store + local.get $3 + i32.wrap_i64 + i32.const 6 + i32.shl + i32.const 16640 + i32.add + i32.load16_u + i32.store16 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 1648 - 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 1648 - 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 + else + local.get $0 + i64.extend_i32_u + local.set $4 + global.get $~lib/memory/__stack_pointer + block $__inlined_func$~lib/util/number/ulog_base$175 (result i32) + local.get $1 + i32.popcnt + i32.const 1 + i32.eq + if + i32.const 63 + local.get $4 + i64.clz + i32.wrap_i64 + i32.sub + i32.const 31 + local.get $1 + i32.clz + i32.sub + i32.div_u + i32.const 1 + i32.add + br $__inlined_func$~lib/util/number/ulog_base$175 + end + local.get $1 + i64.extend_i32_s + local.tee $5 + local.set $3 + i32.const 1 + local.set $2 + loop $while-continue|01 + local.get $3 + local.get $4 + i64.le_u + if + local.get $4 + local.get $3 + i64.div_u + local.set $4 + local.get $3 + local.get $3 + i64.mul + local.set $3 + local.get $2 + i32.const 1 + i32.shl + local.set $2 + 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 - local.tee $4 - i32.load - local.tee $2 - i32.const 1 - i32.and + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (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 - 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 + i32.const 1376 + i32.const 1440 + i32.const 261 + i32.const 31 + call $~lib/builtins/abort + unreachable end - local.get $3 - i32.const 2 - i32.and + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u 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 1648 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable + block $__inlined_func$~lib/rt/itcms/interrupt$70 + i32.const 2048 + local.set $2 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$70 + end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.const 10 + i32.shl + i32.add + global.set $~lib/rt/itcms/threshold end - 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 + global.get $~lib/rt/tlsf/ROOT + i32.eqz if - i32.const 0 - i32.const 1648 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable + call $~lib/rt/tlsf/initialize end - local.get $4 - local.get $1 - i32.const 4 - i32.add - local.get $2 + global.get $~lib/rt/tlsf/ROOT + local.set $4 + local.get $0 + i32.const 16 i32.add - i32.ne + local.tee $2 + i32.const 1073741820 + i32.gt_u if - i32.const 0 + i32.const 1376 i32.const 1648 - i32.const 234 - i32.const 14 + i32.const 461 + i32.const 29 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 + i32.const 12 + i32.le_u if (result i32) - local.get $2 - i32.const 4 - i32.shr_u + i32.const 12 else - i32.const 31 - i32.const 1073741820 local.get $2 - local.get $2 - i32.const 1073741820 + 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 + local.get $5 + i32.const 256 i32.ge_u - select + 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 + memory.size 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 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.set $3 + local.get $2 + local.get $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.xor + 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 1648 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end end - local.tee $2 - i32.const 16 - i32.lt_u local.get $5 - i32.const 23 - i32.lt_u + local.get $2 + i32.load + i32.const -4 i32.and - i32.eqz + i32.gt_u if i32.const 0 i32.const 1648 - i32.const 251 + i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $0 - local.get $5 - i32.const 4 - i32.shl + local.get $4 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 + call $~lib/rt/tlsf/removeBlock 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.set $6 local.get $5 - i32.const 2 - i32.shl + i32.const 4 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 + i32.const 15 + i32.and if i32.const 0 i32.const 1648 - i32.const 382 + i32.const 361 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 19 - i32.add - i32.const -16 + local.get $6 + i32.const -4 i32.and - i32.const 4 + local.get $5 i32.sub - local.set $1 - local.get $0 - i32.load offset=1568 local.tee $3 + i32.const 16 + i32.ge_u if - local.get $3 + 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 $1 - i32.gt_u - if - i32.const 0 - i32.const 1648 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end + local.get $5 + i32.add + local.tee $5 local.get $3 - local.get $1 - i32.const 16 + i32.const 4 i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - local.set $1 - end + i32.const 1 + i32.or + i32.store + local.get $4 + local.get $5 + call $~lib/rt/tlsf/insertBlock else - local.get $0 - i32.const 1572 + local.get $2 + local.get $6 + i32.const -2 + i32.and + i32.store + local.get $2 + i32.const 4 i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1648 - 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 + 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 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 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 - local.get $1 - i32.const 0 i32.store offset=4 local.get $1 - i32.const 0 + local.get $2 i32.store offset=8 - local.get $1 + global.get $~lib/rt/itcms/total + local.get $2 + i32.load + i32.const -4 + i32.and i32.const 4 i32.add - local.get $3 i32.add - local.tee $3 - i32.const 2 + 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/string/parseInt (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 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 - local.get $3 - i32.store offset=1568 + i32.store local.get $0 local.get $1 - call $~lib/rt/tlsf/insertBlock + call $~lib/util/string/strtol + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (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) + (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 26636 + i32.lt_s + if + i32.const 59424 + i32.const 59472 i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 + 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 1264 + i32.const 15664 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort unreachable end - i32.const 59216 - i32.const 0 - i32.store - i32.const 60784 - i32.const 0 + global.get $~lib/memory/__stack_pointer + local.get $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 59216 - 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 59216 - 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 + 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 15712 + i32.const 15664 + i32.const 118 + i32.const 40 + call $~lib/builtins/abort + unreachable end - i32.const 59216 - i32.const 60788 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 59216 - global.set $~lib/rt/tlsf/ROOT + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 ) - (func $~lib/rt/itcms/step (result i32) - (local $0 i32) - (local $1 i32) + (func $~lib/util/number/itoa32 (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 - 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 + (local $3 i64) + (local $4 i32) + (local $5 i64) + (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 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 + local.get $1 + i32.const 2 + i32.lt_s + local.get $1 + i32.const 36 + i32.gt_s + i32.or + if + i32.const 16048 + i32.const 16176 + i32.const 373 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + 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 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 + 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 - 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 59212 - 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 + 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 - global.get $~lib/rt/itcms/visitCount - return end - global.get $~lib/rt/itcms/iter + local.tee $1 + i32.const 1 + i32.shl + local.get $4 + i32.add + i32.const 2 + call $~lib/rt/itcms/__new local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne + i32.store + local.get $0 + local.get $4 + i32.add + local.get $2 + local.get $1 + call $~lib/util/number/utoa32_dec_lut + else + local.get $1 + i32.const 16 + i32.eq if - local.get $0 - i32.load offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 31 + local.get $2 + i32.clz + i32.sub + i32.const 2 + i32.shr_s + i32.const 1 + i32.add 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 1440 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + 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 - i32.const 59212 - 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 59212 + local.get $4 + i32.add + local.set $7 + local.get $2 + i64.extend_i32_u + local.set $3 + loop $while-continue|0 + local.get $1 + i32.const 2 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.set $1 - local.get $0 - i32.const 4 + local.get $7 + local.get $1 + i32.const 2 i32.sub - local.set $2 - local.get $0 - i32.const 15 + local.tee $1 + i32.const 1 + i32.shl + i32.add + local.get $3 + i32.wrap_i64 + i32.const 255 i32.and + i32.const 2 + i32.shl + i32.const 16640 + i32.add + i32.load + i32.store + local.get $3 + i64.const 8 + i64.shr_u + local.set $3 + br $while-continue|0 + end + end + local.get $1 + i32.const 1 + i32.and + if + local.get $7 + local.get $3 + i32.wrap_i64 + i32.const 6 + i32.shl + i32.const 16640 + i32.add + i32.load16_u + i32.store16 + end + else + local.get $2 + i64.extend_i32_u + local.set $5 + global.get $~lib/memory/__stack_pointer + block $__inlined_func$~lib/util/number/ulog_base$171 (result i32) + local.get $1 + i32.popcnt + i32.const 1 + i32.eq + if + i32.const 63 + local.get $5 + i64.clz + i32.wrap_i64 + i32.sub + i32.const 31 + local.get $1 + i32.clz + i32.sub + i32.div_u i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load + i32.add + br $__inlined_func$~lib/util/number/ulog_base$171 + end + local.get $1 + i64.extend_i32_s + local.tee $6 + local.set $3 + i32.const 1 + local.set $0 + loop $while-continue|01 + local.get $3 + local.get $5 + i64.le_u + if + local.get $5 + local.get $3 + i64.div_u + local.set $5 + local.get $3 + local.get $3 + i64.mul + local.set $3 + local.get $0 i32.const 1 - i32.and + i32.shl + local.set $0 + br $while-continue|01 end + end + loop $while-continue|1 + local.get $5 + i64.const 0 + i64.ne if - i32.const 0 - i32.const 1648 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable + 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 - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock end + local.get $0 + i32.const 1 + i32.sub end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.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 + local.tee $7 i32.const 1 - i32.const 27 - local.get $1 - i32.clz - i32.sub i32.shl + local.get $4 i32.add - i32.const 1 - i32.sub - local.set $1 + 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 - 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 + local.get $4 if - i32.const 0 - i32.const 1648 - 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 1648 - 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 + 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 ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/string/String#replaceAll (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + 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 26636 + i32.lt_s if - i32.const 1376 - i32.const 1440 - i32.const 261 - i32.const 31 + i32.const 59424 + i32.const 59472 + 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 - local.tee $2 - local.get $2 - 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.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 16 - i32.add - local.tee $2 - i32.const 1073741820 - i32.gt_u - if - i32.const 1376 - i32.const 1648 - 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.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 + block $folding-inner1 + local.get $1 + i32.const 20 i32.sub - i32.ne - i32.shl - i32.add - i32.const 65535 - i32.add - i32.const -65536 - i32.and - i32.const 16 + i32.load offset=16 + i32.const 1 i32.shr_u - local.tee $3 - local.get $2 + local.tee $8 local.get $3 - i32.gt_s - select - memory.grow - i32.const 0 - i32.lt_s + i32.ge_u if local.get $3 - memory.grow - i32.const 0 - i32.lt_s + local.get $8 + i32.ge_u if - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $2 + local.get $0 + local.get $1 + local.get $0 + call $~lib/string/String.__eq + select + local.set $0 end + br $folding-inner1 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 1648 - 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 1648 - 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 1648 - 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 + global.get $~lib/memory/__stack_pointer 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.const 20 i32.sub + i32.load offset=16 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/string/String.fromCharCode@varargs (param $0 i32) (result i32) - (local $1 i32) - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength + i32.shr_u + local.set $4 + block $folding-inner0 + local.get $8 + i32.eqz + if + local.get $4 + i32.eqz + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $3 + local.get $3 i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange + i32.add + local.get $4 + i32.mul + i32.add + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $11 + i32.store offset=8 + local.get $11 + local.get $2 + local.get $4 + i32.const 1 + i32.shl + memory.copy + local.get $4 + local.set $1 + loop $for-loop|0 + local.get $3 + local.get $5 + i32.gt_u + if + local.get $11 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $5 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $11 + local.get $1 + i32.const 1 + i32.add + local.tee $1 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $4 + i32.const 1 + i32.shl + memory.copy + local.get $1 + local.get $4 + i32.add + local.set $1 + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + br $folding-inner0 end - unreachable - end - i32.const -1 - local.set $1 - end - local.get $0 - local.get $1 - call $~lib/string/String.fromCharCode - ) - (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 1440 - i32.const 295 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/itcms/white - local.tee $3 - 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 $3 - i32.eqz - local.get $0 - i32.const 20 - i32.sub - local.tee $0 - i32.load offset=4 - i32.const 3 - i32.and - local.tee $3 - i32.eq - if - local.get $0 - local.get $1 - local.get $2 - select - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - local.get $3 - i32.const 3 - i32.eq - i32.and - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - end - end - end - ) - (func $~lib/math/ipow32 (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - i32.const 5 - local.set $1 - i32.const 1 - local.set $2 - local.get $0 - i32.const 0 - i32.le_s - if - local.get $0 - i32.eqz - return - else - local.get $0 - i32.const 1 - i32.eq - if - i32.const 5 - return - else - local.get $0 - i32.const 2 + local.get $4 + local.get $8 i32.eq if - i32.const 25 - return - else + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 1 + i32.shl + local.tee $3 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $11 + i32.store offset=12 + local.get $11 local.get $0 - i32.const 32 - i32.lt_s - if - block $break|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - i32.const 31 - local.get $0 - i32.clz - i32.sub - br_table $case4|0 $case3|0 $case2|0 $case1|0 $case0|0 $break|0 - end - i32.const 5 - i32.const 1 - local.get $0 - i32.const 1 - i32.and - select - local.set $2 - local.get $0 - i32.const 1 - i32.shr_u - local.set $0 - i32.const 25 - local.set $1 - end - local.get $1 - local.get $2 - i32.mul - local.get $2 - local.get $0 - i32.const 1 - i32.and - select - local.set $2 - local.get $0 - i32.const 1 - i32.shr_u - local.set $0 - local.get $1 - local.get $1 - i32.mul - local.set $1 - end - local.get $1 - local.get $2 - i32.mul - local.get $2 - local.get $0 - i32.const 1 - i32.and - select - local.set $2 - local.get $0 - i32.const 1 - i32.shr_u - local.set $0 - local.get $1 - local.get $1 - i32.mul - local.set $1 - end - local.get $1 - local.get $2 - i32.mul - local.get $2 - local.get $0 - i32.const 1 - i32.and - select - local.set $2 - local.get $0 - i32.const 1 - i32.shr_u - local.set $0 - local.get $1 - local.get $1 - i32.mul - local.set $1 - end - local.get $1 - local.get $2 - i32.mul + local.get $3 + memory.copy + loop $while-continue|1 + 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 $10 + call $~lib/string/String#indexOf + local.tee $3 + i32.const -1 + i32.xor + if + local.get $11 + local.get $3 + i32.const 1 + i32.shl + i32.add local.get $2 - local.get $0 + local.get $4 i32.const 1 - i32.and - select - local.set $2 + i32.shl + memory.copy + local.get $3 + local.get $8 + i32.add + local.set $10 + br $while-continue|1 end - local.get $2 - return end + br $folding-inner0 end - end - end - loop $while-continue|1 - local.get $0 - if - local.get $1 - local.get $2 - i32.mul - local.get $2 - local.get $0 - i32.const 1 - i32.and - select - local.set $2 - local.get $0 - i32.const 1 - i32.shr_u - local.set $0 - local.get $1 - local.get $1 - i32.mul - local.set $1 - br $while-continue|1 - end - end - local.get $2 - ) - (func $~lib/math/NativeMath.scalbn (param $0 f64) (param $1 i32) (result f64) - local.get $1 - i32.const 1023 - i32.gt_s - if (result f64) - local.get $0 - f64.const 8988465674311579538646525e283 - f64.mul - local.set $0 - local.get $1 - i32.const 1023 - i32.sub - local.tee $1 - i32.const 1023 - i32.gt_s - if (result f64) - i32.const 1023 - local.get $1 - i32.const 1023 - i32.sub - local.tee $1 - local.get $1 - i32.const 1023 - i32.ge_s - select - local.set $1 - local.get $0 - f64.const 8988465674311579538646525e283 - f64.mul - else - local.get $0 - end - else - local.get $1 - i32.const -1022 - i32.lt_s - if (result f64) - local.get $0 - f64.const 2.004168360008973e-292 - f64.mul - local.set $0 - local.get $1 - i32.const 969 - i32.add - local.tee $1 - i32.const -1022 - i32.lt_s - if (result f64) - i32.const -1022 + local.get $3 + local.set $5 + loop $while-continue|2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - i32.const 969 - i32.add + i32.store offset=4 + local.get $0 + local.get $1 + local.get $10 + call $~lib/string/String#indexOf + local.tee $7 + i32.const -1 + i32.xor + if + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + call $~lib/string/String.__not + if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $11 + i32.store offset=16 + end + local.get $7 + local.get $10 + i32.sub + local.tee $6 + local.get $9 + i32.add + local.get $4 + i32.add + local.get $5 + i32.gt_u + if + global.get $~lib/memory/__stack_pointer + local.get $11 + local.get $5 + i32.const 1 + i32.shl + local.tee $5 + i32.const 1 + i32.shl + call $~lib/rt/itcms/__renew + local.tee $11 + i32.store offset=16 + end + local.get $11 + local.get $9 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $10 + i32.const 1 + i32.shl + i32.add + local.get $6 + i32.const 1 + i32.shl + memory.copy + local.get $11 + local.get $6 + local.get $9 + i32.add + local.tee $6 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $4 + i32.const 1 + i32.shl + memory.copy + local.get $4 + local.get $6 + i32.add + local.set $9 + local.get $7 + local.get $8 + i32.add + local.set $10 + br $while-continue|2 + end + end + local.get $11 + if + local.get $3 + local.get $10 + i32.sub local.tee $1 + local.get $9 + i32.add + local.get $5 + i32.gt_u + if + global.get $~lib/memory/__stack_pointer + local.get $11 + local.get $5 + i32.const 1 + i32.shl + local.tee $5 + i32.const 1 + i32.shl + call $~lib/rt/itcms/__renew + local.tee $11 + i32.store offset=16 + end local.get $1 - i32.const -1022 - i32.le_s - select - local.set $1 - local.get $0 - f64.const 2.004168360008973e-292 - f64.mul - else - local.get $0 + if + local.get $11 + local.get $9 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $10 + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.const 1 + i32.shl + memory.copy + end + local.get $1 + local.get $9 + i32.add + local.tee $0 + local.get $5 + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $11 + local.get $0 + i32.const 1 + i32.shl + call $~lib/rt/itcms/__renew + local.tee $11 + i32.store offset=16 + end + br $folding-inner0 end - else - local.get $0 + br $folding-inner1 end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return end - local.get $1 - i64.extend_i32_s - i64.const 1023 - i64.add - i64.const 52 - i64.shl - f64.reinterpret_i64 - f64.mul - ) - (func $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - local.get $1 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - local.tee $3 - i32.load - i32.const -4 - i32.and - i32.const 16 - i32.sub - i32.le_u + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 26636 + i32.lt_s if - local.get $3 - local.get $1 - i32.store offset=16 - local.get $0 - return + i32.const 59424 + i32.const 59472 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.get $1 - local.get $3 - i32.load offset=12 - call $~lib/rt/itcms/__new - local.tee $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - local.get $3 - i32.load offset=16 - local.tee $0 + i32.store local.get $0 - local.get $1 - i32.gt_u - select - memory.copy - local.get $2 + i32.load offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/number/itoa64 (param $0 i64) (param $1 i32) (result i32) + (local $2 i64) (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 16220 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 16220 - 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 + (local $4 i32) + (local $5 i64) + (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 26636 + i32.lt_s if - local.get $0 - local.get $2 - i32.const 2 - i32.sub - local.tee $2 + i32.const 59424 + i32.const 59472 i32.const 1 - i32.shl - i32.add - local.get $1 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 16220 - i32.add - i32.load - i32.store - local.get $1 - i32.const 100 - i32.div_u - local.set $1 + i32.const 1 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store local.get $1 - i32.const 10 - i32.ge_u + i32.const 2 + i32.lt_s + local.get $1 + i32.const 36 + i32.gt_s + i32.or 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 16220 - 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.const 16048 + i32.const 16176 + i32.const 431 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i64.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - i32.store16 + global.set $~lib/memory/__stack_pointer + i32.const 3392 + return end - ) - (func $~lib/util/number/utoa64_any_core (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i32) - (local $4 i64) - (local $5 i64) - local.get $3 - i64.extend_i32_s - local.set $5 - local.get $3 - local.get $3 + i64.const 0 + local.get $0 + i64.sub + local.get $0 + local.get $0 + i64.const 63 + i64.shr_u + i32.wrap_i64 i32.const 1 - i32.sub - i32.and + i32.shl + local.tee $4 + select + local.set $0 + local.get $1 + i32.const 10 + i32.eq if - loop $do-loop|1 + local.get $0 + i64.const 4294967295 + i64.le_u + if + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $2 - i32.const 1 - i32.sub - local.tee $2 - i32.const 1 - i32.shl - i32.add - local.get $1 - local.get $1 - local.get $5 - i64.div_u - local.tee $1 - local.get $5 - i64.mul - i64.sub i32.wrap_i64 + local.tee $1 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 100 + i32.lt_u + if (result i32) + local.get $1 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $1 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $1 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $1 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $1 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $1 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.tee $7 i32.const 1 i32.shl - i32.const 17696 + local.get $4 + i32.add + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.get $4 i32.add - i32.load16_u - i32.store16 local.get $1 - i64.const 0 - i64.ne - br_if $do-loop|1 - end - else - local.get $3 - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $4 - local.get $5 - i64.const 1 - i64.sub - local.set $5 - loop $do-loop|0 + local.get $7 + call $~lib/util/number/utoa32_dec_lut + else + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $2 - i32.const 1 - i32.sub - local.tee $2 + i64.const 1000000000000000 + i64.lt_u + if (result i32) + local.get $0 + i64.const 1000000000000 + i64.lt_u + if (result i32) + local.get $0 + i64.const 100000000000 + i64.ge_u + i32.const 10 + i32.add + local.get $0 + i64.const 10000000000 + i64.ge_u + i32.add + else + local.get $0 + i64.const 100000000000000 + i64.ge_u + i32.const 13 + i32.add + local.get $0 + i64.const 10000000000000 + i64.ge_u + i32.add + end + else + local.get $0 + i64.const 100000000000000000 + i64.lt_u + if (result i32) + local.get $0 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 + i32.add + else + local.get $0 + i64.const -8446744073709551616 + i64.ge_u + i32.const 18 + i32.add + local.get $0 + i64.const 1000000000000000000 + i64.ge_u + i32.add + end + end + local.tee $1 i32.const 1 i32.shl + local.get $4 i32.add - local.get $1 - local.get $5 - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.const 17696 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.get $4 i32.add - i32.load16_u - i32.store16 + local.get $0 local.get $1 - local.get $4 - i64.shr_u - local.tee $1 - i64.const 0 - i64.ne - br_if $do-loop|0 + call $~lib/util/number/utoa64_dec_lut end - end - ) - (func $~lib/util/number/utoa64_dec_lut (param $0 i32) (param $1 i64) (param $2 i32) - (local $3 i32) - (local $4 i32) - loop $while-continue|0 + else local.get $1 - i64.const 100000000 - i64.ge_u + i32.const 16 + i32.eq if + global.get $~lib/memory/__stack_pointer + i32.const 63 local.get $0 - local.get $2 - i32.const 4 + i64.clz + i32.wrap_i64 i32.sub - local.tee $2 + i32.const 2 + i32.shr_s i32.const 1 - i32.shl i32.add - local.get $1 - local.get $1 - i64.const 100000000 - i64.div_u local.tee $1 - i64.const 100000000 - i64.mul - i64.sub - i32.wrap_i64 - local.tee $3 - i32.const 10000 - i32.rem_u - local.tee $4 - i32.const 100 - i32.div_u - i32.const 2 - i32.shl - i32.const 16220 - i32.add - i64.load32_u - local.get $4 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 16220 - i32.add - i64.load32_u - i64.const 32 - i64.shl - i64.or - i64.store - local.get $0 - local.get $2 - i32.const 4 - i32.sub - local.tee $2 i32.const 1 i32.shl + local.get $4 i32.add - local.get $3 - i32.const 10000 - i32.div_u - local.tee $3 - i32.const 100 - i32.div_u i32.const 2 - i32.shl - i32.const 16220 - i32.add - i64.load32_u + call $~lib/rt/itcms/__new + local.tee $3 + i32.store local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 16220 - i32.add - i64.load32_u - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $0 - local.get $1 - i32.wrap_i64 - local.get $2 - call $~lib/util/number/utoa32_dec_lut - ) - (func $~lib/util/number/genDigits (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (result i32) - (local $5 i32) - (local $6 i32) - (local $7 i64) - (local $8 i32) - (local $9 i64) - (local $10 i64) - (local $11 i32) - (local $12 i64) - local.get $1 - local.get $0 - i64.sub - local.set $10 - i64.const 1 - i32.const 0 - local.get $2 - i32.sub - local.tee $11 - i64.extend_i32_s - local.tee $0 - i64.shl - local.tee $7 - i64.const 1 - i64.sub - local.tee $12 - local.get $1 - i64.and - local.set $9 - local.get $1 - local.get $0 - i64.shr_u - i32.wrap_i64 - local.tee $5 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $5 - i32.const 100 - i32.lt_u - if (result i32) - local.get $5 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $5 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $5 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $5 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $5 - i32.const 1000000000 - i32.ge_u - i32.const 8 + local.get $4 i32.add - local.get $5 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.set $8 - loop $while-continue|0 - local.get $8 - i32.const 0 - i32.gt_s - if - block $break|1 - block $case10|1 - block $case9|1 - block $case8|1 - block $case7|1 - block $case6|1 - block $case5|1 - block $case4|1 - block $case3|1 - block $case2|1 - block $case1|1 - block $case0|1 - local.get $8 - i32.const 1 - i32.sub - br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $case0|1 $case10|1 - end - local.get $5 - i32.const 1000000000 - i32.div_u - local.set $6 - local.get $5 - i32.const 1000000000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 100000000 - i32.div_u - local.set $6 - local.get $5 - i32.const 100000000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 10000000 - i32.div_u - local.set $6 - local.get $5 - i32.const 10000000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 1000000 - i32.div_u - local.set $6 - local.get $5 - i32.const 1000000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 100000 - i32.div_u - local.set $6 - local.get $5 - i32.const 100000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 10000 - i32.div_u - local.set $6 - local.get $5 - i32.const 10000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 1000 - i32.div_u - local.set $6 - local.get $5 - i32.const 1000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 100 - i32.div_u - local.set $6 - local.get $5 - i32.const 100 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 10 - i32.div_u - local.set $6 - local.get $5 - i32.const 10 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - local.set $6 - i32.const 0 - local.set $5 - br $break|1 + local.set $7 + loop $while-continue|0 + local.get $1 + i32.const 2 + i32.ge_u + if + local.get $7 + local.get $1 + i32.const 2 + i32.sub + local.tee $1 + i32.const 1 + i32.shl + i32.add + local.get $0 + i32.wrap_i64 + i32.const 255 + i32.and + i32.const 2 + i32.shl + i32.const 16640 + i32.add + i32.load + i32.store + local.get $0 + i64.const 8 + i64.shr_u + local.set $0 + br $while-continue|0 end - i32.const 0 - local.set $6 end - local.get $4 - local.get $6 - i32.or + local.get $1 + i32.const 1 + i32.and if - local.get $4 - local.tee $2 - i32.const 1 - i32.add - local.set $4 - local.get $2 - i32.const 1 + local.get $7 + local.get $0 + i32.wrap_i64 + i32.const 6 i32.shl - i32.const 23344 - i32.add - local.get $6 - i32.const 65535 - i32.and - i32.const 48 + i32.const 16640 i32.add + i32.load16_u i32.store16 end - local.get $8 - i32.const 1 - i32.sub - local.set $8 - local.get $3 - local.get $5 - i64.extend_i32_u - local.get $11 - i64.extend_i32_s - local.tee $1 - i64.shl - local.get $9 - i64.add - local.tee $0 - i64.ge_u - if - global.get $~lib/util/number/_K - local.get $8 - i32.add - global.set $~lib/util/number/_K - local.get $8 - i32.const 2 - i32.shl - i32.const 24272 - i32.add - i64.load32_u + else + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + block $__inlined_func$~lib/util/number/ulog_base$185 (result i32) local.get $1 - i64.shl - local.set $7 - local.get $4 + i32.popcnt i32.const 1 - i32.shl - i32.const 23342 - i32.add - local.tee $2 - i32.load16_u - local.set $6 - loop $while-continue|3 - local.get $0 - local.get $10 - i64.lt_u - local.get $3 + i32.eq + if + i32.const 63 local.get $0 - i64.sub - local.get $7 + i64.clz + i32.wrap_i64 + i32.sub + i32.const 31 + local.get $1 + i32.clz + i32.sub + i32.div_u + i32.const 1 + i32.add + br $__inlined_func$~lib/util/number/ulog_base$185 + end + local.get $1 + i64.extend_i32_s + local.tee $6 + local.set $5 + i32.const 1 + local.set $3 + loop $while-continue|01 + local.get $2 + local.get $5 i64.ge_u - i32.and - if (result i32) - local.get $10 - local.get $0 - local.get $7 - i64.add - local.tee $1 - i64.gt_u - local.get $10 - local.get $0 - i64.sub - local.get $1 - local.get $10 - i64.sub - i64.gt_u - i32.or - else - i32.const 0 - end if - local.get $6 + local.get $2 + local.get $5 + i64.div_u + local.set $2 + local.get $5 + local.get $5 + i64.mul + local.set $5 + local.get $3 i32.const 1 - i32.sub - local.set $6 - local.get $0 - local.get $7 - i64.add - local.set $0 - br $while-continue|3 + i32.shl + local.set $3 + br $while-continue|01 end end - local.get $2 - local.get $6 - i32.store16 - local.get $4 - return + loop $while-continue|1 + local.get $2 + i64.const 0 + i64.ne + if + local.get $2 + local.get $6 + i64.div_u + local.set $2 + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $while-continue|1 + end + end + local.get $3 + i32.const 1 + i32.sub end - br $while-continue|0 - end - end - loop $while-continue|4 - local.get $3 - i64.const 10 - i64.mul - local.set $3 - local.get $9 - i64.const 10 - i64.mul - local.tee $1 - local.get $11 - i64.extend_i32_s - i64.shr_u - local.tee $0 - local.get $4 - i64.extend_i32_s - i64.or - i64.const 0 - i64.ne - if - local.get $4 - local.tee $2 - i32.const 1 - i32.add - local.set $4 - local.get $2 + local.tee $7 i32.const 1 i32.shl - i32.const 23344 + local.get $4 i32.add - local.get $0 - i32.wrap_i64 - i32.const 65535 - i32.and - i32.const 48 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.get $4 i32.add - i32.store16 - end - local.get $8 - i32.const 1 - i32.sub - local.set $8 - local.get $1 - local.get $12 - i64.and - local.tee $9 - local.get $3 - i64.ge_u - br_if $while-continue|4 - end - global.get $~lib/util/number/_K - local.get $8 - i32.add - global.set $~lib/util/number/_K - local.get $10 - i32.const 0 - local.get $8 - i32.sub - i32.const 2 - i32.shl - i32.const 24272 - i32.add - i64.load32_u - i64.mul - local.set $1 - local.get $4 - i32.const 1 - i32.shl - i32.const 23342 - i32.add - local.tee $2 - i32.load16_u - local.set $6 - loop $while-continue|6 - local.get $1 - local.get $9 - i64.gt_u - local.get $3 - local.get $9 - i64.sub - local.get $7 - i64.ge_u - i32.and - if (result i32) - local.get $1 - local.get $7 - local.get $9 - i64.add - local.tee $0 - i64.gt_u - local.get $1 - local.get $9 - i64.sub local.get $0 - local.get $1 - i64.sub - i64.gt_u - i32.or - else - i32.const 0 - end - if - local.get $6 - i32.const 1 - i32.sub - local.set $6 local.get $7 - local.get $9 - i64.add - local.set $9 - br $while-continue|6 + local.get $1 + call $~lib/util/number/utoa64_any_core end end - local.get $2 - local.get $6 - i32.store16 local.get $4 + if + local.get $3 + 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 $3 ) - (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - local.get $2 - i32.eqz + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 26636 + i32.lt_s if - local.get $0 - local.get $1 + i32.const 59424 + i32.const 59472 i32.const 1 - i32.shl + 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 $1 + i32.store + 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 - i32.const 3145774 - i32.store - local.get $1 - i32.const 2 + 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.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 return end - local.get $1 local.get $2 - i32.add - local.tee $3 - i32.const 21 - i32.le_s - local.get $1 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.tee $2 + local.get $4 + local.get $2 + local.get $4 + i32.lt_s + select + local.set $2 + local.get $4 local.get $3 - i32.le_s - i32.and - if (result i32) - loop $for-loop|0 + i32.sub + local.set $4 + loop $for-loop|0 + local.get $2 + local.get $4 + i32.le_s + if + 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 $2 local.get $1 local.get $3 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 48 - i32.store16 - local.get $1 - i32.const 1 + call $~lib/util/string/compareImpl + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.set $1 - br $for-loop|0 + global.set $~lib/memory/__stack_pointer + local.get $2 + return end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 end - local.get $0 - local.get $3 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const -1 + ) + (func $~lib/string/String#localeCompare (param $0 i32) (param $1 i32) (result 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 26636 + i32.lt_s + if + i32.const 59424 + i32.const 59472 i32.const 1 - i32.shl + 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 - i32.const 3145774 - i32.store + 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.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.set $2 + 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 1 + i32.shr_u + local.set $3 + 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.const 0 + local.get $1 + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.lt_s + select + call $~lib/util/string/compareImpl + local.tee $0 + local.get $2 + local.get $3 + i32.sub + local.get $0 + select + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + i32.gt_s + local.get $0 + i32.const 0 + i32.lt_s + i32.sub + ) + (func $~lib/string/String#replace (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + 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 + 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 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $4 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $3 + i32.le_u + if local.get $3 - i32.const 2 + local.get $4 + i32.le_u + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $2 + local.get $0 + local.get $1 + local.get $0 + call $~lib/string/String.__eq + select + local.set $0 + end + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add - else - local.get $3 - i32.const 21 - i32.le_s + global.set $~lib/memory/__stack_pointer + local.get $0 + return + 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 + i32.const 0 + call $~lib/string/String#indexOf + local.tee $1 + i32.const -1 + i32.xor + 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 $5 + local.get $4 local.get $3 - i32.const 0 - i32.gt_s - i32.and - if (result i32) - local.get $0 - local.get $3 + i32.sub + local.tee $6 + i32.add + local.tee $4 + if + global.get $~lib/memory/__stack_pointer + local.get $4 i32.const 1 i32.shl - i32.add - local.tee $0 i32.const 2 - i32.add + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=8 + local.get $4 local.get $0 - i32.const 0 + local.get $1 + i32.const 1 + i32.shl + local.tee $7 + memory.copy + local.get $4 + local.get $7 + i32.add local.get $2 - i32.sub + local.get $5 i32.const 1 i32.shl memory.copy - local.get $0 - i32.const 46 - i32.store16 + local.get $4 local.get $1 + local.get $5 + i32.add i32.const 1 + i32.shl i32.add - else - local.get $3 - i32.const 0 - i32.le_s + local.get $0 + local.get $1 local.get $3 - i32.const -6 - i32.gt_s - i32.and - if (result i32) - local.get $0 - i32.const 2 - local.get $3 - i32.sub - local.tee $3 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $1 - i32.const 1 - i32.shl - memory.copy - local.get $0 - i32.const 3014704 - i32.store - i32.const 2 - local.set $2 - loop $for-loop|1 - local.get $2 - local.get $3 - i32.lt_s - if - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 48 - i32.store16 - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|1 - end - end - local.get $1 - local.get $3 - i32.add - else - local.get $1 - i32.const 1 - i32.eq - if - local.get $0 - i32.const 101 - i32.store16 offset=2 - local.get $0 - i32.const 4 - i32.add - local.tee $2 - local.get $3 - i32.const 1 - i32.sub - local.tee $0 - i32.const 0 - i32.lt_s - local.tee $3 - if - i32.const 0 - local.get $0 - i32.sub - local.set $0 - end - local.get $0 - local.get $0 - 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 - i32.const 1 - i32.add - local.tee $1 - call $~lib/util/number/utoa32_dec_lut - local.get $2 - i32.const 45 - i32.const 43 - local.get $3 - select - i32.store16 - else - local.get $0 - i32.const 4 - i32.add - local.get $0 - i32.const 2 - i32.add - local.get $1 - i32.const 1 - i32.shl - local.tee $2 - i32.const 2 - i32.sub - memory.copy - local.get $0 - i32.const 46 - i32.store16 offset=2 - local.get $0 - local.get $2 - i32.add - local.tee $0 - i32.const 101 - i32.store16 offset=2 - local.get $0 - i32.const 4 - i32.add - local.tee $4 - local.get $3 - i32.const 1 - i32.sub - local.tee $0 - i32.const 0 - i32.lt_s - local.tee $2 - if - i32.const 0 - local.get $0 - i32.sub - local.set $0 - end - local.get $0 - local.get $0 - 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 - i32.const 1 - i32.add - local.tee $0 - call $~lib/util/number/utoa32_dec_lut - local.get $4 - i32.const 45 - i32.const 43 - local.get $2 - select - i32.store16 - local.get $0 - local.get $1 - i32.add - local.set $1 - end - local.get $1 - i32.const 2 - i32.add - end + i32.add + i32.const 1 + i32.shl + i32.add + local.get $6 + local.get $1 + i32.sub + i32.const 1 + i32.shl + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + return end end - ) - (func $~lib/util/number/dtoa_core (param $0 f64) (result i32) - (local $1 i64) - (local $2 i32) - (local $3 i64) - (local $4 i64) - (local $5 i64) - (local $6 i64) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i64) - (local $11 i64) - (local $12 i64) - (local $13 i64) - (local $14 i64) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 - f64.const 0 - f64.lt - local.tee $2 - if (result f64) - i32.const 23344 - i32.const 45 - i32.store16 + ) + (func $~lib/string/String.__gt (param $0 i32) (param $1 i32) (result 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 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 + i64.const 0 + i64.store + block $folding-inner0 local.get $0 - f64.neg - else + local.get $1 + i32.eq + 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.tee $2 + i32.eqz + br_if $folding-inner0 + 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 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 1 + return + 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 + i32.const 0 + local.get $1 + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.lt_s + select + call $~lib/util/string/compareImpl + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + i32.gt_s + local.get $2 + local.get $3 + i32.gt_s local.get $0 + select + return end - i64.reinterpret_f64 - local.tee $1 - i64.const 9218868437227405312 - i64.and - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.tee $7 - i32.const 1 - local.get $7 - select - i32.const 1075 - i32.sub - local.tee $8 - i32.const 1 - i32.sub - local.get $1 - i64.const 4503599627370495 - i64.and - local.get $7 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer i32.const 0 - i32.ne - i64.extend_i32_u - i64.const 52 - i64.shl - i64.add - local.tee $1 - i64.const 1 - i64.shl - i64.const 1 - i64.add - local.tee $3 - i64.clz - i32.wrap_i64 - local.tee $7 + ) + (func $~lib/string/String.__ne (param $0 i32) (param $1 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.sub - local.set $9 - local.get $3 - local.get $7 - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_plus + 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 + i64.const 0 + i64.store + 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 - i64.const 4503599627370496 - i64.eq - i32.const 1 + call $~lib/string/String.__eq + i32.eqz + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.tee $7 - i64.extend_i32_s - i64.shl - i64.const 1 - i64.sub - local.get $8 - local.get $7 - i32.sub - local.get $9 - i32.sub - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_minus - local.get $9 - global.set $~lib/util/number/_exp - i32.const 348 - i32.const -61 - global.get $~lib/util/number/_exp - local.tee $7 + global.set $~lib/memory/__stack_pointer + ) + (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 - f64.convert_i32_s - f64.const 0.30102999566398114 - f64.mul - f64.const 347 - f64.add local.tee $0 - i32.trunc_sat_f64_s - local.tee $8 - local.get $8 - f64.convert_i32_s - local.get $0 - f64.ne - i32.add - i32.const 3 - i32.shr_s - i32.const 1 - i32.add - local.tee $8 + i32.load offset=4 i32.const 3 - i32.shl - local.tee $9 + 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/string/String#split@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/util/number/_K - local.get $9 - i32.const 23400 - i32.add - i64.load - global.set $~lib/util/number/_frc_pow - local.get $8 - i32.const 1 - i32.shl - i32.const 24096 - i32.add - i32.load16_s - global.set $~lib/util/number/_exp_pow - local.get $1 - local.get $1 - i64.clz - i64.shl - local.tee $1 - i64.const 4294967295 - i64.and - local.set $4 - global.get $~lib/util/number/_frc_pow - local.tee $10 - i64.const 4294967295 - i64.and - local.tee $11 - local.get $1 - i64.const 32 - i64.shr_u - local.tee $1 - i64.mul - local.get $4 - local.get $11 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.set $5 - global.get $~lib/util/number/_frc_plus - local.tee $3 - i64.const 4294967295 - i64.and - local.set $12 - local.get $3 - i64.const 32 - i64.shr_u - local.tee $3 - local.get $11 - i64.mul - local.get $11 - local.get $12 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.set $6 - global.get $~lib/util/number/_frc_minus - local.tee $13 - i64.const 4294967295 - i64.and - local.set $14 - local.get $13 - i64.const 32 - i64.shr_u - local.tee $13 - local.get $11 - i64.mul - local.get $11 - local.get $14 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.set $11 - local.get $2 - i32.const 1 - i32.shl - i32.const 23344 - i32.add - local.get $1 - local.get $10 - i64.const 32 - i64.shr_u - local.tee $1 - i64.mul - local.get $5 - i64.const 32 - i64.shr_u - i64.add - local.get $1 - local.get $4 - i64.mul - local.get $5 - i64.const 4294967295 - i64.and - i64.add - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - local.get $1 - local.get $3 - i64.mul - local.get $6 - i64.const 32 - i64.shr_u - i64.add - local.get $1 - local.get $12 - i64.mul - local.get $6 - i64.const 4294967295 - i64.and - i64.add - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - i64.const 1 - i64.sub - local.tee $3 - local.get $7 - global.get $~lib/util/number/_exp_pow - i32.add - i32.const -64 - i32.sub - local.get $3 + 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 + i64.const 0 + i64.store + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + i32.const 2147483647 + local.set $2 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $13 - i64.mul - local.get $11 - i64.const 32 - i64.shr_u - i64.add + i32.store offset=4 + local.get $0 local.get $1 - local.get $14 - i64.mul - local.get $11 - i64.const 4294967295 - i64.and - i64.add - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - i64.const 1 - i64.add - i64.sub - local.get $2 - call $~lib/util/number/genDigits - local.get $2 - i32.sub - global.get $~lib/util/number/_K - call $~lib/util/number/prettify local.get $2 + call $~lib/string/String#split + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add + global.set $~lib/memory/__stack_pointer ) - (func $std/string/getString (result i32) - global.get $std/string/str - ) - (func $~lib/rt/__visit_members (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - block $folding-inner1 - block $folding-inner0 - block $invalid - block $~lib/array/Array<~lib/string/String> - 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/string/String> $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - 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 26444 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - br $folding-inner1 - 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 26444 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $1 - local.get $2 - 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 - br $folding-inner1 - end - unreachable - end - i32.const 59232 - i32.const 59280 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - 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 - ) - (func $~start - call $start:std/string - ) - (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__lt (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -4348,79 +3839,83 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $0 - local.get $1 - i32.eq - if - local.get $2 - 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 + local.get $1 + i32.eq br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.set $3 - local.get $2 - local.get $1 + local.tee $2 + i32.eqz + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $3 - local.get $1 + local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - i32.ne - br_if $folding-inner0 - local.get $2 + 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 1 + return + end + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $0 i32.const 0 local.get $1 local.get $3 + local.get $2 + local.get $2 + local.get $3 + i32.gt_s + local.tee $0 + select call $~lib/util/string/compareImpl - i32.eqz - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 + i32.const 0 + i32.lt_s local.get $0 + local.get $1 + select return end global.get $~lib/memory/__stack_pointer @@ -4429,400 +3924,417 @@ global.set $~lib/memory/__stack_pointer i32.const 0 ) - (func $~lib/string/String#at (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#repeat (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 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 + i64.const 0 + i64.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 1 i32.shr_u - local.tee $2 - i32.const 0 + local.set $4 local.get $1 i32.const 0 i32.lt_s - select - i32.add - local.tee $1 - local.get $2 - i32.ge_u + if (result i32) + i32.const 1 + else + local.get $4 + i64.extend_i32_s + local.get $1 + i64.extend_i32_s + i64.mul + i64.const 268435456 + i64.gt_u + end if - i32.const 1264 + i32.const 14064 i32.const 1328 - i32.const 57 - i32.const 31 + i32.const 334 + i32.const 7 call $~lib/builtins/abort unreachable end - i32.const 2 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $2 - local.get $0 + local.get $4 + i32.eqz local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $~lib/string/String#charAt (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 26444 - i32.lt_s + i32.eqz + i32.or if - i32.const 59232 - i32.const 59280 - 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 + i32.const 1712 + return end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - local.get $0 - i32.store local.get $1 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 i32.const 1 - i32.shr_u - i32.ge_u + i32.eq if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1712 + local.get $0 return end global.get $~lib/memory/__stack_pointer - i32.const 2 + local.get $1 + local.get $4 + i32.mul + i32.const 1 + i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store offset=4 - local.get $2 - local.get $0 - local.get $1 + local.get $4 i32.const 1 i32.shl - i32.add - i32.load16_u - i32.store16 + local.tee $4 + local.get $1 + i32.mul + local.set $1 + loop $while-continue|0 + local.get $1 + local.get $2 + i32.gt_u + if + local.get $2 + local.get $3 + i32.add + local.get $0 + local.get $4 + memory.copy + local.get $2 + local.get $4 + i32.add + local.set $2 + br $while-continue|0 + end + end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $3 ) - (func $~lib/string/String.__not (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 26444 - i32.lt_s - if - i32.const 59232 - i32.const 59280 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store + (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.set $1 + local.get $3 + i32.const 4 + i32.ge_u if (result i32) local.get $1 - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u + i32.const 7 + i32.and + local.get $2 + i32.const 7 + i32.and + i32.or else - i32.const 0 + i32.const 1 end - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 i32.eqz - ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 26444 - i32.lt_s if - i32.const 59232 - i32.const 59280 - i32.const 1 + loop $do-loop|0 + local.get $1 + i64.load + local.get $2 + i64.load + i64.eq + if + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $3 + i32.const 4 + i32.sub + local.tee $3 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + loop $while-continue|1 + local.get $3 + local.tee $0 i32.const 1 - call $~lib/builtins/abort - unreachable + i32.sub + local.set $3 + local.get $0 + if + local.get $1 + i32.load16_u + local.tee $0 + local.get $2 + i32.load16_u + local.tee $4 + i32.ne + if + local.get $0 + local.get $4 + i32.sub + return + end + local.get $1 + i32.const 2 + i32.add + local.set $1 + local.get $2 + i32.const 2 + i32.add + local.set $2 + br $while-continue|1 + end end - global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 - i32.store - local.get $1 - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - local.set $0 - local.get $1 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/string/String.fromCharCodes (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) + (func $~lib/string/String#substring (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + 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 $3 local.get $0 - call $~lib/array/Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $1 + local.get $1 + local.get $3 + i32.gt_s + select + local.tee $3 + local.get $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.tee $2 + local.get $1 + local.get $1 + local.get $2 + i32.gt_s + select + local.tee $2 + local.get $2 + local.get $3 + i32.gt_s + select + i32.const 1 + i32.shl + local.set $4 local.get $3 + local.get $2 + local.get $2 + local.get $3 + i32.lt_s + select + i32.const 1 + i32.shl + local.tee $2 + local.get $4 + i32.sub + local.tee $3 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1712 + return + end + local.get $4 + i32.eqz + local.get $2 + local.get $1 i32.const 1 i32.shl + i32.eq + i32.and + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + global.get $~lib/memory/__stack_pointer + local.get $3 i32.const 2 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + local.get $1 local.get $0 - i32.load offset=4 - local.set $1 - i32.const 0 - local.set $0 - loop $for-loop|0 - local.get $0 - local.get $3 - i32.lt_s - if - local.get $2 - local.get $0 - i32.const 1 - i32.shl - i32.add - local.get $1 - local.get $0 - i32.const 2 - i32.shl - i32.add - i32.load - i32.store16 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end + local.get $4 + i32.add + local.get $3 + memory.copy global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 ) - (func $~lib/string/String#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#substr (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 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $1 + local.get $2 + i32.const 0 + local.get $2 + 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 $3 - i32.eqz - if - local.get $4 - i32.const 8 + local.get $1 + i32.const 0 + i32.lt_s + if + local.get $1 + local.get $3 i32.add - global.set $~lib/memory/__stack_pointer + local.tee $1 i32.const 0 - return + local.get $1 + i32.const 0 + i32.gt_s + select + local.set $1 end - global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $0 - i32.store - local.get $0 - i32.const 20 + local.get $1 i32.sub - i32.load offset=16 + local.tee $3 + local.get $2 + local.get $3 + i32.lt_s + select i32.const 1 - i32.shr_u - local.tee $5 - i32.eqz + i32.shl + local.tee $2 + i32.const 0 + i32.le_s if - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const -1 + i32.const 1712 return end + global.get $~lib/memory/__stack_pointer local.get $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - local.tee $2 - local.get $5 - local.get $2 - local.get $5 - i32.lt_s - select - local.set $2 - local.get $5 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=4 local.get $3 - i32.sub - local.set $4 - loop $for-loop|0 - local.get $2 - local.get $4 - i32.le_s - if - global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $0 - i32.store - local.get $5 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $2 - 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 - local.get $2 - return - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $2 + memory.copy global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const -1 + local.get $3 ) (func $~lib/string/String#padStart (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -4836,21 +4348,20 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 i64.const 0 i64.store - local.get $6 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -4860,7 +4371,7 @@ i32.const -2 i32.and local.set $4 - local.get $6 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store local.get $2 @@ -4874,12 +4385,12 @@ local.get $1 i32.const 1 i32.shl - local.tee $7 + local.tee $1 local.get $4 i32.lt_u i32.or if - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -4887,20 +4398,20 @@ return end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.const 2 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $7 i32.store offset=4 - local.get $7 + local.get $1 local.get $4 i32.sub - local.tee $7 + local.tee $8 local.get $3 i32.gt_u if - local.get $7 - local.get $7 + local.get $8 + local.get $8 i32.const 2 i32.sub local.get $3 @@ -4909,14 +4420,14 @@ i32.mul local.tee $6 i32.sub - local.set $8 + local.set $1 loop $while-continue|0 local.get $5 local.get $6 i32.lt_u if - local.get $1 local.get $5 + local.get $7 i32.add local.get $2 local.get $3 @@ -4928,20 +4439,20 @@ br $while-continue|0 end end - local.get $1 local.get $6 + local.get $7 i32.add local.get $2 - local.get $8 + local.get $1 memory.copy else - local.get $1 - local.get $2 local.get $7 + local.get $2 + local.get $8 memory.copy end - local.get $1 local.get $7 + local.get $8 i32.add local.get $0 local.get $4 @@ -4950,7 +4461,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $7 ) (func $~lib/string/String#padEnd (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -4963,21 +4474,20 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 i64.const 0 i64.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -4987,7 +4497,7 @@ i32.const -2 i32.and local.set $3 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store local.get $2 @@ -5001,12 +4511,12 @@ local.get $1 i32.const 1 i32.shl - local.tee $6 + local.tee $1 local.get $3 i32.lt_u i32.or if - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -5014,16 +4524,16 @@ return end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.const 2 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $6 i32.store offset=4 - local.get $1 + local.get $6 local.get $0 local.get $3 memory.copy - local.get $6 + local.get $1 local.get $3 i32.sub local.tee $0 @@ -5040,11 +4550,11 @@ i32.mul local.tee $5 i32.sub - local.set $6 - local.get $1 + local.set $7 local.get $3 + local.get $6 i32.add - local.set $7 + local.set $1 i32.const 0 local.set $0 loop $while-continue|0 @@ -5053,7 +4563,7 @@ i32.lt_u if local.get $0 - local.get $7 + local.get $1 i32.add local.get $2 local.get $4 @@ -5065,17 +4575,17 @@ br $while-continue|0 end end - local.get $1 local.get $3 + local.get $6 i32.add local.get $5 i32.add local.get $2 - local.get $6 + local.get $7 memory.copy else - local.get $1 local.get $3 + local.get $6 i32.add local.get $2 local.get $0 @@ -5085,3388 +4595,1097 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $6 ) - (func $~lib/string/String#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (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 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + 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 - i64.const 0 - i64.store - local.get $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 - i32.const 20 + 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/util/string/strtob (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 - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $3 - i32.eqz + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 26636 + i32.lt_s if - local.get $4 - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 + i32.const 59424 + i32.const 59472 i32.const 1 - i32.shr_u - local.set $0 - local.get $4 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return + i32.const 1 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 + i32.const 0 + i32.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 - local.tee $5 - i32.eqz - if - local.get $4 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const -1 - return - end - local.get $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - local.tee $2 - local.get $5 - local.get $3 - i32.sub - local.tee $4 - local.get $2 - local.get $4 - i32.lt_s - select - local.set $2 - loop $for-loop|0 - local.get $2 - i32.const 0 - i32.ge_s - if - global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $0 - i32.store - local.get $4 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $2 + i32.const -2 + i32.and + local.tee $1 + i32.const 8 + i32.gt_u + if (result i32) + loop $while-continue|0 local.get $1 - local.get $3 - call $~lib/util/string/compareImpl - i32.eqz + if (result i32) + block $__inlined_func$~lib/util/string/isSpace$4 (result i32) + local.get $0 + local.get $1 + i32.add + i32.const 2 + i32.sub + i32.load16_u + local.tee $3 + i32.const 5760 + i32.lt_u + if + local.get $3 + i32.const 128 + i32.or + i32.const 160 + i32.eq + local.get $3 + i32.const 9 + i32.sub + i32.const 4 + i32.le_u + i32.or + br $__inlined_func$~lib/util/string/isSpace$4 + end + i32.const 1 + local.get $3 + i32.const -8192 + i32.add + i32.const 10 + i32.le_u + br_if $__inlined_func$~lib/util/string/isSpace$4 + drop + block $break|0 + block $case6|0 + local.get $3 + i32.const 5760 + i32.eq + br_if $case6|0 + local.get $3 + i32.const 8232 + i32.eq + br_if $case6|0 + local.get $3 + i32.const 8233 + i32.eq + br_if $case6|0 + local.get $3 + i32.const 8239 + i32.eq + br_if $case6|0 + local.get $3 + i32.const 8287 + i32.eq + br_if $case6|0 + local.get $3 + i32.const 12288 + i32.eq + br_if $case6|0 + local.get $3 + i32.const 65279 + i32.eq + br_if $case6|0 + br $break|0 + end + i32.const 1 + br $__inlined_func$~lib/util/string/isSpace$4 + end + i32.const 0 + end + else + i32.const 0 + end if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $1 + i32.const 2 + i32.sub + local.set $1 + br $while-continue|0 + end + end + local.get $1 + i32.const 8 + i32.gt_u + if (result i32) + loop $while-continue|1 + local.get $1 local.get $2 - return + i32.gt_u + if (result i32) + block $__inlined_func$~lib/util/string/isSpace$5 (result i32) + local.get $0 + local.get $2 + i32.add + i32.load16_u + local.tee $3 + i32.const 5760 + i32.lt_u + if + local.get $3 + i32.const 128 + i32.or + i32.const 160 + i32.eq + local.get $3 + i32.const 9 + i32.sub + i32.const 4 + i32.le_u + i32.or + br $__inlined_func$~lib/util/string/isSpace$5 + end + i32.const 1 + local.get $3 + i32.const -8192 + i32.add + i32.const 10 + i32.le_u + br_if $__inlined_func$~lib/util/string/isSpace$5 + drop + block $break|00 + block $case6|01 + local.get $3 + i32.const 5760 + i32.eq + br_if $case6|01 + local.get $3 + i32.const 8232 + i32.eq + br_if $case6|01 + local.get $3 + i32.const 8233 + i32.eq + br_if $case6|01 + local.get $3 + i32.const 8239 + i32.eq + br_if $case6|01 + local.get $3 + i32.const 8287 + i32.eq + br_if $case6|01 + local.get $3 + i32.const 12288 + i32.eq + br_if $case6|01 + local.get $3 + i32.const 65279 + i32.eq + br_if $case6|01 + br $break|00 + end + i32.const 1 + br $__inlined_func$~lib/util/string/isSpace$5 + end + i32.const 0 + end + else + i32.const 0 + end + if + local.get $2 + i32.const 2 + i32.add + local.set $2 + br $while-continue|1 + end end + local.get $1 local.get $2 - i32.const 1 i32.sub - local.set $2 - br $for-loop|0 + else + local.get $1 end + else + local.get $1 end - global.get $~lib/memory/__stack_pointer i32.const 8 + 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 + local.get $0 + local.get $2 + i32.add + i64.load + i64.const 28429475166421108 + i64.eq + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const -1 ) - (func $~lib/string/String#lastIndexOf@varargs (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) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 26444 - i32.lt_s - if - i32.const 59232 - i32.const 59280 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange - end - unreachable + 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 16220 + i32.add + i64.load32_u + local.get $3 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 16220 + i32.add + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 end - i32.const 2147483647 - local.set $2 end - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store - local.get $3 local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - local.get $2 - call $~lib/string/String#lastIndexOf - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/string/String#localeCompare (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 26444 - i32.lt_s + i32.const 100 + i32.ge_u if - i32.const 59232 - i32.const 59280 - i32.const 1 + local.get $0 + local.get $2 + i32.const 2 + i32.sub + local.tee $2 i32.const 1 - call $~lib/builtins/abort - unreachable + i32.shl + i32.add + local.get $1 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 16220 + i32.add + i32.load + i32.store + local.get $1 + i32.const 100 + i32.div_u + local.set $1 end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $0 local.get $1 - i32.eq + i32.const 10 + i32.ge_u if + local.get $0 local.get $2 - i32.const 8 + i32.const 2 + i32.sub + i32.const 1 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - return + local.get $1 + i32.const 2 + i32.shl + i32.const 16220 + 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 - local.tee $3 - 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 $4 - local.get $3 - local.get $1 - i32.store - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $2 - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $1 - i32.store offset=4 - local.get $0 - i32.const 0 - local.get $1 - local.get $4 - local.get $2 - local.get $2 - local.get $4 - i32.gt_s - select - call $~lib/util/string/compareImpl - local.tee $0 - local.get $4 - local.get $2 - i32.sub - local.get $0 - select - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.const 0 - i32.gt_s - local.get $0 - i32.const 0 - i32.lt_s - i32.sub ) - (func $~lib/string/String#trimStart (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) + (func $~lib/string/String#split (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 36 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 26444 - i32.lt_s - if - i32.const 59232 - i32.const 59280 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $2 - loop $while-continue|0 - local.get $1 - local.get $2 - i32.lt_u - if (result i32) - block $__inlined_func$~lib/util/string/isSpace (result i32) - local.get $0 - local.get $1 - i32.add - i32.load16_u - local.tee $3 - i32.const 5760 - i32.lt_u - if - local.get $3 - i32.const 128 - i32.or - i32.const 160 - i32.eq - local.get $3 - i32.const 9 - i32.sub - i32.const 4 - i32.le_u - i32.or - br $__inlined_func$~lib/util/string/isSpace - end - i32.const 1 - local.get $3 - i32.const -8192 - i32.add - i32.const 10 - i32.le_u - br_if $__inlined_func$~lib/util/string/isSpace - drop - block $break|0 - block $case6|0 - local.get $3 - i32.const 5760 - i32.eq - br_if $case6|0 - local.get $3 - i32.const 8232 - i32.eq - br_if $case6|0 - local.get $3 - i32.const 8233 - i32.eq - br_if $case6|0 - local.get $3 - i32.const 8239 - i32.eq - br_if $case6|0 - local.get $3 - i32.const 8287 - i32.eq - br_if $case6|0 - local.get $3 - i32.const 12288 - i32.eq - br_if $case6|0 - local.get $3 - i32.const 65279 - i32.eq - br_if $case6|0 - br $break|0 - end - i32.const 1 - br $__inlined_func$~lib/util/string/isSpace - end - i32.const 0 - end - else - i32.const 0 - end - if - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|0 - end - end - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - local.get $2 - local.get $1 - 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 1712 - return - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=4 - local.get $3 - local.get $0 - local.get $1 - i32.add - local.get $2 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (func $~lib/string/String#trimEnd (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 26444 - i32.lt_s - if - i32.const 59232 - i32.const 59280 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $3 - local.set $1 - loop $while-continue|0 - local.get $1 - if (result i32) - block $__inlined_func$~lib/util/string/isSpace$1 (result i32) - local.get $0 - local.get $1 - i32.add - i32.const 2 - i32.sub - i32.load16_u - local.tee $2 - i32.const 5760 - i32.lt_u - if - local.get $2 - i32.const 128 - i32.or - i32.const 160 - i32.eq + block $folding-inner4 + block $folding-inner3 + block $folding-inner1 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 26636 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 36 + memory.fill local.get $2 - i32.const 9 - i32.sub - i32.const 4 - i32.le_u - i32.or - br $__inlined_func$~lib/util/string/isSpace$1 - end - i32.const 1 - local.get $2 - i32.const -8192 - i32.add - i32.const 10 - i32.le_u - br_if $__inlined_func$~lib/util/string/isSpace$1 - drop - block $break|0 - block $case6|0 - local.get $2 - i32.const 5760 - i32.eq - br_if $case6|0 - local.get $2 - i32.const 8232 - i32.eq - br_if $case6|0 + i32.eqz + br_if $folding-inner1 + local.get $1 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 1 + i32.const 5 + i32.const 0 + call $~lib/rt/__newArray + local.tee $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 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 local.get $2 - i32.const 8233 - i32.eq - br_if $case6|0 + i32.store local.get $2 - i32.const 8239 - i32.eq - br_if $case6|0 + i32.load offset=12 + i32.eqz + if + local.get $2 + i32.const 1 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 1 + i32.store offset=12 + end + global.get $~lib/memory/__stack_pointer local.get $2 - i32.const 8287 - i32.eq - br_if $case6|0 + i32.store local.get $2 - i32.const 12288 - i32.eq - br_if $case6|0 + i32.load offset=4 + local.get $0 + i32.store local.get $2 - i32.const 65279 - i32.eq - br_if $case6|0 - br $break|0 - end - i32.const 1 - br $__inlined_func$~lib/util/string/isSpace$1 - end - i32.const 0 - end - else - i32.const 0 - end - if - local.get $1 - i32.const 2 - i32.sub - local.set $1 - br $while-continue|0 - end - end - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1712 - return - end - local.get $1 - local.get $3 - i32.eq - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=4 - local.get $2 - local.get $0 - local.get $1 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $~lib/string/String#trim (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 - global.get $~lib/memory/__stack_pointer - i32.const 26444 - i32.lt_s - if - i32.const 59232 - i32.const 59280 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $3 - i32.const 1 - i32.shl - local.set $1 - loop $while-continue|0 - local.get $1 - if (result i32) - block $__inlined_func$~lib/util/string/isSpace$2 (result i32) - local.get $0 - local.get $1 - i32.add - i32.const 2 - i32.sub - i32.load16_u - local.tee $4 - i32.const 5760 - i32.lt_u - if - local.get $4 - i32.const 128 - i32.or - i32.const 160 - i32.eq - local.get $4 - i32.const 9 - i32.sub - i32.const 4 - i32.le_u - i32.or - br $__inlined_func$~lib/util/string/isSpace$2 - end - i32.const 1 - local.get $4 - i32.const -8192 - i32.add - i32.const 10 - i32.le_u - br_if $__inlined_func$~lib/util/string/isSpace$2 - drop - block $break|0 - block $case6|0 - local.get $4 - i32.const 5760 - i32.eq - br_if $case6|0 - local.get $4 - i32.const 8232 - i32.eq - br_if $case6|0 - local.get $4 - i32.const 8233 - i32.eq - br_if $case6|0 - local.get $4 - i32.const 8239 - i32.eq - br_if $case6|0 - local.get $4 - i32.const 8287 - i32.eq - br_if $case6|0 - local.get $4 - i32.const 12288 - i32.eq - br_if $case6|0 - local.get $4 - i32.const 65279 - i32.eq - br_if $case6|0 - br $break|0 + local.get $0 + 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 + br $folding-inner4 end - i32.const 1 - br $__inlined_func$~lib/util/string/isSpace$2 - end - i32.const 0 - end - else - i32.const 0 - end - if - local.get $1 - i32.const 2 - i32.sub - local.set $1 - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $1 - local.get $2 - i32.gt_u - if (result i32) - block $__inlined_func$~lib/util/string/isSpace$3 (result i32) - local.get $0 - local.get $2 - i32.add - i32.load16_u - local.tee $4 - i32.const 5760 - i32.lt_u - if - local.get $4 - i32.const 128 - i32.or - i32.const 160 - i32.eq - local.get $4 - i32.const 9 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 20 i32.sub - i32.const 4 - i32.le_u - i32.or - br $__inlined_func$~lib/util/string/isSpace$3 - end - i32.const 1 - local.get $4 - i32.const -8192 - i32.add - i32.const 10 - i32.le_u - br_if $__inlined_func$~lib/util/string/isSpace$3 - drop - block $break|00 - block $case6|01 - local.get $4 - i32.const 5760 - i32.eq - br_if $case6|01 - local.get $4 - i32.const 8232 - i32.eq - br_if $case6|01 - local.get $4 - i32.const 8233 - i32.eq - br_if $case6|01 - local.get $4 - i32.const 8239 - i32.eq - br_if $case6|01 - local.get $4 - i32.const 8287 - i32.eq - br_if $case6|01 - local.get $4 - i32.const 12288 - i32.eq - br_if $case6|01 - local.get $4 - i32.const 65279 - i32.eq - br_if $case6|01 - br $break|00 - end + i32.load offset=16 i32.const 1 - br $__inlined_func$~lib/util/string/isSpace$3 - end - i32.const 0 - end - else - i32.const 0 - end - if - local.get $2 - i32.const 2 - i32.add - local.set $2 - local.get $1 - i32.const 2 - i32.sub - local.set $1 - br $while-continue|1 - end - end - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1712 - return - end - local.get $2 - i32.eqz - local.get $1 - local.get $3 - i32.const 1 - i32.shl - i32.eq - i32.and - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=4 - local.get $3 - local.get $0 - local.get $2 - i32.add - local.get $1 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (func $~lib/util/string/strtob (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 26444 - i32.lt_s - if - i32.const 59232 - i32.const 59280 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $1 - i32.const 8 - i32.gt_u - if (result i32) - loop $while-continue|0 - local.get $1 - if (result i32) - block $__inlined_func$~lib/util/string/isSpace$4 (result i32) - local.get $0 + i32.shr_u + local.set $6 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.add - i32.const 2 + i32.store offset=4 + i32.const 2147483647 + local.get $2 + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $8 + local.get $1 + i32.const 20 i32.sub - i32.load16_u - local.tee $3 - i32.const 5760 - i32.lt_u - if - local.get $3 - i32.const 128 - i32.or - i32.const 160 - i32.eq - local.get $3 - i32.const 9 - i32.sub - i32.const 4 - i32.le_u - i32.or - br $__inlined_func$~lib/util/string/isSpace$4 - end + i32.load offset=16 i32.const 1 - local.get $3 - i32.const -8192 - i32.add - i32.const 10 - i32.le_u - br_if $__inlined_func$~lib/util/string/isSpace$4 - drop - block $break|0 - block $case6|0 - local.get $3 - i32.const 5760 - i32.eq - br_if $case6|0 - local.get $3 - i32.const 8232 - i32.eq - br_if $case6|0 - local.get $3 - i32.const 8233 - i32.eq - br_if $case6|0 - local.get $3 - i32.const 8239 - i32.eq - br_if $case6|0 - local.get $3 - i32.const 8287 - i32.eq - br_if $case6|0 - local.get $3 - i32.const 12288 - i32.eq - br_if $case6|0 + i32.shr_u + local.tee $4 + if + local.get $6 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 1 + i32.const 5 + i32.const 0 + call $~lib/rt/__newArray + local.tee $2 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.load offset=4 + i32.const 1712 + i32.store + br $folding-inner4 + end + else + local.get $6 + i32.eqz + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $6 + local.get $8 + local.get $6 + local.get $8 + i32.lt_s + select + local.tee $3 + i32.const 5 + i32.const 0 + call $~lib/rt/__newArray + local.tee $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $1 + loop $for-loop|0 + local.get $1 local.get $3 - i32.const 65279 - i32.eq - br_if $case6|0 - br $break|0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=12 + local.get $5 + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $5 + i32.store + local.get $2 + local.get $5 + i32.const 1 + call $~lib/rt/itcms/__link + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end end - i32.const 1 - br $__inlined_func$~lib/util/string/isSpace$4 + br $folding-inner4 end + global.get $~lib/memory/__stack_pointer i32.const 0 - end - else - i32.const 0 - end - if - local.get $1 - i32.const 2 - i32.sub - local.set $1 - br $while-continue|0 - end - end - local.get $1 - i32.const 8 - i32.gt_u - if (result i32) - loop $while-continue|1 - local.get $1 - local.get $2 - i32.gt_u - if (result i32) - block $__inlined_func$~lib/util/string/isSpace$5 (result i32) + i32.const 5 + i32.const 0 + call $~lib/rt/__newArray + local.tee $2 + i32.store offset=20 + loop $while-continue|1 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $2 - i32.add - i32.load16_u - local.tee $3 - i32.const 5760 - i32.lt_u + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=24 + local.get $0 + local.get $1 + local.get $3 + call $~lib/string/String#indexOf + local.tee $9 + i32.const -1 + i32.xor if + local.get $9 local.get $3 - i32.const 128 - i32.or - i32.const 160 - i32.eq - local.get $3 - i32.const 9 i32.sub - i32.const 4 - i32.le_u - i32.or - br $__inlined_func$~lib/util/string/isSpace$5 - end - i32.const 1 - local.get $3 - i32.const -8192 - i32.add - i32.const 10 - i32.le_u - br_if $__inlined_func$~lib/util/string/isSpace$5 - drop - block $break|00 - block $case6|01 - local.get $3 - i32.const 5760 - i32.eq - br_if $case6|01 - local.get $3 - i32.const 8232 - i32.eq - br_if $case6|01 - local.get $3 - i32.const 8233 - i32.eq - br_if $case6|01 - local.get $3 - i32.const 8239 - i32.eq - br_if $case6|01 - local.get $3 - i32.const 8287 - i32.eq - br_if $case6|01 - local.get $3 - i32.const 12288 - i32.eq - br_if $case6|01 + local.tee $7 + i32.const 0 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.const 1 + i32.shl + local.tee $10 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store offset=28 + local.get $7 + local.get $0 local.get $3 - i32.const 65279 - i32.eq - br_if $case6|01 - br $break|00 + i32.const 1 + i32.shl + i32.add + local.get $10 + memory.copy + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=24 + local.get $2 + local.get $7 + call $~lib/array/Array<~lib/string/String>#push + else + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1712 + call $~lib/array/Array<~lib/string/String>#push end + local.get $5 i32.const 1 - br $__inlined_func$~lib/util/string/isSpace$5 + i32.add + local.tee $5 + local.get $8 + i32.eq + br_if $folding-inner3 + local.get $4 + local.get $9 + i32.add + local.set $3 + br $while-continue|1 end - i32.const 0 end - else + local.get $3 + i32.eqz + if + 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=24 + local.get $2 + local.get $0 + call $~lib/array/Array<~lib/string/String>#push + br $folding-inner3 + end + local.get $6 + local.get $3 + i32.sub + local.tee $1 i32.const 0 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.shl + local.tee $1 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=32 + local.get $4 + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.get $1 + memory.copy + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=24 + local.get $2 + local.get $4 + call $~lib/array/Array<~lib/string/String>#push + else + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1712 + call $~lib/array/Array<~lib/string/String>#push + end + br $folding-inner4 end - if - local.get $2 - i32.const 2 - i32.add - local.set $2 - br $while-continue|1 - end + i32.const 59424 + i32.const 59472 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.get $1 - local.get $2 - i32.sub - else - local.get $1 + i32.const 0 + i32.const 5 + i32.const 0 + call $~lib/rt/__newArray + local.set $2 + br $folding-inner4 end - else - local.get $1 - end - i32.const 8 - i32.ne - if global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 36 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 + local.get $2 return end - local.get $0 - local.get $2 - i32.add - i64.load - i64.const 28429475166421108 - i64.eq - local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 36 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $2 ) - (func $~lib/util/string/strtol (param $0 i32) (param $1 i32) (result f64) + (func $~lib/string/String.fromCodePoint (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) - (local $3 i32) - (local $4 f64) - (local $5 f64) - (local $6 i32) - (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 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + 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 - block $folding-inner0 + local.get $2 + if local.get $0 - i32.const 20 + i32.const 1114111 + i32.gt_u + if + i32.const 0 + i32.const 1328 + i32.const 39 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $0 + i32.const 65536 i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $2 - i32.eqz - br_if $folding-inner0 + local.tee $0 + i32.const 10 + i32.shr_u + i32.const 55296 + i32.or local.get $0 - i32.load16_u - local.set $3 - loop $while-continue|0 - block $__inlined_func$~lib/util/string/isSpace$6 (result i32) - local.get $3 - i32.const 128 - i32.or - i32.const 160 - i32.eq - local.get $3 - i32.const 9 - i32.sub - i32.const 4 - i32.le_u - i32.or - local.get $3 - i32.const 5760 - i32.lt_u - br_if $__inlined_func$~lib/util/string/isSpace$6 - drop - i32.const 1 - local.get $3 - i32.const -8192 - i32.add - i32.const 10 - i32.le_u - br_if $__inlined_func$~lib/util/string/isSpace$6 - drop - block $break|0 - block $case6|0 - local.get $3 - i32.const 5760 - i32.eq - br_if $case6|0 - local.get $3 - i32.const 8232 - i32.eq - br_if $case6|0 - local.get $3 - i32.const 8233 - i32.eq - br_if $case6|0 - local.get $3 - i32.const 8239 - i32.eq - br_if $case6|0 - local.get $3 - i32.const 8287 - i32.eq - br_if $case6|0 - local.get $3 - i32.const 12288 - i32.eq - br_if $case6|0 - local.get $3 - i32.const 65279 - i32.eq - br_if $case6|0 - br $break|0 - end - i32.const 1 - br $__inlined_func$~lib/util/string/isSpace$6 - end - i32.const 0 - end - if - local.get $0 - i32.const 2 - i32.add - local.tee $0 - i32.load16_u - local.set $3 - local.get $2 + 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/string/String.__gte (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 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 + i64.const 0 + i64.store + 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.__lt + i32.eqz + 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) + global.get $~lib/memory/__stack_pointer + i32.const 8 + 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 + i64.const 0 + i64.store + 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/string/String#lastIndexOf@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 + 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 + i64.const 0 + i64.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength i32.const 1 i32.sub - local.set $2 - br $while-continue|0 + br_table $0of1 $1of1 $outOfRange end + unreachable end - f64.const 1 - local.set $4 - local.get $3 - i32.const 45 - i32.eq - local.tee $6 - local.get $3 - i32.const 43 - i32.eq - i32.or - if - local.get $2 - i32.const 1 - i32.sub - local.tee $2 - i32.eqz - br_if $folding-inner0 - f64.const -1 - f64.const 1 - local.get $6 - select - local.set $4 - local.get $0 - i32.const 2 - i32.add - local.tee $0 - i32.load16_u - local.set $3 - end - local.get $1 - if - local.get $1 - i32.const 2 - i32.lt_s - local.get $1 - i32.const 36 - i32.gt_s - i32.or - br_if $folding-inner0 - local.get $1 - i32.const 16 - i32.eq - if - local.get $3 - i32.const 48 - i32.eq - local.get $2 - i32.const 2 - i32.gt_s - i32.and - if (result i32) - local.get $0 - i32.load16_u offset=2 - i32.const 32 - i32.or - i32.const 120 - i32.eq - else - i32.const 0 - end - if - local.get $2 - i32.const 2 - i32.sub - local.set $2 - local.get $0 - i32.const 4 - i32.add - local.set $0 - end - end - else - local.get $3 - i32.const 48 - i32.eq - local.get $2 - i32.const 2 - i32.gt_s - i32.and - if - block $break|1 - block $case2|1 - block $case1|1 - local.get $0 - i32.load16_u offset=2 - i32.const 32 - i32.or - local.tee $3 - i32.const 98 - i32.ne - if - local.get $3 - i32.const 111 - i32.eq - br_if $case1|1 - local.get $3 - i32.const 120 - i32.eq - br_if $case2|1 - br $break|1 - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - i32.const 2 - local.set $1 - br $break|1 - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - i32.const 8 - local.set $1 - br $break|1 - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - i32.const 16 - local.set $1 - end - end - local.get $1 - i32.const 10 - local.get $1 - select - local.set $1 - end - local.get $2 - i32.const 1 - i32.sub - local.set $7 - loop $while-continue|2 - local.get $2 - local.tee $3 - i32.const 1 - i32.sub - local.set $2 - local.get $3 - if - block $while-break|2 - local.get $0 - i32.load16_u - local.tee $6 - i32.const 48 - i32.sub - local.tee $3 - i32.const 10 - i32.ge_u - if - local.get $6 - i32.const 65 - i32.sub - i32.const 25 - i32.le_u - if (result i32) - local.get $6 - i32.const 55 - i32.sub - else - local.get $6 - i32.const 87 - i32.sub - local.get $6 - local.get $6 - i32.const 97 - i32.sub - i32.const 25 - i32.le_u - select - end - local.set $3 - end - local.get $1 - local.get $3 - i32.le_u - if - local.get $2 - local.get $7 - i32.eq - br_if $folding-inner0 - br $while-break|2 - end - local.get $5 - local.get $1 - f64.convert_i32_s - f64.mul - local.get $3 - f64.convert_i32_u - f64.add - local.set $5 - local.get $0 - i32.const 2 - i32.add - local.set $0 - br $while-continue|2 - end - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $5 - f64.mul - return - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - f64.const nan:0x8000000000000 - ) - (func $~lib/string/parseInt (param $0 i32) (param $1 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 - global.get $~lib/memory/__stack_pointer - i32.const 26444 - i32.lt_s - if - i32.const 59232 - i32.const 59280 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + i32.const 2147483647 + local.set $2 end global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 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/util/string/strtol - local.set $3 + local.get $2 + call $~lib/string/String#lastIndexOf global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 ) - (func $~lib/util/string/strtod (param $0 i32) (result f64) - (local $1 i32) - (local $2 i32) + (func $~lib/string/String#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i64) - (local $7 i64) - (local $8 f64) - (local $9 i32) - (local $10 f64) - (local $11 i32) - (local $12 i64) - (local $13 i64) - (local $14 i64) 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 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 + i64.const 0 + i64.store + 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 + local.tee $3 + i32.eqz + if + 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 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - block $folding-inner1 - block $folding-inner0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $5 - i32.eqz - br_if $folding-inner0 - local.get $0 - i32.load16_u - local.set $4 - f64.const 1 - local.set $10 - loop $while-continue|0 - local.get $5 - if (result i32) - block $__inlined_func$~lib/util/string/isSpace$7 (result i32) - local.get $4 - i32.const 128 - i32.or - i32.const 160 - i32.eq - local.get $4 - i32.const 9 - i32.sub - i32.const 4 - i32.le_u - i32.or - local.get $4 - i32.const 5760 - i32.lt_u - br_if $__inlined_func$~lib/util/string/isSpace$7 - drop - i32.const 1 - local.get $4 - i32.const -8192 - i32.add - i32.const 10 - i32.le_u - br_if $__inlined_func$~lib/util/string/isSpace$7 - drop - block $break|0 - block $case6|0 - local.get $4 - i32.const 5760 - i32.eq - br_if $case6|0 - local.get $4 - i32.const 8232 - i32.eq - br_if $case6|0 - local.get $4 - i32.const 8233 - i32.eq - br_if $case6|0 - local.get $4 - i32.const 8239 - i32.eq - br_if $case6|0 - local.get $4 - i32.const 8287 - i32.eq - br_if $case6|0 - local.get $4 - i32.const 12288 - i32.eq - br_if $case6|0 - local.get $4 - i32.const 65279 - i32.eq - br_if $case6|0 - br $break|0 - end - i32.const 1 - br $__inlined_func$~lib/util/string/isSpace$7 - end - i32.const 0 - end - else - i32.const 0 - end - if - local.get $0 - i32.const 2 - i32.add - local.tee $0 - i32.load16_u - local.set $4 - local.get $5 - i32.const 1 - i32.sub - local.set $5 - br $while-continue|0 - end - end - local.get $5 + local.get $0 + 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 + return + end + local.get $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.tee $2 + local.get $4 + local.get $3 + i32.sub + local.tee $4 + local.get $2 + local.get $4 + i32.lt_s + select + local.set $2 + loop $for-loop|0 + local.get $2 + i32.const 0 + i32.ge_s + if + 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 $2 + local.get $1 + local.get $3 + call $~lib/util/string/compareImpl i32.eqz - br_if $folding-inner0 - local.get $4 - i32.const 45 - i32.eq - if (result i32) - local.get $5 - i32.const 1 - i32.sub - local.tee $5 - i32.eqz - br_if $folding-inner0 - f64.const -1 - local.set $10 - local.get $0 - i32.const 2 - i32.add - local.tee $0 - i32.load16_u - else - local.get $4 - i32.const 43 - i32.eq - if (result i32) - local.get $5 - i32.const 1 - i32.sub - local.tee $5 - i32.eqz - br_if $folding-inner0 - local.get $0 - i32.const 2 - i32.add - local.tee $0 - i32.load16_u - else - local.get $4 - end - end - local.tee $4 - i32.const 73 - i32.eq - local.get $5 - i32.const 8 - i32.ge_s - i32.and if - local.get $0 - i64.load - i64.const 29555310648492105 - i64.eq - if (result i32) - local.get $0 - i64.load offset=8 - i64.const 34058970405077102 - i64.eq - else - i32.const 0 - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $10 - f64.const inf - f64.mul - return - end - br $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return end - local.get $4 - i32.const 46 - i32.ne - local.get $4 - i32.const 48 + local.get $2 + i32.const 1 i32.sub - i32.const 10 - i32.ge_u - i32.and - br_if $folding-inner0 - local.get $0 - local.set $3 - loop $while-continue|1 - local.get $4 - i32.const 48 - i32.eq - if - local.get $0 - i32.const 2 - i32.add - local.tee $0 - i32.load16_u - local.set $4 - local.get $5 - i32.const 1 - i32.sub - local.set $5 - br $while-continue|1 - end - end - local.get $5 - i32.const 0 - i32.le_s - br_if $folding-inner1 - local.get $4 - i32.const 46 - i32.eq - if - local.get $0 - local.get $3 - i32.eq - local.set $3 - local.get $0 - i32.const 2 - i32.add - local.set $0 - local.get $3 - local.get $5 - i32.const 1 - i32.sub - local.tee $5 - i32.eqz - i32.and - br_if $folding-inner0 - i32.const 1 - local.set $9 - loop $for-loop|2 - local.get $0 - i32.load16_u - local.tee $4 - i32.const 48 - i32.eq - if - local.get $5 - i32.const 1 - i32.sub - local.set $5 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - local.get $0 - i32.const 2 - i32.add - local.set $0 - br $for-loop|2 - end - end - local.get $5 - i32.const 0 - i32.le_s - br_if $folding-inner1 - local.get $3 - local.get $2 - i32.eqz - i32.and - local.get $4 - i32.const 48 - i32.sub - i32.const 10 - i32.ge_u - i32.and - br_if $folding-inner0 - end - local.get $4 - i32.const 48 - i32.sub - local.set $3 - loop $for-loop|3 - local.get $3 - i32.const 10 - i32.lt_u - local.tee $11 - local.get $9 - i32.eqz - local.get $4 - i32.const 46 - i32.eq - i32.and - i32.or - if - block $for-break3 - local.get $11 - if - local.get $1 - i32.const 19 - i32.lt_s - if (result i64) - local.get $3 - i64.extend_i32_u - local.get $6 - i64.const 10 - i64.mul - i64.add - else - local.get $6 - local.get $3 - i32.const 0 - i32.ne - i64.extend_i32_u - i64.or - end - local.set $6 - local.get $1 - i32.const 1 - i32.add - local.set $1 - else - local.get $1 - local.set $2 - i32.const 1 - local.set $9 - end - local.get $5 - i32.const 1 - i32.sub - local.tee $5 - i32.eqz - br_if $for-break3 - local.get $0 - i32.const 2 - i32.add - local.tee $0 - i32.load16_u - local.tee $4 - i32.const 48 - i32.sub - local.set $3 - br $for-loop|3 - end - end - end - block $~lib/util/string/scientific|inlined.0 - local.get $6 - i64.eqz - local.get $2 - local.get $1 - local.get $9 - select - i32.const 19 - local.get $1 - local.get $1 - i32.const 19 - i32.gt_s - select - i32.sub - block $~lib/util/string/parseExp|inlined.0 (result i32) - i32.const 1 - local.set $9 - i32.const 0 - local.set $4 - i32.const 0 - local.get $0 - i32.load16_u - i32.const 32 - i32.or - i32.const 101 - i32.ne - br_if $~lib/util/string/parseExp|inlined.0 - drop - i32.const 0 - local.get $5 - i32.const 1 - i32.sub - local.tee $5 - i32.eqz - br_if $~lib/util/string/parseExp|inlined.0 - drop - local.get $0 - i32.const 2 - i32.add - local.tee $0 - i32.load16_u - local.tee $1 - i32.const 45 - i32.eq - if (result i32) - i32.const 0 - local.get $5 - i32.const 1 - i32.sub - local.tee $5 - i32.eqz - br_if $~lib/util/string/parseExp|inlined.0 - drop - i32.const -1 - local.set $9 - local.get $0 - i32.const 2 - i32.add - local.tee $0 - i32.load16_u - else - local.get $1 - i32.const 43 - i32.eq - if (result i32) - i32.const 0 - local.get $5 - i32.const 1 - i32.sub - local.tee $5 - i32.eqz - br_if $~lib/util/string/parseExp|inlined.0 - drop - local.get $0 - i32.const 2 - i32.add - local.tee $0 - i32.load16_u - else - local.get $1 - end - end - local.set $3 - loop $while-continue|4 - local.get $3 - i32.const 48 - i32.eq - if - i32.const 0 - local.get $5 - i32.const 1 - i32.sub - local.tee $5 - i32.eqz - br_if $~lib/util/string/parseExp|inlined.0 - drop - local.get $0 - i32.const 2 - i32.add - local.tee $0 - i32.load16_u - local.set $3 - br $while-continue|4 - end - end - local.get $3 - i32.const 48 - i32.sub - local.set $3 - loop $for-loop|5 - local.get $3 - i32.const 10 - i32.lt_u - i32.const 0 - local.get $5 - select - if - local.get $9 - i32.const 3200 - i32.mul - local.get $4 - i32.const 3200 - i32.ge_s - br_if $~lib/util/string/parseExp|inlined.0 - drop - local.get $4 - i32.const 10 - i32.mul - local.get $3 - i32.add - local.set $4 - local.get $5 - i32.const 1 - i32.sub - local.set $5 - local.get $0 - i32.const 2 - i32.add - local.tee $0 - i32.load16_u - i32.const 48 - i32.sub - local.set $3 - br $for-loop|5 - end - end - local.get $4 - local.get $9 - i32.mul - end - i32.add - local.tee $0 - i32.const -342 - i32.lt_s - i32.or - br_if $~lib/util/string/scientific|inlined.0 - f64.const inf - local.set $8 - local.get $0 - i32.const 308 - i32.gt_s - br_if $~lib/util/string/scientific|inlined.0 - local.get $6 - f64.convert_i64_u - local.set $8 - local.get $0 - i32.eqz - br_if $~lib/util/string/scientific|inlined.0 - local.get $0 - i32.const 37 - i32.le_s - local.get $0 - i32.const 22 - i32.gt_s - i32.and - if - local.get $8 - local.get $0 - i32.const 3 - i32.shl - i32.const 4496 - i32.add - f64.load - f64.mul - local.set $8 - i32.const 22 - local.set $0 - end - local.get $6 - i64.const 9007199254740991 - i64.le_u - if (result i32) - local.get $0 - i32.const 31 - i32.shr_s - local.tee $1 - local.get $0 - local.get $1 - i32.add - i32.xor - i32.const 22 - i32.le_s - else - i32.const 0 - end - if (result f64) - local.get $0 - i32.const 0 - i32.gt_s - if - local.get $8 - local.get $0 - i32.const 3 - i32.shl - i32.const 4672 - i32.add - f64.load - f64.mul - local.set $8 - br $~lib/util/string/scientific|inlined.0 - end - local.get $8 - i32.const 0 - local.get $0 - i32.sub - i32.const 3 - i32.shl - i32.const 4672 - i32.add - f64.load - f64.div - else - local.get $0 - i32.const 0 - i32.lt_s - if (result f64) - local.get $6 - local.get $6 - i64.clz - local.tee $7 - i64.shl - local.set $6 - local.get $0 - i64.extend_i32_s - local.get $7 - i64.sub - local.set $7 - loop $for-loop|6 - local.get $0 - i32.const -14 - i32.le_s - if - local.get $6 - i64.const 6103515625 - i64.rem_u - local.get $6 - i64.const 6103515625 - i64.div_u - local.tee $6 - i64.clz - local.tee $12 - i64.const 18 - i64.sub - i64.shl - f64.convert_i64_u - f64.const 0.00004294967296 - f64.mul - f64.nearest - i64.trunc_sat_f64_u - local.get $6 - local.get $12 - i64.shl - i64.add - local.set $6 - local.get $7 - local.get $12 - i64.sub - local.set $7 - local.get $0 - i32.const 14 - i32.add - local.set $0 - br $for-loop|6 - end - end - local.get $6 - i32.const 0 - local.get $0 - i32.sub - call $~lib/math/ipow32 - i64.extend_i32_s - local.tee $13 - i64.div_u - local.tee $14 - i64.clz - local.set $12 - local.get $6 - local.get $13 - i64.rem_u - f64.convert_i64_u - i64.reinterpret_f64 - local.get $12 - i64.const 52 - i64.shl - i64.add - f64.reinterpret_i64 - local.get $13 - f64.convert_i64_u - f64.div - i64.trunc_sat_f64_u - local.get $14 - local.get $12 - i64.shl - i64.add - f64.convert_i64_u - local.get $7 - local.get $12 - i64.sub - i32.wrap_i64 - call $~lib/math/NativeMath.scalbn - else - local.get $6 - local.get $6 - i64.ctz - local.tee $7 - i64.shr_u - local.set $6 - local.get $7 - local.get $0 - i64.extend_i32_s - i64.add - global.set $~lib/util/string/__fixmulShift - loop $for-loop|7 - local.get $0 - i32.const 13 - i32.ge_s - if - i64.const 32 - local.get $6 - i64.const 32 - i64.shr_u - i64.const 1220703125 - i64.mul - local.get $6 - i64.const 4294967295 - i64.and - i64.const 1220703125 - i64.mul - local.tee $6 - i64.const 32 - i64.shr_u - i64.add - local.tee $7 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.clz - i64.extend_i32_u - local.tee $12 - i64.sub - local.tee $13 - global.get $~lib/util/string/__fixmulShift - i64.add - global.set $~lib/util/string/__fixmulShift - local.get $6 - local.get $12 - i64.shl - i64.const 31 - i64.shr_u - i64.const 1 - i64.and - local.get $7 - local.get $12 - i64.shl - local.get $6 - i64.const 4294967295 - i64.and - local.get $13 - i64.shr_u - i64.or - i64.add - local.set $6 - local.get $0 - i32.const 13 - i32.sub - local.set $0 - br $for-loop|7 - end - end - local.get $0 - call $~lib/math/ipow32 - i64.extend_i32_u - local.tee $7 - local.get $6 - i64.const 4294967295 - i64.and - i64.mul - local.set $12 - i64.const 32 - local.get $6 - i64.const 32 - i64.shr_u - local.get $7 - i64.mul - local.get $12 - i64.const 32 - i64.shr_u - i64.add - local.tee $6 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.clz - i64.extend_i32_u - local.tee $7 - i64.sub - local.tee $13 - global.get $~lib/util/string/__fixmulShift - i64.add - global.set $~lib/util/string/__fixmulShift - local.get $12 - local.get $7 - i64.shl - i64.const 31 - i64.shr_u - i64.const 1 - i64.and - local.get $6 - local.get $7 - i64.shl - local.get $12 - i64.const 4294967295 - i64.and - local.get $13 - i64.shr_u - i64.or - i64.add - f64.convert_i64_u - global.get $~lib/util/string/__fixmulShift - i32.wrap_i64 - call $~lib/math/NativeMath.scalbn - end - end - local.set $8 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - local.get $10 - f64.copysign - return - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - f64.const nan:0x8000000000000 - return - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $10 - f64.const 0 - f64.mul - ) - (func $~lib/number/F64.parseFloat (param $0 i32) (result f64) - (local $1 i32) - (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 26444 - i32.lt_s - if - i32.const 59232 - i32.const 59280 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - local.get $0 - i32.store - local.get $0 - call $~lib/util/string/strtod - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $~lib/util/string/strtol (result i32) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - i32.const 4880 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 26444 - i32.lt_s - if - i32.const 59232 - i32.const 59280 - 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 - local.get $0 - i32.const 4880 - i32.store - block $folding-inner0 - i32.const 4876 - i32.load - i32.const 1 - i32.shr_u - local.tee $0 - i32.eqz - br_if $folding-inner0 - i32.const 4880 - i32.load16_u - local.set $1 - loop $while-continue|0 - block $__inlined_func$~lib/util/string/isSpace$8 (result i32) - local.get $1 - i32.const 128 - i32.or - i32.const 160 - i32.eq - local.get $1 - i32.const 9 - i32.sub - i32.const 4 - i32.le_u - i32.or - local.get $1 - i32.const 5760 - i32.lt_u - br_if $__inlined_func$~lib/util/string/isSpace$8 - drop - i32.const 1 - local.get $1 - i32.const -8192 - i32.add - i32.const 10 - i32.le_u - br_if $__inlined_func$~lib/util/string/isSpace$8 - drop - block $break|0 - block $case6|0 - local.get $1 - i32.const 5760 - i32.eq - br_if $case6|0 - local.get $1 - i32.const 8232 - i32.eq - br_if $case6|0 - local.get $1 - i32.const 8233 - i32.eq - br_if $case6|0 - local.get $1 - i32.const 8239 - i32.eq - br_if $case6|0 - local.get $1 - i32.const 8287 - i32.eq - br_if $case6|0 - local.get $1 - i32.const 12288 - i32.eq - br_if $case6|0 - local.get $1 - i32.const 65279 - i32.eq - br_if $case6|0 - br $break|0 - end - i32.const 1 - br $__inlined_func$~lib/util/string/isSpace$8 - end - i32.const 0 - end - if - local.get $2 - i32.const 2 - i32.add - local.tee $2 - i32.load16_u - local.set $1 - local.get $0 - i32.const 1 - i32.sub - local.set $0 - br $while-continue|0 - end - end - i32.const 1 - local.set $4 - local.get $1 - i32.const 45 - i32.eq - local.tee $6 - local.get $1 - i32.const 43 - i32.eq - i32.or - if (result i32) - local.get $0 - i32.const 1 - i32.sub - local.tee $0 - i32.eqz - br_if $folding-inner0 - i32.const -1 - i32.const 1 - local.get $6 - select - local.set $4 - local.get $2 - i32.const 2 - i32.add - local.tee $2 - i32.load16_u - else - local.get $1 - end - i32.const 48 - i32.eq - local.get $0 - i32.const 2 - i32.gt_s - i32.and - if - block $break|1 - block $case2|1 - block $case1|1 - local.get $2 - i32.load16_u offset=2 - i32.const 32 - i32.or - local.tee $1 - i32.const 98 - i32.ne - if - local.get $1 - i32.const 111 - i32.eq - br_if $case1|1 - local.get $1 - i32.const 120 - i32.eq - br_if $case2|1 - br $break|1 - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - local.get $0 - i32.const 2 - i32.sub - local.set $0 - i32.const 2 - local.set $3 - br $break|1 - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - local.get $0 - i32.const 2 - i32.sub - local.set $0 - i32.const 8 - local.set $3 - br $break|1 - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - local.get $0 - i32.const 2 - i32.sub - local.set $0 - i32.const 16 - local.set $3 - end - end - local.get $3 - i32.const 10 - local.get $3 - select - local.set $6 - local.get $0 - i32.const 1 - i32.sub - local.set $7 - loop $while-continue|2 - local.get $0 - local.tee $1 - i32.const 1 - i32.sub - local.set $0 - local.get $1 - if - block $while-break|2 - local.get $2 - i32.load16_u - local.tee $3 - i32.const 48 - i32.sub - local.tee $1 - i32.const 10 - i32.ge_u - if - local.get $3 - i32.const 65 - i32.sub - i32.const 25 - i32.le_u - if (result i32) - local.get $3 - i32.const 55 - i32.sub - else - local.get $3 - i32.const 87 - i32.sub - local.get $3 - local.get $3 - i32.const 97 - i32.sub - i32.const 25 - i32.le_u - select - end - local.set $1 - end - local.get $1 - local.get $6 - i32.ge_u - if - local.get $0 - local.get $7 - i32.eq - br_if $folding-inner0 - br $while-break|2 - end - local.get $5 - local.get $6 - i32.mul - local.get $1 - i32.add - local.set $5 - local.get $2 - i32.const 2 - i32.add - local.set $2 - br $while-continue|2 - end - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $5 - i32.mul - return - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $~lib/util/string/strtol (result i64) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i64) - (local $5 i64) - (local $6 i32) - (local $7 i32) - i32.const 4928 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 26444 - i32.lt_s - if - i32.const 59232 - i32.const 59280 - 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 - local.get $0 - i32.const 4928 - i32.store - block $folding-inner0 - i32.const 4924 - i32.load - i32.const 1 - i32.shr_u - local.tee $0 - i32.eqz - br_if $folding-inner0 - i32.const 4928 - i32.load16_u - local.set $1 - loop $while-continue|0 - block $__inlined_func$~lib/util/string/isSpace$9 (result i32) - local.get $1 - i32.const 128 - i32.or - i32.const 160 - i32.eq - local.get $1 - i32.const 9 - i32.sub - i32.const 4 - i32.le_u - i32.or - local.get $1 - i32.const 5760 - i32.lt_u - br_if $__inlined_func$~lib/util/string/isSpace$9 - drop - i32.const 1 - local.get $1 - i32.const -8192 - i32.add - i32.const 10 - i32.le_u - br_if $__inlined_func$~lib/util/string/isSpace$9 - drop - block $break|0 - block $case6|0 - local.get $1 - i32.const 5760 - i32.eq - br_if $case6|0 - local.get $1 - i32.const 8232 - i32.eq - br_if $case6|0 - local.get $1 - i32.const 8233 - i32.eq - br_if $case6|0 - local.get $1 - i32.const 8239 - i32.eq - br_if $case6|0 - local.get $1 - i32.const 8287 - i32.eq - br_if $case6|0 - local.get $1 - i32.const 12288 - i32.eq - br_if $case6|0 - local.get $1 - i32.const 65279 - i32.eq - br_if $case6|0 - br $break|0 - end - i32.const 1 - br $__inlined_func$~lib/util/string/isSpace$9 - end - i32.const 0 - end - if - local.get $2 - i32.const 2 - i32.add - local.tee $2 - i32.load16_u - local.set $1 - local.get $0 - i32.const 1 - i32.sub - local.set $0 - br $while-continue|0 - end - end - i64.const 1 - local.set $4 - local.get $1 - i32.const 45 - i32.eq - local.tee $6 - local.get $1 - i32.const 43 - i32.eq - i32.or - if (result i32) - local.get $0 - i32.const 1 - i32.sub - local.tee $0 - i32.eqz - br_if $folding-inner0 - i64.const -1 - i64.const 1 - local.get $6 - select - local.set $4 - local.get $2 - i32.const 2 - i32.add - local.tee $2 - i32.load16_u - else - local.get $1 - end - i32.const 48 - i32.eq - local.get $0 - i32.const 2 - i32.gt_s - i32.and - if - block $break|1 - block $case2|1 - block $case1|1 - local.get $2 - i32.load16_u offset=2 - i32.const 32 - i32.or - local.tee $1 - i32.const 98 - i32.ne - if - local.get $1 - i32.const 111 - i32.eq - br_if $case1|1 - local.get $1 - i32.const 120 - i32.eq - br_if $case2|1 - br $break|1 - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - local.get $0 - i32.const 2 - i32.sub - local.set $0 - i32.const 2 - local.set $3 - br $break|1 - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - local.get $0 - i32.const 2 - i32.sub - local.set $0 - i32.const 8 - local.set $3 - br $break|1 - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - local.get $0 - i32.const 2 - i32.sub - local.set $0 - i32.const 16 - local.set $3 - end - end - local.get $3 - i32.const 10 - local.get $3 - select - local.set $6 - local.get $0 - i32.const 1 - i32.sub - local.set $7 - loop $while-continue|2 - local.get $0 - local.tee $1 - i32.const 1 - i32.sub - local.set $0 - local.get $1 - if - block $while-break|2 - local.get $2 - i32.load16_u - local.tee $3 - i32.const 48 - i32.sub - local.tee $1 - i32.const 10 - i32.ge_u - if - local.get $3 - i32.const 65 - i32.sub - i32.const 25 - i32.le_u - if (result i32) - local.get $3 - i32.const 55 - i32.sub - else - local.get $3 - i32.const 87 - i32.sub - local.get $3 - local.get $3 - i32.const 97 - i32.sub - i32.const 25 - i32.le_u - select - end - local.set $1 - end - local.get $1 - local.get $6 - i32.ge_u - if - local.get $0 - local.get $7 - i32.eq - br_if $folding-inner0 - br $while-break|2 - end - local.get $1 - i64.extend_i32_u - local.get $5 - local.get $6 - i64.extend_i32_s - i64.mul - i64.add - local.set $5 - local.get $2 - i32.const 2 - i32.add - local.set $2 - br $while-continue|2 - end - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $5 - i64.mul - return - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i64.const 0 - ) - (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) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 26444 - i32.lt_s - if - i32.const 59232 - i32.const 59280 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $5 - i64.const 0 - i64.store - local.get $5 - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $2 - local.get $5 - local.get $1 - i32.store - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $3 - local.get $2 - i32.add - local.tee $4 - i32.eqz - if - local.get $5 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1712 - return - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store offset=4 - local.get $4 - local.get $0 - local.get $2 - memory.copy - local.get $2 - local.get $4 - i32.add - local.get $1 - local.get $3 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - ) - (func $~lib/string/String.__concat (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 26444 - i32.lt_s - if - i32.const 59232 - i32.const 59280 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - local.get $0 - i32.store - local.get $2 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - call $~lib/string/String#concat - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/string/String.__ne (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 26444 - i32.lt_s - if - i32.const 59232 - i32.const 59280 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - local.get $0 - i32.store - local.get $2 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - call $~lib/string/String.__eq - i32.eqz - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/string/String.__gt (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 26444 - i32.lt_s - if - i32.const 59232 - i32.const 59280 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store - block $folding-inner0 - local.get $0 - local.get $1 - i32.eq - br_if $folding-inner0 - local.get $4 - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $2 - i32.eqz - br_if $folding-inner0 - local.get $4 - local.get $1 - i32.store - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $3 - i32.eqz - if - local.get $4 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 - return - end - global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $0 - i32.store - local.get $4 - local.get $1 - i32.store offset=4 - local.get $0 - i32.const 0 - local.get $1 - local.get $2 - local.get $3 - local.get $2 - local.get $3 - i32.lt_s - select - call $~lib/util/string/compareImpl - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.const 0 - i32.gt_s - local.get $2 - local.get $3 - i32.gt_s - local.get $0 - select - return - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $~lib/string/String.__lt (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 26444 - i32.lt_s - if - i32.const 59232 - i32.const 59280 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store - block $folding-inner0 - local.get $0 - local.get $1 - i32.eq - br_if $folding-inner0 - local.get $4 - local.get $1 - i32.store - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $2 - i32.eqz - br_if $folding-inner0 - local.get $4 - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $3 - i32.eqz - if - local.get $4 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 - return + local.set $2 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $0 - i32.store - local.get $4 - local.get $1 - i32.store offset=4 - local.get $0 - i32.const 0 - local.get $1 - local.get $3 - local.get $2 - local.get $2 - local.get $3 - i32.gt_s - local.tee $0 - select - call $~lib/util/string/compareImpl - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.const 0 - i32.lt_s - local.get $0 - local.get $1 - select - return - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $~lib/string/String.__gte (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 26444 - i32.lt_s - if - i32.const 59232 - i32.const 59280 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - local.get $0 - i32.store - local.get $2 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - call $~lib/string/String.__lt - i32.eqz - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/string/String.__lte (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 26444 - i32.lt_s - if - i32.const 59232 - i32.const 59280 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - local.get $0 - i32.store - local.get $2 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - call $~lib/string/String.__gt - i32.eqz - local.set $0 - global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const -1 ) - (func $~lib/string/String#repeat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/string/String#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -8480,1102 +5699,1196 @@ i32.const 0 i32.lt_s if (result i32) - i32.const 1 + local.get $1 + local.get $3 + i32.add + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select else + local.get $1 local.get $3 - i64.extend_i32_s local.get $1 - i64.extend_i32_s - i64.mul - i64.const 268435456 - i64.gt_u - end - if - i32.const 14064 - i32.const 1328 - i32.const 334 - i32.const 7 - call $~lib/builtins/abort - unreachable + local.get $3 + i32.lt_s + select end - local.get $3 - i32.eqz - local.get $1 - i32.eqz - i32.or - if - global.get $~lib/memory/__stack_pointer - i32.const 8 + local.set $1 + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $2 + local.get $3 i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1712 - return + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + else + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.lt_s + select end local.get $1 - i32.const 1 - i32.eq + i32.sub + local.tee $2 + i32.const 0 + i32.le_s if global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 1712 return end global.get $~lib/memory/__stack_pointer - local.get $1 - local.get $3 - i32.mul + local.get $2 i32.const 1 i32.shl + local.tee $2 i32.const 2 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $3 i32.store offset=4 local.get $3 + local.get $0 + local.get $1 i32.const 1 i32.shl - local.tee $3 - local.get $1 - i32.mul - local.set $1 - loop $while-continue|0 - local.get $1 - local.get $2 - i32.gt_u - if - local.get $2 - local.get $4 - i32.add - local.get $0 - local.get $3 - memory.copy - local.get $2 - local.get $3 - i32.add - local.set $2 - br $while-continue|0 - end - end + i32.add + local.get $2 + memory.copy global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $3 ) - (func $~lib/string/String#replace (param $0 i32) (param $1 i32) (param $2 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) - (local $5 i32) - (local $6 i32) - (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 - i32.const 0 - i32.store offset=8 - local.get $4 + 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 $5 - local.get $4 + i32.const -2 + i32.and + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $5 local.get $1 i32.const 20 i32.sub i32.load offset=16 - i32.const 1 - i32.shr_u + i32.const -2 + i32.and local.tee $3 - i32.le_u + local.get $2 + i32.add + local.tee $4 + i32.eqz if - local.get $3 - local.get $5 - i32.le_u - if - local.get $4 - local.get $1 - i32.store - local.get $4 - local.get $0 - i32.store offset=4 - local.get $2 - local.get $0 - local.get $1 - local.get $0 - call $~lib/string/String.__eq - select - local.set $0 - end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 1712 return end global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 2 + call $~lib/rt/itcms/__new local.tee $4 + i32.store offset=4 + local.get $4 local.get $0 - i32.store + local.get $2 + memory.copy + local.get $2 local.get $4 + i32.add local.get $1 - i32.store offset=4 + local.get $3 + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + ) + (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 1440 + i32.const 295 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/white local.get $1 - i32.const 0 - call $~lib/string/String#indexOf + i32.const 20 + i32.sub local.tee $1 - i32.const -1 - i32.xor + i32.load offset=4 + i32.const 3 + i32.and + i32.eq if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $5 - local.get $3 - i32.sub - local.tee $5 - local.get $2 + local.get $0 i32.const 20 i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $6 - i32.add - local.tee $4 - if - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store offset=8 - local.get $4 - local.get $0 - local.get $1 - i32.const 1 - i32.shl - local.tee $7 - memory.copy - local.get $4 - local.get $7 - i32.add - local.get $2 - local.get $6 - i32.const 1 - i32.shl - memory.copy - local.get $4 - local.get $1 - local.get $6 - i32.add - i32.const 1 - i32.shl - i32.add + local.tee $0 + i32.load offset=4 + i32.const 3 + i32.and + local.tee $3 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if local.get $0 local.get $1 - local.get $3 - i32.add - i32.const 1 - i32.shl - i32.add - local.get $5 - local.get $1 - i32.sub + local.get $2 + select + call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state i32.const 1 - i32.shl - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - return + i32.eq + local.get $3 + i32.const 3 + i32.eq + i32.and + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + end end end + ) + (func $~lib/array/Array<~lib/string/String>#push (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add + 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.store + local.get $0 + local.get $0 + i32.load offset=12 + local.tee $2 + 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 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store + local.get $0 + local.get $3 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/string/String#replaceAll (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/strtod (param $0 i32) (result f64) + (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 $6 i64) + (local $7 i64) + (local $8 f64) (local $9 i32) - (local $10 i32) + (local $10 f64) (local $11 i32) + (local $12 i64) + (local $13 i64) + (local $14 i64) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 i32.const 0 - i32.const 20 - memory.fill - local.get $5 - local.get $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $4 - local.get $5 - local.get $1 i32.store block $folding-inner1 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $7 - local.get $4 - i32.ge_u - if - local.get $4 - local.get $7 - i32.ge_u - if - local.get $5 - local.get $1 - i32.store - local.get $5 - local.get $0 - i32.store offset=4 - local.get $2 - local.get $0 - local.get $1 - local.get $0 - call $~lib/string/String.__eq - select - local.set $0 - end - br $folding-inner1 - end - global.get $~lib/memory/__stack_pointer - local.tee $6 - local.get $2 - i32.store - local.get $2 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $5 block $folding-inner0 - local.get $7 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $5 i32.eqz - if - local.get $5 - i32.eqz - if - local.get $6 - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - global.get $~lib/memory/__stack_pointer - local.get $4 - local.get $4 - i32.const 1 - i32.add - local.get $5 - i32.mul - i32.add - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $10 - i32.store offset=8 - local.get $10 - local.get $2 - local.get $5 - i32.const 1 - i32.shl - memory.copy + br_if $folding-inner0 + local.get $0 + i32.load16_u + local.set $4 + f64.const 1 + local.set $10 + loop $while-continue|0 local.get $5 - local.set $1 - loop $for-loop|0 - local.get $3 - local.get $4 - i32.lt_u - if - local.get $10 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $3 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $10 - local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $5 - i32.const 1 - i32.shl - memory.copy - local.get $1 - local.get $5 - i32.add - local.set $1 - local.get $3 + if (result i32) + block $__inlined_func$~lib/util/string/isSpace$7 (result i32) + local.get $4 + i32.const 128 + i32.or + i32.const 160 + i32.eq + local.get $4 + i32.const 9 + i32.sub + i32.const 4 + i32.le_u + i32.or + local.get $4 + i32.const 5760 + i32.lt_u + br_if $__inlined_func$~lib/util/string/isSpace$7 + drop i32.const 1 + local.get $4 + i32.const -8192 i32.add - local.set $3 - br $for-loop|0 + i32.const 10 + i32.le_u + br_if $__inlined_func$~lib/util/string/isSpace$7 + drop + block $break|0 + block $case6|0 + local.get $4 + i32.const 5760 + i32.eq + br_if $case6|0 + local.get $4 + i32.const 8232 + i32.eq + br_if $case6|0 + local.get $4 + i32.const 8233 + i32.eq + br_if $case6|0 + local.get $4 + i32.const 8239 + i32.eq + br_if $case6|0 + local.get $4 + i32.const 8287 + i32.eq + br_if $case6|0 + local.get $4 + i32.const 12288 + i32.eq + br_if $case6|0 + local.get $4 + i32.const 65279 + i32.eq + br_if $case6|0 + br $break|0 + end + i32.const 1 + br $__inlined_func$~lib/util/string/isSpace$7 + end + i32.const 0 end + else + i32.const 0 end - br $folding-inner0 - end - local.get $5 - local.get $7 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 1 - i32.shl - local.tee $3 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $10 - i32.store offset=12 - local.get $10 - local.get $0 - local.get $3 - memory.copy - loop $while-continue|1 - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store - local.get $3 - local.get $1 - i32.store offset=4 + if local.get $0 - local.get $1 - local.get $9 - call $~lib/string/String#indexOf - local.tee $3 - i32.const -1 - i32.xor - if - local.get $10 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $5 - i32.const 1 - i32.shl - memory.copy - local.get $3 - local.get $7 - i32.add - local.set $9 - br $while-continue|1 - end + i32.const 2 + i32.add + local.tee $0 + i32.load16_u + local.set $4 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|0 end - br $folding-inner0 end + local.get $5 + i32.eqz + br_if $folding-inner0 local.get $4 - local.set $3 - loop $while-continue|2 - global.get $~lib/memory/__stack_pointer - local.tee $6 - local.get $0 - i32.store - local.get $6 - local.get $1 - i32.store offset=4 + i32.const 45 + i32.eq + if (result i32) + local.get $5 + i32.const 1 + i32.sub + local.tee $5 + i32.eqz + br_if $folding-inner0 + f64.const -1 + local.set $10 local.get $0 - local.get $1 - local.get $9 - call $~lib/string/String#indexOf - local.tee $6 - i32.const -1 - i32.xor - if - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store - local.get $10 - call $~lib/string/String.__not - if - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $10 - i32.store offset=16 - end - local.get $6 - local.get $9 - i32.sub - local.tee $11 - local.get $8 - i32.add + i32.const 2 + i32.add + local.tee $0 + i32.load16_u + else + local.get $4 + i32.const 43 + i32.eq + if (result i32) local.get $5 - i32.add - local.get $3 - i32.gt_u - if - global.get $~lib/memory/__stack_pointer - local.get $10 - local.get $3 - i32.const 1 - i32.shl - local.tee $3 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__renew - local.tee $10 - i32.store offset=16 - end - local.get $10 - local.get $8 i32.const 1 - i32.shl - i32.add + i32.sub + local.tee $5 + i32.eqz + br_if $folding-inner0 local.get $0 - local.get $9 - i32.const 1 - i32.shl - i32.add - local.get $11 - i32.const 1 - i32.shl - memory.copy - local.get $10 - local.get $8 - local.get $11 - i32.add - local.tee $8 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $5 - i32.const 1 - i32.shl - memory.copy - local.get $5 - local.get $8 - i32.add - local.set $8 - local.get $6 - local.get $7 + i32.const 2 i32.add - local.set $9 - br $while-continue|2 + local.tee $0 + i32.load16_u + else + local.get $4 end end - local.get $10 + local.tee $4 + i32.const 73 + i32.eq + local.get $5 + i32.const 8 + i32.ge_s + i32.and if - local.get $4 - local.get $9 - i32.sub - local.tee $1 - local.get $8 - i32.add - local.get $3 - i32.gt_u - if - global.get $~lib/memory/__stack_pointer - local.get $10 - local.get $3 - i32.const 1 - i32.shl - local.tee $3 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__renew - local.tee $10 - i32.store offset=16 + local.get $0 + i64.load + i64.const 29555310648492105 + i64.eq + if (result i32) + local.get $0 + i64.load offset=8 + i64.const 34058970405077102 + i64.eq + else + i32.const 0 end - local.get $1 if - local.get $10 - local.get $8 - i32.const 1 - i32.shl + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + f64.const inf + f64.mul + return + end + br $folding-inner0 + end + local.get $4 + i32.const 46 + i32.ne + local.get $4 + i32.const 48 + i32.sub + i32.const 10 + i32.ge_u + i32.and + br_if $folding-inner0 + local.get $0 + local.set $3 + loop $while-continue|1 + local.get $4 + i32.const 48 + i32.eq + if local.get $0 - local.get $9 - i32.const 1 - i32.shl + i32.const 2 i32.add - local.get $1 + local.tee $0 + i32.load16_u + local.set $4 + local.get $5 i32.const 1 - i32.shl - memory.copy + i32.sub + local.set $5 + br $while-continue|1 end - local.get $1 - local.get $8 + end + local.get $5 + i32.const 0 + i32.le_s + br_if $folding-inner1 + local.get $4 + i32.const 46 + i32.eq + if + local.get $0 + local.get $3 + i32.eq + local.set $3 + local.get $0 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $3 - i32.lt_u - if - global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $5 + i32.const 1 + i32.sub + local.tee $5 + i32.eqz + i32.and + br_if $folding-inner0 + i32.const 1 + local.set $9 + loop $for-loop|2 local.get $0 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__renew - local.tee $10 - i32.store offset=16 + i32.load16_u + local.tee $4 + i32.const 48 + i32.eq + if + local.get $5 + i32.const 1 + i32.sub + local.set $5 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + local.get $0 + i32.const 2 + i32.add + local.set $0 + br $for-loop|2 + end end - br $folding-inner0 - end - br $folding-inner1 - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $10 - return - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/string/String#slice (param $0 i32) (param $1 i32) (param $2 i32) (result 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 26444 - i32.lt_s - if - i32.const 59232 - i32.const 59280 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - 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 - local.get $1 - i32.const 0 - i32.lt_s - if (result i32) - local.get $1 - local.get $3 - i32.add - local.tee $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - else - local.get $1 - local.get $3 - local.get $1 - local.get $3 - i32.lt_s - select - end - local.set $1 - local.get $2 - i32.const 0 - i32.lt_s - if (result i32) - local.get $2 - local.get $3 - i32.add - local.tee $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - else - local.get $2 - local.get $3 - local.get $2 - local.get $3 - i32.lt_s - select - end - local.get $1 - i32.sub - local.tee $2 - i32.const 0 - i32.le_s - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1712 - return - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 1 - i32.shl - local.tee $2 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=4 - local.get $3 - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $2 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (func $~lib/string/String#slice@varargs (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 26444 - i32.lt_s - if - i32.const 59232 - i32.const 59280 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 1 + local.get $5 + i32.const 0 + i32.le_s + br_if $folding-inner1 + local.get $3 + local.get $1 + i32.eqz + i32.and + local.get $4 + i32.const 48 i32.sub - br_table $0of1 $1of1 $outOfRange + i32.const 10 + i32.ge_u + i32.and + br_if $folding-inner0 end - unreachable - end - i32.const 2147483647 - local.set $2 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $2 - call $~lib/string/String#slice - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/string/String#substr (param $0 i32) (param $1 i32) (param $2 i32) (result 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 26444 - i32.lt_s - if - i32.const 59232 - i32.const 59280 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - local.get $0 - i32.store - local.get $2 - i32.const 0 - local.get $2 - 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 $3 - local.get $1 - i32.const 0 - i32.lt_s - if - local.get $1 - local.get $3 - i32.add - local.tee $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - local.set $1 - end - local.get $1 - i32.sub - local.tee $3 - local.get $2 - local.get $3 - i32.lt_s - select - i32.const 1 - i32.shl - local.tee $2 - i32.const 0 - i32.le_s - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1712 - return - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=4 - local.get $3 - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $2 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (func $~lib/string/String#substr@varargs (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 26444 - i32.lt_s - if - i32.const 59232 - i32.const 59280 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 1 + local.get $4 + i32.const 48 + i32.sub + local.set $3 + loop $for-loop|3 + local.get $3 + i32.const 10 + i32.lt_u + local.tee $11 + local.get $9 + i32.eqz + local.get $4 + i32.const 46 + i32.eq + i32.and + i32.or + if + block $for-break3 + local.get $11 + if + local.get $2 + i32.const 19 + i32.lt_s + if (result i64) + local.get $3 + i64.extend_i32_u + local.get $6 + i64.const 10 + i64.mul + i64.add + else + local.get $6 + local.get $3 + i32.const 0 + i32.ne + i64.extend_i32_u + i64.or + end + local.set $6 + local.get $2 + i32.const 1 + i32.add + local.set $2 + else + local.get $2 + local.set $1 + i32.const 1 + local.set $9 + end + local.get $5 + i32.const 1 + i32.sub + local.tee $5 + i32.eqz + br_if $for-break3 + local.get $0 + i32.const 2 + i32.add + local.tee $0 + i32.load16_u + local.tee $4 + i32.const 48 + i32.sub + local.set $3 + br $for-loop|3 + end + end + end + local.get $1 + local.get $2 + local.get $9 + select + local.set $1 + i32.const 1 + local.set $9 + i32.const 0 + local.set $4 + block $~lib/util/string/scientific|inlined.0 + local.get $6 + i64.eqz + block $~lib/util/string/parseExp|inlined.0 (result i32) + i32.const 0 + local.get $0 + i32.load16_u + i32.const 32 + i32.or + i32.const 101 + i32.ne + br_if $~lib/util/string/parseExp|inlined.0 + drop + i32.const 0 + local.get $5 + i32.const 1 + i32.sub + local.tee $5 + i32.eqz + br_if $~lib/util/string/parseExp|inlined.0 + drop + local.get $0 + i32.const 2 + i32.add + local.tee $0 + i32.load16_u + local.tee $3 + i32.const 45 + i32.eq + if (result i32) + i32.const 0 + local.get $5 + i32.const 1 + i32.sub + local.tee $5 + i32.eqz + br_if $~lib/util/string/parseExp|inlined.0 + drop + i32.const -1 + local.set $9 + local.get $0 + i32.const 2 + i32.add + local.tee $0 + i32.load16_u + else + local.get $3 + i32.const 43 + i32.eq + if (result i32) + i32.const 0 + local.get $5 + i32.const 1 + i32.sub + local.tee $5 + i32.eqz + br_if $~lib/util/string/parseExp|inlined.0 + drop + local.get $0 + i32.const 2 + i32.add + local.tee $0 + i32.load16_u + else + local.get $3 + end + end + local.set $3 + loop $while-continue|4 + local.get $3 + i32.const 48 + i32.eq + if + i32.const 0 + local.get $5 + i32.const 1 + i32.sub + local.tee $5 + i32.eqz + br_if $~lib/util/string/parseExp|inlined.0 + drop + local.get $0 + i32.const 2 + i32.add + local.tee $0 + i32.load16_u + local.set $3 + br $while-continue|4 + end + end + local.get $3 + i32.const 48 + i32.sub + local.set $3 + loop $for-loop|5 + local.get $3 + i32.const 10 + i32.lt_u + i32.const 0 + local.get $5 + select + if + local.get $9 + i32.const 3200 + i32.mul + local.get $4 + i32.const 3200 + i32.ge_s + br_if $~lib/util/string/parseExp|inlined.0 + drop + local.get $4 + i32.const 10 + i32.mul + local.get $3 + i32.add + local.set $4 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + local.get $0 + i32.const 2 + i32.add + local.tee $0 + i32.load16_u + i32.const 48 + i32.sub + local.set $3 + br $for-loop|5 + end + end + local.get $4 + local.get $9 + i32.mul + end + local.get $1 + i32.const 19 + local.get $2 + local.get $2 + i32.const 19 + i32.gt_s + select i32.sub - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - i32.const 2147483647 - local.set $2 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $2 - call $~lib/string/String#substr - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/string/String#substring (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 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 26444 - i32.lt_s - if - i32.const 59232 - i32.const 59280 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - local.get $0 - i32.store - local.get $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - local.tee $4 - 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 $4 - i32.gt_s - select - local.tee $4 - local.get $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - local.tee $2 - local.get $1 - local.get $1 - local.get $2 - i32.gt_s - select - local.tee $2 - local.get $2 - local.get $4 - i32.gt_s - select - i32.const 1 - i32.shl - local.set $5 - local.get $4 - local.get $2 - local.get $2 - local.get $4 - i32.lt_s - select - i32.const 1 - i32.shl - local.tee $2 - local.get $5 - i32.sub - local.tee $4 - i32.eqz - if - local.get $3 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1712 - return - end - local.get $5 - i32.eqz - local.get $2 - local.get $1 - i32.const 1 - i32.shl - i32.eq - i32.and - if + i32.add + local.tee $0 + i32.const -342 + i32.lt_s + i32.or + br_if $~lib/util/string/scientific|inlined.0 + f64.const inf + local.set $8 + local.get $0 + i32.const 308 + i32.gt_s + br_if $~lib/util/string/scientific|inlined.0 + local.get $6 + f64.convert_i64_u + local.set $8 + local.get $0 + i32.eqz + br_if $~lib/util/string/scientific|inlined.0 + local.get $0 + i32.const 37 + i32.le_s + local.get $0 + i32.const 22 + i32.gt_s + i32.and + if + local.get $8 + local.get $0 + i32.const 3 + i32.shl + i32.const 4496 + i32.add + f64.load + f64.mul + local.set $8 + i32.const 22 + local.set $0 + end + local.get $6 + i64.const 9007199254740991 + i64.le_u + if (result i32) + local.get $0 + i32.const 31 + i32.shr_s + local.tee $1 + local.get $0 + local.get $1 + i32.add + i32.xor + i32.const 22 + i32.le_s + else + i32.const 0 + end + if (result f64) + local.get $0 + i32.const 0 + i32.gt_s + if + local.get $8 + local.get $0 + i32.const 3 + i32.shl + i32.const 4672 + i32.add + f64.load + f64.mul + local.set $8 + br $~lib/util/string/scientific|inlined.0 + end + local.get $8 + i32.const 0 + local.get $0 + i32.sub + i32.const 3 + i32.shl + i32.const 4672 + i32.add + f64.load + f64.div + else + local.get $0 + i32.const 0 + i32.lt_s + if (result f64) + local.get $6 + local.get $6 + i64.clz + local.tee $7 + i64.shl + local.set $6 + local.get $0 + i64.extend_i32_s + local.get $7 + i64.sub + local.set $7 + loop $for-loop|6 + local.get $0 + i32.const -14 + i32.le_s + if + local.get $6 + i64.const 6103515625 + i64.rem_u + local.get $6 + i64.const 6103515625 + i64.div_u + local.tee $6 + i64.clz + local.tee $12 + i64.const 18 + i64.sub + i64.shl + f64.convert_i64_u + f64.const 0.00004294967296 + f64.mul + f64.nearest + i64.trunc_sat_f64_u + local.get $6 + local.get $12 + i64.shl + i64.add + local.set $6 + local.get $7 + local.get $12 + i64.sub + local.set $7 + local.get $0 + i32.const 14 + i32.add + local.set $0 + br $for-loop|6 + end + end + local.get $6 + i32.const 0 + local.get $0 + i32.sub + call $~lib/math/ipow32 + i64.extend_i32_s + local.tee $13 + i64.div_u + local.tee $14 + i64.clz + local.set $12 + local.get $6 + local.get $13 + i64.rem_u + f64.convert_i64_u + i64.reinterpret_f64 + local.get $12 + i64.const 52 + i64.shl + i64.add + f64.reinterpret_i64 + local.get $13 + f64.convert_i64_u + f64.div + i64.trunc_sat_f64_u + local.get $14 + local.get $12 + i64.shl + i64.add + f64.convert_i64_u + local.get $7 + local.get $12 + i64.sub + i32.wrap_i64 + call $~lib/math/NativeMath.scalbn + else + local.get $6 + local.get $6 + i64.ctz + local.tee $7 + i64.shr_u + local.set $6 + local.get $7 + local.get $0 + i64.extend_i32_s + i64.add + global.set $~lib/util/string/__fixmulShift + loop $for-loop|7 + local.get $0 + i32.const 13 + i32.ge_s + if + i64.const 32 + local.get $6 + i64.const 32 + i64.shr_u + i64.const 1220703125 + i64.mul + local.get $6 + i64.const 4294967295 + i64.and + i64.const 1220703125 + i64.mul + local.tee $6 + i64.const 32 + i64.shr_u + i64.add + local.tee $7 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.clz + i64.extend_i32_u + local.tee $12 + i64.sub + local.tee $13 + global.get $~lib/util/string/__fixmulShift + i64.add + global.set $~lib/util/string/__fixmulShift + local.get $6 + local.get $12 + i64.shl + i64.const 31 + i64.shr_u + i64.const 1 + i64.and + local.get $7 + local.get $12 + i64.shl + local.get $6 + i64.const 4294967295 + i64.and + local.get $13 + i64.shr_u + i64.or + i64.add + local.set $6 + local.get $0 + i32.const 13 + i32.sub + local.set $0 + br $for-loop|7 + end + end + local.get $0 + call $~lib/math/ipow32 + i64.extend_i32_u + local.tee $7 + local.get $6 + i64.const 4294967295 + i64.and + i64.mul + local.set $12 + i64.const 32 + local.get $7 + local.get $6 + i64.const 32 + i64.shr_u + i64.mul + local.get $12 + i64.const 32 + i64.shr_u + i64.add + local.tee $6 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.clz + i64.extend_i32_u + local.tee $7 + i64.sub + local.tee $13 + global.get $~lib/util/string/__fixmulShift + i64.add + global.set $~lib/util/string/__fixmulShift + local.get $12 + local.get $7 + i64.shl + i64.const 31 + i64.shr_u + i64.const 1 + i64.and + local.get $6 + local.get $7 + i64.shl + local.get $12 + i64.const 4294967295 + i64.and + local.get $13 + i64.shr_u + i64.or + i64.add + f64.convert_i64_u + global.get $~lib/util/string/__fixmulShift + i32.wrap_i64 + call $~lib/math/NativeMath.scalbn + end + end + local.set $8 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + local.get $10 + f64.copysign + return + end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + f64.const nan:0x8000000000000 return end global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=4 - local.get $1 - local.get $0 - local.get $5 - i32.add - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $10 + f64.const 0 + f64.mul ) - (func $~lib/string/String#substring@varargs (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 + (func $~lib/util/number/utoa64_any_core (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i32) + (local $4 i64) + (local $5 i64) + local.get $3 + i64.extend_i32_s + local.set $5 + local.get $3 + local.get $3 + i32.const 1 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 26444 - i32.lt_s + i32.and if - i32.const 59232 - i32.const 59280 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange - end - unreachable + loop $do-loop|1 + local.get $0 + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + i32.add + local.get $1 + local.get $1 + local.get $5 + i64.div_u + local.tee $1 + local.get $5 + i64.mul + i64.sub + i32.wrap_i64 + i32.const 1 + i32.shl + i32.const 17696 + i32.add + i32.load16_u + i32.store16 + local.get $1 + i64.const 0 + i64.ne + br_if $do-loop|1 + end + else + local.get $3 + i32.ctz + i32.const 7 + i32.and + i64.extend_i32_s + local.set $4 + local.get $5 + i64.const 1 + i64.sub + local.set $5 + loop $do-loop|0 + local.get $0 + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + i32.add + local.get $1 + local.get $5 + i64.and + i32.wrap_i64 + i32.const 1 + i32.shl + i32.const 17696 + i32.add + i32.load16_u + i32.store16 + local.get $1 + local.get $4 + i64.shr_u + local.tee $1 + i64.const 0 + i64.ne + br_if $do-loop|0 end - i32.const 2147483647 - local.set $2 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $2 - call $~lib/string/String#substring - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) + (func $~lib/util/number/dtoa (param $0 f32) (result i32) + (local $1 f64) (local $2 i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -9583,532 +6896,1006 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 - 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 + i32.const 23280 + local.set $2 + block $~lib/util/number/dtoa_impl|inlined.1 + local.get $0 + f64.promote_f32 + local.tee $1 + f64.const 0 + f64.eq + br_if $~lib/util/number/dtoa_impl|inlined.1 local.get $1 - i32.const 268435455 - i32.gt_u + local.get $1 + f64.sub + f64.const 0 + f64.ne if - i32.const 14064 - i32.const 15664 - i32.const 19 - i32.const 48 - call $~lib/builtins/abort - unreachable + 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 8960 + i32.const 23312 + local.get $1 + f64.const 0 + f64.lt + select + local.set $2 + br $~lib/util/number/dtoa_impl|inlined.1 end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.tee $3 - i32.const 1073741820 - local.get $2 + local.get $1 + i32.const 1 + call $~lib/util/number/dtoa_core 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 + local.tee $3 i32.const 2 - i32.shl - local.tee $1 - local.get $1 - local.get $2 - i32.lt_u - select - local.tee $1 - call $~lib/rt/itcms/__renew + call $~lib/rt/itcms/__new local.tee $2 + i32.store + local.get $2 + i32.const 23344 local.get $3 - 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 - i32.const 0 - call $~lib/rt/itcms/__link + memory.copy + 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@varargs (param $0 i32) (result i32) + (local $1 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 $1 + end + local.get $0 + local.get $1 + call $~lib/string/String.fromCharCode + ) + (func $~lib/string/String.__not (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 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 + local.get $0 + if (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.store offset=8 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + else + i32.const 0 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + i32.eqz ) - (func $~lib/array/Array<~lib/string/String>#push (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) + (func $~lib/string/String.__lte (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 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $0 - local.get $0 - i32.load offset=12 - local.tee $2 - i32.const 1 - i32.add - local.tee $3 - call $~lib/array/ensureCapacity + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $0 - i32.load offset=4 - local.get $2 - i32.const 2 - i32.shl - i32.add + global.get $~lib/memory/__stack_pointer local.get $1 - i32.store + i32.store offset=4 local.get $0 local.get $1 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $3 - i32.store offset=12 + call $~lib/string/String.__gt + i32.eqz global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/string/String#split (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner3 - block $folding-inner2 - block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 26444 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - local.get $2 - i32.eqz - br_if $folding-inner1 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 1 - i32.const 5 - i32.const 0 - call $~lib/rt/__newArray - local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.load offset=4 - 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 26444 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - local.get $2 - i32.store - local.get $2 - i32.load offset=12 - i32.eqz - if - local.get $2 - i32.const 1 - call $~lib/array/ensureCapacity - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - i32.const 1 - i32.store offset=12 - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - i32.load offset=4 - local.get $0 - i32.store - local.get $2 - local.get $0 - 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 - br $folding-inner2 - end - global.get $~lib/memory/__stack_pointer - local.tee $6 - local.get $0 - i32.store offset=8 + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $7 - local.get $6 - local.get $1 - i32.store offset=8 - i32.const 2147483647 - local.get $2 - local.get $2 - i32.const 0 - i32.lt_s - select - local.set $2 + global.set $~lib/rt/itcms/iter local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $5 + local.get $0 + i32.load offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne if - local.get $7 - i32.eqz - if - local.get $6 - i32.const 1 - i32.const 5 - i32.const 0 - call $~lib/rt/__newArray - local.tee $2 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 - i32.load offset=4 - i32.const 1712 - i32.store - br $folding-inner2 - end - else - local.get $7 - i32.eqz - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.get $7 - local.get $2 - local.get $2 - local.get $7 - i32.gt_s - select - local.tee $3 - i32.const 5 - i32.const 0 - call $~lib/rt/__newArray - local.tee $2 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 + local.get $0 local.get $2 - i32.load offset=4 - local.set $4 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 i32.const 0 - local.set $1 - loop $for-loop|0 - local.get $1 - local.get $3 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 2 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=16 - local.get $5 - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $4 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $5 - i32.store - local.get $2 - local.get $5 - i32.const 1 - call $~lib/rt/itcms/__link - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 - end - end - br $folding-inner2 + 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 5 - i32.const 0 - call $~lib/rt/__newArray - local.tee $8 - i32.store offset=24 - loop $while-continue|1 - global.get $~lib/memory/__stack_pointer - local.tee $6 + 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 59404 + i32.lt_u + if local.get $0 - i32.store offset=8 - local.get $6 - local.get $1 - i32.store offset=28 + 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 $3 - call $~lib/string/String#indexOf - local.tee $9 - i32.const -1 - i32.xor + local.get $0 + i32.load offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne if - local.get $9 - local.get $3 - i32.sub - local.tee $6 - i32.const 0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 1 - i32.shl - local.tee $10 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store offset=32 - local.get $6 - local.get $0 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.get $10 - memory.copy - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=28 - local.get $8 - local.get $6 - call $~lib/array/Array<~lib/string/String>#push - else - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $8 - i32.store offset=8 - local.get $3 - i32.const 1712 - i32.store offset=28 - local.get $8 - i32.const 1712 - call $~lib/array/Array<~lib/string/String>#push - end - local.get $4 - i32.const 1 - i32.add - local.tee $4 + local.get $0 local.get $2 - i32.eq - br_if $folding-inner3 - local.get $5 - local.get $9 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 i32.add - local.set $3 - br $while-continue|1 + 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 1440 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 59404 + 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 59404 + 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 - local.get $3 - i32.eqz if - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $8 - i32.store offset=8 - local.get $1 - local.get $0 - i32.store offset=28 - local.get $8 - local.get $0 - call $~lib/array/Array<~lib/string/String>#push - br $folding-inner3 + i32.const 0 + i32.const 1648 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $7 + 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/__renew (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + local.get $0 + i32.const 20 + i32.sub + local.tee $3 + i32.load + i32.const -4 + i32.and + i32.const 16 + i32.sub + i32.le_u + if + local.get $3 + local.get $1 + i32.store offset=16 + local.get $0 + return + end + local.get $1 + local.get $3 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.tee $2 + local.get $0 + local.get $1 + local.get $3 + i32.load offset=16 + local.tee $0 + local.get $0 + local.get $1 + i32.gt_u + select + memory.copy + local.get $2 + ) + (func $~lib/util/number/dtoa_core (param $0 f64) (param $1 i32) (result i32) + (local $2 i64) + (local $3 i32) + (local $4 i64) + (local $5 i32) + (local $6 i64) + (local $7 i64) + (local $8 i64) + (local $9 i32) + (local $10 i32) + (local $11 i64) + (local $12 i64) + (local $13 i64) + (local $14 i64) + (local $15 i64) + local.get $0 + f64.const 0 + f64.lt + local.tee $3 + if + i32.const 23344 + i32.const 45 + i32.store16 + local.get $0 + f64.neg + local.set $0 + end + local.get $1 + if (result i32) + local.get $0 + f32.demote_f64 + i32.reinterpret_f32 + local.tee $5 + i32.const 2139095040 + i32.and + i32.const 23 + i32.shr_u + local.set $9 + local.get $5 + i32.const 8388607 + i32.and + i64.extend_i32_u + local.get $9 + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 23 + i64.shl + i64.add + local.set $2 + local.get $9 + i32.const 1 + local.get $9 + select + i32.const 150 + i32.sub + else + local.get $0 + i64.reinterpret_f64 + local.tee $2 + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.set $5 + local.get $2 + i64.const 4503599627370495 + i64.and + local.get $5 + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 52 + i64.shl + i64.add + local.set $2 + local.get $5 + i32.const 1 + local.get $5 + select + i32.const 1075 + i32.sub + end + local.tee $9 + i32.const 1 + i32.sub + local.get $2 + i64.const 1 + i64.shl + i64.const 1 + i64.add + local.tee $4 + i64.clz + i32.wrap_i64 + local.tee $10 + i32.sub + local.set $5 + local.get $4 + local.get $10 + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_plus + local.get $2 + local.get $2 + i64.const 8388608 + i64.const 4503599627370496 + local.get $1 + select + i64.eq + i32.const 1 + i32.add + local.tee $1 + i64.extend_i32_s + i64.shl + i64.const 1 + i64.sub + local.get $9 + local.get $1 + i32.sub + local.get $5 + i32.sub + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_minus + local.get $5 + global.set $~lib/util/number/_exp + i32.const 348 + i32.const -61 + global.get $~lib/util/number/_exp + i32.sub + f64.convert_i32_s + f64.const 0.30102999566398114 + f64.mul + f64.const 347 + f64.add + local.tee $0 + i32.trunc_sat_f64_s + local.tee $1 + local.get $1 + f64.convert_i32_s + local.get $0 + f64.ne + i32.add + i32.const 3 + i32.shr_s + i32.const 1 + i32.add + local.tee $1 + i32.const 3 + i32.shl + local.tee $5 + i32.sub + global.set $~lib/util/number/_K + local.get $5 + i32.const 23400 + i32.add + i64.load + global.set $~lib/util/number/_frc_pow + local.get $1 + i32.const 1 + i32.shl + i32.const 24096 + i32.add + i32.load16_s + global.set $~lib/util/number/_exp_pow + local.get $2 + local.get $2 + i64.clz + i64.shl + local.tee $2 + i64.const 4294967295 + i64.and + local.set $6 + global.get $~lib/util/number/_frc_pow + local.tee $11 + i64.const 4294967295 + i64.and + local.tee $12 + local.get $2 + i64.const 32 + i64.shr_u + local.tee $2 + i64.mul + local.get $6 + local.get $12 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.set $7 + global.get $~lib/util/number/_frc_plus + local.tee $4 + i64.const 4294967295 + i64.and + local.set $13 + local.get $4 + i64.const 32 + i64.shr_u + local.tee $4 + local.get $12 + i64.mul + local.get $12 + local.get $13 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.set $8 + global.get $~lib/util/number/_frc_minus + local.tee $14 + i64.const 4294967295 + i64.and + local.set $15 + local.get $14 + i64.const 32 + i64.shr_u + local.tee $14 + local.get $12 + i64.mul + local.get $12 + local.get $15 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.set $12 + local.get $3 + i32.const 1 + i32.shl + i32.const 23344 + i32.add + local.get $2 + local.get $11 + i64.const 32 + i64.shr_u + local.tee $2 + i64.mul + local.get $7 + i64.const 32 + i64.shr_u + i64.add + local.get $2 + local.get $6 + i64.mul + local.get $7 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + local.get $2 + local.get $4 + i64.mul + local.get $8 + i64.const 32 + i64.shr_u + i64.add + local.get $2 + local.get $13 + i64.mul + local.get $8 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.sub + local.tee $4 + global.get $~lib/util/number/_exp_pow + global.get $~lib/util/number/_exp + i32.add + i32.const -64 + i32.sub + local.get $4 + local.get $2 + local.get $14 + i64.mul + local.get $12 + i64.const 32 + i64.shr_u + i64.add + local.get $2 + local.get $15 + i64.mul + local.get $12 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.add + i64.sub + local.get $3 + call $~lib/util/number/genDigits + local.get $3 + i32.sub + global.get $~lib/util/number/_K + call $~lib/util/number/prettify + local.get $3 + i32.add + ) + (func $~lib/string/String.fromCharCodes (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 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 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.set $3 + i32.const 0 + local.set $0 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $2 + local.get $0 + i32.const 1 + i32.shl + i32.add + local.get $3 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + i32.store16 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/string/String#trimStart (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 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 + 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 $2 + loop $while-continue|0 + local.get $1 + local.get $2 + i32.lt_u + if (result i32) + block $__inlined_func$~lib/util/string/isSpace (result i32) + local.get $0 + local.get $1 + i32.add + i32.load16_u + local.tee $3 + i32.const 5760 + i32.lt_u + if local.get $3 - i32.sub - local.tee $1 - i32.const 0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.shl - local.tee $1 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=36 - local.get $2 - local.get $0 + i32.const 128 + i32.or + i32.const 160 + i32.eq + local.get $3 + i32.const 9 + i32.sub + i32.const 4 + i32.le_u + i32.or + br $__inlined_func$~lib/util/string/isSpace + end + i32.const 1 + local.get $3 + i32.const -8192 + i32.add + i32.const 10 + i32.le_u + br_if $__inlined_func$~lib/util/string/isSpace + drop + block $break|0 + block $case6|0 local.get $3 - i32.const 1 - i32.shl - i32.add - local.get $1 - memory.copy - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $8 - local.get $2 - call $~lib/array/Array<~lib/string/String>#push - else - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $8 - i32.store offset=8 - local.get $0 - i32.const 1712 - i32.store offset=28 - local.get $8 - i32.const 1712 - call $~lib/array/Array<~lib/string/String>#push + i32.const 5760 + i32.eq + br_if $case6|0 + local.get $3 + i32.const 8232 + i32.eq + br_if $case6|0 + local.get $3 + i32.const 8233 + i32.eq + br_if $case6|0 + local.get $3 + i32.const 8239 + i32.eq + br_if $case6|0 + local.get $3 + i32.const 8287 + i32.eq + br_if $case6|0 + local.get $3 + i32.const 12288 + i32.eq + br_if $case6|0 + local.get $3 + i32.const 65279 + i32.eq + br_if $case6|0 + br $break|0 end - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - return + i32.const 1 + br $__inlined_func$~lib/util/string/isSpace end - i32.const 59232 - i32.const 59280 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + i32.const 0 end + else i32.const 0 - i32.const 5 - i32.const 0 - call $~lib/rt/__newArray - local.set $2 end + if + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|0 + end + end + local.get $1 + i32.eqz + if global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $0 + return + end + local.get $2 + local.get $1 + 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 1712 return end global.get $~lib/memory/__stack_pointer - i32.const 40 + local.get $2 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=4 + local.get $3 + local.get $0 + local.get $1 + i32.add + local.get $2 + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $3 ) - (func $~lib/string/String#split@varargs (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#trimEnd (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -10116,11 +7903,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -10129,4635 +7916,6779 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $2of2 - block $1of2 - block $0of2 - block $outOfRange - global.get $~argumentsLength - br_table $0of2 $1of2 $2of2 $outOfRange + 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.tee $3 + local.set $1 + loop $while-continue|0 + local.get $1 + if (result i32) + block $__inlined_func$~lib/util/string/isSpace$1 (result i32) + local.get $0 + local.get $1 + i32.add + i32.const 2 + i32.sub + i32.load16_u + local.tee $2 + i32.const 5760 + i32.lt_u + if + local.get $2 + i32.const 128 + i32.or + i32.const 160 + i32.eq + local.get $2 + i32.const 9 + i32.sub + i32.const 4 + i32.le_u + i32.or + br $__inlined_func$~lib/util/string/isSpace$1 end - unreachable + i32.const 1 + local.get $2 + i32.const -8192 + i32.add + i32.const 10 + i32.le_u + br_if $__inlined_func$~lib/util/string/isSpace$1 + drop + block $break|0 + block $case6|0 + local.get $2 + i32.const 5760 + i32.eq + br_if $case6|0 + local.get $2 + i32.const 8232 + i32.eq + br_if $case6|0 + local.get $2 + i32.const 8233 + i32.eq + br_if $case6|0 + local.get $2 + i32.const 8239 + i32.eq + br_if $case6|0 + local.get $2 + i32.const 8287 + i32.eq + br_if $case6|0 + local.get $2 + i32.const 12288 + i32.eq + br_if $case6|0 + local.get $2 + i32.const 65279 + i32.eq + br_if $case6|0 + br $break|0 + end + i32.const 1 + br $__inlined_func$~lib/util/string/isSpace$1 + end + i32.const 0 end + else i32.const 0 + end + if + local.get $1 + i32.const 2 + i32.sub local.set $1 + br $while-continue|0 end - i32.const 2147483647 - local.set $2 end - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store + local.get $1 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1712 + return + end + local.get $1 local.get $3 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + global.get $~lib/memory/__stack_pointer local.get $1 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $2 i32.store offset=4 + local.get $2 local.get $0 local.get $1 - local.get $2 - call $~lib/string/String#split - local.set $0 + memory.copy global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $2 ) - (func $~lib/array/Array<~lib/string/String>#__get (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#trim (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 global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1264 - i32.const 15664 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 - 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 15712 - i32.const 15664 - 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 $start:std/string - (local $0 i32) - (local $1 f64) - (local $2 f32) - (local $3 i64) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $~lib/memory/__stack_pointer - i32.const 96 + i32.const 20 i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 26444 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 96 - memory.fill - global.get $std/string/str - i32.const 1056 - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 8 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1168 - i32.store - local.get $0 - i32.const 1168 - i32.store offset=4 - i32.const 1168 - i32.const 1168 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 10 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1200 - i32.store - local.get $0 - i32.const 1200 - i32.store offset=4 - i32.const 1200 - i32.const 1200 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 11 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1232 - i32.store - local.get $0 - i32.const 1232 - i32.store offset=4 - i32.const 1232 - i32.const 1232 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 12 - 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 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.const 16 - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 14 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/string/str - local.tee $4 - i32.store - local.get $0 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 26444 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - local.get $4 - i32.store - block $__inlined_func$~lib/string/String#charCodeAt$291 - local.get $4 - i32.const 20 + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $3 + i32.const 1 + i32.shl + local.set $1 + loop $while-continue|0 + local.get $1 + if (result i32) + block $__inlined_func$~lib/util/string/isSpace$2 (result i32) + local.get $0 + local.get $1 + i32.add + i32.const 2 + i32.sub + i32.load16_u + local.tee $4 + i32.const 5760 + i32.lt_u + if + local.get $4 + i32.const 128 + i32.or + i32.const 160 + i32.eq + local.get $4 + i32.const 9 + i32.sub + i32.const 4 + i32.le_u + i32.or + br $__inlined_func$~lib/util/string/isSpace$2 + end + i32.const 1 + local.get $4 + i32.const -8192 + i32.add + i32.const 10 + i32.le_u + br_if $__inlined_func$~lib/util/string/isSpace$2 + drop + block $break|0 + block $case6|0 + local.get $4 + i32.const 5760 + i32.eq + br_if $case6|0 + local.get $4 + i32.const 8232 + i32.eq + br_if $case6|0 + local.get $4 + i32.const 8233 + i32.eq + br_if $case6|0 + local.get $4 + i32.const 8239 + i32.eq + br_if $case6|0 + local.get $4 + i32.const 8287 + i32.eq + br_if $case6|0 + local.get $4 + i32.const 12288 + i32.eq + br_if $case6|0 + local.get $4 + i32.const 65279 + i32.eq + br_if $case6|0 + br $break|0 + end + i32.const 1 + br $__inlined_func$~lib/util/string/isSpace$2 + end + i32.const 0 + end + else + i32.const 0 + end + if + local.get $1 + i32.const 2 i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.eqz - if + local.set $1 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $1 + local.get $2 + i32.gt_u + if (result i32) + block $__inlined_func$~lib/util/string/isSpace$3 (result i32) local.get $0 - i32.const 4 + local.get $2 i32.add - global.set $~lib/memory/__stack_pointer - i32.const -1 - local.set $0 - br $__inlined_func$~lib/string/String#charCodeAt$291 + i32.load16_u + local.tee $4 + i32.const 5760 + i32.lt_u + if + local.get $4 + i32.const 128 + i32.or + i32.const 160 + i32.eq + local.get $4 + i32.const 9 + i32.sub + i32.const 4 + i32.le_u + i32.or + br $__inlined_func$~lib/util/string/isSpace$3 + end + i32.const 1 + local.get $4 + i32.const -8192 + i32.add + i32.const 10 + i32.le_u + br_if $__inlined_func$~lib/util/string/isSpace$3 + drop + block $break|00 + block $case6|01 + local.get $4 + i32.const 5760 + i32.eq + br_if $case6|01 + local.get $4 + i32.const 8232 + i32.eq + br_if $case6|01 + local.get $4 + i32.const 8233 + i32.eq + br_if $case6|01 + local.get $4 + i32.const 8239 + i32.eq + br_if $case6|01 + local.get $4 + i32.const 8287 + i32.eq + br_if $case6|01 + local.get $4 + i32.const 12288 + i32.eq + br_if $case6|01 + local.get $4 + i32.const 65279 + i32.eq + br_if $case6|01 + br $break|00 + end + i32.const 1 + br $__inlined_func$~lib/util/string/isSpace$3 + end + i32.const 0 end - local.get $4 - i32.load16_u - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + else + i32.const 0 end - local.get $0 - i32.const 104 - i32.ne if - i32.const 0 - i32.const 1120 - i32.const 15 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $2 + i32.const 2 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.sub + local.set $1 + br $while-continue|1 end + end + local.get $1 + i32.eqz + if global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/string/str - local.tee $4 - i32.store - local.get $0 - i32.const 4 - i32.sub + i32.const 8 + i32.add global.set $~lib/memory/__stack_pointer + i32.const 1712 + return + end + local.get $2 + i32.eqz + local.get $1 + local.get $3 + i32.const 1 + i32.shl + i32.eq + i32.and + if global.get $~lib/memory/__stack_pointer - i32.const 26444 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 - local.get $4 - i32.store - block $__inlined_func$~lib/string/String#codePointAt$292 - local.get $4 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $5 - i32.const 1 - i32.le_u - if - local.get $0 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const -1 - local.set $0 - br $__inlined_func$~lib/string/String#codePointAt$292 - end - local.get $5 - i32.const 2 - i32.eq - local.get $4 - i32.load16_u offset=2 - local.tee $0 - i32.const 64512 - i32.and - i32.const 55296 - i32.ne - i32.or - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/string/String#codePointAt$292 - end - local.get $4 - i32.load16_u offset=4 - local.tee $4 - i32.const 64512 - i32.and - i32.const 56320 - i32.ne - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/string/String#codePointAt$292 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.const 10 - i32.shl - local.get $4 - i32.add - i32.const 56613888 - i32.sub - local.set $0 + return + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=4 + local.get $3 + local.get $0 + local.get $2 + i32.add + local.get $1 + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/string/String#substring@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + 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 + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable end - local.get $0 - i32.const 105 - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 16 - i32.const 1 - call $~lib/builtins/abort + i32.const 2147483647 + local.set $2 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $2 + call $~lib/string/String#substring + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/string/String#substr@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + 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 + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end unreachable end - memory.size - i32.const 16 - i32.shl - i32.const 59212 - i32.sub + i32.const 2147483647 + local.set $2 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $2 + call $~lib/string/String#substr + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/string/String#slice@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 26636 + i32.lt_s + if + i32.const 59424 + i32.const 59472 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 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $0 - local.get $4 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 17 - i32.const 1 - call $~lib/builtins/abort + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + 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 - global.get $std/string/str - local.tee $0 - i32.store offset=8 - local.get $0 - i32.const -1 - 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 + i32.const 2147483647 + local.set $2 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $2 + call $~lib/string/String#slice + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/string/String#at (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + 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.store + local.get $1 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $2 + i32.const 0 + local.get $1 + i32.const 0 + i32.lt_s + select + i32.add + local.tee $1 + local.get $2 + i32.ge_u + if + i32.const 1264 + i32.const 1328 + i32.const 57 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $2 + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (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 1648 + 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 1648 + 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.store offset=8 - global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $5 - i32.store offset=12 + i32.const 7 + i32.sub + local.set $2 + local.get $3 local.get $4 - local.get $5 - i32.const 20 + i32.const 4 i32.sub - i32.load offset=16 - i32.const 1 i32.shr_u - i32.const 1 - i32.sub - call $~lib/string/String#charAt - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $0 + 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 1648 + 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 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 18 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/string/str - local.tee $4 + local.get $5 i32.store offset=8 - local.get $0 - local.get $4 - i32.store offset=12 - local.get $4 - i32.const 0 + end + local.get $5 + if + local.get $5 local.get $4 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.sub - 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 - i32.const 1744 i32.store offset=4 - local.get $0 - i32.const 1744 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 19 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store - i32.const 1712 - call $~lib/string/String.__not + 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 - i32.const 0 - i32.const 1120 - i32.const 21 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 1776 - i32.store - i32.const 1776 - call $~lib/string/String.__not - if - i32.const 0 - i32.const 1120 - i32.const 22 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store - i32.const 1808 - call $~lib/string/String.__not - if - i32.const 0 - i32.const 1120 - i32.const 23 - i32.const 1 - call $~lib/builtins/abort - unreachable + 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 - i32.const 1 - global.set $~argumentsLength + 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 - call $~lib/string/String.fromCharCode@varargs - local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $4 + i32.const 1648 + 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 1648 + 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 - i32.store local.get $4 - i32.const 1776 - i32.store offset=4 - local.get $0 - i32.const 1776 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 25 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $~argumentsLength - i32.const 65600 - call $~lib/string/String.fromCharCode@varargs - local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $0 + 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 $4 - i32.const 1840 - i32.store offset=4 - local.get $0 - i32.const 1840 - call $~lib/string/String.__eq + 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 1120 - i32.const 26 - i32.const 1 + i32.const 1648 + i32.const 221 + i32.const 16 call $~lib/builtins/abort unreachable end - i32.const 1 - global.set $~argumentsLength - i32.const 54 - call $~lib/string/String.fromCharCode@varargs - local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $4 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 - local.get $4 - i32.const 1872 + 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 1648 + 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 1648 + 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 1648 + 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/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.const 1872 - call $~lib/string/String.__eq + i32.load offset=8 + local.tee $1 i32.eqz if i32.const 0 - i32.const 1120 - i32.const 27 - i32.const 1 + i32.const 1440 + i32.const 148 + i32.const 30 call $~lib/builtins/abort unreachable end - i32.const 1 - global.set $~argumentsLength - i32.const 65590 - call $~lib/string/String.fromCharCode@varargs - local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $0 - i32.store - local.get $4 - i32.const 1872 - i32.store offset=4 + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$287 local.get $0 - i32.const 1872 - call $~lib/string/String.__eq + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 i32.eqz if - i32.const 0 - i32.const 1120 - i32.const 28 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $0 + i32.load offset=8 + i32.eqz + local.get $0 + i32.const 59404 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1440 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$287 end - i32.const 55296 - i32.const 57088 - call $~lib/string/String.fromCharCode - local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $0 - i32.store - local.get $4 - i32.const 1904 - i32.store offset=4 local.get $0 - i32.const 1904 - call $~lib/string/String.__eq + i32.load offset=8 + local.tee $2 i32.eqz if i32.const 0 - i32.const 1120 - i32.const 29 - i32.const 1 + i32.const 1440 + i32.const 132 + i32.const 16 call $~lib/builtins/abort unreachable end - i32.const 2 - i32.const 4 - i32.const 1936 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 + local.get $2 i32.store offset=8 - local.get $0 - call $~lib/string/String.fromCharCodes - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1968 - i32.store offset=4 - local.get $0 - i32.const 1968 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 30 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + local.get $2 + local.get $1 + local.get $2 + i32.load offset=4 i32.const 3 - i32.const 4 - i32.const 2000 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/string/String.fromCharCodes - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2032 + i32.and + i32.or i32.store offset=4 - local.get $0 - i32.const 2032 - call $~lib/string/String.__eq - i32.eqz + 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 26608 + i32.load + i32.gt_u if - i32.const 0 - i32.const 1120 - i32.const 31 - i32.const 1 + i32.const 1264 + i32.const 1568 + i32.const 21 + i32.const 28 call $~lib/builtins/abort unreachable end - i32.const 5 - i32.const 4 - i32.const 2064 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/string/String.fromCharCodes - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2112 - i32.store offset=4 - local.get $0 - i32.const 2112 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 32 - i32.const 1 - call $~lib/builtins/abort + local.get $1 + i32.const 2 + i32.shl + i32.const 26612 + 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/__visit_members (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + block $folding-inner1 + block $folding-inner0 + block $invalid + block $~lib/array/Array<~lib/string/String> + 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/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 26636 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + br $folding-inner1 + 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 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 + 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 + br $folding-inner1 + end unreachable end - i32.const 0 - call $~lib/string/String.fromCodePoint - local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $0 - i32.store - local.get $4 - i32.const 1776 - i32.store offset=4 - local.get $0 - i32.const 1776 - call $~lib/string/String.__eq + i32.const 59424 + i32.const 59472 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + 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 + ) + (func $~lib/util/string/strtol (result i64) + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i64) + (local $5 i64) + (local $6 i32) + (local $7 i32) + i32.const 4928 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 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 4928 + i32.store + block $folding-inner0 + i32.const 4924 + i32.load + i32.const 1 + i32.shr_u + local.tee $0 i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 34 - i32.const 1 - call $~lib/builtins/abort - unreachable + br_if $folding-inner0 + i32.const 4928 + i32.load16_u + local.set $1 + loop $while-continue|0 + block $__inlined_func$~lib/util/string/isSpace$9 (result i32) + local.get $1 + i32.const 128 + i32.or + i32.const 160 + i32.eq + local.get $1 + i32.const 9 + i32.sub + i32.const 4 + i32.le_u + i32.or + local.get $1 + i32.const 5760 + i32.lt_u + br_if $__inlined_func$~lib/util/string/isSpace$9 + drop + i32.const 1 + local.get $1 + i32.const -8192 + i32.add + i32.const 10 + i32.le_u + br_if $__inlined_func$~lib/util/string/isSpace$9 + drop + block $break|0 + block $case6|0 + local.get $1 + i32.const 5760 + i32.eq + br_if $case6|0 + local.get $1 + i32.const 8232 + i32.eq + br_if $case6|0 + local.get $1 + i32.const 8233 + i32.eq + br_if $case6|0 + local.get $1 + i32.const 8239 + i32.eq + br_if $case6|0 + local.get $1 + i32.const 8287 + i32.eq + br_if $case6|0 + local.get $1 + i32.const 12288 + i32.eq + br_if $case6|0 + local.get $1 + i32.const 65279 + i32.eq + br_if $case6|0 + br $break|0 + end + i32.const 1 + br $__inlined_func$~lib/util/string/isSpace$9 + end + i32.const 0 + end + if + local.get $2 + i32.const 2 + i32.add + local.tee $2 + i32.load16_u + local.set $1 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|0 + end end - i32.const 54 - call $~lib/string/String.fromCodePoint - local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $0 - i32.store - local.get $4 - i32.const 1872 - i32.store offset=4 - local.get $0 - i32.const 1872 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 35 + i64.const 1 + local.set $4 + local.get $1 + i32.const 45 + i32.eq + local.tee $6 + local.get $1 + i32.const 43 + i32.eq + i32.or + if (result i32) + local.get $0 i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 119558 - call $~lib/string/String.fromCodePoint - local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $0 - i32.store - local.get $4 - i32.const 2144 - i32.store offset=4 + i32.sub + local.tee $0 + i32.eqz + br_if $folding-inner0 + i64.const -1 + i64.const 1 + local.get $6 + select + local.set $4 + local.get $2 + i32.const 2 + i32.add + local.tee $2 + i32.load16_u + else + local.get $1 + end + i32.const 48 + i32.eq local.get $0 - i32.const 2144 - call $~lib/string/String.__eq - i32.eqz + i32.const 2 + i32.gt_s + i32.and if - i32.const 0 - i32.const 1120 - i32.const 36 - i32.const 1 - call $~lib/builtins/abort - unreachable + block $break|1 + block $case2|1 + block $case1|1 + local.get $2 + i32.load16_u offset=2 + i32.const 32 + i32.or + local.tee $1 + i32.const 98 + i32.ne + if + local.get $1 + i32.const 111 + i32.eq + br_if $case1|1 + local.get $1 + i32.const 120 + i32.eq + br_if $case2|1 + br $break|1 + end + local.get $2 + i32.const 4 + i32.add + local.set $2 + local.get $0 + i32.const 2 + i32.sub + local.set $0 + i32.const 2 + local.set $3 + br $break|1 + end + local.get $2 + i32.const 4 + i32.add + local.set $2 + local.get $0 + i32.const 2 + i32.sub + local.set $0 + i32.const 8 + local.set $3 + br $break|1 + end + local.get $2 + i32.const 4 + i32.add + local.set $2 + local.get $0 + i32.const 2 + i32.sub + local.set $0 + i32.const 16 + local.set $3 + end end - global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/string/str - local.tee $4 - i32.store - local.get $0 - i32.const 2176 - i32.store offset=4 + local.get $3 + i32.const 10 + local.get $3 + select + local.set $6 local.get $0 - i32.const 8 + i32.const 1 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 26444 - i32.lt_s - br_if $folding-inner0 + local.set $7 + loop $while-continue|2 + local.get $0 + local.tee $1 + i32.const 1 + i32.sub + local.set $0 + local.get $1 + if + block $while-break|2 + local.get $2 + i32.load16_u + local.tee $3 + i32.const 48 + i32.sub + local.tee $1 + i32.const 10 + i32.ge_u + if + local.get $3 + i32.const 65 + i32.sub + i32.const 25 + i32.le_u + if (result i32) + local.get $3 + i32.const 55 + i32.sub + else + local.get $3 + i32.const 87 + i32.sub + local.get $3 + local.get $3 + i32.const 97 + i32.sub + i32.const 25 + i32.le_u + select + end + local.set $1 + end + local.get $1 + local.get $6 + i32.ge_u + if + local.get $0 + local.get $7 + i32.eq + br_if $folding-inner0 + br $while-break|2 + end + local.get $1 + i64.extend_i32_u + local.get $5 + local.get $6 + i64.extend_i32_s + i64.mul + i64.add + local.set $5 + local.get $2 + i32.const 2 + i32.add + local.set $2 + br $while-continue|2 + end + end + end global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - local.get $4 - i32.store + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $4 - i32.const 20 - i32.sub - i32.load offset=16 + local.get $5 + i64.mul + return + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i64.const 0 + ) + (func $~lib/util/string/strtol (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 4880 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 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 4880 + i32.store + block $folding-inner0 + i32.const 4876 + i32.load i32.const 1 i32.shr_u - local.set $5 - local.get $0 - i32.const 2176 - i32.store - block $__inlined_func$~lib/string/String#startsWith$293 - local.get $5 - i32.const 2172 - i32.load - i32.const 1 - i32.shr_u - local.tee $5 - i32.lt_s + local.tee $0 + i32.eqz + br_if $folding-inner0 + i32.const 4880 + i32.load16_u + local.set $1 + loop $while-continue|0 + block $__inlined_func$~lib/util/string/isSpace$8 (result i32) + local.get $1 + i32.const 128 + i32.or + i32.const 160 + i32.eq + local.get $1 + i32.const 9 + i32.sub + i32.const 4 + i32.le_u + i32.or + local.get $1 + i32.const 5760 + i32.lt_u + br_if $__inlined_func$~lib/util/string/isSpace$8 + drop + i32.const 1 + local.get $1 + i32.const -8192 + i32.add + i32.const 10 + i32.le_u + br_if $__inlined_func$~lib/util/string/isSpace$8 + drop + block $break|0 + block $case6|0 + local.get $1 + i32.const 5760 + i32.eq + br_if $case6|0 + local.get $1 + i32.const 8232 + i32.eq + br_if $case6|0 + local.get $1 + i32.const 8233 + i32.eq + br_if $case6|0 + local.get $1 + i32.const 8239 + i32.eq + br_if $case6|0 + local.get $1 + i32.const 8287 + i32.eq + br_if $case6|0 + local.get $1 + i32.const 12288 + i32.eq + br_if $case6|0 + local.get $1 + i32.const 65279 + i32.eq + br_if $case6|0 + br $break|0 + end + i32.const 1 + br $__inlined_func$~lib/util/string/isSpace$8 + end + i32.const 0 + end if - local.get $0 - i32.const 8 + local.get $2 + i32.const 2 i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 + local.tee $2 + i32.load16_u + local.set $1 + local.get $0 + i32.const 1 + i32.sub local.set $0 - br $__inlined_func$~lib/string/String#startsWith$293 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $4 - i32.store + end + i32.const 1 + local.set $4 + local.get $1 + i32.const 45 + i32.eq + local.tee $6 + local.get $1 + i32.const 43 + i32.eq + i32.or + if (result i32) local.get $0 - i32.const 2176 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.const 2176 - local.get $5 - call $~lib/util/string/compareImpl + i32.const 1 + i32.sub + local.tee $0 i32.eqz - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 + br_if $folding-inner0 + i32.const -1 + i32.const 1 + local.get $6 + select + local.set $4 + local.get $2 + i32.const 2 i32.add - global.set $~lib/memory/__stack_pointer + local.tee $2 + i32.load16_u + else + local.get $1 end + i32.const 48 + i32.eq local.get $0 - i32.eqz + i32.const 2 + i32.gt_s + i32.and if - i32.const 0 - i32.const 1120 - i32.const 38 - i32.const 1 - call $~lib/builtins/abort - unreachable + block $break|1 + block $case2|1 + block $case1|1 + local.get $2 + i32.load16_u offset=2 + i32.const 32 + i32.or + local.tee $1 + i32.const 98 + i32.ne + if + local.get $1 + i32.const 111 + i32.eq + br_if $case1|1 + local.get $1 + i32.const 120 + i32.eq + br_if $case2|1 + br $break|1 + end + local.get $2 + i32.const 4 + i32.add + local.set $2 + local.get $0 + i32.const 2 + i32.sub + local.set $0 + i32.const 2 + local.set $3 + br $break|1 + end + local.get $2 + i32.const 4 + i32.add + local.set $2 + local.get $0 + i32.const 2 + i32.sub + local.set $0 + i32.const 8 + local.set $3 + br $break|1 + end + local.get $2 + i32.const 4 + i32.add + local.set $2 + local.get $0 + i32.const 2 + i32.sub + local.set $0 + i32.const 16 + local.set $3 + end end - global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/string/str - local.tee $4 - i32.store + local.get $3 + i32.const 10 + local.get $3 + select + local.set $6 local.get $0 - i32.const 2208 - i32.store offset=4 i32.const 1 - global.set $~argumentsLength - local.get $0 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 26444 - i32.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 - local.get $4 - i32.store - local.get $0 - i32.const 2208 - i32.store offset=4 - local.get $0 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 26444 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - local.get $4 - i32.store - local.get $4 - i32.const 20 i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $5 - local.get $0 - i32.const 2208 - i32.store - block $__inlined_func$~lib/string/String#endsWith$294 - i32.const 536870910 - local.get $5 - local.get $5 - i32.const 536870910 - i32.gt_s - select - i32.const 2204 - i32.load + local.set $7 + loop $while-continue|2 + local.get $0 + local.tee $1 i32.const 1 - i32.shr_u - local.tee $5 i32.sub - local.tee $6 - i32.const 0 - i32.lt_s + local.set $0 + local.get $1 if - local.get $0 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 - br $__inlined_func$~lib/string/String#endsWith$294 + block $while-break|2 + local.get $2 + i32.load16_u + local.tee $3 + i32.const 48 + i32.sub + local.tee $1 + i32.const 10 + i32.ge_u + if + local.get $3 + i32.const 65 + i32.sub + i32.const 25 + i32.le_u + if (result i32) + local.get $3 + i32.const 55 + i32.sub + else + local.get $3 + i32.const 87 + i32.sub + local.get $3 + local.get $3 + i32.const 97 + i32.sub + i32.const 25 + i32.le_u + select + end + local.set $1 + end + local.get $1 + local.get $6 + i32.ge_u + if + local.get $0 + local.get $7 + i32.eq + br_if $folding-inner0 + br $while-break|2 + end + local.get $5 + local.get $6 + i32.mul + local.get $1 + i32.add + local.set $5 + local.get $2 + i32.const 2 + i32.add + local.set $2 + br $while-continue|2 + end end - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $4 - i32.store - local.get $0 - i32.const 2208 - i32.store offset=4 - local.get $4 - local.get $6 - i32.const 2208 - local.get $5 - call $~lib/util/string/compareImpl - i32.eqz - local.set $0 - 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 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - i32.eqz + local.get $4 + local.get $5 + i32.mul + return + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (func $~lib/util/number/utoa64_dec_lut (param $0 i32) (param $1 i64) (param $2 i32) + (local $3 i32) + (local $4 i32) + loop $while-continue|0 + local.get $1 + i64.const 100000000 + i64.ge_u if - i32.const 0 - i32.const 1120 - i32.const 39 + local.get $0 + local.get $2 + i32.const 4 + i32.sub + local.tee $2 i32.const 1 - call $~lib/builtins/abort - unreachable + i32.shl + i32.add + local.get $1 + local.get $1 + i64.const 100000000 + i64.div_u + local.tee $1 + i64.const 100000000 + i64.mul + i64.sub + i32.wrap_i64 + local.tee $3 + i32.const 10000 + i32.rem_u + local.tee $4 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 16220 + i32.add + i64.load32_u + local.get $4 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 16220 + i32.add + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store + local.get $0 + local.get $2 + i32.const 4 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + i32.add + local.get $3 + i32.const 10000 + i32.div_u + local.tee $3 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 16220 + i32.add + i64.load32_u + local.get $3 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 16220 + i32.add + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/string/str - local.tee $4 - i32.store - local.get $0 - i32.const 2240 - i32.store offset=4 - local.get $0 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 26444 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - local.get $4 - i32.store - local.get $0 - i32.const 2240 - i32.store offset=4 - local.get $4 - i32.const 2240 - i32.const 0 - call $~lib/string/String#indexOf - i32.const -1 - i32.ne - local.set $0 + end + local.get $0 + local.get $1 + i32.wrap_i64 + local.get $2 + call $~lib/util/number/utoa32_dec_lut + ) + (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/string/String#charAt (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 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 + i64.const 0 + i64.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 1 + i32.shr_u + i32.ge_u + if global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - i32.eqz + i32.const 1712 + return + end + global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=4 + local.get $2 + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (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 - i32.const 0 - i32.const 1120 - i32.const 40 + local.get $1 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/string/str - local.tee $4 - i32.store offset=8 - local.get $0 - i32.const 2272 - i32.store offset=12 - local.get $4 - i32.const 0 - i32.const 2272 - call $~lib/string/String#padStart - 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=4 - local.get $0 - local.get $4 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 42 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add i32.const 1 - call $~lib/builtins/abort - unreachable + i32.sub + local.set $1 end - global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/string/str - local.tee $4 - i32.store offset=8 - local.get $0 - i32.const 2272 - i32.store offset=12 - local.get $4 - i32.const 15 - i32.const 2272 - call $~lib/string/String#padStart - local.set $0 - global.get $~lib/memory/__stack_pointer + 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 1648 + 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 - i32.store - global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $4 - i32.store offset=4 + 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 - local.get $4 - call $~lib/string/String.__eq - i32.eqz - if + 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 1648 + 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 - i32.const 1120 - i32.const 43 - i32.const 1 - call $~lib/builtins/abort - unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1712 - i32.store offset=8 - local.get $0 - i32.const 2272 - i32.store offset=12 - i32.const 1712 - i32.const 3 - i32.const 2272 - call $~lib/string/String#padStart - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2304 - i32.store offset=4 + end + ) + (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 59408 + i32.const 0 + i32.store + i32.const 60976 + i32.const 0 + i32.store + loop $for-loop|0 local.get $0 - i32.const 2304 - call $~lib/string/String.__eq - i32.eqz + i32.const 23 + i32.lt_u if + local.get $0 + i32.const 2 + i32.shl + i32.const 59408 + i32.add i32.const 0 - i32.const 1120 - i32.const 44 + 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 59408 + 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 - call $~lib/builtins/abort - unreachable + i32.add + local.set $0 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1712 - i32.store offset=8 - local.get $0 - i32.const 1712 - i32.store offset=12 - i32.const 1712 - i32.const 10 - i32.const 1712 - call $~lib/string/String#padStart - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 - local.get $0 - i32.const 1712 - call $~lib/string/String.__eq - i32.eqz + end + i32.const 59408 + i32.const 60980 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 59408 + global.set $~lib/rt/tlsf/ROOT + ) + (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 1648 + 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 1120 - i32.const 45 - i32.const 1 + i32.const 1648 + i32.const 389 + i32.const 16 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1808 - i32.store offset=8 - local.get $0 - i32.const 1712 - i32.store offset=12 - i32.const 1808 - i32.const 100 - i32.const 1712 - call $~lib/string/String#padStart - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=4 - local.get $0 - i32.const 1808 - call $~lib/string/String.__eq - i32.eqz + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq if - i32.const 0 - i32.const 1120 - i32.const 46 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $3 + i32.load + local.set $4 + local.get $5 + local.set $1 end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 2336 - i32.store offset=8 - local.get $0 - i32.const 2272 - i32.store offset=12 - i32.const 2336 - i32.const 5 - i32.const 2272 - call $~lib/string/String#padStart - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2368 - i32.store offset=4 + else local.get $0 - i32.const 2368 - call $~lib/string/String.__eq - i32.eqz + i32.const 1572 + i32.add + local.get $1 + i32.gt_u if i32.const 0 - i32.const 1120 - i32.const 47 - i32.const 1 + i32.const 1648 + i32.const 402 + i32.const 5 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 2336 - i32.store offset=8 - local.get $0 - i32.const 2400 - i32.store offset=12 - i32.const 2336 - i32.const 6 - i32.const 2400 - call $~lib/string/String#padStart - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2432 - i32.store offset=4 + 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/itcms/visitRoots + (local $0 i32) + (local $1 i32) + global.get $std/string/str + local.tee $0 + if local.get $0 - i32.const 2432 - call $~lib/string/String.__eq - i32.eqz + call $~lib/rt/itcms/__visit + end + i32.const 1264 + call $~lib/rt/itcms/__visit + i32.const 14064 + call $~lib/rt/itcms/__visit + i32.const 15712 + call $~lib/rt/itcms/__visit + i32.const 1376 + call $~lib/rt/itcms/__visit + i32.const 16640 + call $~lib/rt/itcms/__visit + i32.const 17696 + 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 - i32.const 0 - i32.const 1120 - i32.const 48 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1440 + 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 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 2336 - i32.store offset=8 - local.get $0 - i32.const 2400 - i32.store offset=12 - i32.const 2336 - i32.const 8 - i32.const 2400 - call $~lib/string/String#padStart - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2464 - i32.store offset=4 + end + ) + (func $~lib/math/ipow32 (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + i32.const 5 + local.set $1 + i32.const 1 + local.set $2 + local.get $0 + i32.const 0 + i32.le_s + if local.get $0 - i32.const 2464 - call $~lib/string/String.__eq i32.eqz + return + else + local.get $0 + i32.const 1 + i32.eq if - i32.const 0 - i32.const 1120 - i32.const 49 - i32.const 1 - call $~lib/builtins/abort - unreachable + i32.const 5 + return + else + local.get $0 + i32.const 2 + i32.eq + if + i32.const 25 + return + else + local.get $0 + i32.const 32 + i32.lt_s + if + block $break|0 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + i32.const 31 + local.get $0 + i32.clz + i32.sub + br_table $case4|0 $case3|0 $case2|0 $case1|0 $case0|0 $break|0 + end + i32.const 5 + i32.const 1 + local.get $0 + i32.const 1 + i32.and + select + local.set $2 + local.get $0 + i32.const 1 + i32.shr_u + local.set $0 + i32.const 25 + local.set $1 + end + local.get $1 + local.get $2 + i32.mul + local.get $2 + local.get $0 + i32.const 1 + i32.and + select + local.set $2 + local.get $0 + i32.const 1 + i32.shr_u + local.set $0 + local.get $1 + local.get $1 + i32.mul + local.set $1 + end + local.get $1 + local.get $2 + i32.mul + local.get $2 + local.get $0 + i32.const 1 + i32.and + select + local.set $2 + local.get $0 + i32.const 1 + i32.shr_u + local.set $0 + local.get $1 + local.get $1 + i32.mul + local.set $1 + end + local.get $1 + local.get $2 + i32.mul + local.get $2 + local.get $0 + i32.const 1 + i32.and + select + local.set $2 + local.get $0 + i32.const 1 + i32.shr_u + local.set $0 + local.get $1 + local.get $1 + i32.mul + local.set $1 + end + local.get $1 + local.get $2 + i32.mul + local.get $2 + local.get $0 + i32.const 1 + i32.and + select + local.set $2 + end + local.get $2 + return + end + end end - global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/string/str - local.tee $4 - i32.store offset=8 - local.get $0 - i32.const 2272 - i32.store offset=12 - local.get $4 - i32.const 0 - i32.const 2272 - call $~lib/string/String#padEnd - 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=4 + end + loop $while-continue|1 local.get $0 - local.get $4 - call $~lib/string/String.__eq - i32.eqz if - i32.const 0 - i32.const 1120 - i32.const 51 + local.get $1 + local.get $2 + i32.mul + local.get $2 + local.get $0 i32.const 1 - call $~lib/builtins/abort - unreachable + i32.and + select + local.set $2 + local.get $0 + i32.const 1 + i32.shr_u + local.set $0 + local.get $1 + local.get $1 + i32.mul + local.set $1 + br $while-continue|1 end - global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/string/str - local.tee $4 - i32.store offset=8 + end + local.get $2 + ) + (func $~lib/math/NativeMath.scalbn (param $0 f64) (param $1 i32) (result f64) + local.get $1 + i32.const 1023 + i32.gt_s + if (result f64) local.get $0 - i32.const 2272 - i32.store offset=12 - local.get $4 - i32.const 15 - i32.const 2272 - call $~lib/string/String#padEnd + f64.const 8988465674311579538646525e283 + f64.mul 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=4 - local.get $0 - local.get $4 - call $~lib/string/String.__eq - i32.eqz + local.get $1 + i32.const 1023 + i32.sub + local.tee $1 + i32.const 1023 + i32.gt_s + if (result f64) + i32.const 1023 + local.get $1 + i32.const 1023 + i32.sub + local.tee $1 + local.get $1 + i32.const 1023 + i32.ge_s + select + local.set $1 + local.get $0 + f64.const 8988465674311579538646525e283 + f64.mul + else + local.get $0 + end + else + local.get $1 + i32.const -1022 + i32.lt_s + if (result f64) + local.get $0 + f64.const 2.004168360008973e-292 + f64.mul + local.set $0 + local.get $1 + i32.const 969 + i32.add + local.tee $1 + i32.const -1022 + i32.lt_s + if (result f64) + i32.const -1022 + local.get $1 + i32.const 969 + i32.add + local.tee $1 + local.get $1 + i32.const -1022 + i32.le_s + select + local.set $1 + local.get $0 + f64.const 2.004168360008973e-292 + f64.mul + else + local.get $0 + end + else + local.get $0 + end + end + local.get $1 + i64.extend_i32_s + i64.const 1023 + i64.add + i64.const 52 + i64.shl + f64.reinterpret_i64 + f64.mul + ) + (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + 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.store + local.get $1 + local.get $0 + i32.load offset=8 + local.tee $3 + i32.const 2 + i32.shr_u + i32.gt_u + if + local.get $1 + i32.const 268435455 + i32.gt_u if - i32.const 0 - i32.const 1120 - i32.const 52 - i32.const 1 + i32.const 14064 + i32.const 15664 + i32.const 19 + i32.const 48 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1712 - i32.store offset=8 - local.get $0 - i32.const 2272 - i32.store offset=12 - i32.const 1712 - i32.const 3 - i32.const 2272 - call $~lib/string/String#padEnd - local.set $0 - global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2304 - i32.store offset=4 local.get $0 - i32.const 2304 - call $~lib/string/String.__eq - i32.eqz + i32.load + local.tee $2 + 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 $3 + 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 $3 + i32.lt_u + select + local.tee $1 + call $~lib/rt/itcms/__renew + local.tee $3 + local.get $2 + i32.ne if + local.get $0 + local.get $3 + i32.store + local.get $0 + local.get $3 + i32.store offset=4 + local.get $0 + local.get $3 i32.const 0 - i32.const 1120 - i32.const 53 - i32.const 1 - call $~lib/builtins/abort - unreachable + call $~lib/rt/itcms/__link end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1712 - i32.store offset=8 - local.get $0 - i32.const 1712 - i32.store offset=12 - i32.const 1712 - i32.const 10 - i32.const 1712 - call $~lib/string/String#padEnd - local.set $0 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 + 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 $~start + call $start:std/string + ) + (func $~lib/util/string/strtol (param $0 i32) (param $1 i32) (result f64) + (local $2 i32) + (local $3 i32) + (local $4 f64) + (local $5 f64) + (local $6 i32) + (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 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.store + block $folding-inner0 local.get $0 - i32.const 1712 - call $~lib/string/String.__eq + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $2 i32.eqz + br_if $folding-inner0 + local.get $0 + i32.load16_u + local.set $3 + loop $while-continue|0 + block $__inlined_func$~lib/util/string/isSpace$6 (result i32) + local.get $3 + i32.const 128 + i32.or + i32.const 160 + i32.eq + local.get $3 + i32.const 9 + i32.sub + i32.const 4 + i32.le_u + i32.or + local.get $3 + i32.const 5760 + i32.lt_u + br_if $__inlined_func$~lib/util/string/isSpace$6 + drop + i32.const 1 + local.get $3 + i32.const -8192 + i32.add + i32.const 10 + i32.le_u + br_if $__inlined_func$~lib/util/string/isSpace$6 + drop + block $break|0 + block $case6|0 + local.get $3 + i32.const 5760 + i32.eq + br_if $case6|0 + local.get $3 + i32.const 8232 + i32.eq + br_if $case6|0 + local.get $3 + i32.const 8233 + i32.eq + br_if $case6|0 + local.get $3 + i32.const 8239 + i32.eq + br_if $case6|0 + local.get $3 + i32.const 8287 + i32.eq + br_if $case6|0 + local.get $3 + i32.const 12288 + i32.eq + br_if $case6|0 + local.get $3 + i32.const 65279 + i32.eq + br_if $case6|0 + br $break|0 + end + i32.const 1 + br $__inlined_func$~lib/util/string/isSpace$6 + end + i32.const 0 + end + if + local.get $0 + i32.const 2 + i32.add + local.tee $0 + i32.load16_u + local.set $3 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + f64.const 1 + local.set $4 + local.get $3 + i32.const 45 + i32.eq + local.tee $6 + local.get $3 + i32.const 43 + i32.eq + i32.or if - i32.const 0 - i32.const 1120 - i32.const 54 + local.get $2 i32.const 1 - call $~lib/builtins/abort - unreachable + i32.sub + local.tee $2 + i32.eqz + br_if $folding-inner0 + f64.const -1 + f64.const 1 + local.get $6 + select + local.set $4 + local.get $0 + i32.const 2 + i32.add + local.tee $0 + i32.load16_u + local.set $3 end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1808 - i32.store offset=8 - local.get $0 - i32.const 1712 - i32.store offset=12 - i32.const 1808 - i32.const 100 - i32.const 1712 - call $~lib/string/String#padEnd - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=4 - local.get $0 - i32.const 1808 - call $~lib/string/String.__eq - i32.eqz + local.get $1 if - i32.const 0 - i32.const 1120 - i32.const 55 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $1 + i32.const 2 + i32.lt_s + local.get $1 + i32.const 36 + i32.gt_s + i32.or + br_if $folding-inner0 + local.get $1 + i32.const 16 + i32.eq + if + local.get $3 + i32.const 48 + i32.eq + local.get $2 + i32.const 2 + i32.gt_s + i32.and + if (result i32) + local.get $0 + i32.load16_u offset=2 + i32.const 32 + i32.or + i32.const 120 + i32.eq + else + i32.const 0 + end + if + local.get $2 + i32.const 2 + i32.sub + local.set $2 + local.get $0 + i32.const 4 + i32.add + local.set $0 + end + end + else + local.get $3 + i32.const 48 + i32.eq + local.get $2 + i32.const 2 + i32.gt_s + i32.and + if + block $break|1 + block $case2|1 + block $case1|1 + local.get $0 + i32.load16_u offset=2 + i32.const 32 + i32.or + local.tee $3 + i32.const 98 + i32.ne + if + local.get $3 + i32.const 111 + i32.eq + br_if $case1|1 + local.get $3 + i32.const 120 + i32.eq + br_if $case2|1 + br $break|1 + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 2 + local.set $1 + br $break|1 + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 8 + local.set $1 + br $break|1 + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 16 + local.set $1 + end + end + local.get $1 + i32.const 10 + local.get $1 + select + local.set $1 end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 2336 - i32.store offset=8 - local.get $0 - i32.const 2272 - i32.store offset=12 - i32.const 2336 - i32.const 5 - i32.const 2272 - call $~lib/string/String#padEnd - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2512 - i32.store offset=4 - local.get $0 - i32.const 2512 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 56 + local.get $2 + i32.const 1 + i32.sub + local.set $7 + loop $while-continue|2 + local.get $2 + local.tee $3 i32.const 1 - call $~lib/builtins/abort - unreachable + i32.sub + local.set $2 + local.get $3 + if + block $while-break|2 + local.get $0 + i32.load16_u + local.tee $6 + i32.const 48 + i32.sub + local.tee $3 + i32.const 10 + i32.ge_u + if + local.get $6 + i32.const 65 + i32.sub + i32.const 25 + i32.le_u + if (result i32) + local.get $6 + i32.const 55 + i32.sub + else + local.get $6 + i32.const 87 + i32.sub + local.get $6 + local.get $6 + i32.const 97 + i32.sub + i32.const 25 + i32.le_u + select + end + local.set $3 + end + local.get $1 + local.get $3 + i32.le_u + if + local.get $2 + local.get $7 + i32.eq + br_if $folding-inner0 + br $while-break|2 + end + local.get $5 + local.get $1 + f64.convert_i32_s + f64.mul + local.get $3 + f64.convert_i32_u + f64.add + local.set $5 + local.get $0 + i32.const 2 + i32.add + local.set $0 + br $while-continue|2 + end + end end global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 2336 - i32.store offset=8 - local.get $0 - i32.const 2336 - i32.store offset=12 - i32.const 2336 - i32.const 6 - i32.const 2336 - call $~lib/string/String#padEnd - local.set $0 - global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + local.get $5 + f64.mul + return + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + f64.const nan:0x8000000000000 + ) + (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + local.get $2 + i32.eqz + if local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 3145774 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2544 - i32.store offset=4 - local.get $0 - i32.const 2544 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 57 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $1 + i32.const 2 + i32.add + return + end + local.get $1 + local.get $2 + i32.add + local.tee $3 + i32.const 21 + i32.le_s + local.get $1 + local.get $3 + i32.le_s + i32.and + if (result i32) + loop $for-loop|0 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 48 + i32.store16 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 2336 - i32.store offset=8 - local.get $0 - i32.const 2336 - i32.store offset=12 - i32.const 2336 - i32.const 8 - i32.const 2336 - call $~lib/string/String#padEnd - local.set $0 - global.get $~lib/memory/__stack_pointer local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.const 3145774 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2576 - i32.store offset=4 - local.get $0 - i32.const 2576 - call $~lib/string/String.__eq - i32.eqz - if + local.get $3 + i32.const 2 + i32.add + else + local.get $3 + i32.const 21 + i32.le_s + local.get $3 + i32.const 0 + i32.gt_s + i32.and + if (result i32) + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.tee $0 + i32.const 2 + i32.add + local.get $0 i32.const 0 - i32.const 1120 - i32.const 58 + local.get $2 + i32.sub i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1712 - i32.store - local.get $0 - i32.const 1712 - i32.store offset=4 - i32.const 1712 - i32.const 1712 - i32.const 0 - call $~lib/string/String#indexOf - if + i32.shl + memory.copy + local.get $0 + i32.const 46 + i32.store16 + local.get $1 + i32.const 1 + i32.add + else + local.get $3 i32.const 0 - i32.const 1120 - i32.const 60 + i32.le_s + local.get $3 + i32.const -6 + i32.gt_s + i32.and + if (result i32) + local.get $0 + i32.const 2 + local.get $3 + i32.sub + local.tee $3 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $1 + i32.const 1 + i32.shl + memory.copy + local.get $0 + i32.const 3014704 + i32.store + i32.const 2 + local.set $2 + loop $for-loop|1 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 48 + i32.store16 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 + end + end + local.get $1 + local.get $3 + i32.add + else + local.get $1 + i32.const 1 + i32.eq + if + local.get $0 + i32.const 101 + i32.store16 offset=2 + local.get $0 + i32.const 4 + i32.add + local.tee $2 + local.get $3 + i32.const 1 + i32.sub + local.tee $0 + i32.const 0 + i32.lt_s + local.tee $3 + if + i32.const 0 + local.get $0 + i32.sub + local.set $0 + end + local.get $0 + local.get $0 + 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 + i32.const 1 + i32.add + local.tee $1 + call $~lib/util/number/utoa32_dec_lut + local.get $2 + i32.const 45 + i32.const 43 + local.get $3 + select + i32.store16 + else + local.get $0 + i32.const 4 + i32.add + local.get $0 + i32.const 2 + i32.add + local.get $1 + i32.const 1 + i32.shl + local.tee $2 + i32.const 2 + i32.sub + memory.copy + local.get $0 + i32.const 46 + i32.store16 offset=2 + local.get $0 + local.get $2 + i32.add + local.tee $0 + i32.const 101 + i32.store16 offset=2 + local.get $0 + i32.const 4 + i32.add + local.tee $4 + local.get $3 + i32.const 1 + i32.sub + local.tee $0 + i32.const 0 + i32.lt_s + local.tee $2 + if + i32.const 0 + local.get $0 + i32.sub + local.set $0 + end + local.get $0 + local.get $0 + 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 + i32.const 1 + i32.add + local.tee $0 + call $~lib/util/number/utoa32_dec_lut + local.get $4 + i32.const 45 + i32.const 43 + local.get $2 + select + i32.store16 + local.get $0 + local.get $1 + i32.add + local.set $1 + end + local.get $1 + i32.const 2 + i32.add + end + end + end + ) + (func $~lib/util/number/genDigits (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (result i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i64) + (local $9 i64) + (local $10 i64) + (local $11 i32) + (local $12 i64) + local.get $1 + local.get $0 + i64.sub + local.set $9 + i64.const 1 + i32.const 0 + local.get $2 + i32.sub + local.tee $11 + i64.extend_i32_s + local.tee $0 + i64.shl + local.tee $10 + i64.const 1 + i64.sub + local.tee $12 + local.get $1 + i64.and + local.set $8 + local.get $1 + local.get $0 + i64.shr_u + i32.wrap_i64 + local.tee $2 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $2 + i32.const 100 + i32.lt_u + if (result i32) + local.get $2 + i32.const 10 + i32.ge_u i32.const 1 - call $~lib/builtins/abort - unreachable + 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 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1712 - i32.store - local.get $0 - i32.const 2176 - i32.store offset=4 - 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 1120 - i32.const 61 - i32.const 1 - call $~lib/builtins/abort - unreachable + 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 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1808 - i32.store - local.get $0 - i32.const 1808 - i32.store offset=4 - i32.const 1808 - i32.const 1808 + end + local.set $7 + loop $while-continue|0 + local.get $7 i32.const 0 - call $~lib/string/String#indexOf + i32.gt_s if - i32.const 0 - i32.const 1120 - i32.const 62 + block $break|1 + block $case10|1 + block $case9|1 + block $case8|1 + block $case7|1 + block $case6|1 + block $case5|1 + block $case4|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + local.get $7 + i32.const 1 + i32.sub + br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $case0|1 $case10|1 + end + local.get $2 + i32.const 1000000000 + i32.div_u + local.set $5 + local.get $2 + i32.const 1000000000 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 100000000 + i32.div_u + local.set $5 + local.get $2 + i32.const 100000000 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 10000000 + i32.div_u + local.set $5 + local.get $2 + i32.const 10000000 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 1000000 + i32.div_u + local.set $5 + local.get $2 + i32.const 1000000 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 100000 + i32.div_u + local.set $5 + local.get $2 + i32.const 100000 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 10000 + i32.div_u + local.set $5 + local.get $2 + i32.const 10000 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 1000 + i32.div_u + local.set $5 + local.get $2 + i32.const 1000 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 100 + i32.div_u + local.set $5 + local.get $2 + i32.const 100 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 10 + i32.div_u + local.set $5 + local.get $2 + i32.const 10 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + local.set $5 + i32.const 0 + local.set $2 + br $break|1 + end + i32.const 0 + local.set $5 + end + local.get $4 + local.get $5 + i32.or + if + local.get $4 + local.tee $6 + i32.const 1 + i32.add + local.set $4 + local.get $6 + i32.const 1 + i32.shl + i32.const 23344 + i32.add + local.get $5 + i32.const 65535 + i32.and + i32.const 48 + i32.add + i32.store16 + end + local.get $7 i32.const 1 - call $~lib/builtins/abort - unreachable + i32.sub + local.set $7 + local.get $3 + local.get $2 + i64.extend_i32_u + local.get $11 + i64.extend_i32_s + local.tee $1 + i64.shl + local.get $8 + i64.add + local.tee $0 + i64.ge_u + if + global.get $~lib/util/number/_K + local.get $7 + i32.add + global.set $~lib/util/number/_K + local.get $7 + i32.const 2 + i32.shl + i32.const 24272 + i32.add + i64.load32_u + local.get $1 + i64.shl + local.set $1 + local.get $4 + i32.const 1 + i32.shl + i32.const 23342 + i32.add + local.tee $2 + i32.load16_u + local.set $7 + loop $while-continue|3 + local.get $0 + local.get $9 + i64.lt_u + local.get $3 + local.get $0 + i64.sub + local.get $1 + i64.ge_u + i32.and + if (result i32) + local.get $9 + local.get $0 + local.get $1 + i64.add + local.tee $8 + i64.gt_u + local.get $9 + local.get $0 + i64.sub + local.get $8 + local.get $9 + i64.sub + i64.gt_u + i32.or + else + i32.const 0 + end + if + local.get $7 + i32.const 1 + i32.sub + local.set $7 + local.get $0 + local.get $1 + i64.add + local.set $0 + br $while-continue|3 + end + end + local.get $2 + local.get $7 + i32.store16 + local.get $4 + return + end + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer + end + loop $while-continue|4 + local.get $3 + i64.const 10 + i64.mul + local.set $3 + local.get $8 + i64.const 10 + i64.mul local.tee $0 - global.get $std/string/str - local.tee $4 - i32.store - local.get $0 - local.get $4 - i32.store offset=4 - local.get $4 + local.get $11 + i64.extend_i32_s + i64.shr_u + local.tee $1 local.get $4 - i32.const 0 - call $~lib/string/String#indexOf + i64.extend_i32_s + i64.or + i64.const 0 + i64.ne if - i32.const 0 - i32.const 1120 - i32.const 63 + local.get $4 + local.tee $2 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/string/str - local.tee $4 - i32.store - local.get $0 - i32.const 1712 - i32.store offset=4 - local.get $4 - i32.const 1712 - i32.const 0 - call $~lib/string/String#indexOf - if - i32.const 0 - i32.const 1120 - i32.const 64 + i32.add + local.set $4 + local.get $2 i32.const 1 - call $~lib/builtins/abort - unreachable + i32.shl + i32.const 23344 + i32.add + local.get $1 + i32.wrap_i64 + i32.const 65535 + i32.and + i32.const 48 + i32.add + i32.store16 end - global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/string/str - local.tee $4 - i32.store + local.get $7 + i32.const 1 + i32.sub + local.set $7 local.get $0 - i32.const 2624 - i32.store offset=4 - local.get $4 - i32.const 2624 - i32.const 0 - call $~lib/string/String#indexOf - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 65 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/string/str - local.tee $4 - i32.store + local.get $12 + i64.and + local.tee $8 + local.get $3 + i64.ge_u + br_if $while-continue|4 + end + global.get $~lib/util/number/_K + local.get $7 + i32.add + global.set $~lib/util/number/_K + local.get $9 + i32.const 0 + local.get $7 + i32.sub + i32.const 2 + i32.shl + i32.const 24272 + i32.add + i64.load32_u + i64.mul + local.set $0 + local.get $4 + i32.const 1 + i32.shl + i32.const 23342 + i32.add + local.tee $2 + i32.load16_u + local.set $7 + loop $while-continue|6 local.get $0 - i32.const 2656 - i32.store offset=4 - local.get $4 - i32.const 2656 - i32.const 0 - call $~lib/string/String#indexOf - i32.const -1 - i32.ne - if + local.get $8 + i64.gt_u + local.get $3 + local.get $8 + i64.sub + local.get $10 + i64.ge_u + i32.and + if (result i32) + local.get $0 + local.get $8 + local.get $10 + i64.add + local.tee $1 + i64.gt_u + local.get $0 + local.get $8 + i64.sub + local.get $1 + local.get $0 + i64.sub + i64.gt_u + i32.or + else i32.const 0 - i32.const 1120 - i32.const 66 - i32.const 1 - call $~lib/builtins/abort - unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/string/str - local.tee $4 - i32.store - local.get $0 - i32.const 2624 - i32.store offset=4 - local.get $4 - i32.const 2624 - i32.const 2 - call $~lib/string/String#indexOf - i32.const 2 - i32.ne if - i32.const 0 - i32.const 1120 - i32.const 67 + local.get $7 i32.const 1 - call $~lib/builtins/abort - unreachable + i32.sub + local.set $7 + local.get $8 + local.get $10 + i64.add + local.set $8 + br $while-continue|6 end + end + local.get $2 + local.get $7 + i32.store16 + local.get $4 + ) + (func $std/string/getString (result i32) + global.get $std/string/str + ) + (func $start:std/string + (local $0 i32) + (local $1 f64) + (local $2 f32) + (local $3 i64) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 76 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + i32.const 26636 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 76 + memory.fill global.get $std/string/str - local.tee $4 - i32.store - local.get $0 - i32.const 2624 - i32.store offset=4 - local.get $4 - i32.const 2624 - i32.const 3 - call $~lib/string/String#indexOf - i32.const -1 + i32.const 1056 i32.ne if i32.const 0 i32.const 1120 - i32.const 68 + i32.const 8 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/string/str - local.tee $4 - i32.store - local.get $0 - i32.const 2688 - i32.store offset=4 - local.get $4 - i32.const 2688 - i32.const -1 - call $~lib/string/String#indexOf - i32.const 2 - i32.ne + i32.const 1168 + i32.const 1168 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 69 + i32.const 10 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1712 - i32.store - local.get $0 - i32.const 1712 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - i32.const 1712 - i32.const 1712 - call $~lib/string/String#lastIndexOf@varargs + i32.const 1200 + i32.const 1200 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 71 + i32.const 11 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1712 - i32.store - local.get $0 - i32.const 2176 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - i32.const 1712 - i32.const 2176 - call $~lib/string/String#lastIndexOf@varargs - i32.const -1 - i32.ne + i32.const 1232 + i32.const 1232 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 72 + i32.const 12 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/string/str - local.tee $4 - i32.store - local.get $0 - i32.const 1712 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $4 - i32.const 1712 - call $~lib/string/String#lastIndexOf@varargs - local.set $0 - global.get $~lib/memory/__stack_pointer global.get $std/string/str - local.tee $4 + local.tee $0 i32.store local.get $0 - local.get $4 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u + i32.const 16 i32.ne if i32.const 0 i32.const 1120 - i32.const 73 + i32.const 14 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/string/str - local.tee $4 + local.tee $0 i32.store - local.get $0 - i32.const 2624 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $4 - i32.const 2624 - call $~lib/string/String#lastIndexOf@varargs - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 74 - i32.const 1 - call $~lib/builtins/abort - unreachable - end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/string/str - local.tee $4 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + 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 local.get $0 - i32.const 2656 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $4 - i32.const 2656 - call $~lib/string/String#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 75 + i32.store + block $__inlined_func$~lib/string/String#charCodeAt$294 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 i32.const 1 - call $~lib/builtins/abort - unreachable + i32.shr_u + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const -1 + local.set $0 + br $__inlined_func$~lib/string/String#charCodeAt$294 + end + local.get $0 + i32.load16_u + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer end - global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/string/str - local.tee $4 - i32.store local.get $0 - i32.const 2720 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $4 - i32.const 2720 - call $~lib/string/String#lastIndexOf@varargs - i32.const 15 + i32.const 104 i32.ne if i32.const 0 i32.const 1120 - i32.const 76 + i32.const 15 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/string/str local.tee $4 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 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 + local.get $4 + i32.store + block $__inlined_func$~lib/string/String#codePointAt$295 + local.get $4 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $0 + i32.const 1 + i32.le_u + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const -1 + local.set $0 + br $__inlined_func$~lib/string/String#codePointAt$295 + end + local.get $0 + i32.const 2 + i32.eq + local.get $4 + i32.load16_u offset=2 + local.tee $0 + i32.const 64512 + i32.and + i32.const 55296 + i32.ne + i32.or + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/string/String#codePointAt$295 + end + local.get $4 + i32.load16_u offset=4 + local.tee $4 + i32.const 64512 + i32.and + i32.const 56320 + i32.ne + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/string/String#codePointAt$295 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.const 10 + i32.shl + local.get $4 + i32.add + i32.const 56613888 + i32.sub + local.set $0 + end local.get $0 - i32.const 2624 - i32.store offset=4 - local.get $4 - i32.const 2624 - i32.const 2 - call $~lib/string/String#lastIndexOf - i32.const 2 + i32.const 105 i32.ne if i32.const 0 i32.const 1120 - i32.const 77 + i32.const 16 i32.const 1 call $~lib/builtins/abort unreachable end + 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 - local.get $0 - i32.const 2624 + i32.store offset=8 + local.get $4 + i32.const 15 + call $~lib/string/String#charAt + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store offset=4 + local.get $0 local.get $4 - i32.const 2624 - i32.const 3 - call $~lib/string/String#lastIndexOf - i32.const 2 - i32.ne + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 78 + i32.const 17 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/string/str - local.tee $4 - i32.store + local.tee $0 + i32.store offset=8 local.get $0 - i32.const 2688 - i32.store offset=4 - local.get $4 - i32.const 2688 i32.const -1 - call $~lib/string/String#lastIndexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 79 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + 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 - local.tee $0 global.get $std/string/str local.tee $4 - i32.store - local.get $0 - i32.const 2752 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $5 + i32.store offset=12 + local.get $4 + local.get $5 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.const 1 + i32.sub + call $~lib/string/String#charAt + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store offset=4 + local.get $0 local.get $4 - i32.const 2752 - i32.const 0 - call $~lib/string/String#lastIndexOf - i32.const -1 - i32.ne + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 80 + i32.const 18 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=4 + global.get $~lib/memory/__stack_pointer global.get $std/string/str local.tee $4 - i32.store + i32.store offset=8 local.get $0 - i32.const 2176 - i32.store offset=4 - local.get $4 - i32.const 2176 i32.const 0 - call $~lib/string/String#lastIndexOf - if - i32.const 0 - i32.const 1120 - i32.const 81 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + local.get $4 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.sub + call $~lib/string/String#at + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1712 - i32.store local.get $0 - i32.const 1712 - i32.store offset=4 - i32.const 1712 - i32.const 1712 - call $~lib/string/String#localeCompare - if - i32.const 0 - i32.const 1120 - i32.const 83 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1808 i32.store local.get $0 - i32.const 1712 - i32.store offset=4 - i32.const 1808 - i32.const 1712 - call $~lib/string/String#localeCompare - i32.const 1 - i32.ne + i32.const 1744 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 84 + i32.const 19 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1712 - i32.store - local.get $0 - i32.const 1808 - i32.store offset=4 - i32.const 1712 - i32.const 1808 - call $~lib/string/String#localeCompare - i32.const -1 - i32.ne + call $~lib/string/String.__not + i32.eqz if i32.const 0 i32.const 1120 - i32.const 85 + i32.const 21 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 2784 - i32.store - local.get $0 - i32.const 2784 - i32.store offset=4 - i32.const 2784 - i32.const 2784 - call $~lib/string/String#localeCompare + i32.const 1776 + call $~lib/string/String.__not if i32.const 0 i32.const 1120 - i32.const 86 + i32.const 22 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 2336 - i32.store - local.get $0 - i32.const 2816 - i32.store offset=4 - i32.const 2336 - i32.const 2816 - call $~lib/string/String#localeCompare - i32.const -1 - i32.ne + i32.const 1808 + call $~lib/string/String.__not if i32.const 0 i32.const 1120 - i32.const 87 + i32.const 23 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String.fromCharCode@varargs + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 2336 + local.get $0 i32.store local.get $0 - i32.const 2848 - i32.store offset=4 - i32.const 2336 - i32.const 2848 - call $~lib/string/String#localeCompare - i32.const -1 - i32.ne + i32.const 1776 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 88 + i32.const 25 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 1 + global.set $~argumentsLength + i32.const 65600 + call $~lib/string/String.fromCharCode@varargs + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 2816 + local.get $0 i32.store local.get $0 - i32.const 2336 - i32.store offset=4 - i32.const 2816 - i32.const 2336 - call $~lib/string/String#localeCompare - i32.const 1 - i32.ne + i32.const 1840 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 89 + i32.const 26 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 1 + global.set $~argumentsLength + i32.const 54 + call $~lib/string/String.fromCharCode@varargs + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 2880 + local.get $0 i32.store local.get $0 - i32.const 2336 - i32.store offset=4 - i32.const 2880 - i32.const 2336 - call $~lib/string/String#localeCompare - i32.const 1 - i32.ne + i32.const 1872 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 90 + i32.const 27 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 1 + global.set $~argumentsLength + i32.const 65590 + call $~lib/string/String.fromCharCode@varargs + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 2912 + local.get $0 i32.store local.get $0 - i32.const 2336 - i32.store offset=4 - i32.const 2912 - i32.const 2336 - call $~lib/string/String#localeCompare - i32.const 1 - i32.ne + i32.const 1872 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 91 + i32.const 28 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 55296 + i32.const 57088 + call $~lib/string/String.fromCharCode + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 2880 + local.get $0 i32.store local.get $0 - i32.const 2944 - i32.store offset=4 - i32.const 2880 - i32.const 2944 - call $~lib/string/String#localeCompare - i32.const 1 - i32.ne + i32.const 1904 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 92 + i32.const 29 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 2 + i32.const 4 + i32.const 1936 + call $~lib/rt/__newArray + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 2336 - i32.store local.get $0 - i32.const 2912 i32.store offset=4 - i32.const 2336 - i32.const 2912 - call $~lib/string/String#localeCompare - i32.const -1 - i32.ne + local.get $0 + call $~lib/string/String.fromCharCodes + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1968 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 93 + i32.const 30 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 3 + i32.const 4 + i32.const 2000 + call $~lib/rt/__newArray + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 2944 - i32.store local.get $0 - i32.const 2880 i32.store offset=4 - i32.const 2944 - i32.const 2880 - call $~lib/string/String#localeCompare - i32.const -1 - i32.ne + local.get $0 + call $~lib/string/String.fromCharCodes + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 2032 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 94 + i32.const 31 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 5 + i32.const 4 + i32.const 2064 + call $~lib/rt/__newArray + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1712 - i32.store local.get $0 - i32.const 2304 i32.store offset=4 - i32.const 1712 - i32.const 2304 - call $~lib/string/String#localeCompare - i32.const -1 - i32.ne + local.get $0 + call $~lib/string/String.fromCharCodes + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 2112 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 95 + i32.const 32 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 0 + call $~lib/string/String.fromCodePoint + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1776 + local.get $0 i32.store local.get $0 - i32.const 1712 - i32.store offset=4 i32.const 1776 - i32.const 1712 - call $~lib/string/String#localeCompare - i32.const 1 - i32.ne + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 96 + i32.const 34 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=8 - i32.const 1712 - call $~lib/string/String#trimStart + i32.const 54 + call $~lib/string/String.fromCodePoint local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 local.get $0 - i32.const 1712 + i32.const 1872 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 98 + i32.const 35 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2976 - i32.store offset=8 - i32.const 2976 - call $~lib/string/String#trimStart + i32.const 119558 + call $~lib/string/String.fromCodePoint local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2976 - i32.store offset=4 local.get $0 - i32.const 2976 + i32.const 2144 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 99 + i32.const 36 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3008 - i32.store offset=8 - i32.const 3008 - call $~lib/string/String#trimStart - local.set $0 + global.get $std/string/str + local.tee $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 26636 + i32.lt_s + br_if $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 1 + i32.shr_u + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 3056 - i32.store offset=4 + i32.const 2176 + i32.store + block $__inlined_func$~lib/string/String#startsWith$296 + local.get $4 + i32.const 2172 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.lt_s + 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#startsWith$296 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 2176 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 2176 + local.get $4 + call $~lib/util/string/compareImpl + i32.eqz + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + end local.get $0 - i32.const 3056 - call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 100 + i32.const 38 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=8 - i32.const 1712 - call $~lib/string/String#trimEnd - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $std/string/str + local.tee $0 i32.store + i32.const 1 + global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 - local.get $0 - i32.const 1712 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 102 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2976 - i32.store offset=8 - i32.const 2976 - call $~lib/string/String#trimEnd - local.set $0 + i32.const 26636 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__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 2976 + i32.const 2208 i32.store offset=4 - local.get $0 - i32.const 2976 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 103 - i32.const 1 - call $~lib/builtins/abort - unreachable - end global.get $~lib/memory/__stack_pointer - i32.const 3008 - i32.store offset=8 - i32.const 3008 - call $~lib/string/String#trimEnd - local.set $0 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 26636 + i32.lt_s + br_if $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 1 + i32.shr_u + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.store offset=4 + i32.const 2208 + i32.store + block $__inlined_func$~lib/string/String#endsWith$297 + i32.const 536870910 + local.get $4 + local.get $4 + i32.const 536870910 + i32.gt_s + select + i32.const 2204 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.sub + local.tee $5 + i32.const 0 + i32.lt_s + 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#endsWith$297 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 2208 + i32.store offset=4 + local.get $0 + local.get $5 + i32.const 2208 + local.get $4 + call $~lib/util/string/compareImpl + i32.eqz + local.set $0 + 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 - i32.const 3104 - call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 104 + i32.const 39 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=8 - i32.const 1712 - call $~lib/string/String#trim - local.set $0 + global.get $std/string/str + local.tee $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 26636 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__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 1712 + i32.const 2240 i32.store offset=4 local.get $0 - i32.const 1712 - call $~lib/string/String.__eq + i32.const 2240 + i32.const 0 + call $~lib/string/String#indexOf + i32.const -1 + i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer i32.eqz if i32.const 0 i32.const 1120 - i32.const 106 + i32.const 40 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 2976 + global.get $std/string/str + local.tee $0 i32.store offset=8 - i32.const 2976 - call $~lib/string/String#trim + local.get $0 + i32.const 0 + i32.const 2272 + call $~lib/string/String#padStart local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 2976 + global.get $std/string/str + local.tee $4 i32.store offset=4 local.get $0 - i32.const 2976 + local.get $4 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 107 + i32.const 42 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3008 + global.get $std/string/str + local.tee $0 i32.store offset=8 - i32.const 3008 - call $~lib/string/String#trim + local.get $0 + i32.const 15 + i32.const 2272 + call $~lib/string/String#padStart local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 2336 + global.get $std/string/str + local.tee $4 i32.store offset=4 local.get $0 - i32.const 2336 + local.get $4 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 108 + i32.const 43 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 1712 + i32.const 3 + i32.const 2272 + call $~lib/string/String#padStart + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 3152 - i32.store offset=16 local.get $0 - i32.const 3152 i32.store - i32.const 3152 - call $~lib/util/string/strtob - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 111 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 3200 - i32.store offset=20 local.get $0 - i32.const 3200 - i32.store - i32.const 3200 - call $~lib/util/string/strtob + i32.const 2304 + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 112 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 3248 - i32.store offset=24 - local.get $0 - i32.const 3248 - i32.store - i32.const 3248 - call $~lib/util/string/strtob - if - i32.const 0 - i32.const 1120 - i32.const 113 + i32.const 44 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1712 - i32.store offset=28 + i32.const 10 + i32.const 1712 + call $~lib/string/String#padStart + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1712 i32.store + local.get $0 i32.const 1712 - call $~lib/util/string/strtob + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 114 + i32.const 45 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 1808 + i32.const 100 + i32.const 1712 + call $~lib/string/String#padStart + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 3296 - i32.store offset=32 local.get $0 - i32.const 3296 i32.store - i32.const 3296 - call $~lib/util/string/strtob + local.get $0 + i32.const 1808 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 115 + i32.const 46 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 2336 + i32.const 5 + i32.const 2272 + call $~lib/string/String#padStart + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 3328 - i32.store offset=36 local.get $0 - i32.const 3328 i32.store - i32.const 3328 - call $~lib/util/string/strtob + local.get $0 + i32.const 2368 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 116 + i32.const 47 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 2336 + i32.const 6 + i32.const 2400 + call $~lib/string/String#padStart + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 3360 - i32.store offset=40 local.get $0 - i32.const 3360 i32.store - i32.const 3360 - call $~lib/util/string/strtob + local.get $0 + i32.const 2432 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 117 + i32.const 48 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 2336 + i32.const 8 + i32.const 2400 + call $~lib/string/String#padStart + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 3392 + local.get $0 i32.store - i32.const 3392 - i32.const 0 - call $~lib/string/parseInt - f64.const 0 - f64.ne + local.get $0 + i32.const 2464 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 119 + i32.const 49 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3424 - i32.store - i32.const 3424 + global.get $std/string/str + local.tee $0 + i32.store offset=8 + local.get $0 i32.const 0 - call $~lib/string/parseInt - f64.const 0 - f64.ne + i32.const 2272 + call $~lib/string/String#padEnd + 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=4 + local.get $0 + local.get $4 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 120 + i32.const 51 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3456 + global.get $std/string/str + local.tee $0 + i32.store offset=8 + local.get $0 + i32.const 15 + i32.const 2272 + call $~lib/string/String#padEnd + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - i32.const 3456 - i32.const 0 - call $~lib/string/parseInt - f64.const 1 - f64.ne + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $4 + i32.store offset=4 + local.get $0 + local.get $4 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 121 + i32.const 52 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 1712 + i32.const 3 + i32.const 2272 + call $~lib/string/String#padEnd + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 3488 + local.get $0 i32.store - i32.const 3488 - i32.const 0 - call $~lib/string/parseInt - f64.const 1 - f64.ne + local.get $0 + i32.const 2304 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 122 + i32.const 53 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 1712 + i32.const 10 + i32.const 1712 + call $~lib/string/String#padEnd + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 3520 + local.get $0 i32.store - i32.const 3520 - i32.const 0 - call $~lib/string/parseInt - f64.const 5 - f64.ne + local.get $0 + i32.const 1712 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 123 + i32.const 54 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 1808 + i32.const 100 + i32.const 1712 + call $~lib/string/String#padEnd + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 3552 + local.get $0 i32.store - i32.const 3552 - i32.const 0 - call $~lib/string/parseInt - f64.const 455 - f64.ne + local.get $0 + i32.const 1808 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 124 + i32.const 55 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 2336 + i32.const 5 + i32.const 2272 + call $~lib/string/String#padEnd + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 3584 + local.get $0 i32.store - i32.const 3584 - i32.const 0 - call $~lib/string/parseInt - f64.const 3855 - f64.ne + local.get $0 + i32.const 2512 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 125 + i32.const 56 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 2336 + i32.const 6 + i32.const 2336 + call $~lib/string/String#padEnd + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 3616 + local.get $0 i32.store - i32.const 3616 - i32.const 0 - call $~lib/string/parseInt - f64.const 3855 - f64.ne + local.get $0 + i32.const 2544 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 126 + i32.const 57 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 2336 + i32.const 8 + i32.const 2336 + call $~lib/string/String#padEnd + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 3648 + local.get $0 i32.store - i32.const 3648 - i32.const 0 - call $~lib/string/parseInt - f64.const 11 - f64.ne + local.get $0 + i32.const 2576 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 127 + i32.const 58 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3680 - i32.store - i32.const 3680 + i32.const 1712 + i32.const 1712 i32.const 0 - call $~lib/string/parseInt - f64.const 1 - f64.ne + call $~lib/string/String#indexOf if i32.const 0 i32.const 1120 - i32.const 128 + i32.const 60 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3712 - i32.store - i32.const 3712 + i32.const 1712 + i32.const 2176 i32.const 0 - call $~lib/string/parseInt - f64.const -123 - f64.ne + call $~lib/string/String#indexOf + i32.const -1 + i32.ne if i32.const 0 i32.const 1120 - i32.const 129 + i32.const 61 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3744 - i32.store - i32.const 3744 + i32.const 1808 + i32.const 1808 i32.const 0 - call $~lib/string/parseInt - f64.const 123 - f64.ne + call $~lib/string/String#indexOf if i32.const 0 i32.const 1120 - i32.const 130 + i32.const 62 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3776 + global.get $std/string/str + local.tee $0 i32.store - i32.const 3776 + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $4 + i32.store offset=4 + local.get $0 + local.get $4 i32.const 0 - call $~lib/string/parseInt - f64.const -12 - f64.ne + call $~lib/string/String#indexOf if i32.const 0 i32.const 1120 - i32.const 131 + i32.const 63 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3392 + global.get $std/string/str + local.tee $0 i32.store - i32.const 3392 + local.get $0 + i32.const 1712 i32.const 0 - call $~lib/string/parseInt - f64.const 0 - f64.ne + call $~lib/string/String#indexOf if i32.const 0 i32.const 1120 - i32.const 132 + i32.const 64 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3808 + global.get $std/string/str + local.tee $0 i32.store - i32.const 3808 + local.get $0 + i32.const 2624 i32.const 0 - call $~lib/string/parseInt - f64.const 0 - f64.ne + call $~lib/string/String#indexOf + i32.const 2 + i32.ne if i32.const 0 i32.const 1120 - i32.const 133 + i32.const 65 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3840 + global.get $std/string/str + local.tee $0 i32.store - i32.const 3840 - i32.const 16 - call $~lib/string/parseInt - f64.const 2833 - f64.ne + local.get $0 + i32.const 2656 + i32.const 0 + call $~lib/string/String#indexOf + i32.const -1 + i32.ne if i32.const 0 i32.const 1120 - i32.const 134 + i32.const 66 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3872 + global.get $std/string/str + local.tee $0 i32.store - i32.const 3872 - i32.const 0 - call $~lib/string/parseInt - f64.const 1 - f64.ne + local.get $0 + i32.const 2624 + i32.const 2 + call $~lib/string/String#indexOf + i32.const 2 + i32.ne if i32.const 0 i32.const 1120 - i32.const 135 + i32.const 67 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3904 + global.get $std/string/str + local.tee $0 i32.store - i32.const 3904 - i32.const 0 - call $~lib/string/parseInt - f64.const 1 - f64.ne + local.get $0 + i32.const 2624 + i32.const 3 + call $~lib/string/String#indexOf + i32.const -1 + i32.ne if i32.const 0 i32.const 1120 - i32.const 136 + i32.const 68 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3936 + global.get $std/string/str + local.tee $0 i32.store - i32.const 3936 - i32.const 0 - call $~lib/string/parseInt - f64.const 1 - f64.ne + local.get $0 + i32.const 2688 + i32.const -1 + call $~lib/string/String#indexOf + i32.const 2 + i32.ne if i32.const 0 i32.const 1120 - i32.const 137 + i32.const 69 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3968 - i32.store - i32.const 3968 - i32.const 0 - call $~lib/string/parseInt - i64.reinterpret_f64 - i64.const 63 - i64.shr_u - i64.eqz + i32.const 1 + global.set $~argumentsLength + i32.const 1712 + i32.const 1712 + call $~lib/string/String#lastIndexOf@varargs if i32.const 0 i32.const 1120 - i32.const 138 + i32.const 71 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4000 - i32.store - i32.const 4000 - i32.const 0 - call $~lib/string/parseInt - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4048 - i32.store - i32.const 4048 - i32.const 16 - call $~lib/string/parseInt - local.get $1 - f64.ne + i32.const 1 + global.set $~argumentsLength + i32.const 1712 + i32.const 2176 + call $~lib/string/String#lastIndexOf@varargs + i32.const -1 + i32.ne if i32.const 0 i32.const 1120 - i32.const 139 + i32.const 72 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 4080 + global.get $std/string/str + local.tee $0 i32.store - i32.const 4080 - i32.const 0 - call $~lib/string/parseInt - f64.const 36893488147419103232 - f64.ne + i32.const 1 + global.set $~argumentsLength + local.get $0 + i32.const 1712 + call $~lib/string/String#lastIndexOf@varargs + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $4 + i32.store + local.get $4 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.ne if i32.const 0 i32.const 1120 - i32.const 140 + i32.const 73 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 4080 + global.get $std/string/str + local.tee $0 i32.store - i32.const 4080 - i32.const 13 - call $~lib/string/parseInt - f64.const 5135857308667095285760 - f64.ne + i32.const 1 + global.set $~argumentsLength + local.get $0 + i32.const 2624 + call $~lib/string/String#lastIndexOf@varargs + i32.const 2 + i32.ne if i32.const 0 i32.const 1120 - i32.const 141 + i32.const 74 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 4144 + global.get $std/string/str + local.tee $0 i32.store - i32.const 4144 - i32.const 10 - call $~lib/string/parseInt - f64.const -1.e+24 - f64.ne + i32.const 1 + global.set $~argumentsLength + local.get $0 + i32.const 2656 + call $~lib/string/String#lastIndexOf@varargs + i32.const -1 + i32.ne if i32.const 0 i32.const 1120 - i32.const 142 + i32.const 75 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 4224 + global.get $std/string/str + local.tee $0 i32.store - i32.const 4224 - i32.const 16 - call $~lib/string/parseInt - f64.const 75557863725914323419136 - f64.ne + i32.const 1 + global.set $~argumentsLength + local.get $0 + i32.const 2720 + call $~lib/string/String#lastIndexOf@varargs + i32.const 15 + i32.ne if i32.const 0 i32.const 1120 - i32.const 143 + i32.const 76 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 4288 + global.get $std/string/str + local.tee $0 i32.store - i32.const 4288 - i32.const 0 - call $~lib/string/parseInt - f64.const 1 - f64.ne + local.get $0 + i32.const 2624 + i32.const 2 + call $~lib/string/String#lastIndexOf + i32.const 2 + i32.ne if i32.const 0 i32.const 1120 - i32.const 144 + i32.const 77 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 4320 + global.get $std/string/str + local.tee $0 i32.store - i32.const 4320 - i32.const 0 - call $~lib/string/parseInt - f64.const 2 - f64.ne + local.get $0 + i32.const 2624 + i32.const 3 + call $~lib/string/String#lastIndexOf + i32.const 2 + i32.ne if i32.const 0 i32.const 1120 - i32.const 145 + i32.const 78 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 4368 + global.get $std/string/str + local.tee $0 i32.store - i32.const 4368 - i32.const 0 - call $~lib/string/parseInt - f64.const 1 - f64.ne + local.get $0 + i32.const 2688 + i32.const -1 + call $~lib/string/String#lastIndexOf + i32.const -1 + i32.ne if i32.const 0 i32.const 1120 - i32.const 147 + i32.const 79 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 4400 + global.get $std/string/str + local.tee $0 i32.store - i32.const 4400 + local.get $0 + i32.const 2752 i32.const 0 - call $~lib/string/parseInt - f64.const 2 - f64.ne + call $~lib/string/String#lastIndexOf + i32.const -1 + i32.ne if i32.const 0 i32.const 1120 - i32.const 148 + i32.const 80 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 4448 + global.get $std/string/str + local.tee $0 i32.store - i32.const 4448 + local.get $0 + i32.const 2176 i32.const 0 - call $~lib/string/parseInt - f64.const 0 - f64.ne + call $~lib/string/String#lastIndexOf if i32.const 0 i32.const 1120 - i32.const 149 + i32.const 81 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4480 - i32.store - i32.const 4480 - i32.const 0 - call $~lib/string/parseInt - f64.const 1 - f64.ne + i32.const 1712 + i32.const 1712 + call $~lib/string/String#localeCompare if i32.const 0 i32.const 1120 - i32.const 150 + i32.const 83 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4512 - i32.store - i32.const 4512 - i32.const 0 - call $~lib/string/parseInt - f64.const 0 - f64.ne + i32.const 1808 + i32.const 1712 + call $~lib/string/String#localeCompare + i32.const 1 + i32.ne if i32.const 0 i32.const 1120 - i32.const 151 + i32.const 84 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store i32.const 1712 - i32.const 0 - call $~lib/string/parseInt - local.tee $1 - local.get $1 - f64.eq + i32.const 1808 + call $~lib/string/String#localeCompare + i32.const -1 + i32.ne if i32.const 0 i32.const 1120 - i32.const 152 + i32.const 85 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4560 - i32.store - i32.const 4560 - i32.const 0 - call $~lib/string/parseInt - local.tee $1 - local.get $1 - f64.eq + i32.const 2784 + i32.const 2784 + call $~lib/string/String#localeCompare if i32.const 0 i32.const 1120 - i32.const 153 + i32.const 86 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4592 - i32.store - i32.const 4592 - i32.const 0 - call $~lib/string/parseInt - local.tee $1 - local.get $1 - f64.eq + i32.const 2336 + i32.const 2816 + call $~lib/string/String#localeCompare + i32.const -1 + i32.ne if i32.const 0 i32.const 1120 - i32.const 154 + i32.const 87 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2400 - i32.store - i32.const 2400 - i32.const 37 - call $~lib/string/parseInt - local.tee $1 - local.get $1 - f64.eq + i32.const 2336 + i32.const 2848 + call $~lib/string/String#localeCompare + i32.const -1 + i32.ne if i32.const 0 i32.const 1120 - i32.const 155 + i32.const 88 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4624 - i32.store - i32.const 4624 - i32.const 0 - call $~lib/string/parseInt - local.tee $1 - local.get $1 - f64.eq + i32.const 2816 + i32.const 2336 + call $~lib/string/String#localeCompare + i32.const 1 + i32.ne if i32.const 0 i32.const 1120 - i32.const 156 + i32.const 89 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4656 - i32.store - i32.const 4656 - i32.const 0 - call $~lib/string/parseInt - local.tee $1 - local.get $1 - f64.eq + i32.const 2880 + i32.const 2336 + call $~lib/string/String#localeCompare + i32.const 1 + i32.ne if i32.const 0 i32.const 1120 - i32.const 157 + i32.const 90 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 4656 - i32.store - local.get $0 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 26444 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 4656 - i32.store - i32.const 4656 - call $~lib/util/string/strtod - f32.demote_f64 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $2 - f32.eq + i32.const 2912 + i32.const 2336 + call $~lib/string/String#localeCompare + i32.const 1 + i32.ne if i32.const 0 i32.const 1120 - i32.const 158 + i32.const 91 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4656 - i32.store - i32.const 4656 - call $~lib/number/F64.parseFloat - local.tee $1 - local.get $1 - f64.eq + i32.const 2880 + i32.const 2944 + call $~lib/string/String#localeCompare + i32.const 1 + i32.ne if i32.const 0 i32.const 1120 - i32.const 159 + i32.const 92 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 4656 - i32.store offset=44 - local.get $0 - i32.const 4656 - i32.store - i32.const 4656 - call $~lib/util/string/strtod - f32.demote_f64 - local.tee $2 - local.get $2 - f32.eq + i32.const 2336 + i32.const 2912 + call $~lib/string/String#localeCompare + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 93 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2944 + i32.const 2880 + call $~lib/string/String#localeCompare + i32.const -1 + i32.ne if i32.const 0 i32.const 1120 - i32.const 160 + i32.const 94 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 4656 - i32.store offset=48 - local.get $0 - i32.const 4656 - i32.store - i32.const 4656 - call $~lib/util/string/strtod - local.tee $1 - local.get $1 - f64.eq + i32.const 1712 + i32.const 2304 + call $~lib/string/String#localeCompare + i32.const -1 + i32.ne if i32.const 0 i32.const 1120 - i32.const 161 + i32.const 95 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 4880 - i32.store - local.get $0 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 26444 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 4880 - i32.store - call $~lib/util/string/strtol - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.const 2147483647 + i32.const 1776 + i32.const 1712 + call $~lib/string/String#localeCompare + i32.const 1 i32.ne if i32.const 0 i32.const 1120 - i32.const 163 + i32.const 96 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 1712 + call $~lib/string/String#trimStart + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 4880 - i32.store offset=52 local.get $0 - i32.const 4880 i32.store - call $~lib/util/string/strtol - i32.const 2147483647 - i32.ne + local.get $0 + i32.const 1712 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 164 + i32.const 98 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 2976 + call $~lib/string/String#trimStart + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 4928 - i32.store local.get $0 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 26444 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 i32.store local.get $0 - i32.const 4928 - i32.store - call $~lib/util/string/strtol - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - i64.const 9223372036854775807 - i64.ne + i32.const 2976 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 165 + i32.const 99 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 3008 + call $~lib/string/String#trimStart + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 4928 - i32.store offset=56 local.get $0 - i32.const 4928 i32.store - call $~lib/util/string/strtol - i64.const 9223372036854775807 - i64.ne + local.get $0 + i32.const 3056 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 166 + i32.const 100 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 1712 + call $~lib/string/String#trimEnd + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 3392 + local.get $0 i32.store - i32.const 3392 - call $~lib/number/F64.parseFloat - f64.const 0 - f64.ne + local.get $0 + i32.const 1712 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 169 + i32.const 102 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 2976 + call $~lib/string/String#trimEnd + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 3456 + local.get $0 i32.store - i32.const 3456 - call $~lib/number/F64.parseFloat - f64.const 1 - f64.ne + local.get $0 + i32.const 2976 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 170 + i32.const 103 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 3008 + call $~lib/string/String#trimEnd + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 4992 + local.get $0 i32.store - i32.const 4992 - call $~lib/number/F64.parseFloat - f64.const 1 - f64.ne + local.get $0 + i32.const 3104 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 171 + i32.const 104 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 1712 + call $~lib/string/String#trim + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 5024 + local.get $0 i32.store - i32.const 5024 - call $~lib/number/F64.parseFloat - f64.const 1 - f64.ne + local.get $0 + i32.const 1712 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 172 + i32.const 106 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 2976 + call $~lib/string/String#trim + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 5056 + local.get $0 i32.store - i32.const 5056 - call $~lib/number/F64.parseFloat - f64.const 1e-05 - f64.ne + local.get $0 + i32.const 2976 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 173 + i32.const 107 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 3008 + call $~lib/string/String#trim + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 5088 + local.get $0 i32.store - i32.const 5088 - call $~lib/number/F64.parseFloat - f64.const -1e-05 - f64.ne + local.get $0 + i32.const 2336 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 174 + i32.const 108 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 5120 + i32.const 3152 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 3152 i32.store - i32.const 5120 - call $~lib/number/F64.parseFloat - f64.const -3e-23 - f64.ne + i32.const 3152 + call $~lib/util/string/strtob + i32.eqz if i32.const 0 i32.const 1120 - i32.const 175 + i32.const 111 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 5168 + i32.const 3200 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 3200 i32.store - i32.const 5168 - call $~lib/number/F64.parseFloat - f64.const 3e21 - f64.ne + i32.const 3200 + call $~lib/util/string/strtob + i32.eqz if i32.const 0 i32.const 1120 - i32.const 176 + i32.const 112 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 5216 + i32.const 3248 + i32.store offset=24 + global.get $~lib/memory/__stack_pointer + i32.const 3248 i32.store - i32.const 5216 - call $~lib/number/F64.parseFloat - f64.const 0.1 - f64.ne + i32.const 3248 + call $~lib/util/string/strtob if i32.const 0 i32.const 1120 - i32.const 177 + i32.const 113 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 5248 + i32.const 1712 + i32.store offset=28 + global.get $~lib/memory/__stack_pointer + i32.const 1712 i32.store - i32.const 5248 - call $~lib/number/F64.parseFloat - f64.const 0.1 - f64.ne + i32.const 1712 + call $~lib/util/string/strtob if i32.const 0 i32.const 1120 - i32.const 178 + i32.const 114 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 5280 + i32.const 3296 + i32.store offset=32 + global.get $~lib/memory/__stack_pointer + i32.const 3296 i32.store - i32.const 5280 - call $~lib/number/F64.parseFloat - f64.const 0.1 - f64.ne + i32.const 3296 + call $~lib/util/string/strtob if i32.const 0 i32.const 1120 - i32.const 179 + i32.const 115 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 5312 + i32.const 3328 + i32.store offset=36 + global.get $~lib/memory/__stack_pointer + i32.const 3328 i32.store - i32.const 5312 - call $~lib/number/F64.parseFloat - f64.const 0.25 - f64.ne + i32.const 3328 + call $~lib/util/string/strtob if i32.const 0 i32.const 1120 - i32.const 180 + i32.const 116 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 5344 + i32.const 3360 + i32.store offset=40 + global.get $~lib/memory/__stack_pointer + i32.const 3360 i32.store - i32.const 5344 - call $~lib/number/F64.parseFloat - f64.const 1e3 - f64.ne + i32.const 3360 + call $~lib/util/string/strtob if i32.const 0 i32.const 1120 - i32.const 181 + i32.const 117 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 5376 - i32.store - i32.const 5376 - call $~lib/number/F64.parseFloat - f64.const 1e-10 + i32.const 3392 + i32.const 0 + call $~lib/string/parseInt + f64.const 0 f64.ne if i32.const 0 i32.const 1120 - i32.const 182 + i32.const 119 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 5424 - i32.store - i32.const 5424 - call $~lib/number/F64.parseFloat - f64.const 1e-30 + i32.const 3424 + i32.const 0 + call $~lib/string/parseInt + f64.const 0 f64.ne if i32.const 0 i32.const 1120 - i32.const 183 + i32.const 120 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 5472 - i32.store - i32.const 5472 - call $~lib/number/F64.parseFloat - f64.const 1e-323 + i32.const 3456 + i32.const 0 + call $~lib/string/parseInt + f64.const 1 f64.ne if i32.const 0 i32.const 1120 - i32.const 184 + i32.const 121 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 5520 - i32.store - i32.const 5520 - call $~lib/number/F64.parseFloat - f64.const 0 + i32.const 3488 + i32.const 0 + call $~lib/string/parseInt + f64.const 1 f64.ne if i32.const 0 i32.const 1120 - i32.const 185 + i32.const 122 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 5568 - i32.store - i32.const 5568 - call $~lib/number/F64.parseFloat - f64.const 1.e+308 + i32.const 3520 + i32.const 0 + call $~lib/string/parseInt + f64.const 5 f64.ne if i32.const 0 i32.const 1120 - i32.const 186 + i32.const 123 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 5600 - i32.store - i32.const 5600 - call $~lib/number/F64.parseFloat - f64.const inf + i32.const 3552 + i32.const 0 + call $~lib/string/parseInt + f64.const 455 f64.ne if i32.const 0 i32.const 1120 - i32.const 187 + i32.const 124 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store - i32.const 1712 - call $~lib/number/F64.parseFloat - local.tee $1 - local.get $1 - f64.eq + i32.const 3584 + i32.const 0 + call $~lib/string/parseInt + f64.const 3855 + f64.ne if i32.const 0 i32.const 1120 - i32.const 188 + i32.const 125 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 5632 - i32.store - i32.const 5632 - call $~lib/number/F64.parseFloat - f64.const 0.1 + i32.const 3616 + i32.const 0 + call $~lib/string/parseInt + f64.const 3855 f64.ne if i32.const 0 i32.const 1120 - i32.const 191 + i32.const 126 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 5680 - i32.store - i32.const 5680 - call $~lib/number/F64.parseFloat - f64.const 1e-10 + i32.const 3648 + i32.const 0 + call $~lib/string/parseInt + f64.const 11 f64.ne if i32.const 0 i32.const 1120 - i32.const 192 + i32.const 127 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 5728 - i32.store - i32.const 5728 - call $~lib/number/F64.parseFloat - f64.const 10 + i32.const 3680 + i32.const 0 + call $~lib/string/parseInt + f64.const 1 f64.ne if i32.const 0 i32.const 1120 - i32.const 193 + i32.const 128 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 5776 - i32.store - i32.const 5776 - call $~lib/number/F64.parseFloat - f64.const 1 + i32.const 3712 + i32.const 0 + call $~lib/string/parseInt + f64.const -123 f64.ne if i32.const 0 i32.const 1120 - i32.const 194 + i32.const 129 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 5808 - i32.store - i32.const 5808 - call $~lib/number/F64.parseFloat - f64.const 1 + i32.const 3744 + i32.const 0 + call $~lib/string/parseInt + f64.const 123 f64.ne if i32.const 0 i32.const 1120 - i32.const 195 + i32.const 130 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 5840 - i32.store - i32.const 5840 - call $~lib/number/F64.parseFloat - f64.const 10 + i32.const 3776 + i32.const 0 + call $~lib/string/parseInt + f64.const -12 f64.ne if i32.const 0 i32.const 1120 - i32.const 196 + i32.const 131 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 5888 - i32.store - i32.const 5888 - call $~lib/number/F64.parseFloat - f64.const 123456789 + i32.const 3392 + i32.const 0 + call $~lib/string/parseInt + f64.const 0 f64.ne if i32.const 0 i32.const 1120 - i32.const 197 + i32.const 132 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 5936 - i32.store - i32.const 5936 - call $~lib/number/F64.parseFloat - f64.const 1 + i32.const 3808 + i32.const 0 + call $~lib/string/parseInt + f64.const 0 f64.ne if i32.const 0 i32.const 1120 - i32.const 198 + i32.const 133 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 5984 - i32.store - i32.const 5984 - call $~lib/number/F64.parseFloat - f64.const 1e-60 + i32.const 3840 + i32.const 16 + call $~lib/string/parseInt + f64.const 2833 f64.ne if i32.const 0 i32.const 1120 - i32.const 200 + i32.const 134 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 6016 - i32.store - i32.const 6016 - call $~lib/number/F64.parseFloat - f64.const 1.e+60 + i32.const 3872 + i32.const 0 + call $~lib/string/parseInt + f64.const 1 f64.ne if i32.const 0 i32.const 1120 - i32.const 201 + i32.const 135 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 6048 - i32.store - i32.const 6048 - call $~lib/number/F64.parseFloat - f64.const 123.4 + i32.const 3904 + i32.const 0 + call $~lib/string/parseInt + f64.const 1 f64.ne if i32.const 0 i32.const 1120 - i32.const 204 + i32.const 136 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 6080 - i32.store - i32.const 6080 - call $~lib/number/F64.parseFloat + i32.const 3936 + i32.const 0 + call $~lib/string/parseInt f64.const 1 f64.ne if i32.const 0 i32.const 1120 - i32.const 205 + i32.const 137 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 6112 - i32.store - i32.const 6112 - call $~lib/number/F64.parseFloat - f64.const -1.1 - f64.ne + i32.const 3968 + i32.const 0 + call $~lib/string/parseInt + i64.reinterpret_f64 + i64.const 63 + i64.shr_u + i64.eqz if i32.const 0 i32.const 1120 - i32.const 206 + i32.const 138 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 6160 - i32.store - i32.const 6160 - call $~lib/number/F64.parseFloat - f64.const 10 + i32.const 4000 + i32.const 0 + call $~lib/string/parseInt + i32.const 4048 + i32.const 16 + call $~lib/string/parseInt f64.ne if i32.const 0 i32.const 1120 - i32.const 207 + i32.const 139 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 6208 - i32.store - i32.const 6208 - call $~lib/number/F64.parseFloat - f64.const 10 + i32.const 4080 + i32.const 0 + call $~lib/string/parseInt + f64.const 36893488147419103232 f64.ne if i32.const 0 i32.const 1120 - i32.const 208 + i32.const 140 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 6256 - i32.store - i32.const 6256 - call $~lib/number/F64.parseFloat - f64.const 0.022 + i32.const 4080 + i32.const 13 + call $~lib/string/parseInt + f64.const 5135857308667095285760 f64.ne if i32.const 0 i32.const 1120 - i32.const 209 + i32.const 141 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 6304 - i32.store - i32.const 6304 - call $~lib/number/F64.parseFloat - f64.const 11 + i32.const 4144 + i32.const 10 + call $~lib/string/parseInt + f64.const -1.e+24 f64.ne if i32.const 0 i32.const 1120 - i32.const 210 + i32.const 142 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3808 - i32.store - i32.const 3808 - call $~lib/number/F64.parseFloat - f64.const 0 + i32.const 4224 + i32.const 16 + call $~lib/string/parseInt + f64.const 75557863725914323419136 f64.ne if i32.const 0 i32.const 1120 - i32.const 211 + i32.const 143 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 6336 - i32.store - i32.const 6336 - call $~lib/number/F64.parseFloat - f64.const 0 + i32.const 4288 + i32.const 0 + call $~lib/string/parseInt + f64.const 1 f64.ne if i32.const 0 i32.const 1120 - i32.const 212 + i32.const 144 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 6368 - i32.store - i32.const 6368 - call $~lib/number/F64.parseFloat - f64.const 0 + i32.const 4320 + i32.const 0 + call $~lib/string/parseInt + f64.const 2 f64.ne if i32.const 0 i32.const 1120 - i32.const 213 + i32.const 145 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 6400 - i32.store - i32.const 6400 - call $~lib/number/F64.parseFloat - f64.const 1.1 + i32.const 4368 + i32.const 0 + call $~lib/string/parseInt + f64.const 1 f64.ne if i32.const 0 i32.const 1120 - i32.const 214 + i32.const 147 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 6432 - i32.store - i32.const 6432 - call $~lib/number/F64.parseFloat - f64.const -1.1 + i32.const 4400 + i32.const 0 + call $~lib/string/parseInt + f64.const 2 f64.ne if i32.const 0 i32.const 1120 - i32.const 215 + i32.const 148 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 6464 - i32.store - i32.const 6464 - call $~lib/number/F64.parseFloat - f64.const -1.1 + i32.const 4448 + i32.const 0 + call $~lib/string/parseInt + f64.const 0 f64.ne if i32.const 0 i32.const 1120 - i32.const 216 + i32.const 149 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 6496 - i32.store - i32.const 6496 - call $~lib/number/F64.parseFloat - f64.const -1.1 + i32.const 4480 + i32.const 0 + call $~lib/string/parseInt + f64.const 1 f64.ne if i32.const 0 i32.const 1120 - i32.const 217 + i32.const 150 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 6528 - i32.store - i32.const 6528 - call $~lib/number/F64.parseFloat - f64.const -1.1 + i32.const 4512 + i32.const 0 + call $~lib/string/parseInt + f64.const 0 f64.ne if i32.const 0 i32.const 1120 - i32.const 218 + i32.const 151 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 6560 - i32.store - i32.const 6560 - call $~lib/number/F64.parseFloat - f64.const 0 - f64.ne + i32.const 1712 + i32.const 0 + call $~lib/string/parseInt + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 1120 - i32.const 219 + i32.const 152 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 6592 - i32.store - i32.const 6592 - call $~lib/number/F64.parseFloat - f64.const 0 - f64.ne + i32.const 4560 + i32.const 0 + call $~lib/string/parseInt + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 1120 - i32.const 220 + i32.const 153 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 6624 - i32.store - i32.const 6624 - call $~lib/number/F64.parseFloat - f64.const 1 - f64.ne + i32.const 4592 + i32.const 0 + call $~lib/string/parseInt + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 1120 - i32.const 221 + i32.const 154 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 6656 - i32.store - i32.const 6656 - call $~lib/number/F64.parseFloat - f64.const 0 - f64.ne + i32.const 2400 + i32.const 37 + call $~lib/string/parseInt + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 1120 - i32.const 222 + i32.const 155 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 6688 - i32.store - i32.const 6688 - call $~lib/number/F64.parseFloat - f64.const 0 - f64.ne + call $~lib/builtins/abort + unreachable + end + i32.const 4624 + i32.const 0 + call $~lib/string/parseInt + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 1120 - i32.const 223 + i32.const 156 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 6720 - i32.store - i32.const 6720 - call $~lib/number/F64.parseFloat - f64.const 10 - f64.ne + i32.const 4656 + i32.const 0 + call $~lib/string/parseInt + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 1120 - i32.const 224 + i32.const 157 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 6752 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 26636 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store - i32.const 6752 - call $~lib/number/F64.parseFloat - f64.const 10 - f64.ne + global.get $~lib/memory/__stack_pointer + i32.const 4656 + i32.store + i32.const 4656 + call $~lib/util/string/strtod + f32.demote_f64 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + local.get $2 + f32.eq if i32.const 0 i32.const 1120 - i32.const 225 + i32.const 158 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 6800 - i32.store - i32.const 6800 + i32.const 4656 call $~lib/number/F64.parseFloat - f64.const 0 - f64.ne + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 1120 - i32.const 226 + i32.const 159 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 6832 + i32.const 4656 + i32.store offset=44 + global.get $~lib/memory/__stack_pointer + i32.const 4656 i32.store - i32.const 6832 - call $~lib/number/F64.parseFloat - f64.const 1 - f64.ne + i32.const 4656 + call $~lib/util/string/strtod + f32.demote_f64 + local.tee $2 + local.get $2 + f32.eq if i32.const 0 i32.const 1120 - i32.const 227 + i32.const 160 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 6864 + i32.const 4656 + i32.store offset=48 + global.get $~lib/memory/__stack_pointer + i32.const 4656 i32.store - i32.const 6864 - call $~lib/number/F64.parseFloat - f64.const 0.1 - f64.ne + i32.const 4656 + call $~lib/util/string/strtod + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 1120 - i32.const 228 + i32.const 161 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 6896 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 26636 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store - i32.const 6896 - call $~lib/number/F64.parseFloat - f64.const 1 - f64.ne + global.get $~lib/memory/__stack_pointer + i32.const 4880 + i32.store + call $~lib/util/string/strtol + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 2147483647 + i32.ne if i32.const 0 i32.const 1120 - i32.const 229 + i32.const 163 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 6928 + i32.const 4880 + i32.store offset=52 + global.get $~lib/memory/__stack_pointer + i32.const 4880 i32.store - i32.const 6928 - call $~lib/number/F64.parseFloat - f64.const 10 - f64.ne + call $~lib/util/string/strtol + i32.const 2147483647 + i32.ne if i32.const 0 i32.const 1120 - i32.const 230 + i32.const 164 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 6960 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 26636 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store - i32.const 6960 - call $~lib/number/F64.parseFloat - f64.const 1 - f64.ne + global.get $~lib/memory/__stack_pointer + i32.const 4928 + i32.store + call $~lib/util/string/strtol + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i64.const 9223372036854775807 + i64.ne if i32.const 0 i32.const 1120 - i32.const 231 + i32.const 165 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 6992 + i32.const 4928 + i32.store offset=56 + global.get $~lib/memory/__stack_pointer + i32.const 4928 i32.store - i32.const 6992 - call $~lib/number/F64.parseFloat - f64.const 0.1 - f64.ne + call $~lib/util/string/strtol + i64.const 9223372036854775807 + i64.ne if i32.const 0 i32.const 1120 - i32.const 232 + i32.const 166 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7024 - i32.store - i32.const 7024 + i32.const 3392 call $~lib/number/F64.parseFloat - f64.const 0.01 + f64.const 0 f64.ne if i32.const 0 i32.const 1120 - i32.const 233 + i32.const 169 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7072 - i32.store - i32.const 7072 + i32.const 3456 call $~lib/number/F64.parseFloat - f64.const 0 + f64.const 1 f64.ne if i32.const 0 i32.const 1120 - i32.const 234 + i32.const 170 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7104 - i32.store - i32.const 7104 + i32.const 4992 call $~lib/number/F64.parseFloat - f64.const 0 + f64.const 1 f64.ne if i32.const 0 i32.const 1120 - i32.const 235 + i32.const 171 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7136 - i32.store - i32.const 7136 + i32.const 5024 call $~lib/number/F64.parseFloat - f64.const 0 + f64.const 1 f64.ne if i32.const 0 i32.const 1120 - i32.const 236 + i32.const 172 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7168 - i32.store - i32.const 7168 + i32.const 5056 call $~lib/number/F64.parseFloat - f64.const 0.1 + f64.const 1e-05 f64.ne if i32.const 0 i32.const 1120 - i32.const 237 + i32.const 173 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7200 - i32.store - i32.const 7200 + i32.const 5088 call $~lib/number/F64.parseFloat - f64.const 0 + f64.const -1e-05 f64.ne if i32.const 0 i32.const 1120 - i32.const 238 + i32.const 174 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7232 - i32.store - i32.const 7232 + i32.const 5120 call $~lib/number/F64.parseFloat - f64.const 0 + f64.const -3e-23 f64.ne if i32.const 0 i32.const 1120 - i32.const 239 + i32.const 175 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7264 - i32.store - i32.const 7264 + i32.const 5168 call $~lib/number/F64.parseFloat - f64.const 1 + f64.const 3e21 f64.ne if i32.const 0 i32.const 1120 - i32.const 240 + i32.const 176 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7296 - i32.store - i32.const 7296 + i32.const 5216 call $~lib/number/F64.parseFloat f64.const 0.1 f64.ne if i32.const 0 i32.const 1120 - i32.const 241 + i32.const 177 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7328 - i32.store - i32.const 7328 + i32.const 5248 call $~lib/number/F64.parseFloat - f64.const 0 + f64.const 0.1 f64.ne if i32.const 0 i32.const 1120 - i32.const 242 + i32.const 178 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7360 - i32.store - i32.const 7360 + i32.const 5280 call $~lib/number/F64.parseFloat - i64.reinterpret_f64 - i64.const 0 - i64.ne + f64.const 0.1 + f64.ne if i32.const 0 i32.const 1120 - i32.const 243 + i32.const 179 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7392 - i32.store - i32.const 7392 + i32.const 5312 call $~lib/number/F64.parseFloat - i64.reinterpret_f64 - i64.const -9223372036854775808 - i64.ne + f64.const 0.25 + f64.ne if i32.const 0 i32.const 1120 - i32.const 244 + i32.const 180 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7424 - i32.store - i32.const 7424 + i32.const 5344 call $~lib/number/F64.parseFloat - i64.reinterpret_f64 - i64.const 0 - i64.ne + f64.const 1e3 + f64.ne if i32.const 0 i32.const 1120 - i32.const 245 + i32.const 181 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3968 - i32.store - i32.const 3968 + i32.const 5376 call $~lib/number/F64.parseFloat - i64.reinterpret_f64 - i64.const -9223372036854775808 - i64.ne + f64.const 1e-10 + f64.ne if i32.const 0 i32.const 1120 - i32.const 246 + i32.const 182 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7456 - i32.store - i32.const 7456 + i32.const 5424 call $~lib/number/F64.parseFloat - i64.reinterpret_f64 - i64.const -9223372036854775808 - i64.ne + f64.const 1e-30 + f64.ne if i32.const 0 i32.const 1120 - i32.const 247 + i32.const 183 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4592 - i32.store - i32.const 4592 + i32.const 5472 call $~lib/number/F64.parseFloat - local.tee $1 - local.get $1 - f64.eq + f64.const 1e-323 + f64.ne if i32.const 0 i32.const 1120 - i32.const 248 + i32.const 184 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4560 - i32.store - i32.const 4560 + i32.const 5520 call $~lib/number/F64.parseFloat - local.tee $1 - local.get $1 - f64.eq + f64.const 0 + f64.ne if i32.const 0 i32.const 1120 - i32.const 249 + i32.const 185 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7504 - i32.store - i32.const 7504 + i32.const 5568 call $~lib/number/F64.parseFloat - local.tee $1 - local.get $1 - f64.eq + f64.const 1.e+308 + f64.ne if i32.const 0 i32.const 1120 - i32.const 250 + i32.const 186 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7536 - i32.store - i32.const 7536 + i32.const 5600 call $~lib/number/F64.parseFloat - local.tee $1 - local.get $1 - f64.eq + f64.const inf + f64.ne if i32.const 0 i32.const 1120 - i32.const 251 + i32.const 187 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7568 - i32.store - i32.const 7568 + i32.const 1712 call $~lib/number/F64.parseFloat local.tee $1 local.get $1 @@ -14765,1075 +14696,834 @@ if i32.const 0 i32.const 1120 - i32.const 252 + i32.const 188 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7600 - i32.store - i32.const 7600 + i32.const 5632 call $~lib/number/F64.parseFloat - local.tee $1 - local.get $1 - f64.eq + f64.const 0.1 + f64.ne if i32.const 0 i32.const 1120 - i32.const 253 + i32.const 191 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7632 - i32.store - i32.const 7632 + i32.const 5680 call $~lib/number/F64.parseFloat - local.tee $1 - local.get $1 - f64.eq + f64.const 1e-10 + f64.ne if i32.const 0 i32.const 1120 - i32.const 254 + i32.const 192 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7664 - i32.store - i32.const 7664 + i32.const 5728 call $~lib/number/F64.parseFloat - local.tee $1 - local.get $1 - f64.eq + f64.const 10 + f64.ne if i32.const 0 i32.const 1120 - i32.const 255 + i32.const 193 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7696 - i32.store - i32.const 7696 + i32.const 5776 call $~lib/number/F64.parseFloat - local.tee $1 - local.get $1 - f64.eq + f64.const 1 + f64.ne if i32.const 0 i32.const 1120 - i32.const 256 + i32.const 194 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7728 - i32.store - i32.const 7728 + i32.const 5808 call $~lib/number/F64.parseFloat - local.tee $1 - local.get $1 - f64.eq + f64.const 1 + f64.ne if i32.const 0 i32.const 1120 - i32.const 257 + i32.const 195 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7760 - i32.store - i32.const 7760 + i32.const 5840 call $~lib/number/F64.parseFloat - local.tee $1 - local.get $1 - f64.eq + f64.const 10 + f64.ne if i32.const 0 i32.const 1120 - i32.const 258 + i32.const 196 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7792 - i32.store - i32.const 7792 + i32.const 5888 call $~lib/number/F64.parseFloat - local.tee $1 - local.get $1 - f64.eq + f64.const 123456789 + f64.ne if i32.const 0 i32.const 1120 - i32.const 259 + i32.const 197 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7824 - i32.store - i32.const 7824 + i32.const 5936 call $~lib/number/F64.parseFloat - local.tee $1 - local.get $1 - f64.eq + f64.const 1 + f64.ne if i32.const 0 i32.const 1120 - i32.const 260 + i32.const 198 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7856 - i32.store - i32.const 7856 + i32.const 5984 call $~lib/number/F64.parseFloat - local.tee $1 - local.get $1 - f64.eq + f64.const 1e-60 + f64.ne if i32.const 0 i32.const 1120 - i32.const 261 + i32.const 200 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7888 - i32.store - i32.const 7888 + i32.const 6016 call $~lib/number/F64.parseFloat - local.tee $1 - local.get $1 - f64.eq + f64.const 1.e+60 + f64.ne if i32.const 0 i32.const 1120 - i32.const 262 + i32.const 201 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3360 - i32.store - i32.const 3360 + i32.const 6048 call $~lib/number/F64.parseFloat - local.tee $1 - local.get $1 - f64.eq + f64.const 123.4 + f64.ne if i32.const 0 i32.const 1120 - i32.const 263 + i32.const 204 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7920 - i32.store - i32.const 7920 + i32.const 6080 call $~lib/number/F64.parseFloat - f64.const 1e22 + f64.const 1 f64.ne if i32.const 0 i32.const 1120 - i32.const 264 + i32.const 205 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7952 - i32.store - i32.const 7952 + i32.const 6112 call $~lib/number/F64.parseFloat - f64.const 1e-22 + f64.const -1.1 f64.ne if i32.const 0 i32.const 1120 - i32.const 265 + i32.const 206 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7984 - i32.store - i32.const 7984 + i32.const 6160 call $~lib/number/F64.parseFloat - f64.const 1.e+23 + f64.const 10 f64.ne if i32.const 0 i32.const 1120 - i32.const 266 + i32.const 207 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 8016 - i32.store - i32.const 8016 + i32.const 6208 call $~lib/number/F64.parseFloat - f64.const 1e-23 + f64.const 10 f64.ne if i32.const 0 i32.const 1120 - i32.const 267 + i32.const 208 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 8048 - i32.store - i32.const 8048 + i32.const 6256 call $~lib/number/F64.parseFloat - f64.const 1.e+37 + f64.const 0.022 f64.ne if i32.const 0 i32.const 1120 - i32.const 268 + i32.const 209 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 8080 - i32.store - i32.const 8080 + i32.const 6304 call $~lib/number/F64.parseFloat - f64.const 1e-37 + f64.const 11 f64.ne if i32.const 0 i32.const 1120 - i32.const 269 + i32.const 210 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 8112 - i32.store - i32.const 8112 + i32.const 3808 call $~lib/number/F64.parseFloat - f64.const 1.e+38 + f64.const 0 f64.ne if i32.const 0 i32.const 1120 - i32.const 270 + i32.const 211 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 8144 - i32.store - i32.const 8144 + i32.const 6336 call $~lib/number/F64.parseFloat - f64.const 1e-38 + f64.const 0 f64.ne if i32.const 0 i32.const 1120 - i32.const 271 + i32.const 212 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 8176 - i32.store - i32.const 8176 + i32.const 6368 call $~lib/number/F64.parseFloat - f64.const 2.220446049250313e-16 + f64.const 0 f64.ne if i32.const 0 i32.const 1120 - i32.const 272 + i32.const 213 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 8240 - i32.store - i32.const 8240 + i32.const 6400 call $~lib/number/F64.parseFloat - f64.const 1797693134862315708145274e284 + f64.const 1.1 f64.ne if i32.const 0 i32.const 1120 - i32.const 273 + i32.const 214 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 8320 - i32.store - i32.const 8320 + i32.const 6432 call $~lib/number/F64.parseFloat - f64.const 5e-324 + f64.const -1.1 f64.ne if i32.const 0 i32.const 1120 - i32.const 274 + i32.const 215 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 8352 - i32.store - i32.const 8352 + i32.const 6464 call $~lib/number/F64.parseFloat - f64.const 1.e+308 + f64.const -1.1 f64.ne if i32.const 0 i32.const 1120 - i32.const 275 + i32.const 216 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 8400 - i32.store - i32.const 8400 + i32.const 6496 call $~lib/number/F64.parseFloat - f64.const 1 + f64.const -1.1 f64.ne if i32.const 0 i32.const 1120 - i32.const 276 + i32.const 217 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 8544 - i32.store - i32.const 8544 + i32.const 6528 call $~lib/number/F64.parseFloat - f64.const 0 + f64.const -1.1 f64.ne if i32.const 0 i32.const 1120 - i32.const 277 + i32.const 218 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 8592 - i32.store - i32.const 8592 + i32.const 6560 call $~lib/number/F64.parseFloat - f64.const inf + f64.const 0 f64.ne if i32.const 0 i32.const 1120 - i32.const 278 + i32.const 219 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 8640 - i32.store - i32.const 8640 + i32.const 6592 call $~lib/number/F64.parseFloat f64.const 0 f64.ne if i32.const 0 i32.const 1120 - i32.const 279 + i32.const 220 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 8688 - i32.store - i32.const 8688 + i32.const 6624 call $~lib/number/F64.parseFloat - f64.const -inf + f64.const 1 f64.ne if i32.const 0 i32.const 1120 - i32.const 280 + i32.const 221 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 8736 - i32.store - i32.const 8736 + i32.const 6656 call $~lib/number/F64.parseFloat f64.const 0 f64.ne if i32.const 0 i32.const 1120 - i32.const 281 + i32.const 222 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 8784 - i32.store - i32.const 8784 + i32.const 6688 call $~lib/number/F64.parseFloat - f64.const inf + f64.const 0 f64.ne if i32.const 0 i32.const 1120 - i32.const 282 + i32.const 223 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 8832 - i32.store - i32.const 8832 + i32.const 6720 call $~lib/number/F64.parseFloat - f64.const inf + f64.const 10 f64.ne if i32.const 0 i32.const 1120 - i32.const 283 + i32.const 224 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 8864 - i32.store - i32.const 8864 + i32.const 6752 call $~lib/number/F64.parseFloat - f64.const inf + f64.const 10 f64.ne if i32.const 0 i32.const 1120 - i32.const 284 + i32.const 225 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 8912 - i32.store - i32.const 8912 + i32.const 6800 call $~lib/number/F64.parseFloat - f64.const inf + f64.const 0 f64.ne if i32.const 0 i32.const 1120 - i32.const 285 + i32.const 226 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 8960 - i32.store - i32.const 8960 + i32.const 6832 call $~lib/number/F64.parseFloat - f64.const -inf + f64.const 1 f64.ne if i32.const 0 i32.const 1120 - i32.const 286 + i32.const 227 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 9008 - i32.store - i32.const 9008 + i32.const 6864 call $~lib/number/F64.parseFloat - f64.const inf + f64.const 0.1 f64.ne if i32.const 0 i32.const 1120 - i32.const 287 + i32.const 228 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 9056 - i32.store - i32.const 9056 + i32.const 6896 call $~lib/number/F64.parseFloat - f64.const inf + f64.const 1 f64.ne if i32.const 0 i32.const 1120 - i32.const 288 + i32.const 229 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 9104 - i32.store - i32.const 9104 + i32.const 6928 call $~lib/number/F64.parseFloat - local.tee $1 - local.get $1 - f64.eq + f64.const 10 + f64.ne if i32.const 0 i32.const 1120 - i32.const 289 + i32.const 230 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 9136 - i32.store - i32.const 9136 + i32.const 6960 call $~lib/number/F64.parseFloat - local.tee $1 - local.get $1 - f64.eq + f64.const 1 + f64.ne if i32.const 0 i32.const 1120 - i32.const 290 + i32.const 231 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 9184 - i32.store - i32.const 9184 + i32.const 6992 call $~lib/number/F64.parseFloat - local.tee $1 - local.get $1 - f64.eq + f64.const 0.1 + f64.ne if i32.const 0 i32.const 1120 - i32.const 291 + i32.const 232 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 9232 - i32.store - i32.const 9232 + i32.const 7024 call $~lib/number/F64.parseFloat - f64.const 0 + f64.const 0.01 f64.ne if i32.const 0 i32.const 1120 - i32.const 295 + i32.const 233 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 9424 - i32.store - i32.const 9424 + i32.const 7072 call $~lib/number/F64.parseFloat - f64.const 1e-323 + f64.const 0 f64.ne if i32.const 0 i32.const 1120 - i32.const 308 + i32.const 234 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store - i32.const 9616 + i32.const 7104 call $~lib/number/F64.parseFloat - f64.const 2.225073858507202e-308 + f64.const 0 f64.ne if i32.const 0 i32.const 1120 - i32.const 312 + i32.const 235 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 9808 - i32.store offset=72 - local.get $0 - i32.const 9968 - i32.store offset=76 - 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=64 - global.get $~lib/memory/__stack_pointer - i32.const 10128 - i32.store offset=68 - local.get $0 - i32.const 10128 - call $~lib/string/String.__concat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 10288 - i32.store offset=60 - local.get $0 - i32.const 10288 - call $~lib/string/String.__concat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 10448 - i32.store offset=8 - local.get $0 - i32.const 10448 - call $~lib/string/String.__concat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 + i32.const 7136 call $~lib/number/F64.parseFloat - f64.const 1797693134862315708145274e284 + f64.const 0 f64.ne if i32.const 0 i32.const 1120 - i32.const 315 + i32.const 236 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 10608 - i32.store - i32.const 10608 + i32.const 7168 call $~lib/number/F64.parseFloat - f64.const 9.753531888799502e-104 + f64.const 0.1 f64.ne if i32.const 0 i32.const 1120 - i32.const 333 + i32.const 237 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 10720 - i32.store - i32.const 10720 + i32.const 7200 call $~lib/number/F64.parseFloat - f64.const 0.5961860348131807 + f64.const 0 f64.ne if i32.const 0 i32.const 1120 - i32.const 334 + i32.const 238 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 10832 - i32.store - i32.const 10832 + i32.const 7232 call $~lib/number/F64.parseFloat - f64.const 0.18150131692180388 + f64.const 0 f64.ne if i32.const 0 i32.const 1120 - i32.const 335 + i32.const 239 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 10944 - i32.store - i32.const 10944 + i32.const 7264 call $~lib/number/F64.parseFloat - f64.const 0.42070823575344535 + f64.const 1 f64.ne if i32.const 0 i32.const 1120 - i32.const 336 + i32.const 240 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 11056 - i32.store - i32.const 11056 + i32.const 7296 call $~lib/number/F64.parseFloat - f64.const 0.6654686306516261 + f64.const 0.1 f64.ne if i32.const 0 i32.const 1120 - i32.const 337 + i32.const 241 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 11168 - i32.store - i32.const 11168 + i32.const 7328 call $~lib/number/F64.parseFloat - f64.const 0.6101852922970868 + f64.const 0 f64.ne if i32.const 0 i32.const 1120 - i32.const 338 + i32.const 242 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 11280 - i32.store - i32.const 11280 + i32.const 7360 call $~lib/number/F64.parseFloat - f64.const 0.7696695208236968 - f64.ne + i64.reinterpret_f64 + i64.const 0 + i64.ne if i32.const 0 i32.const 1120 - i32.const 339 + i32.const 243 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 11392 - i32.store - i32.const 11392 + i32.const 7392 call $~lib/number/F64.parseFloat - f64.const 0.25050653222286823 - f64.ne + i64.reinterpret_f64 + i64.const -9223372036854775808 + i64.ne if i32.const 0 i32.const 1120 - i32.const 340 + i32.const 244 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 11504 - i32.store - i32.const 11504 + i32.const 7424 call $~lib/number/F64.parseFloat - f64.const 0.2740037230228005 - f64.ne + i64.reinterpret_f64 + i64.const 0 + i64.ne if i32.const 0 i32.const 1120 - i32.const 341 + i32.const 245 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 11616 - i32.store - i32.const 11616 + i32.const 3968 call $~lib/number/F64.parseFloat - f64.const 0.20723093500497428 - f64.ne + i64.reinterpret_f64 + i64.const -9223372036854775808 + i64.ne if i32.const 0 i32.const 1120 - i32.const 342 + i32.const 246 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 11728 - i32.store - i32.const 11728 + i32.const 7456 call $~lib/number/F64.parseFloat - f64.const 7.900280238081605 - f64.ne + i64.reinterpret_f64 + i64.const -9223372036854775808 + i64.ne if i32.const 0 i32.const 1120 - i32.const 343 + i32.const 247 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 11840 - i32.store - i32.const 11840 + i32.const 4592 call $~lib/number/F64.parseFloat - f64.const 98.22860653737297 - f64.ne + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 1120 - i32.const 344 + i32.const 248 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 11952 - i32.store - i32.const 11952 + i32.const 4560 call $~lib/number/F64.parseFloat - f64.const 746.894972319037 - f64.ne + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 1120 - i32.const 345 + i32.const 249 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 12064 - i32.store - i32.const 12064 + i32.const 7504 call $~lib/number/F64.parseFloat - f64.const 1630.2683202827284 - f64.ne + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 1120 - i32.const 346 + i32.const 250 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 12176 - i32.store - i32.const 12176 + i32.const 7536 call $~lib/number/F64.parseFloat - f64.const 46371.68629719171 - f64.ne + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 1120 - i32.const 347 + i32.const 251 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 12288 - i32.store - i32.const 12288 + i32.const 7568 call $~lib/number/F64.parseFloat - f64.const 653780.5944497711 - f64.ne + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 1120 - i32.const 348 + i32.const 252 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 12400 - i32.store - i32.const 12400 + i32.const 7600 call $~lib/number/F64.parseFloat - f64.const 234632.43565024371 - f64.ne + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 1120 - i32.const 349 + i32.const 253 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 12512 - i32.store - i32.const 12512 + i32.const 7632 call $~lib/number/F64.parseFloat - f64.const 97094817.16420048 - f64.ne + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 1120 - i32.const 350 + i32.const 254 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 12624 - i32.store - i32.const 12624 + i32.const 7664 call $~lib/number/F64.parseFloat - f64.const 499690852.20518744 - f64.ne + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 1120 - i32.const 351 + i32.const 255 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 12736 - i32.store - i32.const 12736 + i32.const 7696 call $~lib/number/F64.parseFloat - f64.const 7925201200557245595648 - f64.ne + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 1120 - i32.const 352 + i32.const 256 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 12848 - i32.store - i32.const 12848 + i32.const 7728 call $~lib/number/F64.parseFloat - f64.const 6096564585983177528398588e5 - f64.ne + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 1120 - i32.const 353 + i32.const 257 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 12960 - i32.store - i32.const 12960 + i32.const 7760 call $~lib/number/F64.parseFloat - f64.const 4800416117477028695992383e42 - f64.ne + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 1120 - i32.const 354 + i32.const 258 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 13072 - i32.store - i32.const 13072 + i32.const 7792 call $~lib/number/F64.parseFloat - f64.const 8524829079817968137287277e80 - f64.ne + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 1120 - i32.const 355 + i32.const 259 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 13184 - i32.store - i32.const 13184 + i32.const 7824 call $~lib/number/F64.parseFloat - f64.const 3271239291709782092398754e243 - f64.ne + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 1120 - i32.const 356 + i32.const 260 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 13296 - i32.store - i32.const 13296 + i32.const 7856 call $~lib/number/F64.parseFloat local.tee $1 local.get $1 @@ -15841,2813 +15531,1598 @@ if i32.const 0 i32.const 1120 - i32.const 359 + i32.const 261 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 13328 - i32.store - i32.const 13328 + i32.const 7888 call $~lib/number/F64.parseFloat - f64.const 0.1 - f64.ne + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 1120 - i32.const 360 + i32.const 262 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1808 - i32.store - local.get $0 - i32.const 13360 - i32.store offset=4 - local.get $0 - i32.const 1808 - i32.const 13360 - call $~lib/string/String.__concat - local.tee $0 - i32.store offset=80 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13392 - i32.store offset=4 - local.get $0 - i32.const 13392 - call $~lib/string/String.__eq - i32.eqz + i32.const 3360 + call $~lib/number/F64.parseFloat + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 1120 - i32.const 364 - i32.const 3 + i32.const 263 + i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $0 - i32.store - local.get $4 - i32.const 1808 - i32.store offset=4 - local.get $0 - i32.const 1808 - call $~lib/string/String.__ne - i32.eqz + i32.const 7920 + call $~lib/number/F64.parseFloat + f64.const 1e22 + f64.ne if i32.const 0 i32.const 1120 - i32.const 365 - i32.const 3 + i32.const 264 + i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1712 - i32.store - local.get $0 - i32.const 1712 - i32.store offset=4 - i32.const 1712 - i32.const 1712 - call $~lib/string/String.__eq - i32.eqz + i32.const 7952 + call $~lib/number/F64.parseFloat + f64.const 1e-22 + f64.ne if i32.const 0 i32.const 1120 - i32.const 367 + i32.const 265 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const 0 - i32.const 0 - call $~lib/string/String.__eq - i32.eqz + i32.const 7984 + call $~lib/number/F64.parseFloat + f64.const 1.e+23 + f64.ne if i32.const 0 i32.const 1120 - i32.const 369 + i32.const 266 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1712 - i32.store - local.get $0 - i32.const 0 - i32.store offset=4 - i32.const 1712 - i32.const 0 - call $~lib/string/String.__ne - i32.eqz + i32.const 8016 + call $~lib/number/F64.parseFloat + f64.const 1e-23 + f64.ne if i32.const 0 i32.const 1120 - i32.const 371 + i32.const 267 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 1712 - i32.store offset=4 - i32.const 0 - i32.const 1712 - call $~lib/string/String.__ne - i32.eqz + i32.const 8048 + call $~lib/number/F64.parseFloat + f64.const 1.e+37 + f64.ne if i32.const 0 i32.const 1120 - i32.const 373 + i32.const 268 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1808 - i32.store - local.get $0 - i32.const 13360 - i32.store offset=4 - i32.const 1808 - i32.const 13360 - call $~lib/string/String.__ne - i32.eqz + i32.const 8080 + call $~lib/number/F64.parseFloat + f64.const 1e-37 + f64.ne if i32.const 0 i32.const 1120 - i32.const 375 + i32.const 269 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1808 - i32.store - local.get $0 - i32.const 1808 - i32.store offset=4 - i32.const 1808 - i32.const 1808 - call $~lib/string/String.__eq - i32.eqz + i32.const 8112 + call $~lib/number/F64.parseFloat + f64.const 1.e+38 + f64.ne if i32.const 0 i32.const 1120 - i32.const 376 + i32.const 270 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 13424 - i32.store - local.get $0 - i32.const 13456 - i32.store offset=4 - i32.const 13424 - i32.const 13456 - call $~lib/string/String.__ne - i32.eqz + i32.const 8144 + call $~lib/number/F64.parseFloat + f64.const 1e-38 + f64.ne if i32.const 0 i32.const 1120 - i32.const 378 + i32.const 271 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 13424 - i32.store - local.get $0 - i32.const 13424 - i32.store offset=4 - i32.const 13424 - i32.const 13424 - call $~lib/string/String.__eq - i32.eqz + i32.const 8176 + call $~lib/number/F64.parseFloat + f64.const 2.220446049250313e-16 + f64.ne if i32.const 0 i32.const 1120 - i32.const 379 + i32.const 272 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 13488 - i32.store - local.get $0 - i32.const 13520 - i32.store offset=4 - i32.const 13488 - i32.const 13520 - call $~lib/string/String.__ne - i32.eqz + i32.const 8240 + call $~lib/number/F64.parseFloat + f64.const 1797693134862315708145274e284 + f64.ne if i32.const 0 i32.const 1120 - i32.const 381 + i32.const 273 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 13552 - i32.store - local.get $0 - i32.const 13584 - i32.store offset=4 - i32.const 13552 - i32.const 13584 - call $~lib/string/String.__ne - i32.eqz + i32.const 8320 + call $~lib/number/F64.parseFloat + f64.const 5e-324 + f64.ne if i32.const 0 i32.const 1120 - i32.const 383 + i32.const 274 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 13616 - i32.store - local.get $0 - i32.const 13616 - i32.store offset=4 - i32.const 13616 - i32.const 13616 - call $~lib/string/String.__eq - i32.eqz + i32.const 8352 + call $~lib/number/F64.parseFloat + f64.const 1.e+308 + f64.ne if i32.const 0 i32.const 1120 - i32.const 384 + i32.const 275 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 13616 - i32.store - local.get $0 - i32.const 13664 - i32.store offset=4 - i32.const 13616 - i32.const 13664 - call $~lib/string/String.__ne - i32.eqz + i32.const 8400 + call $~lib/number/F64.parseFloat + f64.const 1 + f64.ne if i32.const 0 i32.const 1120 - i32.const 386 + i32.const 276 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 13712 - i32.store - local.get $0 - i32.const 13760 - i32.store offset=4 - i32.const 13712 - i32.const 13760 - call $~lib/string/String.__ne - i32.eqz + i32.const 8544 + call $~lib/number/F64.parseFloat + f64.const 0 + f64.ne if i32.const 0 i32.const 1120 - i32.const 388 + i32.const 277 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 13360 - i32.store - local.get $0 - i32.const 1808 - i32.store offset=4 - i32.const 13360 - i32.const 1808 - call $~lib/string/String.__gt - i32.eqz + i32.const 8592 + call $~lib/number/F64.parseFloat + f64.const inf + f64.ne if i32.const 0 i32.const 1120 - i32.const 390 + i32.const 278 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 13808 - i32.store - local.get $0 - i32.const 1808 - i32.store offset=4 - i32.const 13808 - i32.const 1808 - call $~lib/string/String.__gt - i32.eqz + i32.const 8640 + call $~lib/number/F64.parseFloat + f64.const 0 + f64.ne if i32.const 0 i32.const 1120 - i32.const 391 + i32.const 279 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 13808 - i32.store - local.get $0 - i32.const 13840 - i32.store offset=4 - i32.const 13808 - i32.const 13840 - call $~lib/string/String.__gte - i32.eqz + i32.const 8688 + call $~lib/number/F64.parseFloat + f64.const -inf + f64.ne if i32.const 0 i32.const 1120 - i32.const 392 + i32.const 280 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 13808 - i32.store - local.get $0 - i32.const 13392 - i32.store offset=4 - i32.const 13808 - i32.const 13392 - call $~lib/string/String.__gt - i32.eqz + i32.const 8736 + call $~lib/number/F64.parseFloat + f64.const 0 + f64.ne if i32.const 0 i32.const 1120 - i32.const 393 + i32.const 281 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 13808 - i32.store - local.get $0 - i32.const 13392 - i32.store offset=4 - i32.const 13808 - i32.const 13392 - call $~lib/string/String.__lt + i32.const 8784 + call $~lib/number/F64.parseFloat + f64.const inf + f64.ne if i32.const 0 i32.const 1120 - i32.const 394 + i32.const 282 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 2336 - i32.store - local.get $0 - i32.const 1712 - i32.store offset=4 - i32.const 2336 - i32.const 1712 - call $~lib/string/String.__gt - i32.eqz + i32.const 8832 + call $~lib/number/F64.parseFloat + f64.const inf + f64.ne if i32.const 0 i32.const 1120 - i32.const 396 + i32.const 283 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1712 - i32.store - local.get $0 - i32.const 2336 - i32.store offset=4 - i32.const 1712 - i32.const 2336 - call $~lib/string/String.__lt - i32.eqz + i32.const 8864 + call $~lib/number/F64.parseFloat + f64.const inf + f64.ne if i32.const 0 i32.const 1120 - i32.const 397 + i32.const 284 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 2336 - i32.store - local.get $0 - i32.const 1712 - i32.store offset=4 - i32.const 2336 - i32.const 1712 - call $~lib/string/String.__gte - i32.eqz + i32.const 8912 + call $~lib/number/F64.parseFloat + f64.const inf + f64.ne if i32.const 0 i32.const 1120 - i32.const 398 + i32.const 285 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1712 - i32.store - local.get $0 - i32.const 2336 - i32.store offset=4 - i32.const 1712 - i32.const 2336 - call $~lib/string/String.__lte - i32.eqz + i32.const 8960 + call $~lib/number/F64.parseFloat + f64.const -inf + f64.ne if i32.const 0 i32.const 1120 - i32.const 399 + i32.const 286 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 2336 - i32.store - local.get $0 - i32.const 1712 - i32.store offset=4 - i32.const 2336 - i32.const 1712 - call $~lib/string/String.__lt + i32.const 9008 + call $~lib/number/F64.parseFloat + f64.const inf + f64.ne if i32.const 0 i32.const 1120 - i32.const 400 + i32.const 287 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1712 - i32.store - local.get $0 - i32.const 2336 - i32.store offset=4 - i32.const 1712 - i32.const 2336 - call $~lib/string/String.__gt + i32.const 9056 + call $~lib/number/F64.parseFloat + f64.const inf + f64.ne if i32.const 0 i32.const 1120 - i32.const 401 + i32.const 288 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1712 - i32.store - local.get $0 - i32.const 1712 - i32.store offset=4 - i32.const 1712 - i32.const 1712 - call $~lib/string/String.__lt + i32.const 9104 + call $~lib/number/F64.parseFloat + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 1120 - i32.const 402 + i32.const 289 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1712 - i32.store - local.get $0 - i32.const 1712 - i32.store offset=4 - i32.const 1712 - i32.const 1712 - call $~lib/string/String.__gt + i32.const 9136 + call $~lib/number/F64.parseFloat + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 1120 - i32.const 403 + i32.const 290 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1712 - i32.store - local.get $0 - i32.const 1712 - i32.store offset=4 - i32.const 1712 - i32.const 1712 - call $~lib/string/String.__gte - i32.eqz + i32.const 9184 + call $~lib/number/F64.parseFloat + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 1120 - i32.const 404 + i32.const 291 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1712 - i32.store - local.get $0 - i32.const 1712 - i32.store offset=4 - i32.const 1712 - i32.const 1712 - call $~lib/string/String.__lte - i32.eqz + i32.const 9232 + call $~lib/number/F64.parseFloat + f64.const 0 + f64.ne if i32.const 0 i32.const 1120 - i32.const 405 + i32.const 295 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 3456 - i32.store - local.get $0 - i32.const 13872 - i32.store offset=4 - i32.const 3456 - i32.const 13872 - call $~lib/string/String.__lt - i32.eqz + i32.const 9424 + call $~lib/number/F64.parseFloat + f64.const 1e-323 + f64.ne if i32.const 0 i32.const 1120 - i32.const 407 + i32.const 308 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 13872 - i32.store - local.get $0 - i32.const 3456 - i32.store offset=4 - i32.const 13872 - i32.const 3456 - call $~lib/string/String.__gt - i32.eqz + i32.const 9616 + call $~lib/number/F64.parseFloat + f64.const 2.225073858507202e-308 + f64.ne if i32.const 0 i32.const 1120 - i32.const 408 + i32.const 312 i32.const 1 call $~lib/builtins/abort unreachable end + 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 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 10288 + call $~lib/string/String.__concat + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 13904 - i32.store local.get $0 - i32.const 13872 i32.store offset=4 - i32.const 13904 - i32.const 13872 - call $~lib/string/String.__lt + local.get $0 + i32.const 10448 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/number/F64.parseFloat + f64.const 1797693134862315708145274e284 + f64.ne if i32.const 0 i32.const 1120 - i32.const 409 + i32.const 315 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 13872 - i32.store - local.get $0 - i32.const 13904 - i32.store offset=4 - i32.const 13872 - i32.const 13904 - call $~lib/string/String.__gt + i32.const 10608 + call $~lib/number/F64.parseFloat + f64.const 9.753531888799502e-104 + f64.ne if i32.const 0 i32.const 1120 - i32.const 410 + i32.const 333 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 13904 - i32.store - local.get $0 - i32.const 13872 - i32.store offset=4 - i32.const 13904 - i32.const 13872 - call $~lib/string/String.__gt - i32.eqz + i32.const 10720 + call $~lib/number/F64.parseFloat + f64.const 0.5961860348131807 + f64.ne if i32.const 0 i32.const 1120 - i32.const 411 + i32.const 334 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 13872 - i32.store - local.get $0 - i32.const 13904 - i32.store offset=4 - i32.const 13872 - i32.const 13904 - call $~lib/string/String.__lt - i32.eqz + i32.const 10832 + call $~lib/number/F64.parseFloat + f64.const 0.18150131692180388 + f64.ne if i32.const 0 i32.const 1120 - i32.const 412 + i32.const 335 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 13904 - i32.store - local.get $0 - i32.const 13904 - i32.store offset=4 - i32.const 13904 - i32.const 13904 - call $~lib/string/String.__lt + i32.const 10944 + call $~lib/number/F64.parseFloat + f64.const 0.42070823575344535 + f64.ne if i32.const 0 i32.const 1120 - i32.const 413 + i32.const 336 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 13904 - i32.store - local.get $0 - i32.const 13904 - i32.store offset=4 - i32.const 13904 - i32.const 13904 - call $~lib/string/String.__gt + i32.const 11056 + call $~lib/number/F64.parseFloat + f64.const 0.6654686306516261 + f64.ne if i32.const 0 i32.const 1120 - i32.const 414 + i32.const 337 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 13904 - i32.store - local.get $0 - i32.const 13904 - i32.store offset=4 - i32.const 13904 - i32.const 13904 - call $~lib/string/String.__lte - i32.eqz + i32.const 11168 + call $~lib/number/F64.parseFloat + f64.const 0.6101852922970868 + f64.ne if i32.const 0 i32.const 1120 - i32.const 415 + i32.const 338 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 13904 - i32.store - local.get $0 - i32.const 13904 - i32.store offset=4 - i32.const 13904 - i32.const 13904 - call $~lib/string/String.__gte - i32.eqz + i32.const 11280 + call $~lib/number/F64.parseFloat + f64.const 0.7696695208236968 + f64.ne if i32.const 0 i32.const 1120 - i32.const 416 + i32.const 339 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 13872 - i32.store - local.get $0 - i32.const 13936 - i32.store offset=4 - i32.const 13872 - i32.const 13936 - call $~lib/string/String.__gte + i32.const 11392 + call $~lib/number/F64.parseFloat + f64.const 0.25050653222286823 + f64.ne if i32.const 0 i32.const 1120 - i32.const 417 + i32.const 340 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 13936 - i32.store - local.get $0 - i32.const 13872 - i32.store offset=4 - i32.const 13936 - i32.const 13872 - call $~lib/string/String.__gte - i32.eqz + i32.const 11504 + call $~lib/number/F64.parseFloat + f64.const 0.2740037230228005 + f64.ne if i32.const 0 i32.const 1120 - i32.const 418 + i32.const 341 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 13872 - i32.store - local.get $0 - i32.const 13936 - i32.store offset=4 - i32.const 13872 - i32.const 13936 - call $~lib/string/String.__lte - i32.eqz + i32.const 11616 + call $~lib/number/F64.parseFloat + f64.const 0.20723093500497428 + f64.ne if i32.const 0 i32.const 1120 - i32.const 419 + i32.const 342 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 3456 - i32.store - local.get $0 - i32.const 3456 - i32.store offset=4 - i32.const 3456 - i32.const 3456 - call $~lib/string/String.__eq - i32.eqz + i32.const 11728 + call $~lib/number/F64.parseFloat + f64.const 7.900280238081605 + f64.ne if i32.const 0 i32.const 1120 - i32.const 420 + i32.const 343 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 13904 - i32.store - local.get $0 - i32.const 13904 - i32.store offset=4 - i32.const 13904 - i32.const 13904 - call $~lib/string/String.__eq - i32.eqz + i32.const 11840 + call $~lib/number/F64.parseFloat + f64.const 98.22860653737297 + f64.ne if i32.const 0 i32.const 1120 - i32.const 421 + i32.const 344 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 2400 - i32.store - local.get $0 - i32.const 2400 - i32.store offset=4 - i32.const 2400 - i32.const 2400 - call $~lib/string/String.__eq - i32.eqz + i32.const 11952 + call $~lib/number/F64.parseFloat + f64.const 746.894972319037 + f64.ne if i32.const 0 i32.const 1120 - i32.const 422 + i32.const 345 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 2400 - i32.store - local.get $0 - i32.const 13968 - i32.store offset=4 - i32.const 2400 - i32.const 13968 - call $~lib/string/String.__ne - i32.eqz + i32.const 12064 + call $~lib/number/F64.parseFloat + f64.const 1630.2683202827284 + f64.ne if i32.const 0 i32.const 1120 - i32.const 424 + i32.const 346 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 14000 - i32.store - local.get $0 - i32.const 14000 - i32.store offset=4 - i32.const 14000 - i32.const 14000 - call $~lib/string/String.__eq - i32.eqz + i32.const 12176 + call $~lib/number/F64.parseFloat + f64.const 46371.68629719171 + f64.ne if i32.const 0 i32.const 1120 - i32.const 425 + i32.const 347 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 14032 - i32.store - local.get $0 - i32.const 14000 - i32.store offset=4 - i32.const 14032 - i32.const 14000 - call $~lib/string/String.__ne - i32.eqz + i32.const 12288 + call $~lib/number/F64.parseFloat + f64.const 653780.5944497711 + f64.ne if i32.const 0 i32.const 1120 - i32.const 427 + i32.const 348 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 65377 - call $~lib/string/String.fromCodePoint - local.tee $0 - i32.store offset=84 - global.get $~lib/memory/__stack_pointer - local.set $4 - i32.const 55296 - call $~lib/string/String.fromCodePoint - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - i32.const 56322 - call $~lib/string/String.fromCodePoint - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $4 - local.get $5 - local.get $6 - call $~lib/string/String.__concat - local.tee $4 - i32.store offset=88 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $0 - local.get $4 - call $~lib/string/String.__gt - i32.eqz + i32.const 12400 + call $~lib/number/F64.parseFloat + f64.const 234632.43565024371 + f64.ne if i32.const 0 i32.const 1120 - i32.const 432 - i32.const 3 + i32.const 349 + i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2400 - i32.store - i32.const 2396 - i32.load - i32.const 1 - i32.shr_u - i32.const 3 - i32.ne + i32.const 12512 + call $~lib/number/F64.parseFloat + f64.const 97094817.16420048 + f64.ne if i32.const 0 i32.const 1120 - i32.const 435 + i32.const 350 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=8 - i32.const 1712 - i32.const 100 - call $~lib/string/String#repeat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 - local.get $0 - i32.const 1712 - call $~lib/string/String.__eq - i32.eqz + i32.const 12624 + call $~lib/number/F64.parseFloat + f64.const 499690852.20518744 + f64.ne if i32.const 0 i32.const 1120 - i32.const 437 + i32.const 351 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=8 - i32.const 1808 - i32.const 0 - call $~lib/string/String#repeat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 - local.get $0 - i32.const 1712 - call $~lib/string/String.__eq - i32.eqz + i32.const 12736 + call $~lib/number/F64.parseFloat + f64.const 7925201200557245595648 + f64.ne if i32.const 0 i32.const 1120 - i32.const 438 + i32.const 352 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=8 - i32.const 1808 - i32.const 1 - call $~lib/string/String#repeat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=4 - local.get $0 - i32.const 1808 - call $~lib/string/String.__eq - i32.eqz + i32.const 12848 + call $~lib/number/F64.parseFloat + f64.const 6096564585983177528398588e5 + f64.ne if i32.const 0 i32.const 1120 - i32.const 439 + i32.const 353 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=8 - i32.const 1808 - i32.const 2 - call $~lib/string/String#repeat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13840 - i32.store offset=4 - local.get $0 - i32.const 13840 - call $~lib/string/String.__eq - i32.eqz + i32.const 12960 + call $~lib/number/F64.parseFloat + f64.const 4800416117477028695992383e42 + f64.ne if i32.const 0 i32.const 1120 - i32.const 440 + i32.const 354 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=8 - i32.const 1808 - i32.const 3 - call $~lib/string/String#repeat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14112 - i32.store offset=4 - local.get $0 - i32.const 14112 - call $~lib/string/String.__eq - i32.eqz + i32.const 13072 + call $~lib/number/F64.parseFloat + f64.const 8524829079817968137287277e80 + f64.ne if i32.const 0 i32.const 1120 - i32.const 441 + i32.const 355 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 13392 - i32.store offset=8 - i32.const 13392 - i32.const 4 - call $~lib/string/String#repeat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14144 - i32.store offset=4 - local.get $0 - i32.const 14144 - call $~lib/string/String.__eq - i32.eqz + i32.const 13184 + call $~lib/number/F64.parseFloat + f64.const 3271239291709782092398754e243 + f64.ne if i32.const 0 i32.const 1120 - i32.const 442 + i32.const 356 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=8 - i32.const 1808 - i32.const 5 - call $~lib/string/String#repeat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14192 - i32.store offset=4 - local.get $0 - i32.const 14192 - call $~lib/string/String.__eq - i32.eqz + i32.const 13296 + call $~lib/number/F64.parseFloat + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 1120 - i32.const 443 + i32.const 359 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=8 - i32.const 1808 - i32.const 6 - call $~lib/string/String#repeat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14224 - i32.store offset=4 - local.get $0 - i32.const 14224 - call $~lib/string/String.__eq - i32.eqz + i32.const 13328 + call $~lib/number/F64.parseFloat + f64.const 0.1 + f64.ne if i32.const 0 i32.const 1120 - i32.const 444 + i32.const 360 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer i32.const 1808 - i32.store offset=8 - i32.const 1808 - i32.const 7 - call $~lib/string/String#repeat - local.set $0 + i32.const 13360 + call $~lib/string/String.__concat + local.tee $0 + i32.store offset=60 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14256 - i32.store offset=4 local.get $0 - i32.const 14256 + i32.const 13392 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 445 - i32.const 1 + i32.const 364 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1712 - i32.store offset=8 - local.get $0 - i32.const 1712 - i32.store offset=12 - local.get $0 - i32.const 1712 - i32.store offset=60 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 local.get $0 - i32.const 1712 - call $~lib/string/String.__eq + i32.const 1808 + call $~lib/string/String.__ne i32.eqz if i32.const 0 i32.const 1120 - i32.const 447 - i32.const 1 + i32.const 365 + i32.const 3 call $~lib/builtins/abort unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1712 - i32.store offset=8 - local.get $0 - i32.const 1712 - i32.store offset=12 - local.get $0 - i32.const 4592 - i32.store offset=60 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4592 - i32.store offset=4 - local.get $0 - i32.const 4592 + end + i32.const 1712 + i32.const 1712 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 448 + i32.const 367 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 4592 - i32.store offset=8 - local.get $0 - i32.const 4592 - i32.store offset=12 - local.get $0 - i32.const 1712 - i32.store offset=60 - 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.const 0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 - local.get $0 - i32.const 1712 + i32.const 0 + i32.const 0 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 449 + i32.const 369 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 4592 - i32.store offset=8 - local.get $0 - i32.const 1712 - i32.store offset=12 - local.get $0 - i32.const 1712 - i32.store offset=60 - 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.const 0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4592 - i32.store offset=4 - local.get $0 - i32.const 4592 - call $~lib/string/String.__eq + i32.const 1712 + i32.const 0 + call $~lib/string/String.__ne i32.eqz if i32.const 0 i32.const 1120 - i32.const 450 + i32.const 371 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 2336 - i32.store offset=8 - local.get $0 - i32.const 4560 - i32.store offset=12 - local.get $0 - i32.const 4592 - i32.store offset=60 - 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.const 0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store offset=4 - local.get $0 - i32.const 2336 - call $~lib/string/String.__eq + i32.const 0 + i32.const 1712 + call $~lib/string/String.__ne i32.eqz if i32.const 0 i32.const 1120 - i32.const 451 + i32.const 373 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 2336 - i32.store offset=8 - local.get $0 - i32.const 2336 - i32.store offset=12 - local.get $0 - i32.const 4592 - i32.store offset=60 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4592 - i32.store offset=4 - local.get $0 - i32.const 4592 - call $~lib/string/String.__eq + i32.const 1808 + i32.const 13360 + call $~lib/string/String.__ne i32.eqz if i32.const 0 i32.const 1120 - i32.const 452 + i32.const 375 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 2336 - i32.store offset=8 - local.get $0 - i32.const 2912 - i32.store offset=12 - local.get $0 - i32.const 4592 - i32.store offset=60 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store offset=4 - local.get $0 - i32.const 2336 + i32.const 1808 + i32.const 1808 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 453 + i32.const 376 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 2336 - i32.store offset=8 - local.get $0 - i32.const 13392 - i32.store offset=12 - local.get $0 - i32.const 13392 - i32.store offset=60 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store offset=4 - local.get $0 - i32.const 2336 - call $~lib/string/String.__eq + i32.const 13424 + i32.const 13456 + call $~lib/string/String.__ne i32.eqz if i32.const 0 i32.const 1120 - i32.const 454 + i32.const 378 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 14304 - i32.store offset=8 - local.get $0 - i32.const 4560 - i32.store offset=12 - local.get $0 - i32.const 4592 - i32.store offset=60 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 14336 - i32.store offset=4 - local.get $0 - i32.const 14336 + i32.const 13424 + i32.const 13424 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 455 + i32.const 379 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 2336 - i32.store offset=8 - local.get $0 - i32.const 1712 - i32.store offset=12 - local.get $0 - i32.const 4592 - i32.store offset=60 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 14368 - i32.store offset=4 - local.get $0 - i32.const 14368 - call $~lib/string/String.__eq + i32.const 13488 + i32.const 13520 + call $~lib/string/String.__ne i32.eqz if i32.const 0 i32.const 1120 - i32.const 456 + i32.const 381 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 14400 - i32.store offset=8 - local.get $0 - i32.const 14432 - i32.store offset=12 - local.get $0 - i32.const 4592 - i32.store offset=60 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 14368 - i32.store offset=4 - local.get $0 - i32.const 14368 - call $~lib/string/String.__eq + i32.const 13552 + i32.const 13584 + call $~lib/string/String.__ne i32.eqz if i32.const 0 i32.const 1120 - i32.const 457 + i32.const 383 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 2336 - i32.store offset=8 - local.get $0 - i32.const 14464 - i32.store offset=12 - local.get $0 - i32.const 14496 - i32.store offset=60 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 14528 - i32.store offset=4 - local.get $0 - i32.const 14528 + i32.const 13616 + i32.const 13616 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 458 + i32.const 384 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 2336 - i32.store offset=8 - local.get $0 - i32.const 14464 - i32.store offset=12 - local.get $0 - i32.const 1712 - i32.store offset=60 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 13392 - i32.store offset=4 - local.get $0 - i32.const 13392 - call $~lib/string/String.__eq + i32.const 13616 + i32.const 13664 + call $~lib/string/String.__ne i32.eqz if i32.const 0 i32.const 1120 - i32.const 459 + i32.const 386 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1712 - i32.store offset=8 - local.get $0 - i32.const 1712 - i32.store offset=12 - local.get $0 - i32.const 2336 - i32.store offset=60 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store offset=4 - local.get $0 - i32.const 2336 - call $~lib/string/String.__eq + i32.const 13712 + i32.const 13760 + call $~lib/string/String.__ne i32.eqz if i32.const 0 i32.const 1120 - i32.const 461 + i32.const 388 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 2336 - i32.store offset=8 - local.get $0 - i32.const 4560 - i32.store offset=12 - local.get $0 - i32.const 4592 - i32.store offset=60 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store offset=4 - local.get $0 - i32.const 2336 - call $~lib/string/String.__eq + i32.const 13360 + i32.const 1808 + call $~lib/string/String.__gt i32.eqz if i32.const 0 i32.const 1120 - i32.const 462 + i32.const 390 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 2544 - i32.store offset=8 - local.get $0 - i32.const 2336 - i32.store offset=12 - local.get $0 - i32.const 4592 - i32.store offset=60 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 14496 - i32.store offset=4 - local.get $0 - i32.const 14496 - call $~lib/string/String.__eq + i32.const 13808 + i32.const 1808 + call $~lib/string/String.__gt i32.eqz if i32.const 0 i32.const 1120 - i32.const 464 + i32.const 391 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 14560 - i32.store offset=8 - local.get $0 - i32.const 2336 - i32.store offset=12 - local.get $0 - i32.const 4592 - i32.store offset=60 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 14608 - i32.store offset=4 - local.get $0 - i32.const 14608 - call $~lib/string/String.__eq + i32.const 13808 + i32.const 13840 + call $~lib/string/String.__gte i32.eqz if i32.const 0 i32.const 1120 - i32.const 465 + i32.const 392 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 2544 - i32.store offset=8 - local.get $0 - i32.const 13392 - i32.store offset=12 - local.get $0 - i32.const 13392 - i32.store offset=60 - i32.const 2544 - i32.const 13392 + i32.const 13808 i32.const 13392 - call $~lib/string/String#replaceAll - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2544 - i32.store offset=4 - local.get $0 - i32.const 2544 - call $~lib/string/String.__eq + call $~lib/string/String.__gt i32.eqz if i32.const 0 i32.const 1120 - i32.const 466 + i32.const 393 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 14640 - i32.store offset=8 - local.get $0 - i32.const 1808 - i32.store offset=12 - local.get $0 - i32.const 14608 - i32.store offset=60 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 14688 - i32.store offset=4 - local.get $0 - i32.const 14688 - call $~lib/string/String.__eq - i32.eqz + i32.const 13808 + i32.const 13392 + call $~lib/string/String.__lt if i32.const 0 i32.const 1120 - i32.const 467 + i32.const 394 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 2544 - i32.store offset=8 - local.get $0 - i32.const 13392 - i32.store offset=12 - local.get $0 - i32.const 14496 - i32.store offset=60 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 14736 - i32.store offset=4 - local.get $0 - i32.const 14736 - call $~lib/string/String.__eq + i32.const 2336 + i32.const 1712 + call $~lib/string/String.__gt i32.eqz if i32.const 0 i32.const 1120 - i32.const 468 + i32.const 396 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 14768 - i32.store offset=8 - local.get $0 - i32.const 14800 - i32.store offset=12 - local.get $0 - i32.const 14496 - i32.store offset=60 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 14832 - i32.store offset=4 - local.get $0 - i32.const 14832 - call $~lib/string/String.__eq + i32.const 1712 + i32.const 2336 + call $~lib/string/String.__lt i32.eqz if i32.const 0 i32.const 1120 - i32.const 469 + i32.const 397 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 2336 - i32.store offset=8 - local.get $0 - i32.const 2912 - i32.store offset=12 - local.get $0 - i32.const 4592 - i32.store offset=60 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store offset=4 - local.get $0 i32.const 2336 - call $~lib/string/String.__eq + i32.const 1712 + call $~lib/string/String.__gte i32.eqz if i32.const 0 i32.const 1120 - i32.const 470 + i32.const 398 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 2912 - i32.store offset=8 - local.get $0 - i32.const 14864 - i32.store offset=12 - local.get $0 - i32.const 14496 - i32.store offset=60 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 2912 - i32.store offset=4 - local.get $0 - i32.const 2912 - call $~lib/string/String.__eq + i32.const 1712 + i32.const 2336 + call $~lib/string/String.__lte i32.eqz if i32.const 0 i32.const 1120 - i32.const 471 + i32.const 399 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 2336 - i32.store offset=8 - local.get $0 - i32.const 14896 - i32.store offset=12 - local.get $0 - i32.const 4592 - i32.store offset=60 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 - global.get $~lib/memory/__stack_pointer - i32.const 14928 - i32.store offset=4 - local.get $0 - i32.const 14928 - call $~lib/string/String.__eq - i32.eqz + i32.const 1712 + call $~lib/string/String.__lt if i32.const 0 i32.const 1120 - i32.const 472 + i32.const 400 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 13392 - i32.store offset=8 - local.get $0 - i32.const 13392 - i32.store offset=12 - local.get $0 - i32.const 4592 - i32.store offset=60 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4592 - i32.store offset=4 - local.get $0 - i32.const 4592 - call $~lib/string/String.__eq - i32.eqz + i32.const 1712 + i32.const 2336 + call $~lib/string/String.__gt if i32.const 0 i32.const 1120 - i32.const 473 + i32.const 401 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 14304 - i32.store offset=8 - local.get $0 - i32.const 4560 - i32.store offset=12 - local.get $0 - i32.const 4592 - i32.store offset=60 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 14960 - i32.store offset=4 - local.get $0 - i32.const 14960 - call $~lib/string/String.__eq - i32.eqz + i32.const 1712 + i32.const 1712 + call $~lib/string/String.__lt if i32.const 0 i32.const 1120 - i32.const 474 + i32.const 402 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1712 - i32.store offset=8 - local.get $0 - i32.const 1712 - i32.store offset=12 - local.get $0 i32.const 1712 - i32.store offset=60 i32.const 1712 + call $~lib/string/String.__gt + if + i32.const 0 + i32.const 1120 + i32.const 403 + i32.const 1 + call $~lib/builtins/abort + unreachable + end 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 - global.get $~lib/memory/__stack_pointer + call $~lib/string/String.__gte + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 404 + i32.const 1 + call $~lib/builtins/abort + unreachable + end i32.const 1712 - i32.store offset=4 - local.get $0 i32.const 1712 - call $~lib/string/String.__eq + call $~lib/string/String.__lte + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 405 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 3456 + i32.const 13872 + call $~lib/string/String.__lt + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 407 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 13872 + i32.const 3456 + call $~lib/string/String.__gt i32.eqz if i32.const 0 i32.const 1120 - i32.const 476 + i32.const 408 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 13904 + i32.const 13872 + call $~lib/string/String.__lt + if + i32.const 0 + i32.const 1120 + i32.const 409 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 13872 + i32.const 13904 + call $~lib/string/String.__gt + if + i32.const 0 + i32.const 1120 + i32.const 410 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1712 - i32.store offset=8 - local.get $0 - i32.const 1712 - i32.store offset=12 - local.get $0 - i32.const 4592 - i32.store offset=60 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4592 - i32.store offset=4 - local.get $0 - i32.const 4592 - call $~lib/string/String.__eq + i32.const 13904 + i32.const 13872 + call $~lib/string/String.__gt i32.eqz if i32.const 0 i32.const 1120 - i32.const 477 + i32.const 411 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 4592 - i32.store offset=8 - local.get $0 - i32.const 4592 - i32.store offset=12 - local.get $0 - i32.const 1712 - i32.store offset=60 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 - local.get $0 - i32.const 1712 - call $~lib/string/String.__eq + i32.const 13872 + i32.const 13904 + call $~lib/string/String.__lt i32.eqz if i32.const 0 i32.const 1120 - i32.const 478 + i32.const 412 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 4592 - i32.store offset=8 - local.get $0 - i32.const 1712 - i32.store offset=12 - local.get $0 - i32.const 1712 - i32.store offset=60 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4592 - i32.store offset=4 - local.get $0 - i32.const 4592 - call $~lib/string/String.__eq - i32.eqz + i32.const 13904 + i32.const 13904 + call $~lib/string/String.__lt if i32.const 0 i32.const 1120 - i32.const 479 + i32.const 413 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 2336 - i32.store offset=8 - local.get $0 - i32.const 2336 - i32.store offset=12 - local.get $0 - i32.const 4560 - i32.store offset=60 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4560 - i32.store offset=4 - local.get $0 - i32.const 4560 - call $~lib/string/String.__eq + i32.const 13904 + i32.const 13904 + call $~lib/string/String.__gt + if + i32.const 0 + i32.const 1120 + i32.const 414 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 13904 + i32.const 13904 + call $~lib/string/String.__lte i32.eqz if i32.const 0 i32.const 1120 - i32.const 480 + i32.const 415 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 2336 - i32.store offset=8 - local.get $0 - i32.const 2816 - i32.store offset=12 - local.get $0 - i32.const 4560 - i32.store offset=60 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store offset=4 - local.get $0 - i32.const 2336 - call $~lib/string/String.__eq + i32.const 13904 + i32.const 13904 + call $~lib/string/String.__gte i32.eqz if i32.const 0 i32.const 1120 - i32.const 481 + i32.const 416 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 2336 - i32.store offset=8 - local.get $0 - i32.const 1712 - i32.store offset=12 - local.get $0 - i32.const 4592 - i32.store offset=60 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 14992 - i32.store offset=4 - local.get $0 - i32.const 14992 - call $~lib/string/String.__eq + i32.const 13872 + i32.const 13936 + call $~lib/string/String.__gte + if + i32.const 0 + i32.const 1120 + i32.const 417 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 13936 + i32.const 13872 + call $~lib/string/String.__gte i32.eqz if i32.const 0 i32.const 1120 - i32.const 482 + i32.const 418 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 2336 - i32.store offset=8 - local.get $0 - i32.const 1712 - i32.store offset=12 - local.get $0 - i32.const 1712 - i32.store offset=60 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store offset=4 - local.get $0 - i32.const 2336 - call $~lib/string/String.__eq + i32.const 13872 + i32.const 13936 + call $~lib/string/String.__lte i32.eqz if i32.const 0 i32.const 1120 - i32.const 483 + i32.const 419 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 15040 - i32.store offset=8 - local.get $0 - i32.const 1808 - i32.store offset=12 - local.get $0 - i32.const 15072 - i32.store offset=60 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 15104 - i32.store offset=4 - local.get $0 - i32.const 15104 + i32.const 3456 + i32.const 3456 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 486 + i32.const 420 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 13392 - i32.store offset=8 - local.get $0 - i32.const 13392 - i32.store offset=12 - local.get $0 - i32.const 15152 - i32.store offset=60 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 15152 - i32.store offset=4 - local.get $0 - i32.const 15152 + i32.const 13904 + i32.const 13904 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 487 + i32.const 421 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 14112 - i32.store offset=8 - local.get $0 - i32.const 1808 - i32.store offset=12 - local.get $0 - i32.const 15184 - i32.store offset=60 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 15216 - i32.store offset=4 - local.get $0 - i32.const 15216 + i32.const 2400 + i32.const 2400 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 488 + i32.const 422 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 14112 - i32.store offset=8 - local.get $0 - i32.const 13840 - i32.store offset=12 - local.get $0 - i32.const 15072 - i32.store offset=60 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 15264 - i32.store offset=4 - local.get $0 - i32.const 15264 - call $~lib/string/String.__eq + i32.const 2400 + i32.const 13968 + call $~lib/string/String.__ne i32.eqz if i32.const 0 i32.const 1120 - i32.const 489 + i32.const 424 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15296 - global.set $std/string/str - global.get $~lib/memory/__stack_pointer - i32.const 15296 - i32.store offset=8 - i32.const 1 - global.set $~argumentsLength - i32.const 15296 - i32.const 0 - call $~lib/string/String#slice@varargs - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15296 - i32.store offset=4 - local.get $0 - i32.const 15296 + i32.const 14000 + i32.const 14000 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 493 + i32.const 425 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 - i32.const 1 - global.set $~argumentsLength - local.get $0 - i32.const -1 - call $~lib/string/String#slice@varargs - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15344 - i32.store offset=4 - local.get $0 - i32.const 15344 - call $~lib/string/String.__eq + i32.const 14032 + i32.const 14000 + call $~lib/string/String.__ne i32.eqz if i32.const 0 i32.const 1120 - i32.const 494 + i32.const 427 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 - i32.const 1 - global.set $~argumentsLength - local.get $0 - i32.const -5 - call $~lib/string/String#slice@varargs + i32.const 65377 + call $~lib/string/String.fromCodePoint + local.tee $4 + i32.store offset=64 + global.get $~lib/memory/__stack_pointer + i32.const 55296 + call $~lib/string/String.fromCodePoint + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + i32.const 56322 + call $~lib/string/String.fromCodePoint local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 + i32.store offset=4 + local.get $6 + local.get $0 + call $~lib/string/String.__concat + local.tee $0 + i32.store offset=68 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store global.get $~lib/memory/__stack_pointer - i32.const 15376 + local.get $0 i32.store offset=4 + local.get $4 local.get $0 - i32.const 15376 - call $~lib/string/String.__eq + call $~lib/string/String.__gt i32.eqz if i32.const 0 i32.const 1120 - i32.const 495 + i32.const 432 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 2396 + i32.load + i32.const 1 + i32.shr_u + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 435 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 2 - i32.const 7 - call $~lib/string/String#slice + i32.const 1712 + i32.const 100 + call $~lib/string/String#repeat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15408 - i32.store offset=4 local.get $0 - i32.const 15408 + i32.const 1712 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 496 + i32.const 437 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 -11 - i32.const -6 - call $~lib/string/String#slice + i32.const 1808 + i32.const 0 + call $~lib/string/String#repeat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15440 - i32.store offset=4 local.get $0 - i32.const 15440 + i32.const 1712 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 497 + i32.const 438 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 4 - i32.const 3 - call $~lib/string/String#slice + i32.const 1808 + i32.const 1 + call $~lib/string/String#repeat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 local.get $0 - i32.const 1712 + i32.const 1808 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 498 + i32.const 439 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 1808 + i32.const 2 + call $~lib/string/String#repeat + local.set $0 global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $0 - i32.store offset=8 local.get $0 - i32.const 0 - i32.const -1 - call $~lib/string/String#slice + i32.store + local.get $0 + i32.const 13840 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 440 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1808 + i32.const 3 + call $~lib/string/String#repeat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15472 - i32.store offset=4 local.get $0 - i32.const 15472 + i32.const 14112 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 499 + i32.const 441 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 - i32.const 1 - global.set $~argumentsLength - local.get $0 - i32.const 0 - call $~lib/string/String#substr@varargs + i32.const 13392 + i32.const 4 + call $~lib/string/String#repeat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15296 - i32.store offset=4 local.get $0 - i32.const 15296 + i32.const 14144 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 501 + i32.const 442 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 - i32.const 1 - global.set $~argumentsLength - local.get $0 - i32.const -1 - call $~lib/string/String#substr@varargs + i32.const 1808 + i32.const 5 + call $~lib/string/String#repeat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15344 - i32.store offset=4 local.get $0 - i32.const 15344 + i32.const 14192 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 502 + i32.const 443 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 - i32.const 1 - global.set $~argumentsLength - local.get $0 - i32.const -5 - call $~lib/string/String#substr@varargs + i32.const 1808 + i32.const 6 + call $~lib/string/String#repeat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15376 - i32.store offset=4 local.get $0 - i32.const 15376 + i32.const 14224 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 503 + i32.const 444 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 2 + i32.const 1808 i32.const 7 - call $~lib/string/String#substr + call $~lib/string/String#repeat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15520 - i32.store offset=4 local.get $0 - i32.const 15520 + i32.const 14256 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 504 + i32.const 445 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 -11 - i32.const -6 - call $~lib/string/String#substr + 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 - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 local.get $0 i32.const 1712 call $~lib/string/String.__eq @@ -18655,53 +17130,39 @@ if i32.const 0 i32.const 1120 - i32.const 505 + i32.const 447 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 4 - i32.const 3 - call $~lib/string/String#substr + 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 - global.get $~lib/memory/__stack_pointer - i32.const 15568 - i32.store offset=4 local.get $0 - i32.const 15568 + i32.const 4592 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 506 + i32.const 448 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 0 - i32.const -1 - call $~lib/string/String#substr + 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 - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 local.get $0 i32.const 1712 call $~lib/string/String.__eq @@ -18709,7756 +17170,6243 @@ if i32.const 0 i32.const 1120 - i32.const 507 + i32.const 449 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 0 - i32.const 100 - call $~lib/string/String#substr + 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 - global.get $~lib/memory/__stack_pointer - i32.const 15296 - i32.store offset=4 local.get $0 - i32.const 15296 + i32.const 4592 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 508 + i32.const 450 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 4 - i32.const 4 - call $~lib/string/String#substr + 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 - global.get $~lib/memory/__stack_pointer - i32.const 15600 - i32.store offset=4 local.get $0 - i32.const 15600 + i32.const 2336 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 509 + i32.const 451 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 4 - i32.const -3 - call $~lib/string/String#substr + 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 - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 local.get $0 - i32.const 1712 + i32.const 4592 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 510 + i32.const 452 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 - i32.const 1 - global.set $~argumentsLength - local.get $0 - i32.const 0 - call $~lib/string/String#substring@varargs + 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 - global.get $~lib/memory/__stack_pointer - i32.const 15296 - i32.store offset=4 local.get $0 - i32.const 15296 + i32.const 2336 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 512 + i32.const 453 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 - i32.const 1 - global.set $~argumentsLength - local.get $0 - i32.const -1 - call $~lib/string/String#substring@varargs + 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 - global.get $~lib/memory/__stack_pointer - i32.const 15296 - i32.store offset=4 local.get $0 - i32.const 15296 + i32.const 2336 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 513 + i32.const 454 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 - i32.const 1 - global.set $~argumentsLength - local.get $0 - i32.const -5 - call $~lib/string/String#substring@varargs + 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 - global.get $~lib/memory/__stack_pointer - i32.const 15296 - i32.store offset=4 - local.get $0 - i32.const 15296 + i32.store + local.get $0 + i32.const 14336 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 514 + i32.const 455 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 2 - i32.const 7 - call $~lib/string/String#substring + 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 - global.get $~lib/memory/__stack_pointer - i32.const 15408 - i32.store offset=4 local.get $0 - i32.const 15408 + i32.const 14368 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 515 + i32.const 456 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 -11 - i32.const -6 - call $~lib/string/String#substring + 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 - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 local.get $0 - i32.const 1712 + i32.const 14368 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 516 + i32.const 457 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 4 - i32.const 3 - call $~lib/string/String#substring + 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 - global.get $~lib/memory/__stack_pointer - i32.const 15632 - i32.store offset=4 local.get $0 - i32.const 15632 + i32.const 14528 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 517 + i32.const 458 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 0 - i32.const -1 - call $~lib/string/String#substring + 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 - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 local.get $0 - i32.const 1712 + i32.const 13392 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 518 + i32.const 459 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 0 - i32.const 100 - call $~lib/string/String#substring + 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 - global.get $~lib/memory/__stack_pointer - i32.const 15296 - i32.store offset=4 local.get $0 - i32.const 15296 + i32.const 2336 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 519 + i32.const 461 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 4 - i32.const 4 - call $~lib/string/String#substring + 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 - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 local.get $0 - i32.const 1712 + i32.const 2336 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 520 + i32.const 462 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 4 - i32.const -3 - call $~lib/string/String#substring + 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 - global.get $~lib/memory/__stack_pointer - i32.const 2912 - i32.store offset=4 local.get $0 - i32.const 2912 + i32.const 14496 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 521 + i32.const 464 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1712 - i32.store - i32.const 0 - global.set $~argumentsLength - local.get $0 - i32.const 1712 - i32.const 0 - call $~lib/string/String#split@varargs - local.tee $0 - i32.store offset=92 + 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 - call $~lib/array/Array#get:length - i32.const 1 - i32.eq - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#__get - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 - local.get $0 - i32.const 1712 - call $~lib/string/String.__eq - else - i32.const 0 - end + i32.const 14608 + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 527 - i32.const 3 + i32.const 465 + i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1712 - i32.store - local.get $0 - i32.const 1712 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $0 - i32.const 1712 - i32.const 1712 - call $~lib/string/String#split@varargs - local.tee $0 - i32.store offset=92 + 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 - call $~lib/array/Array#get:length + i32.const 2544 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 529 - i32.const 3 + i32.const 466 + i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 14640 + i32.const 1808 + i32.const 14608 + call $~lib/string/String#replaceAll + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1712 - i32.store - local.get $0 - i32.const 2624 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $0 - i32.const 1712 - i32.const 2624 - call $~lib/string/String#split@varargs - local.tee $0 - i32.store offset=92 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/array/Array#get:length - i32.const 1 - i32.eq - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#__get - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 - local.get $0 - i32.const 1712 - call $~lib/string/String.__eq - else - i32.const 0 - end + local.get $0 + i32.store + local.get $0 + i32.const 14688 + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 531 - i32.const 3 + i32.const 467 + i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 15840 - i32.store - local.get $0 - i32.const 7632 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $0 - i32.const 15840 - i32.const 7632 - call $~lib/string/String#split@varargs - local.tee $0 - i32.store offset=92 + 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 - call $~lib/array/Array#get:length - i32.const 1 - i32.eq - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#__get - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15840 - i32.store offset=4 - local.get $0 - i32.const 15840 - call $~lib/string/String.__eq - else - i32.const 0 - end + i32.const 14736 + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 533 - i32.const 3 + i32.const 468 + i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 15840 - i32.store - local.get $0 - i32.const 2624 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $0 - i32.const 15840 - i32.const 2624 - call $~lib/string/String#split@varargs - local.tee $0 - i32.store offset=92 + 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 - call $~lib/array/Array#get:length - i32.const 3 - i32.eq - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=4 - local.get $4 - i32.const 1808 - call $~lib/string/String.__eq - else - i32.const 0 - end - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.const 1 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13360 - i32.store offset=4 - local.get $4 - i32.const 13360 - call $~lib/string/String.__eq - else - i32.const 0 - end - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.const 2 - call $~lib/array/Array<~lib/string/String>#__get - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14464 - i32.store offset=4 - local.get $0 - i32.const 14464 - call $~lib/string/String.__eq - else - i32.const 0 - end + i32.const 14832 + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 535 - i32.const 3 + i32.const 469 + i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 2336 + i32.const 2912 + i32.const 4592 + call $~lib/string/String#replaceAll + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 15872 - i32.store local.get $0 - i32.const 15920 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength + i32.store local.get $0 - i32.const 15872 - i32.const 15920 - call $~lib/string/String#split@varargs - local.tee $0 - i32.store offset=92 + i32.const 2336 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 470 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 - call $~lib/array/Array#get:length - i32.const 3 - i32.eq - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=4 - local.get $4 - i32.const 1808 - call $~lib/string/String.__eq - else + i32.const 2912 + call $~lib/string/String.__eq + i32.eqz + if i32.const 0 - end - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 + i32.const 1120 + i32.const 471 i32.const 1 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13360 - i32.store offset=4 - local.get $4 - i32.const 13360 - call $~lib/string/String.__eq - else - i32.const 0 - end - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.const 2 - call $~lib/array/Array<~lib/string/String>#__get - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14464 - i32.store offset=4 - local.get $0 - i32.const 14464 - call $~lib/string/String.__eq - else - i32.const 0 + call $~lib/builtins/abort + unreachable end + 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 14928 + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 537 - i32.const 3 + i32.const 472 + i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 15952 - i32.store - local.get $0 - i32.const 2624 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $0 - i32.const 15952 - i32.const 2624 - call $~lib/string/String#split@varargs - local.tee $0 - i32.store offset=92 + 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 - call $~lib/array/Array#get:length - i32.const 4 - i32.eq - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=4 - local.get $4 - i32.const 1808 - call $~lib/string/String.__eq - else + i32.const 4592 + call $~lib/string/String.__eq + i32.eqz + if i32.const 0 - end - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 + i32.const 1120 + i32.const 473 i32.const 1 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13360 - i32.store offset=4 - local.get $4 - i32.const 13360 - call $~lib/string/String.__eq - else - i32.const 0 - end - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.const 2 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 - local.get $4 - i32.const 1712 - call $~lib/string/String.__eq - else - i32.const 0 - end - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.const 3 - call $~lib/array/Array<~lib/string/String>#__get - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14464 - i32.store offset=4 - local.get $0 - i32.const 14464 - call $~lib/string/String.__eq - else - i32.const 0 + call $~lib/builtins/abort + unreachable end + 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 14960 + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 539 - i32.const 3 + i32.const 474 + i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 1712 + i32.const 1712 + i32.const 1712 + call $~lib/string/String#replaceAll + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 15984 - i32.store local.get $0 - i32.const 2624 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength + i32.store local.get $0 - i32.const 15984 - i32.const 2624 - call $~lib/string/String#split@varargs - local.tee $0 - i32.store offset=92 + i32.const 1712 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 476 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 - call $~lib/array/Array#get:length - i32.const 4 - i32.eq - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 - local.get $4 - i32.const 1712 - call $~lib/string/String.__eq - else + i32.const 4592 + call $~lib/string/String.__eq + i32.eqz + if i32.const 0 - end - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 + i32.const 1120 + i32.const 477 i32.const 1 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=4 - local.get $4 - i32.const 1808 - call $~lib/string/String.__eq - else - i32.const 0 - end - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.const 2 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13360 - i32.store offset=4 - local.get $4 - i32.const 13360 - call $~lib/string/String.__eq - else - i32.const 0 - end - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.const 3 - call $~lib/array/Array<~lib/string/String>#__get - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14464 - i32.store offset=4 - local.get $0 - i32.const 14464 - call $~lib/string/String.__eq - else - i32.const 0 + call $~lib/builtins/abort + unreachable end + 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 1712 + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 541 - i32.const 3 + i32.const 478 + i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 4592 + i32.const 1712 + i32.const 1712 + call $~lib/string/String#replaceAll + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 16016 - i32.store local.get $0 - i32.const 2624 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength + i32.store local.get $0 - i32.const 16016 - i32.const 2624 - call $~lib/string/String#split@varargs - local.tee $0 - i32.store offset=92 + i32.const 4592 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 479 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 - call $~lib/array/Array#get:length - i32.const 4 - i32.eq - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=4 - local.get $4 - i32.const 1808 - call $~lib/string/String.__eq - else + i32.const 4560 + call $~lib/string/String.__eq + i32.eqz + if i32.const 0 - end - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 + i32.const 1120 + i32.const 480 i32.const 1 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13360 - i32.store offset=4 - local.get $4 - i32.const 13360 - call $~lib/string/String.__eq - else - i32.const 0 - end - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.const 2 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14464 - i32.store offset=4 - local.get $4 - i32.const 14464 - call $~lib/string/String.__eq - else - i32.const 0 - end - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.const 3 - call $~lib/array/Array<~lib/string/String>#__get - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 - local.get $0 - i32.const 1712 - call $~lib/string/String.__eq - else - i32.const 0 + call $~lib/builtins/abort + unreachable end + 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 2336 + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 543 - i32.const 3 + i32.const 481 + i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 2336 - i32.store - local.get $0 i32.const 1712 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength + 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 14992 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 482 + i32.const 1 + call $~lib/builtins/abort + unreachable + end i32.const 2336 i32.const 1712 - call $~lib/string/String#split@varargs - local.tee $0 - i32.store offset=92 + 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 - call $~lib/array/Array#get:length - i32.const 3 - i32.eq - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=4 - local.get $4 - i32.const 1808 - call $~lib/string/String.__eq - else + i32.const 2336 + call $~lib/string/String.__eq + i32.eqz + if i32.const 0 - end - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 + i32.const 1120 + i32.const 483 i32.const 1 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13360 - i32.store offset=4 - local.get $4 - i32.const 13360 - call $~lib/string/String.__eq - else + call $~lib/builtins/abort + unreachable + end + 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 15104 + call $~lib/string/String.__eq + i32.eqz + if i32.const 0 + i32.const 1120 + i32.const 486 + i32.const 1 + call $~lib/builtins/abort + unreachable end - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.const 2 - call $~lib/array/Array<~lib/string/String>#__get - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14464 - i32.store offset=4 - local.get $0 - i32.const 14464 - call $~lib/string/String.__eq - else + 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 15152 + call $~lib/string/String.__eq + i32.eqz + if i32.const 0 + i32.const 1120 + i32.const 487 + i32.const 1 + call $~lib/builtins/abort + unreachable end + 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 15216 + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 545 - i32.const 3 + i32.const 488 + i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 14112 + i32.const 13840 + i32.const 15072 + call $~lib/string/String#replaceAll + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 2336 + local.get $0 i32.store local.get $0 - i32.const 1712 + i32.const 15264 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 489 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 15296 + global.set $std/string/str + global.get $~lib/memory/__stack_pointer + i32.const 15296 i32.store offset=4 - local.get $0 - i32.const 2336 - i32.const 1712 + i32.const 1 + global.set $~argumentsLength + i32.const 15296 i32.const 0 - call $~lib/string/String#split - local.tee $0 - i32.store offset=92 + call $~lib/string/String#slice@varargs + local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - call $~lib/array/Array#get:length + i32.const 15296 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 547 - i32.const 3 + i32.const 493 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + global.get $std/string/str local.tee $0 - i32.const 2336 - i32.store - local.get $0 - i32.const 1712 i32.store offset=4 - local.get $0 - i32.const 2336 - i32.const 1712 i32.const 1 - call $~lib/string/String#split - local.tee $0 - i32.store offset=92 + global.set $~argumentsLength + local.get $0 + i32.const -1 + call $~lib/string/String#slice@varargs + local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - call $~lib/array/Array#get:length - i32.const 1 - i32.eq - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#__get - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=4 - local.get $0 - i32.const 1808 - call $~lib/string/String.__eq - else - i32.const 0 - end + i32.const 15344 + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 549 - i32.const 3 + i32.const 494 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + global.get $std/string/str local.tee $0 - i32.const 15840 - i32.store - local.get $0 - i32.const 2624 i32.store offset=4 - local.get $0 - i32.const 15840 - i32.const 2624 i32.const 1 - call $~lib/string/String#split - local.tee $0 - i32.store offset=92 + global.set $~argumentsLength + local.get $0 + i32.const -5 + call $~lib/string/String#slice@varargs + local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - call $~lib/array/Array#get:length - i32.const 1 - i32.eq - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#__get - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=4 - local.get $0 - i32.const 1808 - call $~lib/string/String.__eq - else - i32.const 0 - end + i32.const 15376 + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 551 - i32.const 3 + i32.const 495 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + global.get $std/string/str local.tee $0 - i32.const 2336 - i32.store - local.get $0 - i32.const 1712 i32.store offset=4 local.get $0 - i32.const 2336 - i32.const 1712 - i32.const 4 - call $~lib/string/String#split - local.tee $0 - i32.store offset=92 + i32.const 2 + i32.const 7 + call $~lib/string/String#slice + local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - call $~lib/array/Array#get:length - i32.const 3 - i32.eq - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=4 - local.get $4 - i32.const 1808 - call $~lib/string/String.__eq - else + i32.const 15408 + call $~lib/string/String.__eq + i32.eqz + if i32.const 0 - end - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 + i32.const 1120 + i32.const 496 i32.const 1 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13360 - i32.store offset=4 - local.get $4 - i32.const 13360 - call $~lib/string/String.__eq - else - i32.const 0 - end - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.const 2 - call $~lib/array/Array<~lib/string/String>#__get - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14464 - i32.store offset=4 - local.get $0 - i32.const 14464 - call $~lib/string/String.__eq - else - i32.const 0 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $0 + i32.store offset=4 + local.get $0 + i32.const -11 + i32.const -6 + call $~lib/string/String#slice + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 15440 + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 553 - i32.const 3 + i32.const 497 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + global.get $std/string/str local.tee $0 - i32.const 2336 - i32.store - local.get $0 - i32.const 1712 i32.store offset=4 local.get $0 - i32.const 2336 - i32.const 1712 - i32.const -1 - call $~lib/string/String#split - local.tee $0 - i32.store offset=92 + i32.const 4 + i32.const 3 + call $~lib/string/String#slice + local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - call $~lib/array/Array#get:length - i32.const 3 - i32.eq - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=4 - local.get $4 - i32.const 1808 - call $~lib/string/String.__eq - else - i32.const 0 - end - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.const 1 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13360 - i32.store offset=4 - local.get $4 - i32.const 13360 - call $~lib/string/String.__eq - else - i32.const 0 - end - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.const 2 - call $~lib/array/Array<~lib/string/String>#__get - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14464 - i32.store offset=4 - local.get $0 - i32.const 14464 - call $~lib/string/String.__eq - else - i32.const 0 - end + i32.const 1712 + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 555 - i32.const 3 + i32.const 498 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + global.get $std/string/str local.tee $0 - i32.const 15840 - i32.store - local.get $0 - i32.const 2624 i32.store offset=4 local.get $0 - i32.const 15840 - i32.const 2624 + i32.const 0 i32.const -1 - call $~lib/string/String#split - local.tee $0 - i32.store offset=92 + call $~lib/string/String#slice + local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - call $~lib/array/Array#get:length - i32.const 3 - i32.eq - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=4 - local.get $4 - i32.const 1808 - call $~lib/string/String.__eq - else - i32.const 0 - end - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.const 1 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13360 - i32.store offset=4 - local.get $4 - i32.const 13360 - call $~lib/string/String.__eq - else - i32.const 0 - end - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.const 2 - call $~lib/array/Array<~lib/string/String>#__get - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14464 - i32.store offset=4 - local.get $0 - i32.const 14464 - call $~lib/string/String.__eq - else - i32.const 0 - end + i32.const 15472 + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 557 - i32.const 3 + i32.const 499 + 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=4 + i32.const 1 + global.set $~argumentsLength + local.get $0 i32.const 0 - i32.const 10 - call $~lib/util/number/itoa32 + call $~lib/string/String#substr@varargs local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 3392 - i32.store offset=4 local.get $0 - i32.const 3392 + i32.const 15296 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 562 + i32.const 501 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=4 i32.const 1 - i32.const 10 - call $~lib/util/number/itoa32 + global.set $~argumentsLength + local.get $0 + i32.const -1 + call $~lib/string/String#substr@varargs local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 3456 - i32.store offset=4 local.get $0 - i32.const 3456 + i32.const 15344 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 563 + i32.const 502 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8 - i32.const 10 - call $~lib/util/number/itoa32 + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $0 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $0 + i32.const -5 + call $~lib/string/String#substr@varargs local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 17792 - i32.store offset=4 local.get $0 - i32.const 17792 + i32.const 15376 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 564 + i32.const 503 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12 - i32.const 10 - call $~lib/util/number/itoa32 + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 7 + call $~lib/string/String#substr local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 17824 - i32.store offset=4 local.get $0 - i32.const 17824 + i32.const 15520 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 565 + i32.const 504 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 123 - i32.const 10 - call $~lib/util/number/itoa32 + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $0 + i32.store offset=4 + local.get $0 + i32.const -11 + i32.const -6 + call $~lib/string/String#substr local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 2400 - i32.store offset=4 local.get $0 - i32.const 2400 + i32.const 1712 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 566 + i32.const 505 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -1000 - i32.const 10 - call $~lib/util/number/itoa32 + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.const 3 + call $~lib/string/String#substr local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 17856 - i32.store offset=4 local.get $0 - i32.const 17856 + i32.const 15568 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 567 + i32.const 506 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1234 - i32.const 10 - call $~lib/util/number/itoa32 + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const -1 + call $~lib/string/String#substr local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 14000 - i32.store offset=4 local.get $0 - i32.const 14000 + i32.const 1712 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 568 + i32.const 507 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12345 - i32.const 10 - call $~lib/util/number/itoa32 + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 100 + call $~lib/string/String#substr local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 17888 - i32.store offset=4 local.get $0 - i32.const 17888 + i32.const 15296 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 569 + i32.const 508 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 123456 - i32.const 10 - call $~lib/util/number/itoa32 + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.const 4 + call $~lib/string/String#substr local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 17920 - i32.store offset=4 local.get $0 - i32.const 17920 + i32.const 15600 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 570 + i32.const 509 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1111111 - i32.const 10 - call $~lib/util/number/itoa32 + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.const -3 + call $~lib/string/String#substr local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 17952 - i32.store offset=4 local.get $0 - i32.const 17952 + i32.const 1712 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 571 + i32.const 510 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1234567 - i32.const 10 - call $~lib/util/number/itoa32 + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $0 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $0 + i32.const 0 + call $~lib/string/String#substring@varargs local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 18000 - i32.store offset=4 local.get $0 - i32.const 18000 + i32.const 15296 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 572 + i32.const 512 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12345678 - i32.const 10 - call $~lib/util/number/itoa32 + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $0 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $0 + i32.const -1 + call $~lib/string/String#substring@varargs local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 18048 - i32.store offset=4 local.get $0 - i32.const 18048 + i32.const 15296 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 573 + i32.const 513 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 123456789 - i32.const 10 - call $~lib/util/number/itoa32 + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $0 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $0 + i32.const -5 + call $~lib/string/String#substring@varargs local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 18096 - i32.store offset=4 local.get $0 - i32.const 18096 + i32.const 15296 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 574 + i32.const 514 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2147483646 - i32.const 10 - call $~lib/util/number/itoa32 + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 7 + call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 18144 - i32.store offset=4 local.get $0 - i32.const 18144 + i32.const 15408 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 575 + i32.const 515 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2147483647 - i32.const 10 - call $~lib/util/number/itoa32 + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $0 + i32.store offset=4 + local.get $0 + i32.const -11 + i32.const -6 + call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 18192 - i32.store offset=4 local.get $0 - i32.const 18192 + i32.const 1712 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 576 + i32.const 516 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -2147483648 - i32.const 10 - call $~lib/util/number/itoa32 + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.const 3 + call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 18240 - i32.store offset=4 local.get $0 - i32.const 18240 + i32.const 15632 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 577 + i32.const 517 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=4 + local.get $0 + i32.const 0 i32.const -1 - i32.const 10 - call $~lib/util/number/itoa32 + call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 18288 - i32.store offset=4 local.get $0 - i32.const 18288 + i32.const 1712 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 578 + i32.const 518 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -128 - i32.const 10 - call $~lib/util/number/itoa32 + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 100 + call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 18320 - i32.store offset=4 local.get $0 - i32.const 18320 + i32.const 15296 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 580 + i32.const 519 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -32768 - i32.const 10 - call $~lib/util/number/itoa32 + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.const 4 + call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 18352 - i32.store offset=4 local.get $0 - i32.const 18352 + i32.const 1712 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 581 + i32.const 520 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -2147483648 - i32.const 10 - call $~lib/util/number/itoa32 + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.const -3 + call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 18240 - i32.store offset=4 local.get $0 - i32.const 18240 + i32.const 2912 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 582 + i32.const 521 i32.const 1 call $~lib/builtins/abort unreachable end i32.const 0 - i32.const 10 - call $~lib/util/number/utoa32 - local.set $0 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 1712 + i32.const 0 + call $~lib/string/String#split@varargs + local.tee $0 + i32.store offset=72 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 3392 - i32.store offset=4 local.get $0 - i32.const 3392 - call $~lib/string/String.__eq + call $~lib/array/Array#get:length + i32.const 1 + i32.eq + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#__get + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1712 + call $~lib/string/String.__eq + else + i32.const 0 + end i32.eqz if i32.const 0 i32.const 1120 - i32.const 584 - i32.const 1 + i32.const 527 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 1000 - i32.const 10 - call $~lib/util/number/utoa32 - local.set $0 + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 1712 + i32.const 1712 + call $~lib/string/String#split@varargs + local.tee $0 + i32.store offset=72 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 18384 - i32.store offset=4 local.get $0 - i32.const 18384 - call $~lib/string/String.__eq - i32.eqz + call $~lib/array/Array#get:length if i32.const 0 i32.const 1120 - i32.const 585 - i32.const 1 + i32.const 529 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 2147483647 - i32.const 10 - call $~lib/util/number/utoa32 - local.set $0 + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 1712 + i32.const 2624 + call $~lib/string/String#split@varargs + local.tee $0 + i32.store offset=72 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 18192 - i32.store offset=4 local.get $0 - i32.const 18192 - call $~lib/string/String.__eq + call $~lib/array/Array#get:length + i32.const 1 + i32.eq + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#__get + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1712 + call $~lib/string/String.__eq + else + i32.const 0 + end i32.eqz if i32.const 0 i32.const 1120 - i32.const 586 - i32.const 1 + i32.const 531 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const -2147483648 - i32.const 10 - call $~lib/util/number/utoa32 - local.set $0 + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 15840 + i32.const 7632 + call $~lib/string/String#split@varargs + local.tee $0 + i32.store offset=72 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 18416 - i32.store offset=4 local.get $0 - i32.const 18416 - call $~lib/string/String.__eq + call $~lib/array/Array#get:length + i32.const 1 + i32.eq + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#__get + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 15840 + call $~lib/string/String.__eq + else + i32.const 0 + end i32.eqz if i32.const 0 i32.const 1120 - i32.const 587 - i32.const 1 + i32.const 533 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const -1 - i32.const 10 - call $~lib/util/number/utoa32 - local.set $0 + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 15840 + i32.const 2624 + call $~lib/string/String#split@varargs + local.tee $0 + i32.store offset=72 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 18464 - i32.store offset=4 local.get $0 - i32.const 18464 - call $~lib/string/String.__eq + call $~lib/array/Array#get:length + i32.const 3 + i32.eq + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 1808 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + call $~lib/array/Array<~lib/string/String>#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 13360 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + call $~lib/array/Array<~lib/string/String>#__get + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 14464 + call $~lib/string/String.__eq + else + i32.const 0 + end i32.eqz if i32.const 0 i32.const 1120 - i32.const 588 - i32.const 1 + i32.const 535 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 16 - call $~lib/util/number/utoa32 - local.set $0 + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 15872 + i32.const 15920 + call $~lib/string/String#split@varargs + local.tee $0 + i32.store offset=72 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 3392 - i32.store offset=4 local.get $0 - i32.const 3392 - call $~lib/string/String.__eq + call $~lib/array/Array#get:length + i32.const 3 + i32.eq + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 1808 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + call $~lib/array/Array<~lib/string/String>#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 13360 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + call $~lib/array/Array<~lib/string/String>#__get + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 14464 + call $~lib/string/String.__eq + else + i32.const 0 + end i32.eqz if i32.const 0 i32.const 1120 - i32.const 592 - i32.const 1 + i32.const 537 + i32.const 3 call $~lib/builtins/abort unreachable end i32.const 1 - i32.const 16 - call $~lib/util/number/utoa32 - local.set $0 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 15952 + i32.const 2624 + call $~lib/string/String#split@varargs + local.tee $0 + i32.store offset=72 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 3456 - i32.store offset=4 local.get $0 - i32.const 3456 - call $~lib/string/String.__eq + call $~lib/array/Array#get:length + i32.const 4 + i32.eq + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 1808 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + call $~lib/array/Array<~lib/string/String>#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 13360 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + call $~lib/array/Array<~lib/string/String>#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 1712 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + call $~lib/array/Array<~lib/string/String>#__get + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 14464 + call $~lib/string/String.__eq + else + i32.const 0 + end i32.eqz if i32.const 0 i32.const 1120 - i32.const 593 - i32.const 1 + i32.const 539 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 8 - i32.const 16 - call $~lib/util/number/utoa32 - local.set $0 + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 15984 + i32.const 2624 + call $~lib/string/String#split@varargs + local.tee $0 + i32.store offset=72 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 17792 - i32.store offset=4 local.get $0 - i32.const 17792 - call $~lib/string/String.__eq - i32.eqz - if + call $~lib/array/Array#get:length + i32.const 4 + i32.eq + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 1712 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + call $~lib/array/Array<~lib/string/String>#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 1808 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + call $~lib/array/Array<~lib/string/String>#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 13360 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + call $~lib/array/Array<~lib/string/String>#__get + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 14464 + call $~lib/string/String.__eq + else i32.const 0 - i32.const 1120 - i32.const 594 - i32.const 1 - call $~lib/builtins/abort - unreachable end - i32.const 12 - i32.const 16 - call $~lib/util/number/utoa32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $0 - i32.store - local.get $4 - i32.const 14464 - i32.store offset=4 - local.get $0 - i32.const 14464 - call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 595 - i32.const 1 + i32.const 541 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 123 - i32.const 16 - call $~lib/util/number/utoa32 - local.set $0 + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 16016 + i32.const 2624 + call $~lib/string/String#split@varargs + local.tee $0 + i32.store offset=72 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 18512 - i32.store offset=4 local.get $0 - i32.const 18512 - call $~lib/string/String.__eq - i32.eqz - if + call $~lib/array/Array#get:length + i32.const 4 + i32.eq + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 0 - i32.const 1120 - i32.const 596 + call $~lib/array/Array<~lib/string/String>#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 1808 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 1 - call $~lib/builtins/abort - unreachable + call $~lib/array/Array<~lib/string/String>#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 13360 + call $~lib/string/String.__eq + else + i32.const 0 end - i32.const 1234 - i32.const 16 - call $~lib/util/number/utoa32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $0 - i32.store - local.get $4 - i32.const 18544 - i32.store offset=4 - local.get $0 - i32.const 18544 - call $~lib/string/String.__eq - i32.eqz - if + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + call $~lib/array/Array<~lib/string/String>#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 14464 + call $~lib/string/String.__eq + else i32.const 0 - i32.const 1120 - i32.const 597 - i32.const 1 - call $~lib/builtins/abort - unreachable end - i32.const 12345 - i32.const 16 - call $~lib/util/number/utoa32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $0 - i32.store - local.get $4 - i32.const 18576 - i32.store offset=4 - local.get $0 - i32.const 18576 - call $~lib/string/String.__eq - i32.eqz - if + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + call $~lib/array/Array<~lib/string/String>#__get + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1712 + call $~lib/string/String.__eq + else i32.const 0 - i32.const 1120 - i32.const 598 - i32.const 1 - call $~lib/builtins/abort - unreachable end - i32.const 123456 - i32.const 16 - call $~lib/util/number/utoa32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $0 - i32.store - local.get $4 - i32.const 18608 - i32.store offset=4 - local.get $0 - i32.const 18608 - call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 599 - i32.const 1 + i32.const 543 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 1111111 - i32.const 16 - call $~lib/util/number/utoa32 - local.set $0 + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 2336 + i32.const 1712 + call $~lib/string/String#split@varargs + local.tee $0 + i32.store offset=72 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 18640 - i32.store offset=4 local.get $0 - i32.const 18640 - call $~lib/string/String.__eq - i32.eqz - if + call $~lib/array/Array#get:length + i32.const 3 + i32.eq + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 0 - i32.const 1120 - i32.const 600 + call $~lib/array/Array<~lib/string/String>#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 1808 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 1 - call $~lib/builtins/abort - unreachable + call $~lib/array/Array<~lib/string/String>#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 13360 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + call $~lib/array/Array<~lib/string/String>#__get + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 14464 + call $~lib/string/String.__eq + else + i32.const 0 end - i32.const 1234567 - i32.const 16 - call $~lib/util/number/utoa32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $0 - i32.store - local.get $4 - i32.const 18672 - i32.store offset=4 - local.get $0 - i32.const 18672 - call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 601 - i32.const 1 + i32.const 545 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 12345678 - i32.const 16 - call $~lib/util/number/utoa32 - local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 + i32.const 2336 + i32.const 1712 + i32.const 0 + call $~lib/string/String#split + local.tee $0 + i32.store offset=72 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 - i32.const 18704 - i32.store offset=4 local.get $0 - i32.const 18704 - call $~lib/string/String.__eq - i32.eqz + call $~lib/array/Array#get:length if i32.const 0 i32.const 1120 - i32.const 602 - i32.const 1 + i32.const 547 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 123456789 - i32.const 16 - call $~lib/util/number/utoa32 - local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 + i32.const 2336 + i32.const 1712 + i32.const 1 + call $~lib/string/String#split + local.tee $0 + i32.store offset=72 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 - i32.const 18736 - i32.store offset=4 local.get $0 - i32.const 18736 - call $~lib/string/String.__eq + call $~lib/array/Array#get:length + i32.const 1 + i32.eq + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#__get + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1808 + call $~lib/string/String.__eq + else + i32.const 0 + end i32.eqz if i32.const 0 i32.const 1120 - i32.const 603 - i32.const 1 + i32.const 549 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 2147483646 - i32.const 16 - call $~lib/util/number/utoa32 - local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 + i32.const 15840 + i32.const 2624 + i32.const 1 + call $~lib/string/String#split + local.tee $0 + i32.store offset=72 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 - i32.const 18784 - i32.store offset=4 local.get $0 - i32.const 18784 - call $~lib/string/String.__eq + call $~lib/array/Array#get:length + i32.const 1 + i32.eq + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#__get + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1808 + call $~lib/string/String.__eq + else + i32.const 0 + end i32.eqz if i32.const 0 i32.const 1120 - i32.const 604 - i32.const 1 + i32.const 551 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 2147483647 - i32.const 16 - call $~lib/util/number/utoa32 - local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 + i32.const 2336 + i32.const 1712 + i32.const 4 + call $~lib/string/String#split + local.tee $0 + i32.store offset=72 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 - i32.const 18832 - i32.store offset=4 local.get $0 - i32.const 18832 - call $~lib/string/String.__eq + call $~lib/array/Array#get:length + i32.const 3 + i32.eq + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 1808 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + call $~lib/array/Array<~lib/string/String>#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 13360 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + call $~lib/array/Array<~lib/string/String>#__get + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 14464 + call $~lib/string/String.__eq + else + i32.const 0 + end i32.eqz if i32.const 0 i32.const 1120 - i32.const 605 - i32.const 1 + i32.const 553 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const -2147483648 - i32.const 16 - call $~lib/util/number/utoa32 - local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 + i32.const 2336 + i32.const 1712 + i32.const -1 + call $~lib/string/String#split + local.tee $0 + i32.store offset=72 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 - i32.const 18880 - i32.store offset=4 local.get $0 - i32.const 18880 - call $~lib/string/String.__eq - i32.eqz - if + call $~lib/array/Array#get:length + i32.const 3 + i32.eq + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 1808 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + call $~lib/array/Array<~lib/string/String>#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 13360 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + call $~lib/array/Array<~lib/string/String>#__get + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 14464 + call $~lib/string/String.__eq + else i32.const 0 - i32.const 1120 - i32.const 606 - i32.const 1 - call $~lib/builtins/abort - unreachable end - i32.const -1 - i32.const 16 - call $~lib/util/number/utoa32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $0 - i32.store - local.get $4 - i32.const 18928 - i32.store offset=4 - local.get $0 - i32.const 18928 - call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 607 - i32.const 1 + i32.const 555 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 16 - call $~lib/util/number/itoa32 - local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 + i32.const 15840 + i32.const 2624 + i32.const -1 + call $~lib/string/String#split + local.tee $0 + i32.store offset=72 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 - i32.const 3392 - i32.store offset=4 local.get $0 - i32.const 3392 - call $~lib/string/String.__eq - i32.eqz - if + call $~lib/array/Array#get:length + i32.const 3 + i32.eq + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 0 - i32.const 1120 - i32.const 609 + call $~lib/array/Array<~lib/string/String>#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 1808 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 1 - call $~lib/builtins/abort - unreachable + call $~lib/array/Array<~lib/string/String>#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 13360 + call $~lib/string/String.__eq + else + i32.const 0 end - i32.const -4096 - i32.const 16 - call $~lib/util/number/itoa32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $0 - i32.store - local.get $4 - i32.const 17856 - i32.store offset=4 - local.get $0 - i32.const 17856 - call $~lib/string/String.__eq - i32.eqz - if + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + call $~lib/array/Array<~lib/string/String>#__get + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 14464 + call $~lib/string/String.__eq + else i32.const 0 - i32.const 1120 - i32.const 610 - i32.const 1 - call $~lib/builtins/abort - unreachable end - i32.const 2147483647 - i32.const 16 - call $~lib/util/number/itoa32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $0 - i32.store - local.get $4 - i32.const 18832 - i32.store offset=4 - local.get $0 - i32.const 18832 - call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 611 - i32.const 1 + i32.const 557 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const -2147483647 - i32.const 16 + i32.const 0 + i32.const 10 call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 18976 - i32.store offset=4 local.get $0 - i32.const 18976 + i32.const 3392 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 612 + i32.const 562 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -268435455 - i32.const 16 + i32.const 1 + i32.const 10 call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 19024 - i32.store offset=4 local.get $0 - i32.const 19024 + i32.const 3456 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 613 + i32.const 563 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -2147483648 - i32.const 16 + i32.const 8 + i32.const 10 call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 19072 - i32.store offset=4 local.get $0 - i32.const 19072 + i32.const 17792 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 614 + i32.const 564 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -2147483648 - i32.const 16 + i32.const 12 + i32.const 10 call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 19072 - i32.store offset=4 local.get $0 - i32.const 19072 + i32.const 17824 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 615 + i32.const 565 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 2 - call $~lib/util/number/utoa32 + i32.const 123 + i32.const 10 + call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 3392 - i32.store offset=4 local.get $0 - i32.const 3392 + i32.const 2400 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 619 + i32.const 566 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 2 - call $~lib/util/number/utoa32 + i32.const -1000 + i32.const 10 + call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 3456 - i32.store offset=4 local.get $0 - i32.const 3456 + i32.const 17856 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 620 + i32.const 567 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3 - i32.const 2 - call $~lib/util/number/utoa32 + i32.const 1234 + i32.const 10 + call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 13904 - i32.store offset=4 local.get $0 - i32.const 13904 + i32.const 14000 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 621 + i32.const 568 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7 - i32.const 2 - call $~lib/util/number/utoa32 + i32.const 12345 + i32.const 10 + call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 19120 - i32.store offset=4 local.get $0 - i32.const 19120 + i32.const 17888 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 622 + i32.const 569 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14 - i32.const 2 - call $~lib/util/number/utoa32 + i32.const 123456 + i32.const 10 + call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 19152 - i32.store offset=4 local.get $0 - i32.const 19152 + i32.const 17920 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 623 + i32.const 570 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 29 - i32.const 2 - call $~lib/util/number/utoa32 + i32.const 1111111 + i32.const 10 + call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 19184 - i32.store offset=4 local.get $0 - i32.const 19184 + i32.const 17952 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 624 + i32.const 571 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 59 - i32.const 2 - call $~lib/util/number/utoa32 + i32.const 1234567 + i32.const 10 + call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 19216 - i32.store offset=4 local.get $0 - i32.const 19216 + i32.const 18000 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 625 + i32.const 572 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4095 - i32.const 2 - call $~lib/util/number/utoa32 + i32.const 12345678 + i32.const 10 + call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 19248 - i32.store offset=4 local.get $0 - i32.const 19248 + i32.const 18048 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 626 + i32.const 573 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 33554431 - i32.const 2 - call $~lib/util/number/utoa32 + i32.const 123456789 + i32.const 10 + call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 19296 - i32.store offset=4 local.get $0 - i32.const 19296 + i32.const 18096 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 627 + i32.const 574 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -12 - i32.const 2 - call $~lib/util/number/utoa32 + i32.const 2147483646 + i32.const 10 + call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 19376 - i32.store offset=4 local.get $0 - i32.const 19376 + i32.const 18144 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 628 + i32.const 575 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -4 - i32.const 2 - call $~lib/util/number/utoa32 + i32.const 2147483647 + i32.const 10 + call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 19472 - i32.store offset=4 local.get $0 - i32.const 19472 + i32.const 18192 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 629 + i32.const 576 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -2 - i32.const 2 - call $~lib/util/number/utoa32 + i32.const -2147483648 + i32.const 10 + call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 19568 - i32.store offset=4 local.get $0 - i32.const 19568 + i32.const 18240 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 630 + i32.const 577 i32.const 1 call $~lib/builtins/abort unreachable end i32.const -1 - i32.const 2 - call $~lib/util/number/utoa32 + i32.const 10 + call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 19664 - i32.store offset=4 local.get $0 - i32.const 19664 + i32.const 18288 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 631 + i32.const 578 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -2047 - i32.const 2 + i32.const -128 + i32.const 10 call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 19760 - i32.store offset=4 local.get $0 - i32.const 19760 + i32.const 18320 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 633 + i32.const 580 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -1 - i32.const 3 - call $~lib/util/number/utoa32 + i32.const -32768 + i32.const 10 + call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 19808 - i32.store offset=4 local.get $0 - i32.const 19808 + i32.const 18352 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 637 + i32.const 581 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -1 - i32.const 4 - call $~lib/util/number/utoa32 + i32.const -2147483648 + i32.const 10 + call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 19872 - i32.store offset=4 local.get $0 - i32.const 19872 + i32.const 18240 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 638 + i32.const 582 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -1 - i32.const 5 + i32.const 0 + i32.const 10 call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 19936 - i32.store offset=4 local.get $0 - i32.const 19936 + i32.const 3392 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 639 + i32.const 584 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -1 - i32.const 8 + i32.const 1000 + i32.const 10 call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 19984 - i32.store offset=4 local.get $0 - i32.const 19984 + i32.const 18384 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 640 + i32.const 585 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -1 - i32.const 11 + i32.const 2147483647 + i32.const 10 call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 20032 - i32.store offset=4 local.get $0 - i32.const 20032 + i32.const 18192 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 641 + i32.const 586 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -1 - i32.const 15 + i32.const -2147483648 + i32.const 10 call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 20080 - i32.store offset=4 local.get $0 - i32.const 20080 + i32.const 18416 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 642 + i32.const 587 i32.const 1 call $~lib/builtins/abort unreachable end i32.const -1 - i32.const 17 + i32.const 10 call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 20128 - i32.store offset=4 local.get $0 - i32.const 20128 + i32.const 18464 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 643 + i32.const 588 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -1 - i32.const 21 + i32.const 0 + i32.const 16 call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 20176 - i32.store offset=4 local.get $0 - i32.const 20176 + i32.const 3392 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 644 + i32.const 592 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -1 - i32.const 27 + i32.const 1 + i32.const 16 call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 20224 - i32.store offset=4 local.get $0 - i32.const 20224 + i32.const 3456 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 645 + i32.const 593 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -1 - i32.const 32 + i32.const 8 + i32.const 16 call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 20272 - i32.store offset=4 local.get $0 - i32.const 20272 + i32.const 17792 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 646 + i32.const 594 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -1 - i32.const 36 + i32.const 12 + i32.const 16 call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 20320 - i32.store offset=4 local.get $0 - i32.const 20320 + i32.const 14464 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 647 + i32.const 595 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 0 - i32.const 10 - call $~lib/util/number/utoa64 + i32.const 123 + i32.const 16 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 3392 - i32.store offset=4 local.get $0 - i32.const 3392 + i32.const 18512 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 651 + i32.const 596 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 12 - i32.const 10 - call $~lib/util/number/utoa64 + i32.const 1234 + i32.const 16 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 17824 - i32.store offset=4 local.get $0 - i32.const 17824 + i32.const 18544 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 652 + i32.const 597 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 123 - i32.const 10 - call $~lib/util/number/utoa64 + i32.const 12345 + i32.const 16 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 2400 - i32.store offset=4 local.get $0 - i32.const 2400 + i32.const 18576 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 653 + i32.const 598 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 1234 - i32.const 10 - call $~lib/util/number/utoa64 + i32.const 123456 + i32.const 16 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 14000 - i32.store offset=4 local.get $0 - i32.const 14000 + i32.const 18608 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 654 + i32.const 599 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 12345 - i32.const 10 - call $~lib/util/number/utoa64 + i32.const 1111111 + i32.const 16 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 17888 - i32.store offset=4 local.get $0 - i32.const 17888 + i32.const 18640 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 655 + i32.const 600 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 123456 - i32.const 10 - call $~lib/util/number/utoa64 + i32.const 1234567 + i32.const 16 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 17920 - i32.store offset=4 local.get $0 - i32.const 17920 + i32.const 18672 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 656 + i32.const 601 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 1234567 - i32.const 10 - call $~lib/util/number/utoa64 + i32.const 12345678 + i32.const 16 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 18000 - i32.store offset=4 local.get $0 - i32.const 18000 + i32.const 18704 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 657 + i32.const 602 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 99999999 - i32.const 10 - call $~lib/util/number/utoa64 + i32.const 123456789 + i32.const 16 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 20368 - i32.store offset=4 local.get $0 - i32.const 20368 + i32.const 18736 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 658 + i32.const 603 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 100000000 - i32.const 10 - call $~lib/util/number/utoa64 + i32.const 2147483646 + i32.const 16 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 20416 - i32.store offset=4 local.get $0 - i32.const 20416 + i32.const 18784 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 659 + i32.const 604 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 4294967295 - i32.const 10 - call $~lib/util/number/utoa64 + i32.const 2147483647 + i32.const 16 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 18464 - i32.store offset=4 local.get $0 - i32.const 18464 + i32.const 18832 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 660 + i32.const 605 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 4294967297 - i32.const 10 - call $~lib/util/number/utoa64 + i32.const -2147483648 + i32.const 16 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 20464 - i32.store offset=4 local.get $0 - i32.const 20464 + i32.const 18880 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 661 + i32.const 606 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 68719476735 - i32.const 10 - call $~lib/util/number/utoa64 + i32.const -1 + i32.const 16 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 20512 - i32.store offset=4 local.get $0 - i32.const 20512 + i32.const 18928 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 662 + i32.const 607 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 868719476735 - i32.const 10 - call $~lib/util/number/utoa64 + i32.const 0 + i32.const 16 + call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 20560 - i32.store offset=4 local.get $0 - i32.const 20560 + i32.const 3392 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 663 + i32.const 609 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 8687194767350 - i32.const 10 - call $~lib/util/number/utoa64 + i32.const -4096 + i32.const 16 + call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 20608 - i32.store offset=4 local.get $0 - i32.const 20608 + i32.const 17856 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 664 + i32.const 610 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 86871947673501 - i32.const 10 - call $~lib/util/number/utoa64 + i32.const 2147483647 + i32.const 16 + call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 20656 - i32.store offset=4 local.get $0 - i32.const 20656 + i32.const 18832 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 665 + i32.const 611 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 999868719476735 - i32.const 10 - call $~lib/util/number/utoa64 + i32.const -2147483647 + i32.const 16 + call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 20704 - i32.store offset=4 local.get $0 - i32.const 20704 + i32.const 18976 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 666 + i32.const 612 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 9999868719476735 - i32.const 10 - call $~lib/util/number/utoa64 + i32.const -268435455 + i32.const 16 + call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 20768 - i32.store offset=4 local.get $0 - i32.const 20768 + i32.const 19024 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 667 + i32.const 613 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 19999868719476735 - i32.const 10 - call $~lib/util/number/utoa64 + i32.const -2147483648 + i32.const 16 + call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 - i32.store - local.get $4 - i32.const 20832 - i32.store offset=4 + i32.store local.get $0 - i32.const 20832 + i32.const 19072 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 668 + i32.const 614 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 129999868719476735 - i32.const 10 - call $~lib/util/number/utoa64 + i32.const -2147483648 + i32.const 16 + call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 20896 - i32.store offset=4 local.get $0 - i32.const 20896 + i32.const 19072 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 669 + i32.const 615 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 1239999868719476735 - i32.const 10 - call $~lib/util/number/utoa64 + i32.const 0 + i32.const 2 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 20960 - i32.store offset=4 local.get $0 - i32.const 20960 + i32.const 3392 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 670 + i32.const 619 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1 - i32.const 10 - call $~lib/util/number/utoa64 + i32.const 1 + i32.const 2 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 21024 - i32.store offset=4 local.get $0 - i32.const 21024 + i32.const 3456 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 671 + i32.const 620 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 0 - i32.const 10 - call $~lib/util/number/itoa64 + i32.const 3 + i32.const 2 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 3392 - i32.store offset=4 local.get $0 - i32.const 3392 + i32.const 13904 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 673 + i32.const 621 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1234 - i32.const 10 - call $~lib/util/number/itoa64 + i32.const 7 + i32.const 2 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 21088 - i32.store offset=4 local.get $0 - i32.const 21088 + i32.const 19120 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 674 + i32.const 622 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 4294967295 - i32.const 10 - call $~lib/util/number/itoa64 + i32.const 14 + i32.const 2 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 18464 - i32.store offset=4 local.get $0 - i32.const 18464 + i32.const 19152 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 675 + i32.const 623 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 4294967297 - i32.const 10 - call $~lib/util/number/itoa64 + i32.const 29 + i32.const 2 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 20464 - i32.store offset=4 local.get $0 - i32.const 20464 + i32.const 19184 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 676 + i32.const 624 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -4294967295 - i32.const 10 - call $~lib/util/number/itoa64 + i32.const 59 + i32.const 2 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 21120 - i32.store offset=4 local.get $0 - i32.const 21120 + i32.const 19216 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 677 + i32.const 625 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 68719476735 - i32.const 10 - call $~lib/util/number/itoa64 + i32.const 4095 + i32.const 2 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 20512 - i32.store offset=4 local.get $0 - i32.const 20512 + i32.const 19248 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 678 + i32.const 626 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -68719476735 - i32.const 10 - call $~lib/util/number/itoa64 + i32.const 33554431 + i32.const 2 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 21168 - i32.store offset=4 local.get $0 - i32.const 21168 + i32.const 19296 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 679 + i32.const 627 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -868719476735 - i32.const 10 - call $~lib/util/number/itoa64 + i32.const -12 + i32.const 2 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 21216 - i32.store offset=4 local.get $0 - i32.const 21216 + i32.const 19376 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 680 + i32.const 628 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -999868719476735 - i32.const 10 - call $~lib/util/number/itoa64 + i32.const -4 + i32.const 2 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 21264 - i32.store offset=4 local.get $0 - i32.const 21264 + i32.const 19472 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 681 + i32.const 629 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -19999868719476735 - i32.const 10 - call $~lib/util/number/itoa64 + i32.const -2 + i32.const 2 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 21328 - i32.store offset=4 local.get $0 - i32.const 21328 + i32.const 19568 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 682 + i32.const 630 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 9223372036854775807 - i32.const 10 - call $~lib/util/number/itoa64 + i32.const -1 + i32.const 2 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 21392 - i32.store offset=4 local.get $0 - i32.const 21392 + i32.const 19664 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 683 + i32.const 631 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -9223372036854775808 - i32.const 10 - call $~lib/util/number/itoa64 + i32.const -2047 + i32.const 2 + call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 21456 - i32.store offset=4 local.get $0 - i32.const 21456 + i32.const 19760 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 684 + i32.const 633 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 0 - i32.const 16 - call $~lib/util/number/utoa64 + i32.const -1 + i32.const 3 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 3392 - i32.store offset=4 local.get $0 - i32.const 3392 + i32.const 19808 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 688 + i32.const 637 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 1 - i32.const 16 - call $~lib/util/number/utoa64 + i32.const -1 + i32.const 4 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 3456 - i32.store offset=4 local.get $0 - i32.const 3456 + i32.const 19872 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 689 + i32.const 638 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 12 - i32.const 16 - call $~lib/util/number/utoa64 + i32.const -1 + i32.const 5 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 14464 - i32.store offset=4 local.get $0 - i32.const 14464 + i32.const 19936 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 690 + i32.const 639 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 1234 - i32.const 16 - call $~lib/util/number/utoa64 + i32.const -1 + i32.const 8 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 18544 - i32.store offset=4 local.get $0 - i32.const 18544 + i32.const 19984 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 691 + i32.const 640 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 1111111 - i32.const 16 - call $~lib/util/number/utoa64 + i32.const -1 + i32.const 11 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 18640 - i32.store offset=4 local.get $0 - i32.const 18640 + i32.const 20032 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 692 + i32.const 641 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 8589934591 - i32.const 16 - call $~lib/util/number/utoa64 + i32.const -1 + i32.const 15 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 21520 - i32.store offset=4 local.get $0 - i32.const 21520 + i32.const 20080 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 693 + i32.const 642 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 5942249508321 - i32.const 16 - call $~lib/util/number/utoa64 + i32.const -1 + i32.const 17 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 21568 - i32.store offset=4 local.get $0 - i32.const 21568 + i32.const 20128 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 694 + i32.const 643 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 76310993685985 - i32.const 16 - call $~lib/util/number/utoa64 + i32.const -1 + i32.const 21 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 21616 - i32.store offset=4 local.get $0 - i32.const 21616 + i32.const 20176 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 695 + i32.const 644 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 920735923817967 - i32.const 16 - call $~lib/util/number/utoa64 + i32.const -1 + i32.const 27 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 21664 - i32.store offset=4 local.get $0 - i32.const 21664 + i32.const 20224 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 696 + i32.const 645 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 9927935178558959 - i32.const 16 - call $~lib/util/number/utoa64 + i32.const -1 + i32.const 32 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 21712 - i32.store offset=4 local.get $0 - i32.const 21712 + i32.const 20272 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 697 + i32.const 646 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 81985529216486895 - i32.const 16 - call $~lib/util/number/utoa64 + i32.const -1 + i32.const 36 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 21760 - i32.store offset=4 local.get $0 - i32.const 21760 + i32.const 20320 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 698 + i32.const 647 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 1311768467463790320 - i32.const 16 + i64.const 0 + i32.const 10 call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 21824 - i32.store offset=4 local.get $0 - i32.const 21824 + i32.const 3392 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 699 + i32.const 651 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 9223372036854775807 - i32.const 16 + i64.const 12 + i32.const 10 call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 21888 - i32.store offset=4 local.get $0 - i32.const 21888 + i32.const 17824 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 700 + i32.const 652 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1 - i32.const 16 + i64.const 123 + i32.const 10 call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 21952 - i32.store offset=4 local.get $0 - i32.const 21952 + i32.const 2400 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 701 + i32.const 653 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -9223372036854775807 - i32.const 16 - call $~lib/util/number/itoa64 + i64.const 1234 + i32.const 10 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 22016 - i32.store offset=4 local.get $0 - i32.const 22016 + i32.const 14000 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 703 + i32.const 654 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -9223372036854775808 - i32.const 16 - call $~lib/util/number/itoa64 + i64.const 12345 + i32.const 10 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 22080 - i32.store offset=4 local.get $0 - i32.const 22080 + i32.const 17888 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 704 + i32.const 655 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -9223372036854775808 - i32.const 16 - call $~lib/util/number/itoa64 + i64.const 123456 + i32.const 10 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 22080 - i32.store offset=4 local.get $0 - i32.const 22080 + i32.const 17920 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 705 + i32.const 656 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 0 - i32.const 2 + i64.const 1234567 + i32.const 10 call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 3392 - i32.store offset=4 local.get $0 - i32.const 3392 + i32.const 18000 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 709 + i32.const 657 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 1 - i32.const 2 + i64.const 99999999 + i32.const 10 call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 3456 - i32.store offset=4 local.get $0 - i32.const 3456 + i32.const 20368 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 710 + i32.const 658 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 7 - i32.const 2 + i64.const 100000000 + i32.const 10 call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 19120 - i32.store offset=4 local.get $0 - i32.const 19120 + i32.const 20416 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 711 + i32.const 659 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 14 - i32.const 2 + i64.const 4294967295 + i32.const 10 call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 19152 - i32.store offset=4 local.get $0 - i32.const 19152 + i32.const 18464 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 712 + i32.const 660 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 59 - i32.const 2 + i64.const 4294967297 + i32.const 10 call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 19216 - i32.store offset=4 local.get $0 - i32.const 19216 + i32.const 20464 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 713 + i32.const 661 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 4095 - i32.const 2 + i64.const 68719476735 + i32.const 10 call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 19248 - i32.store offset=4 local.get $0 - i32.const 19248 + i32.const 20512 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 714 + i32.const 662 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 4294967295 - i32.const 2 + i64.const 868719476735 + i32.const 10 call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 19664 - i32.store offset=4 local.get $0 - i32.const 19664 + i32.const 20560 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 715 + i32.const 663 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 562949953421311 - i32.const 2 + i64.const 8687194767350 + i32.const 10 call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 22144 - i32.store offset=4 local.get $0 - i32.const 22144 + i32.const 20608 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 716 + i32.const 664 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1 - i32.const 2 + i64.const 86871947673501 + i32.const 10 call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 22272 - i32.store offset=4 local.get $0 - i32.const 22272 + i32.const 20656 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 717 + i32.const 665 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -8589934591 - i32.const 2 - call $~lib/util/number/itoa64 + i64.const 999868719476735 + i32.const 10 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 22432 - i32.store offset=4 local.get $0 - i32.const 22432 + i32.const 20704 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 719 + i32.const 666 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1 - i32.const 3 + i64.const 9999868719476735 + i32.const 10 call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 22528 - i32.store offset=4 local.get $0 - i32.const 22528 + i32.const 20768 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 723 + i32.const 667 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1 - i32.const 4 + i64.const 19999868719476735 + i32.const 10 call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 22640 - i32.store offset=4 local.get $0 - i32.const 22640 + i32.const 20832 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 724 + i32.const 668 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1 - i32.const 5 + i64.const 129999868719476735 + i32.const 10 call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 22736 - i32.store offset=4 local.get $0 - i32.const 22736 + i32.const 20896 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 725 + i32.const 669 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1 - i32.const 8 + i64.const 1239999868719476735 + i32.const 10 call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 22816 - i32.store offset=4 local.get $0 - i32.const 22816 + i32.const 20960 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 726 + i32.const 670 i32.const 1 call $~lib/builtins/abort unreachable end i64.const -1 - i32.const 11 + i32.const 10 call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 22880 - i32.store offset=4 local.get $0 - i32.const 22880 + i32.const 21024 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 727 + i32.const 671 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1 - i32.const 15 - call $~lib/util/number/utoa64 + i64.const 0 + i32.const 10 + call $~lib/util/number/itoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 22944 - i32.store offset=4 local.get $0 - i32.const 22944 + i32.const 3392 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 728 + i32.const 673 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1 - i32.const 17 - call $~lib/util/number/utoa64 + i64.const -1234 + i32.const 10 + call $~lib/util/number/itoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 23008 - i32.store offset=4 local.get $0 - i32.const 23008 + i32.const 21088 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 729 + i32.const 674 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1 - i32.const 21 - call $~lib/util/number/utoa64 + i64.const 4294967295 + i32.const 10 + call $~lib/util/number/itoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 23072 - i32.store offset=4 local.get $0 - i32.const 23072 + i32.const 18464 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 730 + i32.const 675 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1 - i32.const 27 - call $~lib/util/number/utoa64 + i64.const 4294967297 + i32.const 10 + call $~lib/util/number/itoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 23136 - i32.store offset=4 local.get $0 - i32.const 23136 + i32.const 20464 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 731 + i32.const 676 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1 - i32.const 32 - call $~lib/util/number/utoa64 + i64.const -4294967295 + i32.const 10 + call $~lib/util/number/itoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 23184 - i32.store offset=4 local.get $0 - i32.const 23184 + i32.const 21120 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 732 + i32.const 677 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1 - i32.const 36 - call $~lib/util/number/utoa64 + i64.const 68719476735 + i32.const 10 + call $~lib/util/number/itoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 23232 - i32.store offset=4 local.get $0 - i32.const 23232 + i32.const 20512 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 733 + i32.const 678 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 0 - call $~lib/util/number/dtoa + i64.const -68719476735 + i32.const 10 + call $~lib/util/number/itoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 23280 - i32.store offset=4 local.get $0 - i32.const 23280 + i32.const 21168 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 736 + i32.const 679 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const -0 - call $~lib/util/number/dtoa + i64.const -868719476735 + i32.const 10 + call $~lib/util/number/itoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 23280 - i32.store offset=4 local.get $0 - i32.const 23280 + i32.const 21216 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 737 + i32.const 680 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const nan:0x8000000000000 - call $~lib/util/number/dtoa + i64.const -999868719476735 + i32.const 10 + call $~lib/util/number/itoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 7696 - i32.store offset=4 local.get $0 - i32.const 7696 + i32.const 21264 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 738 + i32.const 681 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const inf - call $~lib/util/number/dtoa + i64.const -19999868719476735 + i32.const 10 + call $~lib/util/number/itoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 23312 - i32.store offset=4 local.get $0 - i32.const 23312 + i32.const 21328 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 739 + i32.const 682 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const -inf - call $~lib/util/number/dtoa + i64.const 9223372036854775807 + i32.const 10 + call $~lib/util/number/itoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 - i32.store - local.get $4 - i32.const 8960 - i32.store offset=4 + i32.store local.get $0 - i32.const 8960 + i32.const 21392 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 740 + i32.const 683 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 2.220446049250313e-16 - call $~lib/util/number/dtoa + i64.const -9223372036854775808 + i32.const 10 + call $~lib/util/number/itoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 8176 - i32.store offset=4 local.get $0 - i32.const 8176 + i32.const 21456 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 741 + i32.const 684 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const -2.220446049250313e-16 - call $~lib/util/number/dtoa + i64.const 0 + i32.const 16 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 24336 - i32.store offset=4 local.get $0 - i32.const 24336 + i32.const 3392 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 742 + i32.const 688 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 1797693134862315708145274e284 - call $~lib/util/number/dtoa + i64.const 1 + i32.const 16 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 8240 - i32.store offset=4 local.get $0 - i32.const 8240 + i32.const 3456 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 743 + i32.const 689 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const -1797693134862315708145274e284 - call $~lib/util/number/dtoa + i64.const 12 + i32.const 16 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 24400 - i32.store offset=4 local.get $0 - i32.const 24400 + i32.const 14464 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 744 + i32.const 690 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 4185580496821356722454785e274 - call $~lib/util/number/dtoa + i64.const 1234 + i32.const 16 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 24480 - i32.store offset=4 local.get $0 - i32.const 24480 + i32.const 18544 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 745 + i32.const 691 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 2.2250738585072014e-308 - call $~lib/util/number/dtoa + i64.const 1111111 + i32.const 16 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 24544 - i32.store offset=4 local.get $0 - i32.const 24544 + i32.const 18640 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 746 + i32.const 692 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 4.940656e-318 - call $~lib/util/number/dtoa + i64.const 8589934591 + i32.const 16 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 24624 - i32.store offset=4 local.get $0 - i32.const 24624 + i32.const 21520 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 749 + i32.const 693 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 9060801153433600 - call $~lib/util/number/dtoa + i64.const 5942249508321 + i32.const 16 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 24672 - i32.store offset=4 local.get $0 - i32.const 24672 + i32.const 21568 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 750 + i32.const 694 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 4708356024711512064 - call $~lib/util/number/dtoa + i64.const 76310993685985 + i32.const 16 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 24736 - i32.store offset=4 local.get $0 - i32.const 24736 + i32.const 21616 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 751 + i32.const 695 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 9409340012568248320 - call $~lib/util/number/dtoa + i64.const 920735923817967 + i32.const 16 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 24800 - i32.store offset=4 local.get $0 - i32.const 24800 + i32.const 21664 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 752 + i32.const 696 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 5e-324 - call $~lib/util/number/dtoa + i64.const 9927935178558959 + i32.const 16 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 8320 - i32.store offset=4 local.get $0 - i32.const 8320 + i32.const 21712 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 753 + i32.const 697 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 1 - call $~lib/util/number/dtoa + i64.const 81985529216486895 + i32.const 16 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 24864 - i32.store offset=4 local.get $0 - i32.const 24864 + i32.const 21760 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 759 + i32.const 698 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 0.1 - call $~lib/util/number/dtoa + i64.const 1311768467463790320 + i32.const 16 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 5280 - i32.store offset=4 local.get $0 - i32.const 5280 + i32.const 21824 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 760 + i32.const 699 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const -1 - call $~lib/util/number/dtoa + i64.const 9223372036854775807 + i32.const 16 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 24896 - i32.store offset=4 local.get $0 - i32.const 24896 + i32.const 21888 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 761 + i32.const 700 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const -0.1 - call $~lib/util/number/dtoa + i64.const -1 + i32.const 16 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 24928 - i32.store offset=4 local.get $0 - i32.const 24928 + i32.const 21952 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 762 + i32.const 701 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 1e6 - call $~lib/util/number/dtoa + i64.const -9223372036854775807 + i32.const 16 + call $~lib/util/number/itoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 24960 - i32.store offset=4 local.get $0 - i32.const 24960 + i32.const 22016 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 764 + i32.const 703 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 1e-06 - call $~lib/util/number/dtoa + i64.const -9223372036854775808 + i32.const 16 + call $~lib/util/number/itoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 25008 - i32.store offset=4 local.get $0 - i32.const 25008 + i32.const 22080 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 765 + i32.const 704 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const -1e6 - call $~lib/util/number/dtoa + i64.const -9223372036854775808 + i32.const 16 + call $~lib/util/number/itoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 25056 - i32.store offset=4 local.get $0 - i32.const 25056 + i32.const 22080 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 766 + i32.const 705 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const -1e-06 - call $~lib/util/number/dtoa + i64.const 0 + i32.const 2 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 25104 - i32.store offset=4 local.get $0 - i32.const 25104 + i32.const 3392 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 767 + i32.const 709 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 1e7 - call $~lib/util/number/dtoa + i64.const 1 + i32.const 2 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 25152 - i32.store offset=4 local.get $0 - i32.const 25152 + i32.const 3456 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 768 + i32.const 710 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 1e-07 - call $~lib/util/number/dtoa + i64.const 7 + i32.const 2 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 25200 - i32.store offset=4 local.get $0 - i32.const 25200 + i32.const 19120 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 769 + i32.const 711 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 1.e+308 - call $~lib/util/number/dtoa + i64.const 14 + i32.const 2 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 5568 - i32.store offset=4 local.get $0 - i32.const 5568 + i32.const 19152 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 771 + i32.const 712 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const -1.e+308 - call $~lib/util/number/dtoa + i64.const 59 + i32.const 2 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 25232 - i32.store offset=4 local.get $0 - i32.const 25232 + i32.const 19216 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 772 + i32.const 713 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const inf - call $~lib/util/number/dtoa + i64.const 4095 + i32.const 2 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 23312 - i32.store offset=4 local.get $0 - i32.const 23312 + i32.const 19248 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 773 + i32.const 714 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const -inf - call $~lib/util/number/dtoa + i64.const 4294967295 + i32.const 2 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 8960 - i32.store offset=4 local.get $0 - i32.const 8960 + i32.const 19664 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 774 + i32.const 715 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 1e-308 - call $~lib/util/number/dtoa + i64.const 562949953421311 + i32.const 2 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 25280 - i32.store offset=4 local.get $0 - i32.const 25280 + i32.const 22144 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 775 + i32.const 716 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const -1e-308 - call $~lib/util/number/dtoa + i64.const -1 + i32.const 2 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 25312 - i32.store offset=4 local.get $0 - i32.const 25312 + i32.const 22272 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 776 + i32.const 717 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 1e-323 - call $~lib/util/number/dtoa + i64.const -8589934591 + i32.const 2 + call $~lib/util/number/itoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 25360 - i32.store offset=4 local.get $0 - i32.const 25360 + i32.const 22432 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 777 + i32.const 719 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const -1e-323 - call $~lib/util/number/dtoa + i64.const -1 + i32.const 3 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 25392 - i32.store offset=4 local.get $0 - i32.const 25392 + i32.const 22528 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 778 + i32.const 723 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 0 - call $~lib/util/number/dtoa + i64.const -1 + i32.const 4 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 23280 - i32.store offset=4 local.get $0 - i32.const 23280 + i32.const 22640 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 779 + i32.const 724 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 4294967272 - call $~lib/util/number/dtoa + i64.const -1 + i32.const 5 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 25440 - i32.store offset=4 local.get $0 - i32.const 25440 + i32.const 22736 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 781 + i32.const 725 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 1.2312145673456234e-08 - call $~lib/util/number/dtoa + i64.const -1 + i32.const 8 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 25488 - i32.store offset=4 local.get $0 - i32.const 25488 + i32.const 22816 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 782 + i32.const 726 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 555555555.5555556 - call $~lib/util/number/dtoa + i64.const -1 + i32.const 11 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 25552 - i32.store offset=4 local.get $0 - i32.const 25552 + i32.const 22880 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 784 + i32.const 727 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 0.9999999999999999 - call $~lib/util/number/dtoa + i64.const -1 + i32.const 15 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 25616 - i32.store offset=4 local.get $0 - i32.const 25616 + i32.const 22944 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 785 + i32.const 728 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 1 - call $~lib/util/number/dtoa + i64.const -1 + i32.const 17 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 24864 - i32.store offset=4 local.get $0 - i32.const 24864 + i32.const 23008 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 786 + i32.const 729 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 12.34 - call $~lib/util/number/dtoa + i64.const -1 + i32.const 21 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 25680 - i32.store offset=4 local.get $0 - i32.const 25680 + i32.const 23072 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 787 + i32.const 730 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 0.3333333333333333 - call $~lib/util/number/dtoa + i64.const -1 + i32.const 27 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 25712 - i32.store offset=4 local.get $0 - i32.const 25712 + i32.const 23136 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 789 + i32.const 731 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 1234e17 - call $~lib/util/number/dtoa + i64.const -1 + i32.const 32 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 25776 - i32.store offset=4 local.get $0 - i32.const 25776 + i32.const 23184 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 790 + i32.const 732 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 1234e18 - call $~lib/util/number/dtoa + i64.const -1 + i32.const 36 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 25856 - i32.store offset=4 local.get $0 - i32.const 25856 + i32.const 23232 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 791 + i32.const 733 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 2.71828 - call $~lib/util/number/dtoa + f64.const 0 + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 25904 - i32.store offset=4 local.get $0 - i32.const 25904 + i32.const 23280 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 792 + i32.const 736 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 0.0271828 - call $~lib/util/number/dtoa + f64.const -0 + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 25952 - i32.store offset=4 local.get $0 - i32.const 25952 + i32.const 23280 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 793 + i32.const 737 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 271.828 - call $~lib/util/number/dtoa + f64.const nan:0x8000000000000 + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 26000 - i32.store offset=4 local.get $0 - i32.const 26000 + i32.const 7696 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 794 + i32.const 738 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 1.1e+128 - call $~lib/util/number/dtoa + f64.const inf + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 26048 - i32.store offset=4 local.get $0 - i32.const 26048 + i32.const 23312 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 795 + i32.const 739 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 1.1e-64 - call $~lib/util/number/dtoa + f64.const -inf + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 26096 - i32.store offset=4 local.get $0 - i32.const 26096 + i32.const 8960 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 796 + i32.const 740 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 0.000035689 - call $~lib/util/number/dtoa + f64.const 2.220446049250313e-16 + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 26144 - i32.store offset=4 local.get $0 - i32.const 26144 + i32.const 8176 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 797 + i32.const 741 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 26192 - i32.store offset=8 - local.get $0 - i32.const 26224 - i32.store offset=12 - i32.const 26192 - i32.const 26224 - call $~lib/string/String#concat + f64.const -2.220446049250313e-16 + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 26256 - i32.store offset=4 local.get $0 - i32.const 26256 + i32.const 24336 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 802 + i32.const 742 i32.const 1 call $~lib/builtins/abort unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1712 - i32.store offset=8 - local.get $0 - i32.const 26304 - i32.store offset=12 - i32.const 1712 - i32.const 26304 - call $~lib/string/String#concat + end + f64.const 1797693134862315708145274e284 + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 26304 - i32.store offset=4 local.get $0 - i32.const 26304 + i32.const 8240 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 803 + i32.const 743 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 26304 - i32.store offset=8 - local.get $0 - i32.const 1712 - i32.store offset=12 - i32.const 26304 - i32.const 1712 - call $~lib/string/String#concat + f64.const -1797693134862315708145274e284 + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 26304 - i32.store offset=4 local.get $0 - i32.const 26304 + i32.const 24400 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 804 + i32.const 744 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1712 - i32.store offset=8 - local.get $0 - i32.const 1712 - i32.store offset=12 - i32.const 1712 - i32.const 1712 - call $~lib/string/String#concat + f32.const 1.1920928955078125e-07 + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 local.get $0 - i32.const 1712 + i32.const 24480 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 805 + i32.const 745 i32.const 1 call $~lib/builtins/abort unreachable end + f32.const -1.1920928955078125e-07 + call $~lib/util/number/dtoa + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 26336 + local.get $0 i32.store local.get $0 - i32.const 26336 - i32.store offset=4 - i32.const 26336 - i32.const 26336 + i32.const 24528 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 816 + i32.const 746 i32.const 1 call $~lib/builtins/abort unreachable end + f32.const 3402823466385288598117041e14 + call $~lib/util/number/dtoa + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 26336 + local.get $0 i32.store local.get $0 - i32.const 26336 - i32.store offset=4 - i32.const 26336 - i32.const 26336 + i32.const 24576 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 817 + i32.const 747 i32.const 1 call $~lib/builtins/abort unreachable end + f32.const -3402823466385288598117041e14 + call $~lib/util/number/dtoa + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 26368 + local.get $0 i32.store local.get $0 - i32.const 26368 - i32.store offset=4 - i32.const 26368 - i32.const 26368 + i32.const 24624 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 818 + i32.const 748 i32.const 1 call $~lib/builtins/abort unreachable end + f64.const 4185580496821356722454785e274 + call $~lib/util/number/dtoa + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 26400 + local.get $0 i32.store local.get $0 - i32.const 26400 - i32.store offset=4 - i32.const 26400 - i32.const 26400 + i32.const 24672 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 819 + i32.const 749 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 0 - global.set $std/string/str - i32.const 59212 - global.set $~lib/memory/__stack_pointer - global.get $~lib/rt/itcms/state - i32.const 0 - i32.gt_s - if - loop $while-continue|0 - global.get $~lib/rt/itcms/state - 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 - 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 + f64.const 2.2250738585072014e-308 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 24736 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 750 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4.940656e-318 + call $~lib/util/number/dtoa + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 96 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 59232 - i32.const 59280 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (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 26444 - i32.lt_s - if - i32.const 59232 - i32.const 59280 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 - 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 26444 - i32.lt_s - if - i32.const 59232 - i32.const 59280 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $5 - i32.const 0 - i32.store - 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 $5 - 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 26444 - i32.lt_s - if - i32.const 59232 - i32.const 59280 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - 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 + i32.store + local.get $0 + i32.const 24816 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 - i32.const 1328 - i32.const 39 - i32.const 7 + i32.const 1120 + i32.const 751 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $1 + f64.const 9060801153433600 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 65536 - i32.sub - local.tee $0 - i32.const 10 - i32.shr_u - i32.const 55296 - i32.or + i32.store + local.get $0 + i32.const 24864 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 752 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4708356024711512064 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer 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 i32) - (local $5 i64) - (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 26444 - i32.lt_s - if - i32.const 59232 - i32.const 59280 - 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 $1 - i32.const 2 - i32.lt_s - local.get $1 - i32.const 36 - i32.gt_s - i32.or - if - i32.const 16048 - i32.const 16176 - i32.const 373 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.eqz - if + i32.const 24928 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 753 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 9409340012568248320 + call $~lib/util/number/dtoa + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - 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 + local.get $0 + i32.store + local.get $0 + i32.const 24992 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 754 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 5e-324 + call $~lib/util/number/dtoa + local.set $0 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 + local.get $0 + i32.store + local.get $0 + i32.const 8320 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 755 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 25056 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 757 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.1 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 5280 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 758 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 25088 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 759 + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.tee $1 - i32.const 1 - i32.shl - local.get $4 - i32.add - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 + f64.const -0.1 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store local.get $0 - local.get $4 - i32.add - local.get $2 - local.get $1 - call $~lib/util/number/utoa32_dec_lut - else - local.get $1 - i32.const 16 - i32.eq + i32.const 25120 + call $~lib/string/String.__eq + i32.eqz if - global.get $~lib/memory/__stack_pointer - i32.const 31 - local.get $2 - i32.clz - i32.sub - i32.const 2 - i32.shr_s + i32.const 0 + i32.const 1120 + i32.const 760 i32.const 1 - i32.add - local.tee $1 + call $~lib/builtins/abort + unreachable + end + f64.const 1e6 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 25152 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 762 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.set $7 - local.get $2 - i64.extend_i32_u - local.set $3 - loop $while-continue|0 - local.get $1 - i32.const 2 - i32.ge_u - if - local.get $7 - local.get $1 - i32.const 2 - i32.sub - local.tee $1 - i32.const 1 - i32.shl - i32.add - local.get $3 - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.const 16640 - i32.add - i32.load - i32.store - local.get $3 - i64.const 8 - i64.shr_u - local.set $3 - br $while-continue|0 - end - end - local.get $1 + call $~lib/builtins/abort + unreachable + end + f64.const 1e-06 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 25200 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 763 i32.const 1 - i32.and - if - local.get $7 - local.get $3 - i32.wrap_i64 - i32.const 6 - i32.shl - 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$170 (result i32) - local.get $2 - i64.extend_i32_u - local.set $5 - local.get $1 - i32.popcnt - i32.const 1 - i32.eq - if - i32.const 63 - local.get $5 - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $1 - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - br $__inlined_func$~lib/util/number/ulog_base$170 - end - local.get $1 - i64.extend_i32_s - local.tee $6 - local.set $3 - i32.const 1 - local.set $0 - loop $while-continue|01 - local.get $3 - local.get $5 - i64.le_u - if - local.get $5 - local.get $3 - i64.div_u - local.set $5 - local.get $3 - local.get $3 - i64.mul - local.set $3 - local.get $0 - i32.const 1 - i32.shl - local.set $0 - br $while-continue|01 - 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 + call $~lib/builtins/abort + unreachable + end + f64.const -1e6 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 25248 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 764 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1e-06 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 25296 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 765 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1e7 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 25344 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 766 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1e-07 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 25392 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 767 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 + call $~lib/builtins/abort + unreachable end - end - local.get $4 - if + f64.const 1.e+308 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer 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 - ) - (func $~lib/util/number/utoa32 (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i64) - (local $4 i64) - (local $5 i64) - (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 26444 - i32.lt_s - if - i32.const 59232 - i32.const 59280 - 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 $1 - i32.const 2 - i32.lt_s - local.get $1 - i32.const 36 - i32.gt_s - i32.or - if - i32.const 16048 - i32.const 16176 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.eqz - if + i32.store + local.get $0 + i32.const 5568 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 769 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1.e+308 + call $~lib/util/number/dtoa + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 3392 - return - end - local.get $1 - i32.const 10 - i32.eq - if + local.get $0 + i32.store + local.get $0 + i32.const 25424 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 770 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + call $~lib/util/number/dtoa + local.set $0 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 + i32.store + local.get $0 + i32.const 23312 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 771 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -inf + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 8960 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 772 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1e-308 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 25472 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 773 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1e-308 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 25504 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 774 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1e-323 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 25552 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 775 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1e-323 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 25584 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 776 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 23280 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 777 + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.tee $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 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 + f64.const 4294967272 + i32.const 0 + call $~lib/util/number/dtoa_core i32.const 1 i32.shl + local.tee $0 i32.const 2 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $4 i32.store - local.get $2 + local.get $4 + i32.const 23344 local.get $0 - local.get $1 - call $~lib/util/number/utoa32_dec_lut - else - local.get $1 - i32.const 16 - i32.eq + 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 + local.get $4 + i32.store + local.get $4 + i32.const 25632 + call $~lib/string/String.__eq + i32.eqz if - global.get $~lib/memory/__stack_pointer - i32.const 31 - local.get $0 - i32.clz - i32.sub - i32.const 2 - i32.shr_s + i32.const 0 + i32.const 1120 + i32.const 779 i32.const 1 - i32.add - local.tee $1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.2312145673456234e-08 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 25680 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 780 i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $0 - i64.extend_i32_u - local.set $3 - loop $while-continue|0 - local.get $1 - i32.const 2 - i32.ge_u - if - local.get $2 - local.get $1 - i32.const 2 - i32.sub - local.tee $1 - i32.const 1 - i32.shl - i32.add - local.get $3 - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.const 16640 - i32.add - i32.load - i32.store - local.get $3 - i64.const 8 - i64.shr_u - local.set $3 - br $while-continue|0 - end - end - local.get $1 + call $~lib/builtins/abort + unreachable + end + f64.const 555555555.5555556 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 25744 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 781 i32.const 1 - i32.and - if - local.get $2 - local.get $3 - i32.wrap_i64 - i32.const 6 - i32.shl - 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$174 (result i32) - local.get $0 - i64.extend_i32_u - local.set $4 - local.get $1 - i32.popcnt - i32.const 1 - i32.eq - if - i32.const 63 - local.get $4 - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $1 - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - br $__inlined_func$~lib/util/number/ulog_base$174 - end - local.get $1 - i64.extend_i32_s - local.tee $5 - local.set $3 - i32.const 1 - local.set $2 - loop $while-continue|01 - local.get $3 - local.get $4 - i64.le_u - if - local.get $4 - local.get $3 - i64.div_u - local.set $4 - local.get $3 - local.get $3 - i64.mul - local.set $3 - local.get $2 - i32.const 1 - i32.shl - local.set $2 - 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 + call $~lib/builtins/abort + unreachable + end + f64.const 0.9999999999999999 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 25808 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 782 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 25056 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 783 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 12.34 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 25872 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 784 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 + call $~lib/builtins/abort + unreachable end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $~lib/util/number/utoa64 (param $0 i64) (param $1 i32) (result i32) - (local $2 i64) - (local $3 i32) - (local $4 i64) - (local $5 i64) - (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 26444 - i32.lt_s - if - i32.const 59232 - i32.const 59280 - 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 $1 - i32.const 2 - i32.lt_s - local.get $1 - i32.const 36 - i32.gt_s - i32.or - if - i32.const 16048 - i32.const 16176 - i32.const 401 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i64.eqz - if + f64.const 0.3333333333333333 + call $~lib/util/number/dtoa + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 3392 - return - end - local.get $1 - i32.const 10 - i32.eq - if local.get $0 - i64.const 4294967295 - i64.le_u + i32.store + local.get $0 + i32.const 25904 + call $~lib/string/String.__eq + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.wrap_i64 - local.tee $1 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $1 - i32.const 100 - i32.lt_u - if (result i32) - local.get $1 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $1 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $1 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $1 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $1 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $1 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $1 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.tee $6 + i32.const 0 + i32.const 1120 + i32.const 785 i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - local.get $3 - local.get $1 - local.get $6 - call $~lib/util/number/utoa32_dec_lut - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i64.const 1000000000000000 - i64.lt_u - if (result i32) - local.get $0 - i64.const 1000000000000 - i64.lt_u - if (result i32) - local.get $0 - i64.const 100000000000 - i64.ge_u - i32.const 10 - i32.add - local.get $0 - i64.const 10000000000 - i64.ge_u - i32.add - else - local.get $0 - i64.const 100000000000000 - i64.ge_u - i32.const 13 - i32.add - local.get $0 - i64.const 10000000000000 - i64.ge_u - i32.add - end - else - local.get $0 - i64.const 100000000000000000 - i64.lt_u - if (result i32) - local.get $0 - i64.const 10000000000000000 - i64.ge_u - i32.const 16 - i32.add - else - local.get $0 - i64.const -8446744073709551616 - i64.ge_u - i32.const 18 - i32.add - local.get $0 - i64.const 1000000000000000000 - i64.ge_u - i32.add - end - end - local.tee $1 + call $~lib/builtins/abort + unreachable + end + f64.const 1234e17 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 25968 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 786 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1234e18 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 26048 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 787 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.71828 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 26096 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 788 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.0271828 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 26144 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 789 i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - local.get $3 - local.get $0 - local.get $1 - call $~lib/util/number/utoa64_dec_lut + call $~lib/builtins/abort + unreachable end - else - local.get $1 - i32.const 16 - i32.eq + f64.const 271.828 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 26192 + call $~lib/string/String.__eq + i32.eqz if - global.get $~lib/memory/__stack_pointer - i32.const 63 - local.get $0 - i64.clz - i32.wrap_i64 - i32.sub - i32.const 2 - i32.shr_s + i32.const 0 + i32.const 1120 + i32.const 790 i32.const 1 - i32.add - local.tee $1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.1e+128 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 26240 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 791 i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - loop $while-continue|0 - local.get $1 - i32.const 2 - i32.ge_u - if - local.get $3 - local.get $1 - i32.const 2 - i32.sub - local.tee $1 - i32.const 1 - i32.shl - i32.add - local.get $0 - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.const 16640 - i32.add - i32.load - i32.store - local.get $0 - i64.const 8 - i64.shr_u - local.set $0 - br $while-continue|0 - end - end - local.get $1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.1e-64 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 26288 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 792 i32.const 1 - i32.and - if - local.get $3 - local.get $0 - i32.wrap_i64 - i32.const 6 - i32.shl - 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$179 (result i32) - local.get $0 - local.set $2 - local.get $1 - i32.popcnt - i32.const 1 - i32.eq - if - i32.const 63 - local.get $0 - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $1 - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - br $__inlined_func$~lib/util/number/ulog_base$179 - end - local.get $1 - i64.extend_i32_s - local.tee $5 - local.set $4 - i32.const 1 - local.set $3 - loop $while-continue|01 - local.get $2 - local.get $4 - i64.ge_u - if - local.get $2 - local.get $4 - i64.div_u - local.set $2 - local.get $4 - local.get $4 - i64.mul - local.set $4 - local.get $3 - i32.const 1 - i32.shl - local.set $3 - br $while-continue|01 - end - end - loop $while-continue|1 - local.get $2 - i64.const 0 - i64.ne - if - local.get $2 - local.get $5 - i64.div_u - local.set $2 - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $while-continue|1 - end - end - local.get $3 - i32.const 1 - i32.sub - end - local.tee $6 + call $~lib/builtins/abort + unreachable + end + f64.const 0.000035689 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 26336 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 793 i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - local.get $3 - local.get $0 - local.get $6 - local.get $1 - call $~lib/util/number/utoa64_any_core + call $~lib/builtins/abort + unreachable + end + 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 26448 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 820 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 26496 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 821 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 26496 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 822 + i32.const 1 + call $~lib/builtins/abort + unreachable end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (func $~lib/util/number/itoa64 (param $0 i64) (param $1 i32) (result i32) - (local $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i64) - (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 26444 - i32.lt_s - if - i32.const 59232 - i32.const 59280 - 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 $1 - i32.const 2 - i32.lt_s - local.get $1 - i32.const 36 - i32.gt_s - i32.or - if - i32.const 16048 - i32.const 16176 - i32.const 431 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i64.eqz - if + i32.const 1712 + i32.const 1712 + call $~lib/string/String#concat + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 3392 - return - end - i64.const 0 - local.get $0 - i64.sub - local.get $0 - local.get $0 - i64.const 63 - i64.shr_u - i32.wrap_i64 - i32.const 1 - i32.shl - local.tee $4 - select - local.set $0 - local.get $1 - i32.const 10 - i32.eq - if local.get $0 - i64.const 4294967295 - i64.le_u + i32.store + local.get $0 + i32.const 1712 + call $~lib/string/String.__eq + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.wrap_i64 - local.tee $1 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $1 - i32.const 100 - i32.lt_u - if (result i32) - local.get $1 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $1 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $1 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $1 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $1 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $1 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $1 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.tee $7 + i32.const 0 + i32.const 1120 + i32.const 823 i32.const 1 - i32.shl - local.get $4 - i32.add - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - local.get $3 - local.get $4 - i32.add - local.get $1 - local.get $7 - call $~lib/util/number/utoa32_dec_lut - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i64.const 1000000000000000 - i64.lt_u - if (result i32) - local.get $0 - i64.const 1000000000000 - i64.lt_u - if (result i32) - local.get $0 - i64.const 100000000000 - i64.ge_u - i32.const 10 - i32.add - local.get $0 - i64.const 10000000000 - i64.ge_u - i32.add - else - local.get $0 - i64.const 100000000000000 - i64.ge_u - i32.const 13 - i32.add - local.get $0 - i64.const 10000000000000 - i64.ge_u - i32.add - end - else - local.get $0 - i64.const 100000000000000000 - i64.lt_u - if (result i32) - local.get $0 - i64.const 10000000000000000 - i64.ge_u - i32.const 16 - i32.add - else - local.get $0 - i64.const -8446744073709551616 - i64.ge_u - i32.const 18 - i32.add - local.get $0 - i64.const 1000000000000000000 - i64.ge_u - i32.add - end - end - local.tee $1 + call $~lib/builtins/abort + unreachable + end + i32.const 26528 + i32.const 26528 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 831 i32.const 1 - i32.shl - local.get $4 - i32.add - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - local.get $3 - local.get $4 - i32.add - local.get $0 - local.get $1 - call $~lib/util/number/utoa64_dec_lut + call $~lib/builtins/abort + unreachable end - else - local.get $1 - i32.const 16 - i32.eq + i32.const 26528 + i32.const 26528 + call $~lib/string/String.__eq + i32.eqz if - global.get $~lib/memory/__stack_pointer - i32.const 63 - local.get $0 - i64.clz - i32.wrap_i64 - i32.sub - i32.const 2 - i32.shr_s + i32.const 0 + i32.const 1120 + i32.const 832 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 26560 + i32.const 26560 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 833 i32.const 1 - i32.add - local.tee $1 + call $~lib/builtins/abort + unreachable + end + i32.const 26592 + i32.const 26592 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 834 i32.const 1 - i32.shl - local.get $4 - i32.add - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - local.get $3 - local.get $4 - i32.add - local.set $7 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $std/string/str + i32.const 59404 + global.set $~lib/memory/__stack_pointer + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s + if loop $while-continue|0 - local.get $1 - i32.const 2 - i32.ge_u + global.get $~lib/rt/itcms/state if - local.get $7 - local.get $1 - i32.const 2 - i32.sub - local.tee $1 - i32.const 1 - i32.shl - i32.add - local.get $0 - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.const 16640 - i32.add - i32.load - i32.store - local.get $0 - i64.const 8 - i64.shr_u - local.set $0 + call $~lib/rt/itcms/step + drop br $while-continue|0 end end - local.get $1 - i32.const 1 - i32.and + end + call $~lib/rt/itcms/step + drop + loop $while-continue|1 + global.get $~lib/rt/itcms/state if - local.get $7 - local.get $0 - i32.wrap_i64 - i32.const 6 - i32.shl - 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$184 (result i32) - local.get $0 - local.set $2 - local.get $1 - i32.popcnt - i32.const 1 - i32.eq - if - i32.const 63 - local.get $0 - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $1 - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - br $__inlined_func$~lib/util/number/ulog_base$184 - end - local.get $1 - i64.extend_i32_s - local.tee $6 - local.set $5 - i32.const 1 - local.set $3 - loop $while-continue|01 - local.get $2 - local.get $5 - i64.ge_u - if - local.get $2 - local.get $5 - i64.div_u - local.set $2 - local.get $5 - local.get $5 - i64.mul - local.set $5 - local.get $3 - i32.const 1 - i32.shl - local.set $3 - br $while-continue|01 - end - end - loop $while-continue|1 - local.get $2 - i64.const 0 - i64.ne - if - local.get $2 - local.get $6 - i64.div_u - local.set $2 - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $while-continue|1 - end - end - local.get $3 - i32.const 1 - i32.sub + call $~lib/rt/itcms/step + drop + br $while-continue|1 end - local.tee $7 - i32.const 1 - i32.shl - local.get $4 - i32.add - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - local.get $3 - local.get $4 - i32.add - local.get $0 - local.get $7 - local.get $1 - call $~lib/util/number/utoa64_any_core end - end - local.get $4 - if - local.get $3 - 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 $3 - ) - (func $~lib/util/number/dtoa (param $0 f64) (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 26444 - i32.lt_s - if - i32.const 59232 - i32.const 59280 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $0 - f64.const 0 - f64.eq - if - local.get $1 - i32.const 4 + 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/memory/__stack_pointer - i32.const 23280 - return - end - local.get $0 - local.get $0 - f64.sub - f64.const 0 - f64.ne - if - local.get $0 - local.get $0 - f64.ne - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 7696 - return - end + global.set $~lib/rt/itcms/threshold global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 76 i32.add global.set $~lib/memory/__stack_pointer - i32.const 8960 - i32.const 23312 - local.get $0 - f64.const 0 - f64.lt - select return end - local.get $0 - call $~lib/util/number/dtoa_core + i32.const 59424 + i32.const 59472 i32.const 1 - i32.shl - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - local.get $1 - i32.const 23344 - local.get $2 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) ) diff --git a/tests/compiler/std/string.ts b/tests/compiler/std/string.ts index 3f3e281a4d..df5b2d5443 100644 --- a/tests/compiler/std/string.ts +++ b/tests/compiler/std/string.ts @@ -27,7 +27,7 @@ assert(String.fromCharCode(65600) == "@"); assert(String.fromCharCode(54) == "6"); assert(String.fromCharCode(0x10000 + 54) == "6"); assert(String.fromCharCode(0xD800, 0xDF00) == "𐌀"); -assert(String.fromCharCodes([0, 54]) == "\06"); +assert(String.fromCharCodes([0, 54]) == "\x006"); assert(String.fromCharCodes([65, 66, 67]) == "ABC"); assert(String.fromCharCodes([0xD834, 0xDF06, 0x61, 0xD834, 0xDF07]) == "\uD834\uDF06a\uD834\uDF07"); @@ -742,19 +742,17 @@ assert(dtoa(+f64.EPSILON) == "2.220446049250313e-16"); assert(dtoa(-f64.EPSILON) == "-2.220446049250313e-16"); assert(dtoa(+f64.MAX_VALUE) == "1.7976931348623157e+308"); assert(dtoa(-f64.MAX_VALUE) == "-1.7976931348623157e+308"); +assert(dtoa(+f32.EPSILON) == "1.1920929e-7"); +assert(dtoa(-f32.EPSILON) == "-1.1920929e-7"); +assert(dtoa(+f32.MAX_VALUE) == "3.4028235e+38"); +assert(dtoa(-f32.MAX_VALUE) == "-3.4028235e+38"); assert(dtoa(4.185580496821357e+298) == "4.185580496821357e+298"); assert(dtoa(2.2250738585072014e-308) == "2.2250738585072014e-308"); -// assert(dtoa(2.98023223876953125e-8) == "2.9802322387695312e-8"); // FIXME -// assert(dtoa(-2.109808898695963e+16) == "-21098088986959630.0"); // FIXME assert(dtoa(4.940656E-318) == "4.940656e-318"); assert(dtoa(9.0608011534336e+15) == "9060801153433600.0"); assert(dtoa(4.708356024711512e+18) == "4708356024711512000.0"); assert(dtoa(9.409340012568248e+18) == "9409340012568248000.0"); assert(dtoa(5e-324) == "5e-324"); -// Known imprecise issue for Grisu alghoritm. Need workaround -// Expeced: 1.2345e+21 -// Actual: 1.2344999999999999e+21 -// assert(dtoa(1.2345e+21) == "1.2345e+21"); assert(dtoa(1.0) == "1.0"); assert(dtoa(0.1) == "0.1"); @@ -780,12 +778,10 @@ assert(dtoa(1e-324) == "0.0"); assert(dtoa(4294967272) == "4294967272.0"); assert(dtoa(1.23121456734562345678e-8) == "1.2312145673456234e-8"); -// assert(dtoa(-0.0000010471975511965976) == "-0.0000010471975511965976"); // FIXME assert(dtoa(555555555.55555555) == "555555555.5555556"); assert(dtoa(0.9999999999999999) == "0.9999999999999999"); assert(dtoa(0.99999999999999995) == "1.0"); assert(dtoa(1234e-2) == "12.34"); -// assert(dtoa(0.1 + 0.2) == "0.30000000000000004"); // FIXME assert(dtoa(1.0 / 3.0) == "0.3333333333333333"); assert(dtoa(1.234e+20) == "123400000000000000000.0"); assert(dtoa(1.234e+21) == "1.234e+21"); @@ -796,6 +792,28 @@ assert(dtoa(1.1e+128) == "1.1e+128"); assert(dtoa(1.1e-64) == "1.1e-64"); assert(dtoa(0.000035689) == "0.000035689"); +// FIXME: The following are imprecise rounding issues for Grisu algorithm. Need workaround. + +// Expected: 1.2345e+21 +// Actual: 1.2344999999999999e+21 +// assert(dtoa(1.2345e+21) == "1.2345e+21"); + +// Expected: 2.98023223876953125e-8 +// Actual: 2.9802322387695315e-8 +// assert(dtoa(2.98023223876953125e-8) == "2.9802322387695312e-8"); + +// Expected: -2.109808898695963e+16 +// Actual: -21098088986959633.0 +// assert(dtoa(-2.109808898695963e+16) == "-21098088986959630.0"); + +// Expected: -0.0000010471975511965976 +// Actual: -0.0000010471975511965977 +// assert(dtoa(-0.0000010471975511965976) == "-0.0000010471975511965976"); + +// Expected: 0.30000000000000004 +// Actual: 0.30000000000000007 +// assert(dtoa(0.1 + 0.2) == "0.30000000000000004"); + // concat @@ -804,9 +822,6 @@ assert("".concat("bar") == "bar"); assert("bar".concat("") == "bar"); assert("".concat("") == ""); -// assert(dtoa(f32.MAX_VALUE) == "3.4028234663852886e+38"); // FIXME -// assert(dtoa(f32.EPSILON) == "1.1920928955078125e-7"); // FIXME - export function getString(): string { return str; } diff --git a/tests/compiler/std/symbol.debug.wat b/tests/compiler/std/symbol.debug.wat index d08b3e59f9..561a3a4b9a 100644 --- a/tests/compiler/std/symbol.debug.wat +++ b/tests/compiler/std/symbol.debug.wat @@ -1683,14 +1683,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + drop global.get $~lib/rt/itcms/total - i64.extend_i32_u i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 + i32.const 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold @@ -2372,7 +2375,7 @@ end end ) - (func $~lib/map/Map<~lib/string/String,usize>#set:buckets (param $this i32) (param $buckets i32) + (func $"~lib/map/Map<~lib/string/String,usize>#set:buckets" (param $this i32) (param $buckets i32) local.get $this local.get $buckets i32.store @@ -2381,12 +2384,12 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map<~lib/string/String,usize>#set:bucketsMask (param $this i32) (param $bucketsMask i32) + (func $"~lib/map/Map<~lib/string/String,usize>#set:bucketsMask" (param $this i32) (param $bucketsMask i32) local.get $this local.get $bucketsMask i32.store offset=4 ) - (func $~lib/map/Map<~lib/string/String,usize>#set:entries (param $this i32) (param $entries i32) + (func $"~lib/map/Map<~lib/string/String,usize>#set:entries" (param $this i32) (param $entries i32) local.get $this local.get $entries i32.store offset=8 @@ -2395,17 +2398,17 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map<~lib/string/String,usize>#set:entriesCapacity (param $this i32) (param $entriesCapacity i32) + (func $"~lib/map/Map<~lib/string/String,usize>#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) local.get $this local.get $entriesCapacity i32.store offset=12 ) - (func $~lib/map/Map<~lib/string/String,usize>#set:entriesOffset (param $this i32) (param $entriesOffset i32) + (func $"~lib/map/Map<~lib/string/String,usize>#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this local.get $entriesOffset i32.store offset=16 ) - (func $~lib/map/Map<~lib/string/String,usize>#set:entriesCount (param $this i32) (param $entriesCount i32) + (func $"~lib/map/Map<~lib/string/String,usize>#set:entriesCount" (param $this i32) (param $entriesCount i32) local.get $this local.get $entriesCount i32.store offset=20 @@ -2423,19 +2426,19 @@ i32.shr_u return ) - (func $~lib/map/Map<~lib/string/String,usize>#get:buckets (param $this i32) (result i32) + (func $"~lib/map/Map<~lib/string/String,usize>#get:buckets" (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/map/Map<~lib/string/String,usize>#get:bucketsMask (param $this i32) (result i32) + (func $"~lib/map/Map<~lib/string/String,usize>#get:bucketsMask" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry<~lib/string/String,usize>#get:taggedNext (param $this i32) (result i32) + (func $"~lib/map/MapEntry<~lib/string/String,usize>#get:taggedNext" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry<~lib/string/String,usize>#get:key (param $this i32) (result i32) + (func $"~lib/map/MapEntry<~lib/string/String,usize>#get:key" (param $this i32) (result i32) local.get $this i32.load ) @@ -2543,42 +2546,42 @@ i32.const 0 return ) - (func $~lib/map/MapEntry<~lib/string/String,usize>#get:value (param $this i32) (result i32) + (func $"~lib/map/MapEntry<~lib/string/String,usize>#get:value" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry<~lib/string/String,usize>#set:value (param $this i32) (param $value i32) + (func $"~lib/map/MapEntry<~lib/string/String,usize>#set:value" (param $this i32) (param $value i32) local.get $this local.get $value i32.store offset=4 ) - (func $~lib/map/Map<~lib/string/String,usize>#get:entriesOffset (param $this i32) (result i32) + (func $"~lib/map/Map<~lib/string/String,usize>#get:entriesOffset" (param $this i32) (result i32) local.get $this i32.load offset=16 ) - (func $~lib/map/Map<~lib/string/String,usize>#get:entriesCapacity (param $this i32) (result i32) + (func $"~lib/map/Map<~lib/string/String,usize>#get:entriesCapacity" (param $this i32) (result i32) local.get $this i32.load offset=12 ) - (func $~lib/map/Map<~lib/string/String,usize>#get:entriesCount (param $this i32) (result i32) + (func $"~lib/map/Map<~lib/string/String,usize>#get:entriesCount" (param $this i32) (result i32) local.get $this i32.load offset=20 ) - (func $~lib/map/Map<~lib/string/String,usize>#get:entries (param $this i32) (result i32) + (func $"~lib/map/Map<~lib/string/String,usize>#get:entries" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry<~lib/string/String,usize>#set:key (param $this i32) (param $key i32) + (func $"~lib/map/MapEntry<~lib/string/String,usize>#set:key" (param $this i32) (param $key i32) local.get $this local.get $key i32.store ) - (func $~lib/map/MapEntry<~lib/string/String,usize>#set:taggedNext (param $this i32) (param $taggedNext i32) + (func $"~lib/map/MapEntry<~lib/string/String,usize>#set:taggedNext" (param $this i32) (param $taggedNext i32) local.get $this local.get $taggedNext i32.store offset=8 ) - (func $~lib/map/Map#set:buckets (param $this i32) (param $buckets i32) + (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this local.get $buckets i32.store @@ -2587,12 +2590,12 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (param $this i32) (param $bucketsMask i32) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) local.get $this local.get $bucketsMask i32.store offset=4 ) - (func $~lib/map/Map#set:entries (param $this i32) (param $entries i32) + (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this local.get $entries i32.store offset=8 @@ -2601,17 +2604,17 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (param $this i32) (param $entriesCapacity i32) + (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) local.get $this local.get $entriesCapacity i32.store offset=12 ) - (func $~lib/map/Map#set:entriesOffset (param $this i32) (param $entriesOffset i32) + (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this local.get $entriesOffset i32.store offset=16 ) - (func $~lib/map/Map#set:entriesCount (param $this i32) (param $entriesCount i32) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) local.get $this local.get $entriesCount i32.store offset=20 @@ -2684,53 +2687,53 @@ end return ) - (func $~lib/map/Map#get:buckets (param $this i32) (result i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/map/Map#get:bucketsMask (param $this i32) (result i32) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#get:taggedNext (param $this i32) (result i32) + (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) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/map/MapEntry#set:value (param $this i32) (param $value i32) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) local.get $this local.get $value i32.store offset=4 ) - (func $~lib/map/Map#get:entriesOffset (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) local.get $this i32.load offset=16 ) - (func $~lib/map/Map#get:entriesCapacity (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) local.get $this i32.load offset=12 ) - (func $~lib/map/Map#get:entriesCount (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) local.get $this i32.load offset=20 ) - (func $~lib/map/Map#get:entries (param $this i32) (result i32) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#set:key (param $this i32) (param $key i32) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i32) local.get $this local.get $key i32.store ) - (func $~lib/map/MapEntry#get:value (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#set:taggedNext (param $this i32) (param $taggedNext i32) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) local.get $this local.get $taggedNext i32.store offset=8 @@ -2799,35 +2802,31 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) - (func $~lib/map/Map<~lib/string/String,usize>~visit (param $0 i32) (param $1 i32) + (func $"~lib/map/Map<~lib/string/String,usize>~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<~lib/string/String,usize>#__visit + call $"~lib/map/Map<~lib/string/String,usize>#__visit" ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + (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 + 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<~lib/string/String,usize> + block $"~lib/map/Map" + block $"~lib/map/Map<~lib/string/String,usize>" block $~lib/arraybuffer/ArrayBufferView block $~lib/string/String block $~lib/arraybuffer/ArrayBuffer @@ -2836,7 +2835,7 @@ i32.const 8 i32.sub i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/map/Map<~lib/string/String,usize> $~lib/map/Map $invalid + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $"~lib/map/Map<~lib/string/String,usize>" $"~lib/map/Map" $invalid end return end @@ -2851,12 +2850,12 @@ end local.get $0 local.get $1 - call $~lib/map/Map<~lib/string/String,usize>~visit + call $"~lib/map/Map<~lib/string/String,usize>~visit" return end local.get $0 local.get $1 - call $~lib/map/Map~visit + call $"~lib/map/Map~visit" return end unreachable @@ -2883,7 +2882,7 @@ unreachable end ) - (func $~lib/map/Map<~lib/string/String,usize>#constructor (param $this i32) (result i32) + (func $"~lib/map/Map<~lib/string/String,usize>#constructor" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -2922,7 +2921,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map<~lib/string/String,usize>#set:buckets + call $"~lib/map/Map<~lib/string/String,usize>#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -2932,7 +2931,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map<~lib/string/String,usize>#set:bucketsMask + call $"~lib/map/Map<~lib/string/String,usize>#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -2941,9 +2940,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.0 (result i32) + block $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.0" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.0 + br $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -2952,7 +2951,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map<~lib/string/String,usize>#set:entries + call $"~lib/map/Map<~lib/string/String,usize>#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -2960,7 +2959,7 @@ i32.store offset=4 local.get $1 i32.const 4 - call $~lib/map/Map<~lib/string/String,usize>#set:entriesCapacity + call $"~lib/map/Map<~lib/string/String,usize>#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -2968,7 +2967,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map<~lib/string/String,usize>#set:entriesOffset + call $"~lib/map/Map<~lib/string/String,usize>#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -2976,7 +2975,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map<~lib/string/String,usize>#set:entriesCount + call $"~lib/map/Map<~lib/string/String,usize>#set:entriesCount" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -3370,7 +3369,7 @@ local.get $3 return ) - (func $~lib/map/Map<~lib/string/String,usize>#find (param $this i32) (param $key i32) (param $hashCode i32) (result i32) + (func $"~lib/map/Map<~lib/string/String,usize>#find" (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) (local $taggedNext i32) (local $5 i32) @@ -3388,7 +3387,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map<~lib/string/String,usize>#get:buckets + call $"~lib/map/Map<~lib/string/String,usize>#get:buckets" local.get $hashCode local.get $this local.set $5 @@ -3396,7 +3395,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map<~lib/string/String,usize>#get:bucketsMask + call $"~lib/map/Map<~lib/string/String,usize>#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -3407,7 +3406,7 @@ local.get $entry if local.get $entry - call $~lib/map/MapEntry<~lib/string/String,usize>#get:taggedNext + call $"~lib/map/MapEntry<~lib/string/String,usize>#get:taggedNext" local.set $taggedNext local.get $taggedNext i32.const 1 @@ -3415,7 +3414,7 @@ i32.eqz if (result i32) local.get $entry - call $~lib/map/MapEntry<~lib/string/String,usize>#get:key + call $"~lib/map/MapEntry<~lib/string/String,usize>#get:key" local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 @@ -3459,7 +3458,7 @@ local.get $5 return ) - (func $~lib/map/Map<~lib/string/String,usize>#has (param $this i32) (param $key i32) (result i32) + (func $"~lib/map/Map<~lib/string/String,usize>#has" (param $this i32) (param $key i32) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -3491,7 +3490,7 @@ i32.store offset=8 local.get $2 call $~lib/util/hash/HASH<~lib/string/String> - call $~lib/map/Map<~lib/string/String,usize>#find + call $"~lib/map/Map<~lib/string/String,usize>#find" i32.const 0 i32.ne local.set $2 @@ -3502,7 +3501,7 @@ local.get $2 return ) - (func $~lib/map/Map<~lib/string/String,usize>#get (param $this i32) (param $key i32) (result i32) + (func $"~lib/map/Map<~lib/string/String,usize>#get" (param $this i32) (param $key i32) (result i32) (local $entry i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -3535,7 +3534,7 @@ i32.store offset=8 local.get $3 call $~lib/util/hash/HASH<~lib/string/String> - call $~lib/map/Map<~lib/string/String,usize>#find + call $"~lib/map/Map<~lib/string/String,usize>#find" local.set $entry local.get $entry i32.eqz @@ -3548,7 +3547,7 @@ unreachable end local.get $entry - call $~lib/map/MapEntry<~lib/string/String,usize>#get:value + call $"~lib/map/MapEntry<~lib/string/String,usize>#get:value" local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 @@ -3557,7 +3556,7 @@ local.get $3 return ) - (func $~lib/map/Map<~lib/string/String,usize>#rehash (param $this i32) (param $newBucketsMask i32) + (func $"~lib/map/Map<~lib/string/String,usize>#rehash" (param $this i32) (param $newBucketsMask i32) (local $newBucketsCapacity i32) (local $newBuckets i32) (local $newEntriesCapacity i32) @@ -3601,9 +3600,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.1 (result i32) + block $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.1" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.1 + br $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.1" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -3615,7 +3614,7 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map<~lib/string/String,usize>#get:entries + call $"~lib/map/Map<~lib/string/String,usize>#get:entries" local.set $oldPtr local.get $oldPtr local.get $this @@ -3624,10 +3623,10 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map<~lib/string/String,usize>#get:entriesOffset - block $~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.2 (result i32) + call $"~lib/map/Map<~lib/string/String,usize>#get:entriesOffset" + block $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.2" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.2 + br $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.2" end i32.mul i32.add @@ -3642,7 +3641,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - call $~lib/map/MapEntry<~lib/string/String,usize>#get:taggedNext + call $"~lib/map/MapEntry<~lib/string/String,usize>#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -3651,7 +3650,7 @@ local.set $newEntry global.get $~lib/memory/__stack_pointer local.get $oldEntry - call $~lib/map/MapEntry<~lib/string/String,usize>#get:key + call $"~lib/map/MapEntry<~lib/string/String,usize>#get:key" local.tee $oldEntryKey i32.store offset=12 local.get $newEntry @@ -3661,11 +3660,11 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/MapEntry<~lib/string/String,usize>#set:key + call $"~lib/map/MapEntry<~lib/string/String,usize>#set:key" local.get $newEntry local.get $oldEntry - call $~lib/map/MapEntry<~lib/string/String,usize>#get:value - call $~lib/map/MapEntry<~lib/string/String,usize>#set:value + call $"~lib/map/MapEntry<~lib/string/String,usize>#get:value" + call $"~lib/map/MapEntry<~lib/string/String,usize>#set:value" local.get $oldEntryKey local.set $14 global.get $~lib/memory/__stack_pointer @@ -3685,22 +3684,22 @@ local.get $newEntry local.get $newBucketPtrBase i32.load - call $~lib/map/MapEntry<~lib/string/String,usize>#set:taggedNext + call $"~lib/map/MapEntry<~lib/string/String,usize>#set:taggedNext" local.get $newBucketPtrBase local.get $newPtr i32.store local.get $newPtr - block $~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.3 (result i32) + block $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.3" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.3 + br $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.3" end i32.add local.set $newPtr end local.get $oldPtr - block $~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.4 (result i32) + block $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.4" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.4 + br $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.4" end i32.add local.set $oldPtr @@ -3719,7 +3718,7 @@ local.get $14 i32.store offset=16 local.get $14 - call $~lib/map/Map<~lib/string/String,usize>#set:buckets + call $"~lib/map/Map<~lib/string/String,usize>#set:buckets" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -3727,7 +3726,7 @@ i32.store offset=8 local.get $14 local.get $newBucketsMask - call $~lib/map/Map<~lib/string/String,usize>#set:bucketsMask + call $"~lib/map/Map<~lib/string/String,usize>#set:bucketsMask" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -3740,7 +3739,7 @@ local.get $14 i32.store offset=16 local.get $14 - call $~lib/map/Map<~lib/string/String,usize>#set:entries + call $"~lib/map/Map<~lib/string/String,usize>#set:entries" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -3748,7 +3747,7 @@ i32.store offset=8 local.get $14 local.get $newEntriesCapacity - call $~lib/map/Map<~lib/string/String,usize>#set:entriesCapacity + call $"~lib/map/Map<~lib/string/String,usize>#set:entriesCapacity" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -3761,14 +3760,14 @@ local.get $14 i32.store offset=16 local.get $14 - call $~lib/map/Map<~lib/string/String,usize>#get:entriesCount - call $~lib/map/Map<~lib/string/String,usize>#set:entriesOffset + call $"~lib/map/Map<~lib/string/String,usize>#get:entriesCount" + call $"~lib/map/Map<~lib/string/String,usize>#set:entriesOffset" global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map<~lib/string/String,usize>#set (param $this i32) (param $key i32) (param $value i32) (result i32) + (func $"~lib/map/Map<~lib/string/String,usize>#set" (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) (local $entry i32) (local $entries i32) @@ -3807,13 +3806,13 @@ i32.store offset=4 local.get $8 local.get $hashCode - call $~lib/map/Map<~lib/string/String,usize>#find + call $"~lib/map/Map<~lib/string/String,usize>#find" local.set $entry local.get $entry if local.get $entry local.get $value - call $~lib/map/MapEntry<~lib/string/String,usize>#set:value + call $"~lib/map/MapEntry<~lib/string/String,usize>#set:value" i32.const 0 drop else @@ -3823,14 +3822,14 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map<~lib/string/String,usize>#get:entriesOffset + call $"~lib/map/Map<~lib/string/String,usize>#get:entriesOffset" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store local.get $8 - call $~lib/map/Map<~lib/string/String,usize>#get:entriesCapacity + call $"~lib/map/Map<~lib/string/String,usize>#get:entriesCapacity" i32.eq if local.get $this @@ -3845,14 +3844,14 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map<~lib/string/String,usize>#get:entriesCount + call $"~lib/map/Map<~lib/string/String,usize>#get:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map<~lib/string/String,usize>#get:entriesCapacity + call $"~lib/map/Map<~lib/string/String,usize>#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -3865,7 +3864,7 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map<~lib/string/String,usize>#get:bucketsMask + call $"~lib/map/Map<~lib/string/String,usize>#get:bucketsMask" else local.get $this local.set $8 @@ -3873,13 +3872,13 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map<~lib/string/String,usize>#get:bucketsMask + call $"~lib/map/Map<~lib/string/String,usize>#get:bucketsMask" i32.const 1 i32.shl i32.const 1 i32.or end - call $~lib/map/Map<~lib/string/String,usize>#rehash + call $"~lib/map/Map<~lib/string/String,usize>#rehash" end global.get $~lib/memory/__stack_pointer local.get $this @@ -3888,7 +3887,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map<~lib/string/String,usize>#get:entries + call $"~lib/map/Map<~lib/string/String,usize>#get:entries" local.tee $entries i32.store offset=8 local.get $entries @@ -3904,15 +3903,15 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map<~lib/string/String,usize>#get:entriesOffset + call $"~lib/map/Map<~lib/string/String,usize>#get:entriesOffset" local.tee $6 i32.const 1 i32.add - call $~lib/map/Map<~lib/string/String,usize>#set:entriesOffset + call $"~lib/map/Map<~lib/string/String,usize>#set:entriesOffset" local.get $6 - block $~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.5 (result i32) + block $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.5" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.5 + br $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.5" end i32.mul i32.add @@ -3924,7 +3923,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/MapEntry<~lib/string/String,usize>#set:key + call $"~lib/map/MapEntry<~lib/string/String,usize>#set:key" i32.const 1 drop local.get $this @@ -3933,7 +3932,7 @@ call $~lib/rt/itcms/__link local.get $entry local.get $value - call $~lib/map/MapEntry<~lib/string/String,usize>#set:value + call $"~lib/map/MapEntry<~lib/string/String,usize>#set:value" i32.const 0 drop local.get $this @@ -3948,17 +3947,17 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map<~lib/string/String,usize>#get:entriesCount + call $"~lib/map/Map<~lib/string/String,usize>#get:entriesCount" i32.const 1 i32.add - call $~lib/map/Map<~lib/string/String,usize>#set:entriesCount + call $"~lib/map/Map<~lib/string/String,usize>#set:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store local.get $8 - call $~lib/map/Map<~lib/string/String,usize>#get:buckets + call $"~lib/map/Map<~lib/string/String,usize>#get:buckets" local.get $hashCode local.get $this local.set $8 @@ -3966,7 +3965,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map<~lib/string/String,usize>#get:bucketsMask + call $"~lib/map/Map<~lib/string/String,usize>#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -3975,7 +3974,7 @@ local.get $entry local.get $bucketPtrBase i32.load - call $~lib/map/MapEntry<~lib/string/String,usize>#set:taggedNext + call $"~lib/map/MapEntry<~lib/string/String,usize>#set:taggedNext" local.get $bucketPtrBase local.get $entry i32.store @@ -3989,7 +3988,7 @@ local.get $8 return ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $"~lib/map/Map#constructor" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -4028,7 +4027,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -4038,7 +4037,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -4047,9 +4046,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.0 + br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -4058,7 +4057,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -4066,7 +4065,7 @@ i32.store offset=4 local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -4074,7 +4073,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -4082,7 +4081,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -4091,7 +4090,7 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $~lib/map/Map#find (param $this i32) (param $key i32) (param $hashCode i32) (result i32) + (func $"~lib/map/Map#find" (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) (local $taggedNext i32) (local $5 i32) @@ -4109,7 +4108,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $5 @@ -4117,7 +4116,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -4128,7 +4127,7 @@ local.get $entry if local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" local.set $taggedNext local.get $taggedNext i32.const 1 @@ -4136,7 +4135,7 @@ i32.eqz if (result i32) local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.get $key i32.eq else @@ -4170,7 +4169,7 @@ local.get $5 return ) - (func $~lib/map/Map#rehash (param $this i32) (param $newBucketsMask i32) + (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) (local $newBucketsCapacity i32) (local $newBuckets i32) (local $newEntriesCapacity i32) @@ -4216,9 +4215,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.1 + br $"~lib/map/ENTRY_SIZE|inlined.1" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -4230,7 +4229,7 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $oldPtr local.get $oldPtr local.get $this @@ -4239,10 +4238,10 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entriesOffset - block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + call $"~lib/map/Map#get:entriesOffset" + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.2 + br $"~lib/map/ENTRY_SIZE|inlined.2" end i32.mul i32.add @@ -4257,7 +4256,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -4265,20 +4264,20 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" local.get $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:value + call $"~lib/map/MapEntry#get:value" local.set $14 global.get $~lib/memory/__stack_pointer local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" local.get $oldEntryKey call $~lib/util/hash/HASH local.get $newBucketsMask @@ -4293,22 +4292,22 @@ local.get $newEntry local.get $newBucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $newBucketPtrBase local.get $newPtr i32.store local.get $newPtr - block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.3 + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add local.set $newPtr end local.get $oldPtr - block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.4 + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add local.set $oldPtr @@ -4327,7 +4326,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -4335,7 +4334,7 @@ i32.store offset=8 local.get $14 local.get $newBucketsMask - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -4348,7 +4347,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -4356,7 +4355,7 @@ i32.store offset=8 local.get $14 local.get $newEntriesCapacity - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -4369,14 +4368,14 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#get:entriesCount - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#get:entriesCount" + call $"~lib/map/Map#set:entriesOffset" global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set (param $this i32) (param $key i32) (param $value i32) (result i32) + (func $"~lib/map/Map#set" (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) (local $entry i32) (local $entries i32) @@ -4405,7 +4404,7 @@ local.get $8 local.get $key local.get $hashCode - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry if @@ -4416,7 +4415,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 1 drop local.get $this @@ -4430,14 +4429,14 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" 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:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.eq if local.get $this @@ -4452,14 +4451,14 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -4472,7 +4471,7 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" else local.get $this local.set $8 @@ -4480,13 +4479,13 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl i32.const 1 i32.or end - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer local.get $this @@ -4495,7 +4494,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=8 local.get $entries @@ -4511,22 +4510,22 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.tee $6 i32.const 1 i32.add - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.5 + br $"~lib/map/ENTRY_SIZE|inlined.5" end i32.mul i32.add local.set $entry local.get $entry local.get $key - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" i32.const 0 drop local.get $entry @@ -4536,7 +4535,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 1 drop local.get $this @@ -4555,17 +4554,17 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" 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 + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $8 @@ -4573,7 +4572,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -4582,7 +4581,7 @@ local.get $entry local.get $bucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase local.get $entry i32.store @@ -4620,7 +4619,7 @@ local.get $3 i32.store offset=4 local.get $3 - call $~lib/map/Map<~lib/string/String,usize>#has + call $"~lib/map/Map<~lib/string/String,usize>#has" if global.get $~lib/symbol/stringToId local.set $3 @@ -4634,7 +4633,7 @@ local.get $3 i32.store offset=4 local.get $3 - call $~lib/map/Map<~lib/string/String,usize>#get + call $"~lib/map/Map<~lib/string/String,usize>#get" local.set $3 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -4668,7 +4667,7 @@ i32.store offset=4 local.get $3 local.get $id - call $~lib/map/Map<~lib/string/String,usize>#set + call $"~lib/map/Map<~lib/string/String,usize>#set" drop global.get $~lib/symbol/idToString local.set $3 @@ -4683,7 +4682,7 @@ local.get $3 i32.store offset=4 local.get $3 - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $id local.set $3 @@ -4694,7 +4693,7 @@ local.get $3 return ) - (func $~lib/map/Map#has (param $this i32) (param $key i32) (result i32) + (func $"~lib/map/Map#has" (param $this i32) (param $key i32) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -4713,7 +4712,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" i32.const 0 i32.ne local.set $2 @@ -4724,7 +4723,7 @@ local.get $2 return ) - (func $~lib/map/Map#get (param $this i32) (param $key i32) (result i32) + (func $"~lib/map/Map#get" (param $this i32) (param $key i32) (result i32) (local $entry i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -4744,7 +4743,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry i32.eqz @@ -4757,7 +4756,7 @@ unreachable end local.get $entry - call $~lib/map/MapEntry#get:value + call $"~lib/map/MapEntry#get:value" local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -4783,7 +4782,7 @@ i32.store local.get $1 local.get $sym - call $~lib/map/Map#has + call $"~lib/map/Map#has" if (result i32) global.get $~lib/symbol/idToString local.set $1 @@ -4792,7 +4791,7 @@ i32.store local.get $1 local.get $sym - call $~lib/map/Map#get + call $"~lib/map/Map#get" else i32.const 0 end @@ -4917,14 +4916,16 @@ (local $3 i32) (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + 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.const 20 - memory.fill + i32.store offset=8 local.get $this local.set $id global.get $~lib/memory/__stack_pointer @@ -5069,7 +5070,7 @@ i32.store offset=4 local.get $4 local.get $id - call $~lib/map/Map#has + call $"~lib/map/Map#has" else i32.const 0 end @@ -5082,23 +5083,18 @@ i32.store offset=4 local.get $4 local.get $id - call $~lib/map/Map#get + call $"~lib/map/Map#get" local.tee $str i32.store end br $break|0 end i32.const 1392 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $4 local.get $str local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=16 + i32.store offset=8 local.get $4 call $~lib/string/String.__concat local.set $4 @@ -5107,15 +5103,10 @@ i32.store offset=4 local.get $4 i32.const 1440 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 call $~lib/string/String.__concat local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer local.get $4 @@ -5137,19 +5128,9 @@ i64.const 0 i64.store offset=8 i32.const 32 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 call $~lib/symbol/Symbol global.set $std/symbol/sym1 i32.const 32 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 call $~lib/symbol/Symbol global.set $std/symbol/sym2 global.get $std/symbol/sym1 @@ -5182,25 +5163,15 @@ call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace i32.const 0 - call $~lib/map/Map<~lib/string/String,usize>#constructor + call $"~lib/map/Map<~lib/string/String,usize>#constructor" global.set $~lib/symbol/stringToId i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" global.set $~lib/symbol/idToString i32.const 32 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 call $~lib/symbol/_Symbol.for global.set $std/symbol/sym3 i32.const 32 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 call $~lib/symbol/_Symbol.for global.set $std/symbol/sym4 global.get $std/symbol/sym3 @@ -5296,11 +5267,6 @@ i32.store local.get $2 i32.const 32 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 - local.get $2 call $~lib/string/String.__eq i32.eqz if @@ -5342,11 +5308,6 @@ i32.store local.get $2 i32.const 1472 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 - local.get $2 call $~lib/string/String.__eq i32.eqz if @@ -5365,11 +5326,6 @@ i32.store local.get $2 i32.const 1520 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 - local.get $2 call $~lib/string/String.__eq i32.eqz if @@ -5392,11 +5348,6 @@ i32.store local.get $2 i32.const 1568 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 - local.get $2 call $~lib/string/String.__eq i32.eqz if @@ -5415,11 +5366,6 @@ i32.store local.get $2 i32.const 1632 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 - local.get $2 call $~lib/string/String.__eq i32.eqz if @@ -5439,7 +5385,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map<~lib/string/String,usize>#__visit (param $this i32) (param $cookie i32) + (func $"~lib/map/Map<~lib/string/String,usize>#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $cur i32) (local $end i32) @@ -5460,7 +5406,7 @@ local.get $7 i32.store local.get $7 - call $~lib/map/Map<~lib/string/String,usize>#get:buckets + call $"~lib/map/Map<~lib/string/String,usize>#get:buckets" local.get $cookie call $~lib/rt/itcms/__visit local.get $this @@ -5469,7 +5415,7 @@ local.get $7 i32.store local.get $7 - call $~lib/map/Map<~lib/string/String,usize>#get:entries + call $"~lib/map/Map<~lib/string/String,usize>#get:entries" local.set $entries i32.const 1 drop @@ -5482,10 +5428,10 @@ local.get $7 i32.store local.get $7 - call $~lib/map/Map<~lib/string/String,usize>#get:entriesOffset - block $~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.6 (result i32) + call $"~lib/map/Map<~lib/string/String,usize>#get:entriesOffset" + block $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.6" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.6 + br $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.6" end i32.mul i32.add @@ -5498,7 +5444,7 @@ local.get $cur local.set $entry local.get $entry - call $~lib/map/MapEntry<~lib/string/String,usize>#get:taggedNext + call $"~lib/map/MapEntry<~lib/string/String,usize>#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -5506,7 +5452,7 @@ i32.const 1 drop local.get $entry - call $~lib/map/MapEntry<~lib/string/String,usize>#get:key + call $"~lib/map/MapEntry<~lib/string/String,usize>#get:key" local.set $val i32.const 0 drop @@ -5517,9 +5463,9 @@ drop end local.get $cur - block $~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.7 (result i32) + block $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.7" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.7 + br $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.7" end i32.add local.set $cur @@ -5534,7 +5480,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#__visit (param $this i32) (param $cookie i32) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $cur i32) (local $end i32) @@ -5555,7 +5501,7 @@ local.get $7 i32.store local.get $7 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $cookie call $~lib/rt/itcms/__visit local.get $this @@ -5564,7 +5510,7 @@ local.get $7 i32.store local.get $7 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $entries i32.const 1 drop @@ -5577,10 +5523,10 @@ local.get $7 i32.store local.get $7 - call $~lib/map/Map#get:entriesOffset - block $~lib/map/ENTRY_SIZE|inlined.6 (result i32) + call $"~lib/map/Map#get:entriesOffset" + block $"~lib/map/ENTRY_SIZE|inlined.6" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.6 + br $"~lib/map/ENTRY_SIZE|inlined.6" end i32.mul i32.add @@ -5593,7 +5539,7 @@ local.get $cur local.set $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -5603,7 +5549,7 @@ i32.const 1 drop local.get $entry - call $~lib/map/MapEntry#get:value + call $"~lib/map/MapEntry#get:value" local.set $val i32.const 0 drop @@ -5612,9 +5558,9 @@ call $~lib/rt/itcms/__visit end local.get $cur - block $~lib/map/ENTRY_SIZE|inlined.7 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.7" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.7 + br $"~lib/map/ENTRY_SIZE|inlined.7" end i32.add local.set $cur diff --git a/tests/compiler/std/symbol.release.wat b/tests/compiler/std/symbol.release.wat index a61bac0756..ea31cd7f43 100644 --- a/tests/compiler/std/symbol.release.wat +++ b/tests/compiler/std/symbol.release.wat @@ -1,14 +1,14 @@ (module (type $0 (func (param i32 i32) (result i32))) - (type $1 (func)) + (type $1 (func (param i32) (result i32))) (type $2 (func (param i32 i32))) - (type $3 (func (param i32) (result i32))) + (type $3 (func)) (type $4 (func (param i32))) (type $5 (func (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))) + (type $7 (func (param i32 i32 i32))) + (type $8 (func (param i32 i32 i32) (result i32))) + (type $9 (func (param i32 i32 i64))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/symbol/nextId (mut i32) (i32.const 12)) (global $std/symbol/sym1 (mut i32) (i32.const 0)) @@ -98,1610 +98,1568 @@ (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 - (local $0 i32) - (local $1 i32) - global.get $~lib/symbol/stringToId - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $~lib/symbol/idToString - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/symbol/key1 - local.tee $0 + (func $~lib/rt/itcms/__visit (param $0 i32) + local.get $0 + i32.eqz if - local.get $0 - call $~lib/rt/itcms/__visit + return end - global.get $std/symbol/key2 + 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/__visit + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount end - global.get $std/symbol/key3 - local.tee $0 + ) + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.eqz if - local.get $0 - call $~lib/rt/itcms/__visit + return end - global.get $std/symbol/key4 - local.tee $0 + local.get $0 + i32.eqz if - local.get $0 - call $~lib/rt/itcms/__visit + i32.const 0 + i32.const 1200 + i32.const 295 + i32.const 14 + call $~lib/builtins/abort + unreachable end - i32.const 1328 - call $~lib/rt/itcms/__visit - i32.const 1536 - call $~lib/rt/itcms/__visit - i32.const 1648 - call $~lib/rt/itcms/__visit - i32.const 1136 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace + global.get $~lib/rt/itcms/white + local.get $1 + i32.const 20 + i32.sub local.tee $1 i32.load offset=4 - i32.const -4 + i32.const 3 i32.and - local.set $0 - loop $while-continue|0 + i32.eq + if local.get $0 - local.get $1 - i32.ne + i32.const 20 + i32.sub + local.tee $0 + i32.load offset=4 + i32.const 3 + i32.and + local.tee $3 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq if local.get $0 - i32.load offset=4 + local.get $1 + local.get $2 + select + call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + local.get $3 i32.const 3 + i32.eq i32.and - i32.const 3 - i32.ne if - i32.const 0 - i32.const 1200 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + local.get $1 + call $~lib/rt/itcms/Object#makeGray 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) + (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 2748 + i32.lt_s + if + i32.const 35536 + i32.const 35584 + 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 - global.get $~lib/rt/itcms/iter + local.get $1 i32.eq if - local.get $0 - i32.load offset=8 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1200 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.set $~lib/rt/itcms/iter + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return end - block $__inlined_func$~lib/rt/itcms/Object#unlink$246 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $1 + block $folding-inner0 + local.get $1 i32.eqz - if - local.get $0 - i32.load offset=8 - i32.eqz - local.get $0 - i32.const 35516 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1200 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$246 - end local.get $0 - i32.load offset=8 - local.tee $2 i32.eqz - if - i32.const 0 - i32.const 1200 - 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) + 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 - else + i32.shr_u + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.const 2720 - i32.load - i32.gt_u - if - i32.const 1328 - i32.const 1392 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end + i32.store + local.get $3 local.get $1 - i32.const 2 - i32.shl - i32.const 2724 - 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 + 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 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + else + i32.const 1 + end + i32.eqz + if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $0 + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + block $__inlined_func$~lib/util/string/compareImpl$88 + loop $while-continue|1 + local.get $0 + local.tee $3 + i32.const 1 + i32.sub + local.set $0 + local.get $3 + if + local.get $2 + i32.load16_u + local.tee $5 + local.get $1 + i32.load16_u + local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 + i32.ne + br_if $__inlined_func$~lib/util/string/compareImpl$88 + local.get $2 + i32.const 2 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end + end + i32.const 0 + local.set $3 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.eqz return end - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (func $~lib/arraybuffer/ArrayBuffer#constructor (param $0 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - local.tee $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2748 + i32.lt_s if - local.get $0 - call $~lib/rt/itcms/Object#makeGray - global.get $~lib/rt/itcms/visitCount + i32.const 35536 + i32.const 35584 i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount + i32.const 1 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 1536 + i32.const 1584 + i32.const 52 + i32.const 43 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (func $~lib/util/hash/HASH<~lib/string/String> (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1472 - 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 + (local $6 i32) + (local $7 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 2748 + i32.lt_s if - i32.const 0 - i32.const 1472 - i32.const 270 - i32.const 14 + i32.const 35536 + i32.const 35584 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const 256 - i32.lt_u + 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 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + local.tee $1 + i32.store offset=4 + local.get $1 + i32.const 20 i32.sub + i32.load offset=16 + i32.const -2 + i32.and + local.tee $3 + i32.const 16 + i32.ge_u + if (result i32) + i32.const 606290984 + local.set $2 + i32.const -2048144777 + local.set $4 + i32.const 1640531535 + local.set $5 + local.get $1 + local.get $3 + i32.add + i32.const 16 + i32.sub + local.set $7 + loop $while-continue|0 + local.get $1 + local.get $7 + i32.le_u + if + local.get $2 + local.get $1 + i32.load + i32.const -2048144777 + i32.mul + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + local.set $2 + local.get $4 + local.get $1 + i32.load offset=4 + i32.const -2048144777 + i32.mul + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + local.set $4 + local.get $6 + local.get $1 + i32.load offset=8 + i32.const -2048144777 + i32.mul + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + local.set $6 + local.get $5 + local.get $1 + i32.load offset=12 + i32.const -2048144777 + i32.mul + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + local.set $5 + local.get $1 + i32.const 16 + i32.add + local.set $1 + br $while-continue|0 + end + end + local.get $3 + local.get $2 + i32.const 1 + i32.rotl + local.get $4 + i32.const 7 + i32.rotl + i32.add + local.get $6 + i32.const 12 + i32.rotl + i32.add + local.get $5 + i32.const 18 + i32.rotl + i32.add + i32.add + else + local.get $3 + i32.const 374761393 + i32.add + end local.set $2 + local.get $0 local.get $3 - local.get $4 + i32.add i32.const 4 i32.sub + local.set $4 + loop $while-continue|1 + local.get $1 + local.get $4 + i32.le_u + if + local.get $2 + local.get $1 + i32.load + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $2 + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|1 + end + end + local.get $0 + local.get $3 + i32.add + local.set $0 + loop $while-continue|2 + local.get $0 + local.get $1 + i32.gt_u + if + local.get $2 + local.get $1 + i32.load8_u + i32.const 374761393 + i32.mul + i32.add + i32.const 11 + i32.rotl + i32.const -1640531535 + i32.mul + local.set $2 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $while-continue|2 + end + end + local.get $2 + local.get $2 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 i32.const 16 + i32.shr_u i32.xor + else + i32.const 0 end - local.tee $3 - i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u - i32.and - i32.eqz + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/symbol/_Symbol.keyFor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2748 + i32.lt_s if - i32.const 0 - i32.const 1472 - i32.const 284 - i32.const 14 + i32.const 35536 + i32.const 35584 + i32.const 1 + i32.const 1 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 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + global.get $~lib/symbol/idToString + local.tee $1 + i32.store local.get $1 local.get $0 - local.get $2 + call $"~lib/map/Map#has" + if (result i32) + global.get $~lib/memory/__stack_pointer + global.get $~lib/symbol/idToString + local.tee $1 + i32.store + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + else + i32.const 0 + end + global.get $~lib/memory/__stack_pointer 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 + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/symbol/_Symbol#toString (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2748 + i32.lt_s if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 + i32.const 35536 + i32.const 35584 + 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 + i32.const 1888 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 1888 + i32.store + block $break|0 + block $case11|0 + block $case10|0 + block $case9|0 + block $case8|0 + block $case7|0 + block $case6|0 + block $case5|0 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + local.get $0 + i32.const 1 + 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 1920 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 1920 + i32.store + br $break|0 + end + i32.const 1968 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 1968 + i32.store + br $break|0 + end + i32.const 2032 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 2032 + i32.store + br $break|0 + end + i32.const 2080 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 2080 + i32.store + br $break|0 + end + i32.const 2112 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 2112 + i32.store + br $break|0 + end + i32.const 2160 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 2160 + i32.store + br $break|0 + end + i32.const 2192 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 2192 + i32.store + br $break|0 + end + i32.const 2240 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 2240 + i32.store + br $break|0 + end + i32.const 2272 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 2272 + i32.store + br $break|0 + end + i32.const 2320 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 2320 + i32.store + br $break|0 + end + i32.const 2368 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 2368 + i32.store + br $break|0 + end + global.get $~lib/symbol/idToString + if (result i32) + global.get $~lib/memory/__stack_pointer + global.get $~lib/symbol/idToString + local.tee $2 + i32.store offset=4 local.get $2 - i32.const 2 - i32.shl - i32.add + local.get $0 + call $"~lib/map/Map#has" + else + i32.const 0 + end + if + global.get $~lib/memory/__stack_pointer + global.get $~lib/symbol/idToString 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 + global.get $~lib/memory/__stack_pointer + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + local.tee $1 + i32.store end end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + i32.const 2416 + local.get $1 + 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 2464 + call $~lib/string/String.__concat + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (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 $1 - i32.eqz + local.get $0 + i32.const 1073741804 + i32.ge_u if - i32.const 0 - i32.const 1472 - i32.const 201 - i32.const 14 + i32.const 1136 + i32.const 1200 + i32.const 261 + i32.const 31 call $~lib/builtins/abort unreachable end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and + 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 - i32.const 0 + 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 1136 i32.const 1472 - i32.const 203 - i32.const 14 + i32.const 461 + i32.const 29 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 $4 + local.get $2 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else local.get $2 - i32.const -4 - i32.and - i32.add - local.tee $3 - i32.store - local.get $1 - i32.const 4 + i32.const 19 i32.add - local.get $1 - i32.load - i32.const -4 + i32.const -16 i32.and - i32.add - local.tee $4 - i32.load - local.set $2 + i32.const 4 + i32.sub end - local.get $3 - i32.const 2 - i32.and + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz if - local.get $1 + 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 + memory.size + local.tee $2 + i32.const 16 + i32.shl i32.const 4 i32.sub - i32.load - local.tee $1 - i32.load - local.tee $6 - i32.const 1 + i32.ne + i32.shl + i32.add + i32.const 65535 + i32.add + i32.const -65536 i32.and + i32.const 16 + i32.shr_u + local.set $3 + local.get $2 + local.get $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 1472 - i32.const 221 + i32.const 499 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 $5 local.get $2 - i32.const 2 - i32.or - i32.store - local.get $3 + i32.load i32.const -4 i32.and - local.tee $2 - i32.const 12 - i32.lt_u + i32.gt_u if i32.const 0 i32.const 1472 - i32.const 233 + i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end local.get $4 - local.get $1 - i32.const 4 - i32.add 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.ne + i32.const 15 + i32.and if i32.const 0 i32.const 1472 - i32.const 234 + i32.const 361 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 - i32.const 4 + local.get $6 + i32.const -4 + i32.and + local.get $5 i32.sub - local.get $1 - i32.store - local.get $2 - i32.const 256 - i32.lt_u - if (result i32) + 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.shr_u + 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 - i32.const 31 - i32.const 1073741820 local.get $2 + local.get $6 + i32.const -2 + i32.and + i32.store 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 + i32.const 4 + i32.add local.get $2 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $3 local.get $3 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor + i32.load + i32.const -3 + i32.and + i32.store 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 1472 - 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.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 - i32.const 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 - 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 $3 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 local.get $1 - i32.store offset=96 - local.get $0 - local.get $0 + local.get $2 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $2 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.const -4 + i32.and + i32.const 4 i32.add - local.tee $0 - local.get $0 - i32.load offset=4 - i32.const 1 + i32.add + global.set $~lib/rt/itcms/total local.get $2 - i32.shl - i32.or - i32.store offset=4 + i32.const 20 + i32.add + local.tee $1 + i32.const 0 + local.get $0 + memory.fill + local.get $1 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (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 $2 local.get $1 - i64.extend_i32_u - i64.lt_u + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz if i32.const 0 i32.const 1472 - i32.const 382 + i32.const 268 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 19 - i32.add - i32.const -16 + local.get $3 + i32.const -4 i32.and - i32.const 4 - i32.sub - local.set $1 - local.get $0 - i32.load offset=1568 local.tee $3 + i32.const 12 + i32.lt_u if + i32.const 0 + i32.const 1472 + 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.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1472 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end + i32.shr_u + else + i32.const 31 + i32.const 1073741820 local.get $3 - local.get $1 - i32.const 16 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 + i32.clz 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 1472 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + 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.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub local.tee $3 - i32.const 20 + 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 1472 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable 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 + i32.load offset=8 + local.set $5 local.get $1 - i32.const 0 - i32.store offset=8 + 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.add + i32.shl 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 + i32.shl + i32.add 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 + i32.load offset=96 + i32.eq if - unreachable - end - i32.const 35520 - i32.const 0 - i32.store - i32.const 37088 - i32.const 0 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 23 - i32.lt_u + 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.const 35520 - 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 35520 - 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 35520 - i32.const 37092 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 35520 - 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 + local.tee $1 i32.load offset=4 - i32.const -4 + i32.const -2 + local.get $3 + i32.rotl i32.and - i32.eq + local.set $3 + local.get $1 + local.get $3 + i32.store offset=4 + local.get $3 + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 35516 - 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.load + i32.const -2 + local.get $2 + i32.rotl i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.store 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 1200 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 35516 - 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 35516 - 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.set $1 - 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 1472 - 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 $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state end - i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (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.const 256 - i32.lt_u + i32.eqz 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 + i32.const 0 + i32.const 1472 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable end local.get $1 - i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u + i32.load + local.tee $3 + i32.const 1 i32.and i32.eqz if i32.const 0 i32.const 1472 - i32.const 334 + i32.const 203 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $0 - local.get $2 - i32.const 2 - i32.shl + local.get $1 + i32.const 4 i32.add - i32.load offset=4 - i32.const -1 local.get $1 - i32.shl + i32.load + i32.const -4 i32.and - local.tee $1 - if (result i32) + 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 - i32.ctz + 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.shl i32.add - i32.const 2 - i32.shl + local.get $1 + i32.load + i32.const -4 + i32.and i32.add - i32.load offset=96 - else - local.get $0 + local.tee $4 i32.load - i32.const -1 - local.get $2 + 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.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 1472 - 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.eqz + if i32.const 0 + i32.const 1472 + 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 - ) - (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 + 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 1136 - i32.const 1200 - i32.const 261 - i32.const 31 + i32.const 0 + i32.const 1472 + i32.const 233 + 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$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 - 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 $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 - 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 + local.get $4 + local.get $1 + i32.const 4 i32.add - local.tee $2 - i32.const 1073741820 - i32.gt_u + local.get $2 + i32.add + i32.ne if - i32.const 1136 + i32.const 0 i32.const 1472 - i32.const 461 - i32.const 29 + 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 12 - i32.le_u + i32.const 256 + i32.lt_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 + i32.shr_u + else + i32.const 31 + i32.const 1073741820 local.get $2 - i32.const 16 - i32.shl - i32.const 4 + local.get $2 + i32.const 1073741820 + i32.ge_u + select + local.tee $2 + i32.clz 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 + i32.const 7 + i32.sub + local.set $5 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 4 + i32.sub + i32.shr_u 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 1472 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end + i32.xor end + local.tee $2 + i32.const 16 + i32.lt_u local.get $5 - local.get $2 - i32.load - i32.const -4 + i32.const 23 + i32.lt_u i32.and - i32.gt_u + i32.eqz if i32.const 0 i32.const 1472 - i32.const 501 + i32.const 251 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 $0 local.get $5 i32.const 4 + i32.shl + local.get $2 i32.add - i32.const 15 - i32.and + 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 - i32.const 0 - i32.const 1472 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable + local.get $3 + local.get $1 + i32.store offset=4 end - local.get $6 - i32.const -4 - i32.and + local.get $0 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.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/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 1200 + 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$246 + local.get $0 + i32.load offset=4 + i32.const -4 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.tee $1 + i32.eqz + if + local.get $0 + i32.load offset=8 + i32.eqz + local.get $0 + i32.const 35516 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1200 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$246 + end + local.get $0 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1200 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 local.get $2 - local.get $6 - i32.const -2 - i32.and - i32.store + i32.store offset=8 local.get $2 - i32.const 4 - i32.add + local.get $1 local.get $2 - i32.load - i32.const -4 + 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 2720 + i32.load + i32.gt_u + if + i32.const 1328 + i32.const 1392 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 2724 i32.add - local.tee $3 - local.get $3 i32.load - i32.const -3 + i32.const 32 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 + i32.load offset=8 + local.set $1 + local.get $0 global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $2 - local.get $3 - i32.store offset=8 + i32.eqz + i32.const 2 local.get $3 + select 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) (param $2 i32) - (local $3 i32) + i32.store offset=8 local.get $1 - i32.eqz - if - return - end local.get $0 - i32.eqz - if - i32.const 0 - i32.const 1200 - i32.const 295 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/itcms/white - local.tee $3 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 $3 - i32.eqz - local.get $0 - i32.const 20 - i32.sub - local.tee $0 - i32.load offset=4 - i32.const 3 - i32.and - local.tee $3 - i32.eq - if - local.get $0 - local.get $1 - local.get $2 - select - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - local.get $3 - i32.const 3 - i32.eq - i32.and - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - end - end - end - ) - (func $~lib/rt/__visit_members (param $0 i32) + i32.or + i32.store offset=4 + local.get $2 + local.get $0 + i32.store offset=8 + ) + (func $~lib/rt/__visit_members (param $0 i32) (local $1 i32) (local $2 i32) block $folding-inner1 block $folding-inner0 block $invalid - block $~lib/map/Map - block $~lib/map/Map<~lib/string/String,usize> + block $"~lib/map/Map" + block $"~lib/map/Map<~lib/string/String,usize>" block $~lib/arraybuffer/ArrayBufferView block $~lib/string/String block $~lib/arraybuffer/ArrayBuffer @@ -1710,7 +1668,7 @@ i32.const 8 i32.sub i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/map/Map<~lib/string/String,usize> $~lib/map/Map $invalid + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $"~lib/map/Map<~lib/string/String,usize>" $"~lib/map/Map" $invalid end return end @@ -1720,11 +1678,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end global.get $~lib/memory/__stack_pointer @@ -1736,10 +1690,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -1795,10 +1748,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -1861,23 +1813,8 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~start - global.get $~started - if - return - end - i32.const 1 - global.set $~started - call $start:std/symbol - ) - (func $~lib/util/hash/HASH<~lib/string/String> (param $0 i32) (result i32) - (local $1 i32) + (func $"~lib/map/Map<~lib/string/String,usize>#find" (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1894,213 +1831,73 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - block $~lib/util/hash/hashStr|inlined.0 (result i32) - local.get $1 - local.get $0 - i32.store - i32.const 0 - local.get $0 - i32.eqz - br_if $~lib/util/hash/hashStr|inlined.0 - drop - local.get $1 - local.get $0 - local.tee $1 - i32.store offset=4 + 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 + local.get $1 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 + loop $while-continue|0 local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $3 - i32.const 16 - i32.ge_u - if (result i32) - i32.const 606290984 - local.set $2 - i32.const -2048144777 - local.set $4 - i32.const 1640531535 - local.set $5 + if local.get $1 - local.get $3 - i32.add - i32.const 16 - i32.sub - local.set $7 - loop $while-continue|0 - local.get $1 - local.get $7 - i32.le_u - if - local.get $2 - local.get $1 - i32.load - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul - local.set $2 - local.get $4 - local.get $1 - i32.load offset=4 - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul - local.set $4 - local.get $6 - local.get $1 - i32.load offset=8 - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul - local.set $6 - local.get $5 - local.get $1 - i32.load offset=12 - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul - local.set $5 - local.get $1 - i32.const 16 - i32.add - local.set $1 - br $while-continue|0 - end - end - local.get $3 - local.get $2 + i32.load offset=8 + local.tee $0 i32.const 1 - i32.rotl - local.get $4 - i32.const 7 - i32.rotl - i32.add - local.get $6 - i32.const 12 - i32.rotl - i32.add - local.get $5 - i32.const 18 - i32.rotl - i32.add - i32.add - else - local.get $3 - i32.const 374761393 - i32.add - end - local.set $2 - local.get $0 - local.get $3 - i32.add - i32.const 4 - i32.sub - local.set $4 - loop $while-continue|1 - local.get $1 - local.get $4 - i32.le_u - if - local.get $2 + i32.and + if (result i32) + i32.const 0 + else + global.get $~lib/memory/__stack_pointer local.get $1 i32.load - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.set $2 - local.get $1 - i32.const 4 - i32.add - local.set $1 - br $while-continue|1 + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=4 + local.get $2 + i32.const 1056 + call $~lib/string/String.__eq end - end - local.get $0 - local.get $3 - i32.add - local.set $0 - loop $while-continue|2 - local.get $0 - local.get $1 - i32.gt_u if - local.get $2 - local.get $1 - i32.load8_u - i32.const 374761393 - i32.mul + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - i32.const 11 - i32.rotl - i32.const -1640531535 - i32.mul - local.set $2 + global.set $~lib/memory/__stack_pointer local.get $1 - i32.const 1 - i32.add - local.set $1 - br $while-continue|2 + return end + local.get $0 + i32.const -2 + i32.and + local.set $1 + br $while-continue|0 end - local.get $2 - local.get $2 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 ) - (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $"~lib/map/Map#find" (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 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -2115,183 +1912,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $0 - local.get $1 - i32.eq - if - local.get $2 - 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.tee $4 - local.tee $2 - 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 - local.get $2 - 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 - local.get $4 - local.get $0 - i32.store - local.get $0 - local.set $2 - local.get $4 - 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 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - else - i32.const 1 - end - i32.eqz - if - loop $do-loop|0 - local.get $2 - i64.load - local.get $1 - i64.load - i64.eq - if - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end - end - end - block $__inlined_func$~lib/util/string/compareImpl$88 - loop $while-continue|1 - local.get $0 - local.tee $3 - i32.const 1 - i32.sub - local.set $0 - local.get $3 - if - local.get $2 - i32.load16_u - local.tee $5 - local.get $1 - i32.load16_u - local.tee $4 - i32.sub - local.set $3 - local.get $4 - local.get $5 - i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$88 - local.get $2 - i32.const 2 - i32.add - local.set $2 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 - end - end - i32.const 0 - local.set $3 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - i32.eqz - return - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer i32.const 0 - ) - (func $~lib/map/Map<~lib/string/String,usize>#find (param $0 i32) (param $1 i32) (result 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 2748 - i32.lt_s - if - i32.const 35536 - i32.const 35584 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 local.get $0 i32.store local.get $0 i32.load - local.set $3 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 - local.get $1 + local.get $2 local.get $0 i32.load offset=4 i32.and @@ -2299,155 +1930,110 @@ i32.shl i32.add i32.load - local.set $1 + local.set $0 loop $while-continue|0 - local.get $1 + local.get $0 if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $0 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 + local.get $0 i32.load - local.tee $3 - i32.store - local.get $2 - i32.const 1056 - i32.store offset=4 - local.get $3 - i32.const 1056 - call $~lib/string/String.__eq + i32.eq end if global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 return end - local.get $0 + local.get $2 i32.const -2 i32.and - local.set $1 + local.set $0 br $while-continue|0 end end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 ) - (func $~lib/map/Map<~lib/string/String,usize>#set (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) + (func $~lib/symbol/_Symbol.for (result i32) + (local $0 i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + 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 - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i32.const 0 - i32.store offset=8 - local.get $2 - i32.const 1056 - i32.store - i32.const 1056 - call $~lib/util/hash/HASH<~lib/string/String> - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 - local.get $0 - local.get $8 - call $~lib/map/Map<~lib/string/String,usize>#find - local.tee $2 - if - local.get $2 - local.get $1 - i32.store offset=4 - else + block $folding-inner1 + 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 + global.get $~lib/symbol/stringToId + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + 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 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 + i32.const 0 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - local.set $3 - local.get $2 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=8 local.get $0 - i32.load offset=12 - i32.eq + i32.const 1056 + call $~lib/util/hash/HASH<~lib/string/String> + call $"~lib/map/Map<~lib/string/String,usize>#find" + i32.const 0 + i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer if - local.get $2 - local.get $0 + global.get $~lib/memory/__stack_pointer + global.get $~lib/symbol/stringToId + local.tee $0 i32.store - local.get $2 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - local.set $3 - local.get $2 - local.get $0 + global.get $~lib/memory/__stack_pointer + i32.const 1056 i32.store offset=4 - local.get $3 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - local.get $2 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - 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 - i32.const 1 - i32.or - end - local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -2455,262 +2041,75 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.const 20 - memory.fill - local.get $2 - local.get $4 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $9 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $6 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $10 + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 i32.store offset=8 - local.get $10 - local.get $0 - i32.load offset=16 - i32.const 12 - i32.mul - i32.add - local.set $5 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $5 - local.get $10 - i32.ne - if - local.get $10 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.tee $7 - local.get $10 - i32.load - local.tee $11 - i32.store offset=12 - local.get $7 - local.get $11 - i32.store offset=8 - local.get $2 - local.get $11 - i32.store - local.get $2 - local.get $10 - i32.load offset=4 - i32.store offset=4 - local.get $7 - local.get $11 - i32.store offset=8 - local.get $2 - local.get $9 - local.get $11 - call $~lib/util/hash/HASH<~lib/string/String> - local.get $4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $7 - i32.load - i32.store offset=8 - local.get $7 - local.get $2 - i32.store - local.get $2 - i32.const 12 - i32.add - local.set $2 - end - local.get $10 - i32.const 12 - i32.add - local.set $10 - br $while-continue|0 - end - end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store offset=8 - local.get $2 - local.get $9 - i32.store offset=16 local.get $0 - local.get $9 i32.store - local.get $0 - local.get $9 - i32.const 0 - call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $4 + i32.const 1056 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=16 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $3 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 1056 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=16 local.get $0 + i32.const 1056 + call $~lib/util/hash/HASH<~lib/string/String> + call $"~lib/map/Map<~lib/string/String,usize>#find" + local.tee $0 + i32.eqz + if + i32.const 1648 + i32.const 1712 + i32.const 105 + i32.const 17 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.load offset=20 - i32.store offset=16 + i32.load offset=4 + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + br $folding-inner1 end - global.get $~lib/memory/__stack_pointer - local.tee $2 + global.get $~lib/symbol/nextId + local.tee $0 + i32.const 1 + i32.add + global.set $~lib/symbol/nextId local.get $0 - i32.store - local.get $2 - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store offset=8 - local.get $2 - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $4 - i32.const 1 - i32.add - i32.store offset=16 - local.get $2 - i32.const 1056 - i32.store - local.get $3 - local.get $4 - i32.const 12 - i32.mul - i32.add - local.tee $2 - i32.const 1056 - i32.store - local.get $0 - i32.const 1056 - i32.const 1 - call $~lib/rt/itcms/__link - local.get $2 - local.get $1 - i32.store offset=4 + i32.eqz + if + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $~lib/symbol/stringToId + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 1056 i32.store offset=4 + local.get $1 local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 + call $"~lib/map/Map<~lib/string/String,usize>#set" global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $~lib/symbol/idToString + local.tee $1 i32.store - local.get $0 - i32.load - local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $2 + i32.const 1056 + i32.store offset=4 local.get $1 - local.get $8 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=8 local.get $0 - local.get $2 - i32.store + call $"~lib/map/Map#set" + br $folding-inner1 end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 35536 - i32.const 35584 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/map/Map#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2748 - i32.lt_s - if i32.const 35536 i32.const 35584 i32.const 1 @@ -2719,78 +2118,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store - local.get $0 - i32.load - local.set $4 - local.get $3 - local.get $0 - i32.store - local.get $4 - local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - loop $while-continue|0 - local.get $0 - if - local.get $0 - i32.load offset=8 - local.tee $2 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $1 - local.get $0 - i32.load - i32.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 + local.get $0 ) - (func $~lib/map/Map#set (param $0 i32) (param $1 i32) + (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -2799,115 +2137,997 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 - i32.const 0 - i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $0 - local.get $1 + global.get $~lib/memory/__stack_pointer 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 $8 - call $~lib/map/Map#find + i32.store offset=4 + global.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 - if + 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 1888 + local.set $0 + br $__inlined_func$~lib/string/String#concat$253 + end global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - local.get $2 - i32.const 1056 + local.get $0 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 i32.store offset=4 local.get $0 - i32.const 1056 - i32.const 1 - call $~lib/rt/itcms/__link - else - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - local.set $3 local.get $2 + local.get $3 + memory.copy local.get $0 - i32.store 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/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 1472 + 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 - i32.load offset=12 - i32.eq + 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 - local.get $2 - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - local.set $3 - local.get $2 - local.get $0 - i32.store offset=4 - local.get $3 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - local.get $2 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + i32.const 0 + i32.const 1472 + 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/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 35520 + i32.const 0 + i32.store + i32.const 37088 + 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 35520 + 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.load offset=4 - i32.const 1 + i32.const 4 i32.shl + local.get $1 + i32.add + i32.const 2 + i32.shl + i32.const 35520 + i32.add + i32.const 0 + i32.store offset=96 + local.get $1 i32.const 1 - i32.or + i32.add + local.set $1 + br $for-loop|1 end - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 16 + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 35520 + i32.const 37092 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 35520 + global.set $~lib/rt/tlsf/ROOT + ) + (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 1472 + 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 1472 + 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 1472 + 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/itcms/visitRoots + (local $0 i32) + (local $1 i32) + global.get $~lib/symbol/stringToId + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $~lib/symbol/idToString + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/symbol/key1 + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/symbol/key2 + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/symbol/key3 + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/symbol/key4 + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 1328 + call $~lib/rt/itcms/__visit + i32.const 1536 + call $~lib/rt/itcms/__visit + i32.const 1648 + call $~lib/rt/itcms/__visit + i32.const 1136 + 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 1200 + 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/map/Map#has" (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 2748 + i32.lt_s + if + 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.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + 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 $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + call $"~lib/map/Map#find" + i32.const 0 + i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#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 2748 + i32.lt_s + if + 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.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + 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 $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + call $"~lib/map/Map#find" + local.tee $0 + i32.eqz + if + i32.const 1648 + i32.const 1712 + i32.const 105 + i32.const 17 + call $~lib/builtins/abort + unreachable + end + 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 $~start + global.get $~started + if + return + end + i32.const 1 + global.set $~started + call $start:std/symbol + ) + (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 35516 + 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 1200 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 35516 + 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 35516 + 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 1472 + 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/map/Map<~lib/string/String,usize>#set" (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 12 + 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 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 1056 + call $~lib/util/hash/HASH<~lib/string/String> + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=4 + local.get $0 + local.get $6 + call $"~lib/map/Map<~lib/string/String,usize>#find" + local.tee $2 + if + local.get $2 + local.get $1 + i32.store offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + 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 + i32.load offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + 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 + i32.const 1 + i32.or + end + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -2915,21 +3135,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i64.const 0 - i64.store offset=8 - local.get $2 - local.get $4 + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $7 i32.const 1 i32.add local.tee $2 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $9 + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer local.get $2 @@ -2937,7 +3154,7 @@ i32.shl i32.const 3 i32.div_s - local.tee $7 + local.tee $5 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -2948,82 +3165,61 @@ i32.store offset=8 local.get $0 i32.load offset=8 - local.set $10 + local.set $9 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - local.get $10 + local.get $9 local.get $0 i32.load offset=16 i32.const 12 i32.mul i32.add - local.set $6 + local.set $4 local.get $3 local.set $2 loop $while-continue|0 - local.get $6 - local.get $10 + local.get $4 + local.get $9 i32.ne if - local.get $10 + local.get $9 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $2 - local.get $10 + global.get $~lib/memory/__stack_pointer + local.get $9 i32.load - local.tee $11 - i32.store + local.tee $10 + i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $10 - i32.load offset=4 - local.tee $5 i32.store offset=8 local.get $2 - local.get $5 - i32.store offset=4 + local.get $10 + i32.store local.get $2 local.get $9 - local.get $4 - local.get $11 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $5 - i32.const 15 - i32.shr_u - local.get $5 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $5 - i32.const 13 - i32.shr_u - local.get $5 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $5 - i32.const 16 - i32.shr_u - local.get $5 - i32.xor + i32.load offset=4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store offset=8 + local.get $2 + local.get $8 + local.get $10 + call $~lib/util/hash/HASH<~lib/string/String> + local.get $7 i32.and i32.const 2 i32.shl i32.add - local.tee $5 + local.tee $10 i32.load i32.store offset=8 - local.get $5 + local.get $10 local.get $2 i32.store local.get $2 @@ -3031,44 +3227,24 @@ i32.add local.set $2 end - local.get $10 + local.get $9 i32.const 12 i32.add - local.set $10 + local.set $9 br $while-continue|0 end end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store offset=8 - local.get $2 - local.get $9 - i32.store offset=12 - local.get $0 - local.get $9 - i32.store - local.get $0 - local.get $9 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 + local.get $8 + i32.store offset=16 local.get $0 - local.get $3 - i32.store offset=8 + local.get $8 + i32.store local.get $0 - local.get $3 + local.get $8 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer @@ -3076,465 +3252,143 @@ i32.store offset=8 local.get $0 local.get $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store offset=8 - local.get $2 - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $4 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 - local.get $4 - i32.const 12 - i32.mul - i32.add - local.tee $3 - local.get $1 - i32.store - local.get $2 - i32.const 1056 - i32.store - local.get $3 - i32.const 1056 - i32.store offset=4 - local.get $0 - i32.const 1056 - i32.const 1 - call $~lib/rt/itcms/__link - 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=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $1 - local.get $8 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=8 - local.get $0 - local.get $3 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 35536 - i32.const 35584 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/symbol/_Symbol.for (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-inner1 - 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 - local.tee $0 - i64.const 0 - i64.store - local.get $0 - global.get $~lib/symbol/stringToId - local.tee $1 - i32.store - local.get $0 - i32.const 1056 - i32.store offset=4 - local.get $0 - i32.const 12 - 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 - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store - local.get $0 - i32.const 1056 - i32.store offset=4 - local.get $0 - i32.const 1056 - i32.store offset=8 - local.get $1 - i32.const 1056 - call $~lib/util/hash/HASH<~lib/string/String> - call $~lib/map/Map<~lib/string/String,usize>#find - i32.const 0 - i32.ne - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - if - global.get $~lib/memory/__stack_pointer - global.get $~lib/symbol/stringToId - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 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 2748 - i32.lt_s - br_if $folding-inner0 + local.get $0 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - i32.const 0 + local.get $3 + i32.store offset=16 + local.get $0 + local.get $3 i32.store offset=8 - local.get $1 local.get $0 - i32.store - local.get $1 - i32.const 1056 - i32.store offset=4 - local.get $1 - i32.const 1056 + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=8 local.get $0 - i32.const 1056 - call $~lib/util/hash/HASH<~lib/string/String> - call $~lib/map/Map<~lib/string/String,usize>#find - local.tee $0 - i32.eqz - if - i32.const 1648 - i32.const 1712 - i32.const 105 - i32.const 17 - call $~lib/builtins/abort - unreachable - end + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=4 - local.set $0 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - br $folding-inner1 - end - global.get $~lib/symbol/nextId - local.tee $0 - i32.const 1 - i32.add - global.set $~lib/symbol/nextId - local.get $0 - i32.eqz - if - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $~lib/symbol/stringToId - local.tee $2 - i32.store - local.get $1 - i32.const 1056 - i32.store offset=4 - local.get $2 - local.get $0 - call $~lib/map/Map<~lib/string/String,usize>#set - global.get $~lib/memory/__stack_pointer - global.get $~lib/symbol/idToString - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/map/Map#set - br $folding-inner1 - end - 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 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/map/Map#has (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2748 - i32.lt_s - if - i32.const 35536 - i32.const 35584 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $0 - local.get $1 - 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 $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor - call $~lib/map/Map#find - i32.const 0 - i32.ne - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2748 - i32.lt_s - if - i32.const 35536 - i32.const 35584 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $0 - local.get $1 - 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 $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor - call $~lib/map/Map#find - local.tee $0 - i32.eqz - if - i32.const 1648 - i32.const 1712 - i32.const 105 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/symbol/_Symbol.keyFor (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2748 - i32.lt_s - if - i32.const 35536 - i32.const 35584 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - global.get $~lib/symbol/idToString - local.tee $1 - i32.store - local.get $1 - local.get $0 - call $~lib/map/Map#has - if (result i32) + local.get $0 + i32.store offset=16 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $2 + 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=16 + local.tee $3 + i32.const 1 + i32.add + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + local.get $2 + local.get $3 + i32.const 12 + i32.mul + i32.add + local.tee $2 + i32.const 1056 + i32.store + local.get $0 + i32.const 1056 + i32.const 1 + call $~lib/rt/itcms/__link + local.get $2 + local.get $1 + i32.store offset=4 + 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=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 + local.get $1 + local.get $6 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=8 + local.get $0 + local.get $2 + i32.store + end global.get $~lib/memory/__stack_pointer - global.get $~lib/symbol/idToString - local.tee $1 - i32.store - local.get $1 - local.get $0 - call $~lib/map/Map#get - else - i32.const 0 + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return end - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 35536 + i32.const 35584 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -3543,272 +3397,379 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - block $__inlined_func$~lib/string/String#concat$253 (result i32) - local.get $2 - local.get $0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + 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 $7 + call $"~lib/map/Map#find" + local.tee $2 + if + global.get $~lib/memory/__stack_pointer + i32.const 1056 i32.store local.get $2 - local.get $1 + i32.const 1056 i32.store offset=4 - local.get $2 - 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 + local.get $0 + i32.const 1056 + i32.const 1 + call $~lib/rt/itcms/__link + else global.get $~lib/memory/__stack_pointer - local.tee $5 - i64.const 0 - i64.store - local.get $5 local.get $0 i32.store local.get $0 - i32.const 20 - i32.sub i32.load offset=16 - i32.const -2 - i32.and - local.set $2 - local.get $5 - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $3 - local.get $2 - i32.add - local.tee $4 - i32.eqz + local.get $0 + i32.load offset=12 + i32.eq if - local.get $5 - i32.const 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 + i32.load offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + 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 + i32.const 1 + i32.or + end + local.set $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 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 + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $9 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $6 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $10 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $10 + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1888 - br $__inlined_func$~lib/string/String#concat$253 - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store offset=4 - local.get $4 - local.get $0 - local.get $2 - memory.copy - local.get $2 - local.get $4 - i32.add - local.get $1 - local.get $3 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - end - local.set $0 - 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) - 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 2748 - i32.lt_s - if - i32.const 35536 - i32.const 35584 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.const 20 - memory.fill - i32.const 1888 - local.set $1 - local.get $2 - i32.const 1888 - i32.store - block $break|0 - block $case11|0 - block $case10|0 - block $case9|0 - block $case8|0 - block $case7|0 - block $case6|0 - block $case5|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $0 - i32.const 1 - 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 1920 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 1920 - i32.store - br $break|0 - end - i32.const 1968 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 1968 - i32.store - br $break|0 - end - i32.const 2032 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 2032 - i32.store - br $break|0 - end - i32.const 2080 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 2080 - i32.store - br $break|0 - end - i32.const 2112 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 2112 - i32.store - br $break|0 - end - i32.const 2160 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 2160 - i32.store - br $break|0 - end - i32.const 2192 - local.set $1 + local.set $5 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $5 + local.get $10 + i32.ne + if + local.get $10 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $2 + local.get $10 + i32.load + local.tee $11 + i32.store global.get $~lib/memory/__stack_pointer - i32.const 2192 + local.get $10 + i32.load offset=4 + local.tee $4 + i32.store offset=8 + local.get $2 + local.get $4 + i32.store offset=4 + local.get $2 + local.get $9 + local.get $8 + local.get $11 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $4 + i32.const 15 + i32.shr_u + local.get $4 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $4 + i32.const 13 + i32.shr_u + local.get $4 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $4 + i32.const 16 + i32.shr_u + local.get $4 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $4 + i32.load + i32.store offset=8 + local.get $4 + local.get $2 i32.store - br $break|0 + local.get $2 + i32.const 12 + i32.add + local.set $2 end - i32.const 2240 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 2240 - i32.store - br $break|0 + local.get $10 + i32.const 12 + i32.add + local.set $10 + br $while-continue|0 end - i32.const 2272 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 2272 - i32.store - br $break|0 end - i32.const 2320 - local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 2320 - i32.store - br $break|0 + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=12 + local.get $0 + local.get $9 + i32.store + local.get $0 + local.get $9 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $6 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer end - i32.const 2368 - local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 2368 + local.get $0 i32.store - br $break|0 - end - global.get $~lib/symbol/idToString - local.tee $2 - if (result i32) global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 + i32.load offset=8 + local.tee $2 + 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=16 + local.tee $3 + i32.const 1 + i32.add + i32.store offset=16 + local.get $2 + local.get $3 + i32.const 12 + i32.mul + i32.add + local.tee $2 + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store local.get $2 + i32.const 1056 + i32.store offset=4 local.get $0 - call $~lib/map/Map#has - else - i32.const 0 - end - if + i32.const 1056 + i32.const 1 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $~lib/symbol/idToString - local.tee $2 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $2 + local.get $1 + local.get $7 local.get $0 - call $~lib/map/Map#get - local.tee $1 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=8 + local.get $0 + local.get $2 i32.store end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 2416 - i32.store offset=12 - local.get $0 - local.get $1 - i32.store offset=16 - i32.const 2416 - local.get $1 - call $~lib/string/String.__concat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 2464 - i32.store offset=8 - local.get $0 - i32.const 2464 - call $~lib/string/String.__concat - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 35536 + i32.const 35584 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) (func $start:std/symbol (local $0 i32) @@ -3823,15 +3784,11 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $0 - i32.const 1056 - i32.store global.get $~lib/symbol/nextId local.tee $0 i32.const 1 @@ -3844,9 +3801,6 @@ end local.get $0 global.set $std/symbol/sym1 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store global.get $~lib/symbol/nextId local.tee $0 i32.const 1 @@ -3911,13 +3865,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 24 i32.const 4 call $~lib/rt/itcms/__new @@ -3994,13 +3947,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 24 i32.const 5 call $~lib/rt/itcms/__new @@ -4068,14 +4020,8 @@ global.set $~lib/memory/__stack_pointer local.get $0 global.set $~lib/symbol/idToString - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store call $~lib/symbol/_Symbol.for global.set $std/symbol/sym3 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store call $~lib/symbol/_Symbol.for global.set $std/symbol/sym4 global.get $std/symbol/sym3 @@ -4162,15 +4108,11 @@ local.get $0 global.set $std/symbol/key4 global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/symbol/key3 - local.tee $1 + local.tee $0 i32.store local.get $0 i32.const 1056 - i32.store offset=12 - local.get $1 - i32.const 1056 call $~lib/string/String.__eq i32.eqz if @@ -4182,16 +4124,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/symbol/key3 - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer global.get $std/symbol/key4 - local.tee $0 + local.tee $1 i32.store offset=12 - local.get $1 local.get $0 + local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -4216,12 +4157,8 @@ call $~lib/symbol/_Symbol#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 2496 - i32.store offset=12 local.get $0 i32.const 2496 call $~lib/string/String.__eq @@ -4238,12 +4175,8 @@ call $~lib/symbol/_Symbol#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 2544 - i32.store offset=12 local.get $0 i32.const 2544 call $~lib/string/String.__eq @@ -4262,12 +4195,8 @@ call $~lib/symbol/_Symbol#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 2592 - i32.store offset=12 local.get $0 i32.const 2592 call $~lib/string/String.__eq @@ -4284,12 +4213,8 @@ call $~lib/symbol/_Symbol#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 - i32.const 2656 - i32.store offset=12 local.get $0 i32.const 2656 call $~lib/string/String.__eq @@ -4315,46 +4240,4 @@ call $~lib/builtins/abort unreachable ) - (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 2748 - i32.lt_s - if - 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.store - local.get $0 - i32.const 1073741820 - i32.gt_u - if - i32.const 1536 - i32.const 1584 - i32.const 52 - i32.const 43 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) ) diff --git a/tests/compiler/std/trace.debug.wat b/tests/compiler/std/trace.debug.wat index ae9613a4d7..61282af2bd 100644 --- a/tests/compiler/std/trace.debug.wat +++ b/tests/compiler/std/trace.debug.wat @@ -1,9 +1,7 @@ (module (type $0 (func)) (type $1 (func (param i32 i32 f64 f64 f64 f64 f64))) - (type $2 (func (param i32 i32 i32 i32))) (import "env" "trace" (func $~lib/builtins/trace (param i32 i32 f64 f64 f64 f64 f64))) - (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/memory/__data_end i32 (i32.const 396)) (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33164)) (global $~lib/memory/__heap_base i32 (i32.const 33164)) @@ -21,44 +19,8 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (export "_start" (func $~start)) - (func $~start - global.get $~started - if - return - end - i32.const 1 - global.set $~started - call $start:std/trace - ) - (func $~stack_check - global.get $~lib/memory/__stack_pointer - 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 - ) (func $start:std/trace - (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 32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 i32.const 0 f64.const 0 f64.const 0 @@ -67,11 +29,6 @@ f64.const 0 call $~lib/builtins/trace i32.const 80 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 i32.const 0 f64.const 0 f64.const 0 @@ -80,11 +37,6 @@ f64.const 0 call $~lib/builtins/trace i32.const 128 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 i32.const 1 f64.const 1 f64.const 0 @@ -93,11 +45,6 @@ f64.const 0 call $~lib/builtins/trace i32.const 176 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 i32.const 2 f64.const 1 f64.const 2 @@ -106,11 +53,6 @@ f64.const 0 call $~lib/builtins/trace i32.const 224 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 i32.const 3 f64.const 1 f64.const 2 @@ -119,11 +61,6 @@ f64.const 0 call $~lib/builtins/trace i32.const 272 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 i32.const 4 f64.const 1 f64.const 2 @@ -132,11 +69,6 @@ f64.const 0 call $~lib/builtins/trace i32.const 320 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 i32.const 5 f64.const 1 f64.const 2 @@ -145,11 +77,6 @@ f64.const 5 call $~lib/builtins/trace i32.const 368 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 i32.const 5 f64.const 1.1 f64.const 2.2 @@ -157,9 +84,14 @@ f64.const 4.4 f64.const 5.5 call $~lib/builtins/trace - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + ) + (func $~start + global.get $~started + if + return + end + i32.const 1 + global.set $~started + call $start:std/trace ) ) diff --git a/tests/compiler/std/trace.release.wat b/tests/compiler/std/trace.release.wat index 7b01bf9122..bf6eec49ce 100644 --- a/tests/compiler/std/trace.release.wat +++ b/tests/compiler/std/trace.release.wat @@ -1,10 +1,7 @@ (module (type $0 (func (param i32 i32 f64 f64 f64 f64 f64))) (type $1 (func)) - (type $2 (func (param i32 i32 i32 i32))) (import "env" "trace" (func $~lib/builtins/trace (param i32 i32 f64 f64 f64 f64 f64))) - (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34188)) (global $~started (mut i32) (i32.const 0)) (memory $0 1) (data $0 (i32.const 1036) ",") @@ -26,35 +23,12 @@ (export "memory" (memory $0)) (export "_start" (func $~start)) (func $~start - (local $0 i32) global.get $~started if return end i32.const 1 global.set $~started - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1420 - i32.lt_s - if - i32.const 34208 - i32.const 34256 - 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 - local.get $0 - i32.const 1056 - i32.store i32.const 1056 i32.const 0 f64.const 0 @@ -63,9 +37,6 @@ f64.const 0 f64.const 0 call $~lib/builtins/trace - global.get $~lib/memory/__stack_pointer - i32.const 1104 - i32.store i32.const 1104 i32.const 0 f64.const 0 @@ -74,9 +45,6 @@ f64.const 0 f64.const 0 call $~lib/builtins/trace - global.get $~lib/memory/__stack_pointer - i32.const 1152 - i32.store i32.const 1152 i32.const 1 f64.const 1 @@ -85,9 +53,6 @@ f64.const 0 f64.const 0 call $~lib/builtins/trace - global.get $~lib/memory/__stack_pointer - i32.const 1200 - i32.store i32.const 1200 i32.const 2 f64.const 1 @@ -96,9 +61,6 @@ f64.const 0 f64.const 0 call $~lib/builtins/trace - global.get $~lib/memory/__stack_pointer - i32.const 1248 - i32.store i32.const 1248 i32.const 3 f64.const 1 @@ -107,9 +69,6 @@ f64.const 0 f64.const 0 call $~lib/builtins/trace - global.get $~lib/memory/__stack_pointer - i32.const 1296 - i32.store i32.const 1296 i32.const 4 f64.const 1 @@ -118,9 +77,6 @@ f64.const 4 f64.const 0 call $~lib/builtins/trace - global.get $~lib/memory/__stack_pointer - i32.const 1344 - i32.store i32.const 1344 i32.const 5 f64.const 1 @@ -129,9 +85,6 @@ f64.const 4 f64.const 5 call $~lib/builtins/trace - global.get $~lib/memory/__stack_pointer - i32.const 1392 - i32.store i32.const 1392 i32.const 5 f64.const 1.1 @@ -140,9 +93,5 @@ f64.const 4.4 f64.const 5.5 call $~lib/builtins/trace - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer ) ) diff --git a/tests/compiler/std/typedarray.debug.wat b/tests/compiler/std/typedarray.debug.wat index cb0ef031ee..c2e2f9861b 100644 --- a/tests/compiler/std/typedarray.debug.wat +++ b/tests/compiler/std/typedarray.debug.wat @@ -18,40 +18,42 @@ (type $16 (func (param i64 i64 i32 i32) (result i64))) (type $17 (func (param i32 i32) (result i64))) (type $18 (func (param i32 i64 i32) (result i32))) - (type $19 (func (param f32 f32 i32 i32) (result f32))) - (type $20 (func (param f64 f64 i32 i32) (result f64))) - (type $21 (func (param i64 i32 i32) (result i64))) - (type $22 (func (param i32 i32) (result f64))) - (type $23 (func (param i32 i32 i64) (result i64))) - (type $24 (func (param i32 i32) (result f32))) - (type $25 (func (param i64 i32 i32))) - (type $26 (func (param i32 f32 i32) (result i32))) - (type $27 (func (param i32 f64 i32) (result i32))) + (type $19 (func (param i32 f64 i32) (result i32))) + (type $20 (func (param f32 f32 i32 i32) (result f32))) + (type $21 (func (param f64 f64 i32 i32) (result f64))) + (type $22 (func (param i64 i32 i32) (result i64))) + (type $23 (func (param i32 i32) (result f64))) + (type $24 (func (param i32 i32 i64) (result i64))) + (type $25 (func (param i32 i32) (result f32))) + (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 i32 i32 i32 i32) (result i32))) (type $30 (func (param f32 i32 i32) (result f32))) (type $31 (func (param f64 i32 i32) (result f64))) (type $32 (func (param i32 i64 i32))) (type $33 (func (param i32 i64) (result i32))) - (type $34 (func (param i32 f64) (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 i32 i32))) - (type $41 (func (param i32 i32 i64) (result i32))) - (type $42 (func (result i32))) - (type $43 (func (param f32 f32) (result f32))) - (type $44 (func (param f64 f64) (result f64))) - (type $45 (func (param i64) (result i64))) - (type $46 (func (param i32 i64 i32 i32))) - (type $47 (func (param i64) (result i32))) - (type $48 (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) - (type $49 (func (param i32 i32 f64 f64 f64 f64 f64))) - (type $50 (func (param i32 i32 f64))) - (type $51 (func (param i32 i32 f32))) - (type $52 (func (param f64) (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 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 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 (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)) @@ -411,7 +413,7 @@ (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) + (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/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) @@ -1993,14 +1995,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 @@ -2894,161 +2899,6 @@ end end ) - (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) - (local $j i32) - (local $k i32) - (local $tmp f64) - local.get $i - local.get $right - i32.eq - if - local.get $i - return - end - local.get $i - local.set $j - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - f64.load - local.get $ptr - local.get $j - i32.const 1 - i32.add - local.tee $j - i32.const 3 - i32.shl - i32.add - f64.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $12) - i32.const 0 - i32.gt_s - if - loop $while-continue|0 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - f64.load offset=8 - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - f64.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $12) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 - end - end - local.get $j - local.set $k - loop $while-continue|1 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - f64.load - local.set $tmp - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 3 - i32.shl - i32.add - f64.load - f64.store - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 3 - i32.shl - i32.add - local.get $tmp - f64.store - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 - end - end - else - loop $while-continue|2 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - f64.load offset=8 - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - f64.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $12) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|2 - end - end - end - local.get $j - return - ) (func $~lib/util/sort/nodePower (param $left i32) (param $right i32) (param $startA i32) (param $startB i32) (param $endB i32) (result i32) (local $n i64) (local $s i32) @@ -3497,172 +3347,172 @@ local.get $this i32.load offset=4 ) - (func $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) + (func $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) local.get $acc local.get $val i32.add ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) + (func $"std/typedarray/testReduce<~lib/typedarray/Uint8Array,u8>~anonymous|0" (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) local.get $acc local.get $val i32.add ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) + (func $"std/typedarray/testReduce<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0" (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) local.get $acc local.get $val i32.add ) - (func $std/typedarray/testReduce<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) + (func $"std/typedarray/testReduce<~lib/typedarray/Int16Array,i16>~anonymous|0" (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) local.get $acc local.get $val i32.add ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) + (func $"std/typedarray/testReduce<~lib/typedarray/Uint16Array,u16>~anonymous|0" (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) local.get $acc local.get $val i32.add ) - (func $std/typedarray/testReduce<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) + (func $"std/typedarray/testReduce<~lib/typedarray/Int32Array,i32>~anonymous|0" (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) local.get $acc local.get $val i32.add ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) + (func $"std/typedarray/testReduce<~lib/typedarray/Uint32Array,u32>~anonymous|0" (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) local.get $acc local.get $val i32.add ) - (func $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $acc i64) (param $val i64) (param $$2 i32) (param $$3 i32) (result i64) + (func $"std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0" (param $acc i64) (param $val i64) (param $$2 i32) (param $$3 i32) (result i64) local.get $acc local.get $val i64.add ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $acc i64) (param $val i64) (param $$2 i32) (param $$3 i32) (result i64) + (func $"std/typedarray/testReduce<~lib/typedarray/Uint64Array,u64>~anonymous|0" (param $acc i64) (param $val i64) (param $$2 i32) (param $$3 i32) (result i64) local.get $acc local.get $val i64.add ) - (func $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $acc f32) (param $val f32) (param $$2 i32) (param $$3 i32) (result f32) + (func $"std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0" (param $acc f32) (param $val f32) (param $$2 i32) (param $$3 i32) (result f32) local.get $acc local.get $val f32.add ) - (func $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $acc f64) (param $val f64) (param $$2 i32) (param $$3 i32) (result f64) + (func $"std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0" (param $acc f64) (param $val f64) (param $$2 i32) (param $$3 i32) (result f64) local.get $acc local.get $val f64.add ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) + (func $"std/typedarray/testReduceRight<~lib/typedarray/Int8Array,i8>~anonymous|0" (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) local.get $acc local.get $val i32.add ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) + (func $"std/typedarray/testReduceRight<~lib/typedarray/Uint8Array,u8>~anonymous|0" (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) local.get $acc local.get $val i32.add ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) + (func $"std/typedarray/testReduceRight<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0" (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) local.get $acc local.get $val i32.add ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) + (func $"std/typedarray/testReduceRight<~lib/typedarray/Int16Array,i16>~anonymous|0" (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) local.get $acc local.get $val i32.add ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) + (func $"std/typedarray/testReduceRight<~lib/typedarray/Uint16Array,u16>~anonymous|0" (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) local.get $acc local.get $val i32.add ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) + (func $"std/typedarray/testReduceRight<~lib/typedarray/Int32Array,i32>~anonymous|0" (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) local.get $acc local.get $val i32.add ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) + (func $"std/typedarray/testReduceRight<~lib/typedarray/Uint32Array,u32>~anonymous|0" (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) local.get $acc local.get $val i32.add ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $acc i64) (param $val i64) (param $$2 i32) (param $$3 i32) (result i64) + (func $"std/typedarray/testReduceRight<~lib/typedarray/Int64Array,i64>~anonymous|0" (param $acc i64) (param $val i64) (param $$2 i32) (param $$3 i32) (result i64) local.get $acc local.get $val i64.add ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $acc i64) (param $val i64) (param $$2 i32) (param $$3 i32) (result i64) + (func $"std/typedarray/testReduceRight<~lib/typedarray/Uint64Array,u64>~anonymous|0" (param $acc i64) (param $val i64) (param $$2 i32) (param $$3 i32) (result i64) local.get $acc local.get $val i64.add ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $acc f32) (param $val f32) (param $$2 i32) (param $$3 i32) (result f32) + (func $"std/typedarray/testReduceRight<~lib/typedarray/Float32Array,f32>~anonymous|0" (param $acc f32) (param $val f32) (param $$2 i32) (param $$3 i32) (result f32) local.get $acc local.get $val f32.add ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $acc f64) (param $val f64) (param $$2 i32) (param $$3 i32) (result f64) + (func $"std/typedarray/testReduceRight<~lib/typedarray/Float64Array,f64>~anonymous|0" (param $acc f64) (param $val f64) (param $$2 i32) (param $$3 i32) (result f64) local.get $acc local.get $val f64.add ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value local.get $value i32.mul ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value local.get $value i32.mul ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value local.get $value i32.mul ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value local.get $value i32.mul ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value local.get $value i32.mul ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value local.get $value i32.mul ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value local.get $value i32.mul ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $value i64) (param $$1 i32) (param $$2 i32) (result i64) + (func $"std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0" (param $value i64) (param $$1 i32) (param $$2 i32) (result i64) local.get $value local.get $value i64.mul ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $value i64) (param $$1 i32) (param $$2 i32) (result i64) + (func $"std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64>~anonymous|0" (param $value i64) (param $$1 i32) (param $$2 i32) (result i64) local.get $value local.get $value i64.mul ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $value f32) (param $$1 i32) (param $$2 i32) (result f32) + (func $"std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>~anonymous|0" (param $value f32) (param $$1 i32) (param $$2 i32) (result f32) local.get $value local.get $value f32.mul ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $value f64) (param $$1 i32) (param $$2 i32) (result f64) + (func $"std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>~anonymous|0" (param $value f64) (param $$1 i32) (param $$2 i32) (result f64) local.get $value local.get $value f64.mul ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.extend8_s i32.const 2 @@ -3718,442 +3568,442 @@ local.get $newPtr return ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 255 i32.and i32.const 2 i32.gt_u ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 255 i32.and i32.const 2 i32.gt_u ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.extend16_s i32.const 2 i32.gt_s ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 65535 i32.and i32.const 2 i32.gt_u ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 2 i32.gt_s ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 2 i32.gt_u ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64>~anonymous|0" (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i64.const 2 i64.gt_s ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64>~anonymous|0" (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i64.const 2 i64.gt_u ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $value f32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32>~anonymous|0" (param $value f32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value f32.const 2 f32.gt ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $value f64) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64>~anonymous|0" (param $value f64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value f64.const 2 f64.gt ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.extend8_s i32.const 2 i32.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.extend8_s i32.const 0 i32.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 255 i32.and i32.const 2 i32.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 255 i32.and i32.const 0 i32.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 255 i32.and i32.const 2 i32.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 255 i32.and i32.const 0 i32.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.extend16_s i32.const 2 i32.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.extend16_s i32.const 0 i32.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 65535 i32.and i32.const 2 i32.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 65535 i32.and i32.const 0 i32.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 2 i32.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 0 i32.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 2 i32.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 0 i32.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0" (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i64.const 2 i64.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1 (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1" (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i64.const 0 i64.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>~anonymous|0" (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i64.const 2 i64.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>~anonymous|1 (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>~anonymous|1" (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i64.const 0 i64.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $value f32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0" (param $value f32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value f32.const 2 f32.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|1 (param $value f32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|1" (param $value f32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value f32.const 0 f32.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $value f64) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0" (param $value f64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value f64.const 2 f64.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|1 (param $value f64) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|1" (param $value f64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value f64.const 0 f64.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.extend8_s i32.const 2 i32.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.extend8_s i32.const 4 i32.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 255 i32.and i32.const 2 i32.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 255 i32.and i32.const 4 i32.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 255 i32.and i32.const 2 i32.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 255 i32.and i32.const 4 i32.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.extend16_s i32.const 2 i32.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.extend16_s i32.const 4 i32.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 65535 i32.and i32.const 2 i32.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 65535 i32.and i32.const 4 i32.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 2 i32.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 4 i32.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 2 i32.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 4 i32.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|0" (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i64.const 2 i64.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1" (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i64.const 4 i64.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>~anonymous|0" (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i64.const 2 i64.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>~anonymous|1 (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>~anonymous|1" (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i64.const 4 i64.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $value f32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|0" (param $value f32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value f32.const 2 f32.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1 (param $value f32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1" (param $value f32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value f32.const 4 f32.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $value f64) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|0" (param $value f64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value f64.const 2 f64.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1 (param $value f64) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1" (param $value f64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value f64.const 4 f64.eq ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int8Array,i8>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.extend8_s i32.const 2 i32.eq ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int8Array,i8>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.extend8_s i32.const 4 i32.eq ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8Array,u8>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 255 i32.and i32.const 2 i32.eq ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8Array,u8>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8Array,u8>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 255 i32.and i32.const 4 i32.eq ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 255 i32.and i32.const 2 i32.eq ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 255 i32.and i32.const 4 i32.eq ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int16Array,i16>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.extend16_s i32.const 2 i32.eq ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int16Array,i16>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.extend16_s i32.const 4 i32.eq ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint16Array,u16>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 65535 i32.and i32.const 2 i32.eq ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint16Array,u16>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint16Array,u16>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 65535 i32.and i32.const 4 i32.eq ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int32Array,i32>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 2 i32.eq ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int32Array,i32>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 4 i32.eq ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint32Array,u32>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 2 i32.eq ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint32Array,u32>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint32Array,u32>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 4 i32.eq ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int64Array,i64>~anonymous|0" (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i64.const 2 i64.eq ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int64Array,i64>~anonymous|1" (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i64.const 4 i64.eq ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint64Array,u64>~anonymous|0" (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i64.const 2 i64.eq ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint64Array,u64>~anonymous|1 (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint64Array,u64>~anonymous|1" (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i64.const 4 i64.eq ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $value f32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float32Array,f32>~anonymous|0" (param $value f32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value f32.const 2 f32.eq ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float32Array,f32>~anonymous|1 (param $value f32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float32Array,f32>~anonymous|1" (param $value f32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value f32.const 4 f32.eq ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $value f64) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float64Array,f64>~anonymous|0" (param $value f64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value f64.const 2 f64.eq ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float64Array,f64>~anonymous|1 (param $value f64) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float64Array,f64>~anonymous|1" (param $value f64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value f64.const 4 f64.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.extend8_s i32.const 2 @@ -4161,13 +4011,13 @@ i32.const 0 i32.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.extend8_s i32.const 2 i32.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 255 i32.and @@ -4176,14 +4026,14 @@ i32.const 0 i32.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 255 i32.and i32.const 2 i32.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 255 i32.and @@ -4192,14 +4042,14 @@ i32.const 0 i32.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 255 i32.and i32.const 2 i32.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.extend16_s i32.const 2 @@ -4207,13 +4057,13 @@ i32.const 0 i32.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.extend16_s i32.const 2 i32.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 65535 i32.and @@ -4222,57 +4072,57 @@ i32.const 0 i32.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 65535 i32.and i32.const 2 i32.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 2 i32.rem_s i32.const 0 i32.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 2 i32.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 2 i32.rem_u i32.const 0 i32.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 2 i32.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|0" (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i64.const 2 i64.rem_s i64.const 0 i64.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|1 (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|1" (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i64.const 2 i64.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|0" (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i64.const 2 i64.rem_u i64.const 0 i64.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|1 (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|1" (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i64.const 2 i64.eq @@ -4526,14 +4376,14 @@ f32.reinterpret_i32 return ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $value f32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0" (param $value f32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value f32.const 2 call $~lib/math/NativeMathf.mod f32.const 0 f32.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|1 (param $value f32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|1" (param $value f32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value f32.const 2 f32.eq @@ -4793,14 +4643,14 @@ f64.reinterpret_i64 return ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $value f64) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0" (param $value f64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value f64.const 2 call $~lib/math/NativeMath.mod f64.const 0 f64.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|1 (param $value f64) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|1" (param $value f64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value f64.const 2 f64.eq @@ -7730,26 +7580,30 @@ end unreachable ) - (func $~lib/util/number/dtoa_core (param $buffer i32) (param $value f64) (result i32) + (func $~lib/util/number/dtoa_core (param $buffer i32) (param $value f64) (param $isSingle i32) (result i32) (local $sign i32) - (local $value|3 f64) - (local $buffer|4 i32) - (local $sign|5 i32) - (local $uv i64) - (local $exp i32) - (local $sid i64) + (local $value|4 f64) + (local $buffer|5 i32) + (local $sign|6 i32) + (local $isSingle|7 i32) (local $frc i64) + (local $exp i32) + (local $uv i32) + (local $sid i32) + (local $uv|12 i64) + (local $sid|13 i64) (local $f i64) (local $e i32) - (local $frc|12 i64) - (local $exp|13 i32) + (local $isSingle|16 i32) + (local $frc|17 i64) + (local $exp|18 i32) (local $off i32) (local $m i32) (local $minExp i32) (local $dk f64) (local $k i32) (local $index i32) - (local $off|20 i32) + (local $off|25 i32) (local $frc_pow i64) (local $exp_pow i32) (local $u i64) @@ -7765,28 +7619,28 @@ (local $e1 i32) (local $e2 i32) (local $w_exp i32) - (local $u|36 i64) - (local $v|37 i64) - (local $u0|38 i64) - (local $v0|39 i64) - (local $u1|40 i64) - (local $v1|41 i64) - (local $l|42 i64) - (local $t|43 i64) - (local $w|44 i64) + (local $u|41 i64) + (local $v|42 i64) + (local $u0|43 i64) + (local $v0|44 i64) + (local $u1|45 i64) + (local $v1|46 i64) + (local $l|47 i64) + (local $t|48 i64) + (local $w|49 i64) (local $wp_frc i64) - (local $e1|46 i32) - (local $e2|47 i32) + (local $e1|51 i32) + (local $e2|52 i32) (local $wp_exp i32) - (local $u|49 i64) - (local $v|50 i64) - (local $u0|51 i64) - (local $v0|52 i64) - (local $u1|53 i64) - (local $v1|54 i64) - (local $l|55 i64) - (local $t|56 i64) - (local $w|57 i64) + (local $u|54 i64) + (local $v|55 i64) + (local $u0|56 i64) + (local $v0|57 i64) + (local $u1|58 i64) + (local $v1|59 i64) + (local $l|60 i64) + (local $t|61 i64) + (local $w|62 i64) (local $wm_frc i64) (local $delta i64) (local $len i32) @@ -7805,77 +7659,127 @@ end block $~lib/util/number/grisu2|inlined.0 (result i32) local.get $value - local.set $value|3 + local.set $value|4 local.get $buffer - local.set $buffer|4 + local.set $buffer|5 local.get $sign - local.set $sign|5 - local.get $value|3 - i64.reinterpret_f64 - local.set $uv - local.get $uv - i64.const 9218868437227405312 - i64.and - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.set $exp - local.get $uv - i64.const 4503599627370495 - i64.and - local.set $sid - local.get $exp - i32.const 0 - i32.ne - i64.extend_i32_u - i64.const 52 - i64.shl - local.get $sid - i64.add - local.set $frc - local.get $exp - i32.const 1 - local.get $exp - select - i32.const 1023 - i32.const 52 - i32.add - i32.sub - local.set $exp + local.set $sign|6 + local.get $isSingle + local.set $isSingle|7 + local.get $isSingle|7 + if + local.get $value|4 + f32.demote_f64 + i32.reinterpret_f32 + local.set $uv + local.get $uv + i32.const 2139095040 + i32.and + i32.const 23 + i32.shr_u + local.set $exp + local.get $uv + i32.const 8388607 + i32.and + local.set $sid + local.get $exp + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 23 + i64.shl + local.get $sid + i64.extend_i32_u + i64.add + local.set $frc + local.get $exp + if (result i32) + local.get $exp + else + i32.const 1 + end + i32.const 127 + i32.const 23 + i32.add + i32.sub + local.set $exp + else + local.get $value|4 + i64.reinterpret_f64 + local.set $uv|12 + local.get $uv|12 + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.set $exp + local.get $uv|12 + i64.const 4503599627370495 + i64.and + local.set $sid|13 + local.get $exp + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 52 + i64.shl + local.get $sid|13 + i64.add + local.set $frc + local.get $exp + if (result i32) + local.get $exp + else + i32.const 1 + end + i32.const 1023 + i32.const 52 + i32.add + i32.sub + local.set $exp + end local.get $frc local.set $f local.get $exp local.set $e + local.get $isSingle|7 + local.set $isSingle|16 local.get $f i64.const 1 i64.shl i64.const 1 i64.add - local.set $frc|12 + local.set $frc|17 local.get $e i32.const 1 i32.sub - local.set $exp|13 - local.get $frc|12 + local.set $exp|18 + local.get $frc|17 i64.clz i32.wrap_i64 local.set $off - local.get $frc|12 + local.get $frc|17 local.get $off i64.extend_i32_s i64.shl - local.set $frc|12 - local.get $exp|13 + local.set $frc|17 + local.get $exp|18 local.get $off i32.sub - local.set $exp|13 + local.set $exp|18 i32.const 1 local.get $f - i64.const 4503599627370496 + local.get $isSingle|16 + if (result i64) + i64.const 8388608 + else + i64.const 4503599627370496 + end i64.eq i32.add local.set $m - local.get $frc|12 + local.get $frc|17 global.set $~lib/util/number/_frc_plus local.get $f local.get $m @@ -7886,12 +7790,12 @@ local.get $e local.get $m i32.sub - local.get $exp|13 + local.get $exp|18 i32.sub i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_minus - local.get $exp|13 + local.get $exp|18 global.set $~lib/util/number/_exp global.get $~lib/util/number/_exp local.set $minExp @@ -7943,14 +7847,14 @@ local.get $frc i64.clz i32.wrap_i64 - local.set $off|20 + local.set $off|25 local.get $frc - local.get $off|20 + local.get $off|25 i64.extend_i32_s i64.shl local.set $frc local.get $exp - local.get $off|20 + local.get $off|25 i32.sub local.set $exp global.get $~lib/util/number/_frc_pow @@ -8035,63 +7939,63 @@ local.set $w_exp block $~lib/util/number/umul64f|inlined.1 (result i64) global.get $~lib/util/number/_frc_plus - local.set $u|36 + local.set $u|41 local.get $frc_pow - local.set $v|37 - local.get $u|36 + local.set $v|42 + local.get $u|41 i64.const 4294967295 i64.and - local.set $u0|38 - local.get $v|37 + local.set $u0|43 + local.get $v|42 i64.const 4294967295 i64.and - local.set $v0|39 - local.get $u|36 + local.set $v0|44 + local.get $u|41 i64.const 32 i64.shr_u - local.set $u1|40 - local.get $v|37 + local.set $u1|45 + local.get $v|42 i64.const 32 i64.shr_u - local.set $v1|41 - local.get $u0|38 - local.get $v0|39 + local.set $v1|46 + local.get $u0|43 + local.get $v0|44 i64.mul - local.set $l|42 - local.get $u1|40 - local.get $v0|39 + local.set $l|47 + local.get $u1|45 + local.get $v0|44 i64.mul - local.get $l|42 + local.get $l|47 i64.const 32 i64.shr_u i64.add - local.set $t|43 - local.get $u0|38 - local.get $v1|41 + local.set $t|48 + local.get $u0|43 + local.get $v1|46 i64.mul - local.get $t|43 + local.get $t|48 i64.const 4294967295 i64.and i64.add - local.set $w|44 - local.get $w|44 + local.set $w|49 + local.get $w|49 i64.const 2147483647 i64.add - local.set $w|44 - local.get $t|43 + local.set $w|49 + local.get $t|48 i64.const 32 i64.shr_u - local.set $t|43 - local.get $w|44 + local.set $t|48 + local.get $w|49 i64.const 32 i64.shr_u - local.set $w|44 - local.get $u1|40 - local.get $v1|41 + local.set $w|49 + local.get $u1|45 + local.get $v1|46 i64.mul - local.get $t|43 + local.get $t|48 i64.add - local.get $w|44 + local.get $w|49 i64.add br $~lib/util/number/umul64f|inlined.1 end @@ -8100,11 +8004,11 @@ local.set $wp_frc block $~lib/util/number/umul64e|inlined.1 (result i32) global.get $~lib/util/number/_exp - local.set $e1|46 + local.set $e1|51 local.get $exp_pow - local.set $e2|47 - local.get $e1|46 - local.get $e2|47 + local.set $e2|52 + local.get $e1|51 + local.get $e2|52 i32.add i32.const 64 i32.add @@ -8113,63 +8017,63 @@ local.set $wp_exp block $~lib/util/number/umul64f|inlined.2 (result i64) global.get $~lib/util/number/_frc_minus - local.set $u|49 + local.set $u|54 local.get $frc_pow - local.set $v|50 - local.get $u|49 + local.set $v|55 + local.get $u|54 i64.const 4294967295 i64.and - local.set $u0|51 - local.get $v|50 + local.set $u0|56 + local.get $v|55 i64.const 4294967295 i64.and - local.set $v0|52 - local.get $u|49 + local.set $v0|57 + local.get $u|54 i64.const 32 i64.shr_u - local.set $u1|53 - local.get $v|50 + local.set $u1|58 + local.get $v|55 i64.const 32 i64.shr_u - local.set $v1|54 - local.get $u0|51 - local.get $v0|52 + local.set $v1|59 + local.get $u0|56 + local.get $v0|57 i64.mul - local.set $l|55 - local.get $u1|53 - local.get $v0|52 + local.set $l|60 + local.get $u1|58 + local.get $v0|57 i64.mul - local.get $l|55 + local.get $l|60 i64.const 32 i64.shr_u i64.add - local.set $t|56 - local.get $u0|51 - local.get $v1|54 + local.set $t|61 + local.get $u0|56 + local.get $v1|59 i64.mul - local.get $t|56 + local.get $t|61 i64.const 4294967295 i64.and i64.add - local.set $w|57 - local.get $w|57 + local.set $w|62 + local.get $w|62 i64.const 2147483647 i64.add - local.set $w|57 - local.get $t|56 + local.set $w|62 + local.get $t|61 i64.const 32 i64.shr_u - local.set $t|56 - local.get $w|57 + local.set $t|61 + local.get $w|62 i64.const 32 i64.shr_u - local.set $w|57 - local.get $u1|53 - local.get $v1|54 + local.set $w|62 + local.get $u1|58 + local.get $v1|59 i64.mul - local.get $t|56 + local.get $t|61 i64.add - local.get $w|57 + local.get $w|62 i64.add br $~lib/util/number/umul64f|inlined.2 end @@ -8180,13 +8084,13 @@ local.get $wm_frc i64.sub local.set $delta - local.get $buffer|4 + local.get $buffer|5 local.get $w_frc local.get $w_exp local.get $wp_frc local.get $wp_exp local.get $delta - local.get $sign|5 + local.get $sign|6 call $~lib/util/number/genDigits br $~lib/util/number/grisu2|inlined.0 end @@ -8207,77 +8111,177 @@ i32.add return ) - (func $~lib/util/number/dtoa_buffered (param $buffer i32) (param $value f64) (result i32) + (func $~lib/util/number/dtoa_buffered (param $buffer i32) (param $value f32) (result i32) + (local $buffer|2 i32) + (local $value|3 f64) + (local $isSingle i32) (local $sign i32) - local.get $value - f64.const 0 - f64.eq - if - local.get $buffer - i32.const 48 - i32.store16 + block $~lib/util/number/dtoa_buffered_impl|inlined.0 (result i32) local.get $buffer - i32.const 46 - i32.store16 offset=2 - local.get $buffer - i32.const 48 - i32.store16 offset=4 - i32.const 3 - return - end - local.get $value - local.get $value - f64.sub - f64.const 0 - f64.eq - i32.eqz - if + local.set $buffer|2 local.get $value + f64.promote_f32 + local.set $value|3 + i32.const 1 + local.set $isSingle + local.get $value|3 + f64.const 0 + f64.eq + if + local.get $buffer|2 + i32.const 48 + i32.store16 + local.get $buffer|2 + i32.const 46 + i32.store16 offset=2 + local.get $buffer|2 + i32.const 48 + i32.store16 offset=4 + i32.const 3 + br $~lib/util/number/dtoa_buffered_impl|inlined.0 + end + local.get $value|3 + local.get $value|3 + f64.sub + f64.const 0 + f64.eq + i32.eqz + if + local.get $value|3 + local.get $value|3 + f64.ne + if + local.get $buffer|2 + i32.const 78 + i32.store16 + local.get $buffer|2 + i32.const 97 + i32.store16 offset=2 + local.get $buffer|2 + i32.const 78 + i32.store16 offset=4 + i32.const 3 + br $~lib/util/number/dtoa_buffered_impl|inlined.0 + else + local.get $value|3 + f64.const 0 + f64.lt + local.set $sign + local.get $sign + if + local.get $buffer|2 + i32.const 45 + i32.store16 + local.get $buffer|2 + i32.const 2 + i32.add + local.set $buffer|2 + end + local.get $buffer|2 + i64.const 29555310648492105 + i64.store + local.get $buffer|2 + i64.const 34058970405077102 + i64.store offset=8 + i32.const 8 + local.get $sign + i32.add + br $~lib/util/number/dtoa_buffered_impl|inlined.0 + end + unreachable + end + local.get $buffer|2 + local.get $value|3 + local.get $isSingle + call $~lib/util/number/dtoa_core + br $~lib/util/number/dtoa_buffered_impl|inlined.0 + end + return + ) + (func $~lib/util/number/dtoa_buffered (param $buffer i32) (param $value f64) (result i32) + (local $buffer|2 i32) + (local $value|3 f64) + (local $isSingle i32) + (local $sign i32) + block $~lib/util/number/dtoa_buffered_impl|inlined.1 (result i32) + local.get $buffer + local.set $buffer|2 local.get $value - f64.ne + local.set $value|3 + i32.const 0 + local.set $isSingle + local.get $value|3 + f64.const 0 + f64.eq if - local.get $buffer - i32.const 78 + local.get $buffer|2 + i32.const 48 i32.store16 - local.get $buffer - i32.const 97 + local.get $buffer|2 + i32.const 46 i32.store16 offset=2 - local.get $buffer - i32.const 78 + local.get $buffer|2 + i32.const 48 i32.store16 offset=4 i32.const 3 - return - else - local.get $value - f64.const 0 - f64.lt - local.set $sign - local.get $sign + br $~lib/util/number/dtoa_buffered_impl|inlined.1 + end + local.get $value|3 + local.get $value|3 + f64.sub + f64.const 0 + f64.eq + i32.eqz + if + local.get $value|3 + local.get $value|3 + f64.ne if - local.get $buffer - i32.const 45 + local.get $buffer|2 + i32.const 78 i32.store16 - local.get $buffer - i32.const 2 + local.get $buffer|2 + i32.const 97 + i32.store16 offset=2 + local.get $buffer|2 + i32.const 78 + i32.store16 offset=4 + i32.const 3 + br $~lib/util/number/dtoa_buffered_impl|inlined.1 + else + local.get $value|3 + f64.const 0 + f64.lt + local.set $sign + local.get $sign + if + local.get $buffer|2 + i32.const 45 + i32.store16 + local.get $buffer|2 + i32.const 2 + i32.add + local.set $buffer|2 + end + local.get $buffer|2 + i64.const 29555310648492105 + i64.store + local.get $buffer|2 + i64.const 34058970405077102 + i64.store offset=8 + i32.const 8 + local.get $sign i32.add - local.set $buffer + br $~lib/util/number/dtoa_buffered_impl|inlined.1 end - local.get $buffer - i64.const 29555310648492105 - i64.store - local.get $buffer - i64.const 34058970405077102 - i64.store offset=8 - i32.const 8 - local.get $sign - i32.add - return + unreachable end - unreachable + local.get $buffer|2 + local.get $value|3 + local.get $isSingle + call $~lib/util/number/dtoa_core + br $~lib/util/number/dtoa_buffered_impl|inlined.1 end - local.get $buffer - local.get $value - call $~lib/util/number/dtoa_core return ) (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (param $this i32) (result i32) @@ -8532,161 +8536,6 @@ end end ) - (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) - (local $j i32) - (local $k i32) - (local $tmp i32) - local.get $i - local.get $right - i32.eq - if - local.get $i - return - end - local.get $i - local.set $j - local.get $ptr - local.get $j - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.get $ptr - local.get $j - i32.const 1 - i32.add - local.tee $j - i32.const 0 - i32.shl - i32.add - i32.load8_s - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - if - loop $while-continue|0 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 0 - i32.shl - i32.add - i32.load8_s offset=1 - local.get $ptr - local.get $j - i32.const 0 - i32.shl - i32.add - i32.load8_s - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 - end - end - local.get $j - local.set $k - loop $while-continue|1 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.set $tmp - local.get $ptr - local.get $i - i32.const 0 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 0 - i32.shl - i32.add - i32.load8_s - i32.store8 - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 0 - i32.shl - i32.add - local.get $tmp - i32.store8 - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 - end - end - else - loop $while-continue|2 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 0 - i32.shl - i32.add - i32.load8_s offset=1 - local.get $ptr - local.get $j - i32.const 0 - i32.shl - i32.add - i32.load8_s - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|2 - end - end - end - local.get $j - return - ) (func $~lib/util/sort/mergeRuns (param $ptr i32) (param $l i32) (param $m i32) (param $r i32) (param $buffer i32) (param $comparator i32) (local $i i32) (local $j i32) @@ -8832,7 +8681,7 @@ i32.extend8_s i32.sub ) - (func $std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $a i32) (param $b i32) (result i32) + (func $"std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8>~anonymous|0" (param $a i32) (param $b i32) (result i32) local.get $b i32.extend8_s local.get $a @@ -9026,161 +8875,6 @@ end end ) - (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) - (local $j i32) - (local $k i32) - (local $tmp i32) - local.get $i - local.get $right - i32.eq - if - local.get $i - return - end - local.get $i - local.set $j - local.get $ptr - local.get $j - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $ptr - local.get $j - i32.const 1 - i32.add - local.tee $j - i32.const 0 - i32.shl - i32.add - i32.load8_u - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - if - loop $while-continue|0 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 0 - i32.shl - i32.add - i32.load8_u offset=1 - local.get $ptr - local.get $j - i32.const 0 - i32.shl - i32.add - i32.load8_u - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 - end - end - local.get $j - local.set $k - loop $while-continue|1 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.set $tmp - local.get $ptr - local.get $i - i32.const 0 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 0 - i32.shl - i32.add - i32.load8_u - i32.store8 - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 0 - i32.shl - i32.add - local.get $tmp - i32.store8 - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 - end - end - else - loop $while-continue|2 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 0 - i32.shl - i32.add - i32.load8_u offset=1 - local.get $ptr - local.get $j - i32.const 0 - i32.shl - i32.add - i32.load8_u - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|2 - end - end - end - local.get $j - return - ) (func $~lib/util/sort/mergeRuns (param $ptr i32) (param $l i32) (param $m i32) (param $r i32) (param $buffer i32) (param $comparator i32) (local $i i32) (local $j i32) @@ -9336,7 +9030,7 @@ i32.lt_u i32.sub ) - (func $std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $a i32) (param $b i32) (result i32) + (func $"std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8>~anonymous|0" (param $a i32) (param $b i32) (result i32) local.get $b i32.const 255 i32.and @@ -9370,7 +9064,7 @@ i32.lt_u i32.sub ) - (func $std/typedarray/testArraySort<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (param $a i32) (param $b i32) (result i32) + (func $"std/typedarray/testArraySort<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0" (param $a i32) (param $b i32) (result i32) local.get $b i32.const 255 i32.and @@ -9568,161 +9262,6 @@ end end ) - (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) - (local $j i32) - (local $k i32) - (local $tmp i32) - local.get $i - local.get $right - i32.eq - if - local.get $i - return - end - local.get $i - local.set $j - local.get $ptr - local.get $j - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.get $ptr - local.get $j - i32.const 1 - i32.add - local.tee $j - i32.const 1 - i32.shl - i32.add - i32.load16_s - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - if - loop $while-continue|0 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 1 - i32.shl - i32.add - i32.load16_s offset=2 - local.get $ptr - local.get $j - i32.const 1 - i32.shl - i32.add - i32.load16_s - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 - end - end - local.get $j - local.set $k - loop $while-continue|1 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $tmp - local.get $ptr - local.get $i - i32.const 1 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 1 - i32.shl - i32.add - i32.load16_s - i32.store16 - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 1 - i32.shl - i32.add - local.get $tmp - i32.store16 - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 - end - end - else - loop $while-continue|2 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 1 - i32.shl - i32.add - i32.load16_s offset=2 - local.get $ptr - local.get $j - i32.const 1 - i32.shl - i32.add - i32.load16_s - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|2 - end - end - end - local.get $j - return - ) (func $~lib/util/sort/mergeRuns (param $ptr i32) (param $l i32) (param $m i32) (param $r i32) (param $buffer i32) (param $comparator i32) (local $i i32) (local $j i32) @@ -9868,7 +9407,7 @@ i32.extend16_s i32.sub ) - (func $std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $a i32) (param $b i32) (result i32) + (func $"std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16>~anonymous|0" (param $a i32) (param $b i32) (result i32) local.get $b i32.extend16_s local.get $a @@ -10062,161 +9601,6 @@ end end ) - (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) - (local $j i32) - (local $k i32) - (local $tmp i32) - local.get $i - local.get $right - i32.eq - if - local.get $i - return - end - local.get $i - local.set $j - local.get $ptr - local.get $j - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.get $ptr - local.get $j - i32.const 1 - i32.add - local.tee $j - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - if - loop $while-continue|0 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 1 - i32.shl - i32.add - i32.load16_u offset=2 - local.get $ptr - local.get $j - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 - end - end - local.get $j - local.set $k - loop $while-continue|1 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $tmp - local.get $ptr - local.get $i - i32.const 1 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 1 - i32.shl - i32.add - local.get $tmp - i32.store16 - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 - end - end - else - loop $while-continue|2 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 1 - i32.shl - i32.add - i32.load16_u offset=2 - local.get $ptr - local.get $j - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|2 - end - end - end - local.get $j - return - ) (func $~lib/util/sort/mergeRuns (param $ptr i32) (param $l i32) (param $m i32) (param $r i32) (param $buffer i32) (param $comparator i32) (local $i i32) (local $j i32) @@ -10372,7 +9756,7 @@ i32.lt_u i32.sub ) - (func $std/typedarray/testArraySort<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $a i32) (param $b i32) (result i32) + (func $"std/typedarray/testArraySort<~lib/typedarray/Uint16Array,u16>~anonymous|0" (param $a i32) (param $b i32) (result i32) local.get $b i32.const 65535 i32.and @@ -10570,161 +9954,6 @@ end end ) - (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) - (local $j i32) - (local $k i32) - (local $tmp i32) - local.get $i - local.get $right - i32.eq - if - local.get $i - return - end - local.get $i - local.set $j - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - local.get $ptr - local.get $j - i32.const 1 - i32.add - local.tee $j - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - if - loop $while-continue|0 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 - end - end - local.get $j - local.set $k - loop $while-continue|1 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.set $tmp - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $tmp - i32.store - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 - end - end - else - loop $while-continue|2 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|2 - end - end - end - local.get $j - return - ) (func $~lib/util/sort/mergeRuns (param $ptr i32) (param $l i32) (param $m i32) (param $r i32) (param $buffer i32) (param $comparator i32) (local $i i32) (local $j i32) @@ -10868,7 +10097,7 @@ local.get $b i32.sub ) - (func $std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $a i32) (param $b i32) (result i32) + (func $"std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32>~anonymous|0" (param $a i32) (param $b i32) (result i32) local.get $b local.get $a i32.gt_s @@ -11058,161 +10287,6 @@ end end ) - (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) - (local $j i32) - (local $k i32) - (local $tmp i32) - local.get $i - local.get $right - i32.eq - if - local.get $i - return - end - local.get $i - local.set $j - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - local.get $ptr - local.get $j - i32.const 1 - i32.add - local.tee $j - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - if - loop $while-continue|0 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 - end - end - local.get $j - local.set $k - loop $while-continue|1 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.set $tmp - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $tmp - i32.store - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 - end - end - else - loop $while-continue|2 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|2 - end - end - end - local.get $j - return - ) (func $~lib/util/sort/mergeRuns (param $ptr i32) (param $l i32) (param $m i32) (param $r i32) (param $buffer i32) (param $comparator i32) (local $i i32) (local $j i32) @@ -11360,7 +10434,7 @@ i32.lt_u i32.sub ) - (func $std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $a i32) (param $b i32) (result i32) + (func $"std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32>~anonymous|0" (param $a i32) (param $b i32) (result i32) local.get $b local.get $a i32.gt_u @@ -11550,161 +10624,6 @@ end end ) - (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) - (local $j i32) - (local $k i32) - (local $tmp i64) - local.get $i - local.get $right - i32.eq - if - local.get $i - return - end - local.get $i - local.set $j - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - i64.load - local.get $ptr - local.get $j - i32.const 1 - i32.add - local.tee $j - i32.const 3 - i32.shl - i32.add - i64.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $8) - i32.const 0 - i32.gt_s - if - loop $while-continue|0 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - i64.load offset=8 - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - i64.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $8) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 - end - end - local.get $j - local.set $k - loop $while-continue|1 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - i64.load - local.set $tmp - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 3 - i32.shl - i32.add - i64.load - i64.store - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 3 - i32.shl - i32.add - local.get $tmp - i64.store - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 - end - end - else - loop $while-continue|2 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - i64.load offset=8 - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - i64.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $8) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|2 - end - end - end - local.get $j - return - ) (func $~lib/util/sort/mergeRuns (param $ptr i32) (param $l i32) (param $m i32) (param $r i32) (param $buffer i32) (param $comparator i32) (local $i i32) (local $j i32) @@ -11852,7 +10771,7 @@ i64.lt_s i32.sub ) - (func $std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $a i64) (param $b i64) (result i32) + (func $"std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64>~anonymous|0" (param $a i64) (param $b i64) (result i32) local.get $b local.get $a i64.gt_s @@ -12042,161 +10961,6 @@ end end ) - (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) - (local $j i32) - (local $k i32) - (local $tmp i64) - local.get $i - local.get $right - i32.eq - if - local.get $i - return - end - local.get $i - local.set $j - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - i64.load - local.get $ptr - local.get $j - i32.const 1 - i32.add - local.tee $j - i32.const 3 - i32.shl - i32.add - i64.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $8) - i32.const 0 - i32.gt_s - if - loop $while-continue|0 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - i64.load offset=8 - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - i64.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $8) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 - end - end - local.get $j - local.set $k - loop $while-continue|1 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - i64.load - local.set $tmp - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 3 - i32.shl - i32.add - i64.load - i64.store - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 3 - i32.shl - i32.add - local.get $tmp - i64.store - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 - end - end - else - loop $while-continue|2 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - i64.load offset=8 - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - i64.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $8) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|2 - end - end - end - local.get $j - return - ) (func $~lib/util/sort/mergeRuns (param $ptr i32) (param $l i32) (param $m i32) (param $r i32) (param $buffer i32) (param $comparator i32) (local $i i32) (local $j i32) @@ -12344,7 +11108,7 @@ i64.lt_u i32.sub ) - (func $std/typedarray/testArraySort<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $a i64) (param $b i64) (result i32) + (func $"std/typedarray/testArraySort<~lib/typedarray/Uint64Array,u64>~anonymous|0" (param $a i64) (param $b i64) (result i32) local.get $b local.get $a i64.gt_u @@ -12534,161 +11298,6 @@ end end ) - (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) - (local $j i32) - (local $k i32) - (local $tmp f32) - local.get $i - local.get $right - i32.eq - if - local.get $i - return - end - local.get $i - local.set $j - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - f32.load - local.get $ptr - local.get $j - i32.const 1 - i32.add - local.tee $j - i32.const 2 - i32.shl - i32.add - f32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $13) - i32.const 0 - i32.gt_s - if - loop $while-continue|0 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - f32.load offset=4 - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - f32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $13) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 - end - end - local.get $j - local.set $k - loop $while-continue|1 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - f32.load - local.set $tmp - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - f32.load - f32.store - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $tmp - f32.store - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 - end - end - else - loop $while-continue|2 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - f32.load offset=4 - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - f32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $13) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|2 - end - end - end - local.get $j - return - ) (func $~lib/util/sort/mergeRuns (param $ptr i32) (param $l i32) (param $m i32) (param $r i32) (param $buffer i32) (param $comparator i32) (local $i i32) (local $j i32) @@ -12861,7 +11470,7 @@ i32.sub return ) - (func $std/typedarray/testArraySort<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $a f32) (param $b f32) (result i32) + (func $"std/typedarray/testArraySort<~lib/typedarray/Float32Array,f32>~anonymous|0" (param $a f32) (param $b f32) (result i32) local.get $b local.get $a f32.gt @@ -12870,7 +11479,7 @@ f32.lt i32.sub ) - (func $std/typedarray/testArraySort<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $a f64) (param $b f64) (result i32) + (func $"std/typedarray/testArraySort<~lib/typedarray/Float64Array,f64>~anonymous|0" (param $a f64) (param $b f64) (result i32) local.get $b local.get $a f64.gt @@ -13006,12 +11615,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -16038,7 +14643,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/SUBARRAY<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + block $"~lib/typedarray/SUBARRAY<~lib/typedarray/Int32Array,i32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -16156,7 +14761,7 @@ i32.shl i32.store offset=8 local.get $out - br $~lib/typedarray/SUBARRAY<~lib/typedarray/Int32Array,i32>|inlined.0 + br $"~lib/typedarray/SUBARRAY<~lib/typedarray/Int32Array,i32>|inlined.0" end local.set $19 global.get $~lib/memory/__stack_pointer @@ -16242,7 +14847,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/SUBARRAY<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + block $"~lib/typedarray/SUBARRAY<~lib/typedarray/Float64Array,f64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -16360,7 +14965,7 @@ i32.shl i32.store offset=8 local.get $out - br $~lib/typedarray/SUBARRAY<~lib/typedarray/Float64Array,f64>|inlined.0 + br $"~lib/typedarray/SUBARRAY<~lib/typedarray/Float64Array,f64>|inlined.0" end local.set $19 global.get $~lib/memory/__stack_pointer @@ -17461,7 +16066,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/SUBARRAY<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) + block $"~lib/typedarray/SUBARRAY<~lib/typedarray/Int8Array,i8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -17579,7 +16184,7 @@ i32.shl i32.store offset=8 local.get $out - br $~lib/typedarray/SUBARRAY<~lib/typedarray/Int8Array,i8>|inlined.0 + br $"~lib/typedarray/SUBARRAY<~lib/typedarray/Int8Array,i8>|inlined.0" end local.set $19 global.get $~lib/memory/__stack_pointer @@ -17870,7 +16475,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/SLICE<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + block $"~lib/typedarray/SLICE<~lib/typedarray/Int32Array,i32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -17977,7 +16582,7 @@ i32.shl memory.copy local.get $slice - br $~lib/typedarray/SLICE<~lib/typedarray/Int32Array,i32>|inlined.0 + br $"~lib/typedarray/SLICE<~lib/typedarray/Int32Array,i32>|inlined.0" end local.set $18 global.get $~lib/memory/__stack_pointer @@ -18064,7 +16669,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $~lib/typedarray/COPY_WITHIN<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + block $"~lib/typedarray/COPY_WITHIN<~lib/typedarray/Int32Array,i32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -18203,7 +16808,7 @@ i32.shl memory.copy local.get $array - br $~lib/typedarray/COPY_WITHIN<~lib/typedarray/Int32Array,i32>|inlined.0 + br $"~lib/typedarray/COPY_WITHIN<~lib/typedarray/Int32Array,i32>|inlined.0" end local.set $30 global.get $~lib/memory/__stack_pointer @@ -18261,8 +16866,9 @@ (local $i i32) (local $k i32) (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -18270,9 +16876,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/REDUCE<~lib/typedarray/Int8Array,i8,i8>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/REDUCE<~lib/typedarray/Int8Array,i8,i8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -18284,21 +16890,21 @@ local.get $initialValue local.set $initialValue|5 local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 call $~lib/typedarray/Int8Array#get:length local.set $k loop $for-loop|0 @@ -18306,6 +16912,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|4 + local.tee $9 + i32.store offset=12 local.get $initialValue|5 local.get $ptr local.get $i @@ -18315,14 +16925,14 @@ i32.load8_s local.get $i local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 i32.const 4 global.set $~argumentsLength - local.get $fn|4 + local.get $9 i32.load call_indirect (type $6) local.set $initialValue|5 @@ -18334,17 +16944,17 @@ end end local.get $initialValue|5 - br $~lib/typedarray/REDUCE<~lib/typedarray/Int8Array,i8,i8>|inlined.0 + br $"~lib/typedarray/REDUCE<~lib/typedarray/Int8Array,i8,i8>|inlined.0" end - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $10 return ) - (func $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8> + (func $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>" (local $array i32) (local $result i32) (local $2 i32) @@ -18476,8 +17086,9 @@ (local $i i32) (local $k i32) (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -18485,9 +17096,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/REDUCE<~lib/typedarray/Uint8Array,u8,u8>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/REDUCE<~lib/typedarray/Uint8Array,u8,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -18499,21 +17110,21 @@ local.get $initialValue local.set $initialValue|5 local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 call $~lib/typedarray/Uint8Array#get:length local.set $k loop $for-loop|0 @@ -18521,6 +17132,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|4 + local.tee $9 + i32.store offset=12 local.get $initialValue|5 local.get $ptr local.get $i @@ -18530,14 +17145,14 @@ i32.load8_u local.get $i local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 i32.const 4 global.set $~argumentsLength - local.get $fn|4 + local.get $9 i32.load call_indirect (type $6) local.set $initialValue|5 @@ -18549,17 +17164,17 @@ end end local.get $initialValue|5 - br $~lib/typedarray/REDUCE<~lib/typedarray/Uint8Array,u8,u8>|inlined.0 + br $"~lib/typedarray/REDUCE<~lib/typedarray/Uint8Array,u8,u8>|inlined.0" end - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $10 return ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint8Array,u8> + (func $"std/typedarray/testReduce<~lib/typedarray/Uint8Array,u8>" (local $array i32) (local $result i32) (local $2 i32) @@ -18649,8 +17264,9 @@ (local $i i32) (local $k i32) (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -18658,9 +17274,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/REDUCE<~lib/typedarray/Uint8ClampedArray,u8,u8>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/REDUCE<~lib/typedarray/Uint8ClampedArray,u8,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -18672,21 +17288,21 @@ local.get $initialValue local.set $initialValue|5 local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 call $~lib/typedarray/Uint8ClampedArray#get:length local.set $k loop $for-loop|0 @@ -18694,6 +17310,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|4 + local.tee $9 + i32.store offset=12 local.get $initialValue|5 local.get $ptr local.get $i @@ -18703,14 +17323,14 @@ i32.load8_u local.get $i local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 i32.const 4 global.set $~argumentsLength - local.get $fn|4 + local.get $9 i32.load call_indirect (type $6) local.set $initialValue|5 @@ -18722,17 +17342,17 @@ end end local.get $initialValue|5 - br $~lib/typedarray/REDUCE<~lib/typedarray/Uint8ClampedArray,u8,u8>|inlined.0 + br $"~lib/typedarray/REDUCE<~lib/typedarray/Uint8ClampedArray,u8,u8>|inlined.0" end - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $10 return ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint8ClampedArray,u8> + (func $"std/typedarray/testReduce<~lib/typedarray/Uint8ClampedArray,u8>" (local $array i32) (local $result i32) (local $2 i32) @@ -18869,8 +17489,9 @@ (local $i i32) (local $k i32) (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -18878,9 +17499,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/REDUCE<~lib/typedarray/Int16Array,i16,i16>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/REDUCE<~lib/typedarray/Int16Array,i16,i16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -18892,21 +17513,21 @@ local.get $initialValue local.set $initialValue|5 local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 call $~lib/typedarray/Int16Array#get:length local.set $k loop $for-loop|0 @@ -18914,6 +17535,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|4 + local.tee $9 + i32.store offset=12 local.get $initialValue|5 local.get $ptr local.get $i @@ -18923,14 +17548,14 @@ i32.load16_s local.get $i local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 i32.const 4 global.set $~argumentsLength - local.get $fn|4 + local.get $9 i32.load call_indirect (type $6) local.set $initialValue|5 @@ -18942,17 +17567,17 @@ end end local.get $initialValue|5 - br $~lib/typedarray/REDUCE<~lib/typedarray/Int16Array,i16,i16>|inlined.0 + br $"~lib/typedarray/REDUCE<~lib/typedarray/Int16Array,i16,i16>|inlined.0" end - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $10 return ) - (func $std/typedarray/testReduce<~lib/typedarray/Int16Array,i16> + (func $"std/typedarray/testReduce<~lib/typedarray/Int16Array,i16>" (local $array i32) (local $result i32) (local $2 i32) @@ -19088,8 +17713,9 @@ (local $i i32) (local $k i32) (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -19097,9 +17723,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/REDUCE<~lib/typedarray/Uint16Array,u16,u16>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/REDUCE<~lib/typedarray/Uint16Array,u16,u16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -19111,21 +17737,21 @@ local.get $initialValue local.set $initialValue|5 local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 call $~lib/typedarray/Uint16Array#get:length local.set $k loop $for-loop|0 @@ -19133,6 +17759,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|4 + local.tee $9 + i32.store offset=12 local.get $initialValue|5 local.get $ptr local.get $i @@ -19142,14 +17772,14 @@ i32.load16_u local.get $i local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 i32.const 4 global.set $~argumentsLength - local.get $fn|4 + local.get $9 i32.load call_indirect (type $6) local.set $initialValue|5 @@ -19161,17 +17791,17 @@ end end local.get $initialValue|5 - br $~lib/typedarray/REDUCE<~lib/typedarray/Uint16Array,u16,u16>|inlined.0 + br $"~lib/typedarray/REDUCE<~lib/typedarray/Uint16Array,u16,u16>|inlined.0" end - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $10 return ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint16Array,u16> + (func $"std/typedarray/testReduce<~lib/typedarray/Uint16Array,u16>" (local $array i32) (local $result i32) (local $2 i32) @@ -19261,8 +17891,9 @@ (local $i i32) (local $k i32) (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -19270,9 +17901,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/REDUCE<~lib/typedarray/Int32Array,i32,i32>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/REDUCE<~lib/typedarray/Int32Array,i32,i32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -19284,21 +17915,21 @@ local.get $initialValue local.set $initialValue|5 local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 call $~lib/typedarray/Int32Array#get:length local.set $k loop $for-loop|0 @@ -19306,6 +17937,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|4 + local.tee $9 + i32.store offset=12 local.get $initialValue|5 local.get $ptr local.get $i @@ -19315,14 +17950,14 @@ i32.load local.get $i local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 i32.const 4 global.set $~argumentsLength - local.get $fn|4 + local.get $9 i32.load call_indirect (type $6) local.set $initialValue|5 @@ -19334,17 +17969,17 @@ end end local.get $initialValue|5 - br $~lib/typedarray/REDUCE<~lib/typedarray/Int32Array,i32,i32>|inlined.0 + br $"~lib/typedarray/REDUCE<~lib/typedarray/Int32Array,i32,i32>|inlined.0" end - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $10 return ) - (func $std/typedarray/testReduce<~lib/typedarray/Int32Array,i32> + (func $"std/typedarray/testReduce<~lib/typedarray/Int32Array,i32>" (local $array i32) (local $result i32) (local $2 i32) @@ -19479,8 +18114,9 @@ (local $i i32) (local $k i32) (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -19488,9 +18124,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/REDUCE<~lib/typedarray/Uint32Array,u32,u32>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/REDUCE<~lib/typedarray/Uint32Array,u32,u32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -19502,21 +18138,21 @@ local.get $initialValue local.set $initialValue|5 local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 call $~lib/typedarray/Uint32Array#get:length local.set $k loop $for-loop|0 @@ -19524,6 +18160,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|4 + local.tee $9 + i32.store offset=12 local.get $initialValue|5 local.get $ptr local.get $i @@ -19533,14 +18173,14 @@ i32.load local.get $i local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 i32.const 4 global.set $~argumentsLength - local.get $fn|4 + local.get $9 i32.load call_indirect (type $6) local.set $initialValue|5 @@ -19552,17 +18192,17 @@ end end local.get $initialValue|5 - br $~lib/typedarray/REDUCE<~lib/typedarray/Uint32Array,u32,u32>|inlined.0 + br $"~lib/typedarray/REDUCE<~lib/typedarray/Uint32Array,u32,u32>|inlined.0" end - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $10 return ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint32Array,u32> + (func $"std/typedarray/testReduce<~lib/typedarray/Uint32Array,u32>" (local $array i32) (local $result i32) (local $2 i32) @@ -19697,9 +18337,10 @@ (local $i i32) (local $k i32) (local $9 i32) - (local $10 i64) + (local $10 i32) + (local $11 i64) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -19707,9 +18348,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/REDUCE<~lib/typedarray/Int64Array,i64,i64>|inlined.0 (result i64) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/REDUCE<~lib/typedarray/Int64Array,i64,i64>|inlined.0" (result i64) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -19721,21 +18362,21 @@ local.get $initialValue local.set $initialValue|5 local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 call $~lib/typedarray/Int64Array#get:length local.set $k loop $for-loop|0 @@ -19743,6 +18384,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|4 + local.tee $9 + i32.store offset=12 local.get $initialValue|5 local.get $ptr local.get $i @@ -19752,14 +18397,14 @@ i64.load local.get $i local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 i32.const 4 global.set $~argumentsLength - local.get $fn|4 + local.get $9 i32.load call_indirect (type $16) local.set $initialValue|5 @@ -19771,17 +18416,17 @@ end end local.get $initialValue|5 - br $~lib/typedarray/REDUCE<~lib/typedarray/Int64Array,i64,i64>|inlined.0 + br $"~lib/typedarray/REDUCE<~lib/typedarray/Int64Array,i64,i64>|inlined.0" end - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $11 return ) - (func $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64> + (func $"std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>" (local $array i32) (local $result i64) (local $2 i32) @@ -19916,9 +18561,10 @@ (local $i i32) (local $k i32) (local $9 i32) - (local $10 i64) + (local $10 i32) + (local $11 i64) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -19926,9 +18572,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/REDUCE<~lib/typedarray/Uint64Array,u64,u64>|inlined.0 (result i64) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/REDUCE<~lib/typedarray/Uint64Array,u64,u64>|inlined.0" (result i64) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -19940,21 +18586,21 @@ local.get $initialValue local.set $initialValue|5 local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 call $~lib/typedarray/Uint64Array#get:length local.set $k loop $for-loop|0 @@ -19962,6 +18608,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|4 + local.tee $9 + i32.store offset=12 local.get $initialValue|5 local.get $ptr local.get $i @@ -19971,14 +18621,14 @@ i64.load local.get $i local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 i32.const 4 global.set $~argumentsLength - local.get $fn|4 + local.get $9 i32.load call_indirect (type $16) local.set $initialValue|5 @@ -19990,17 +18640,17 @@ end end local.get $initialValue|5 - br $~lib/typedarray/REDUCE<~lib/typedarray/Uint64Array,u64,u64>|inlined.0 + br $"~lib/typedarray/REDUCE<~lib/typedarray/Uint64Array,u64,u64>|inlined.0" end - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $11 return ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint64Array,u64> + (func $"std/typedarray/testReduce<~lib/typedarray/Uint64Array,u64>" (local $array i32) (local $result i64) (local $2 i32) @@ -20135,9 +18785,10 @@ (local $i i32) (local $k i32) (local $9 i32) - (local $10 f32) + (local $10 i32) + (local $11 f32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -20145,9 +18796,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/REDUCE<~lib/typedarray/Float32Array,f32,f32>|inlined.0 (result f32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/REDUCE<~lib/typedarray/Float32Array,f32,f32>|inlined.0" (result f32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -20159,21 +18810,21 @@ local.get $initialValue local.set $initialValue|5 local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 call $~lib/typedarray/Float32Array#get:length local.set $k loop $for-loop|0 @@ -20181,6 +18832,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|4 + local.tee $9 + i32.store offset=12 local.get $initialValue|5 local.get $ptr local.get $i @@ -20190,16 +18845,16 @@ f32.load local.get $i local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 i32.const 4 global.set $~argumentsLength - local.get $fn|4 + local.get $9 i32.load - call_indirect (type $19) + call_indirect (type $20) local.set $initialValue|5 local.get $i i32.const 1 @@ -20209,17 +18864,17 @@ end end local.get $initialValue|5 - br $~lib/typedarray/REDUCE<~lib/typedarray/Float32Array,f32,f32>|inlined.0 + br $"~lib/typedarray/REDUCE<~lib/typedarray/Float32Array,f32,f32>|inlined.0" end - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $11 return ) - (func $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32> + (func $"std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>" (local $array i32) (local $result f32) (local $2 i32) @@ -20307,9 +18962,10 @@ (local $i i32) (local $k i32) (local $9 i32) - (local $10 f64) + (local $10 i32) + (local $11 f64) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -20317,9 +18973,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/REDUCE<~lib/typedarray/Float64Array,f64,f64>|inlined.0 (result f64) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/REDUCE<~lib/typedarray/Float64Array,f64,f64>|inlined.0" (result f64) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -20331,21 +18987,21 @@ local.get $initialValue local.set $initialValue|5 local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 call $~lib/typedarray/Float64Array#get:length local.set $k loop $for-loop|0 @@ -20353,6 +19009,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|4 + local.tee $9 + i32.store offset=12 local.get $initialValue|5 local.get $ptr local.get $i @@ -20362,16 +19022,16 @@ f64.load local.get $i local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 i32.const 4 global.set $~argumentsLength - local.get $fn|4 + local.get $9 i32.load - call_indirect (type $20) + call_indirect (type $21) local.set $initialValue|5 local.get $i i32.const 1 @@ -20381,17 +19041,17 @@ end end local.get $initialValue|5 - br $~lib/typedarray/REDUCE<~lib/typedarray/Float64Array,f64,f64>|inlined.0 + br $"~lib/typedarray/REDUCE<~lib/typedarray/Float64Array,f64,f64>|inlined.0" end - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $11 return ) - (func $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64> + (func $"std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>" (local $array i32) (local $result f64) (local $2 i32) @@ -20528,7 +19188,7 @@ local.get $3 return ) - (func $std/typedarray/testAt<~lib/typedarray/Int8Array,i8> + (func $"std/typedarray/testAt<~lib/typedarray/Int8Array,i8>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -20691,7 +19351,7 @@ local.get $3 return ) - (func $std/typedarray/testAt<~lib/typedarray/Uint8Array,u8> + (func $"std/typedarray/testAt<~lib/typedarray/Uint8Array,u8>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -20854,7 +19514,7 @@ local.get $3 return ) - (func $std/typedarray/testAt<~lib/typedarray/Uint8ClampedArray,u8> + (func $"std/typedarray/testAt<~lib/typedarray/Uint8ClampedArray,u8>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -21021,7 +19681,7 @@ local.get $3 return ) - (func $std/typedarray/testAt<~lib/typedarray/Int16Array,i16> + (func $"std/typedarray/testAt<~lib/typedarray/Int16Array,i16>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -21188,7 +19848,7 @@ local.get $3 return ) - (func $std/typedarray/testAt<~lib/typedarray/Uint16Array,u16> + (func $"std/typedarray/testAt<~lib/typedarray/Uint16Array,u16>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -21355,7 +20015,7 @@ local.get $3 return ) - (func $std/typedarray/testAt<~lib/typedarray/Int32Array,i32> + (func $"std/typedarray/testAt<~lib/typedarray/Int32Array,i32>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -21522,7 +20182,7 @@ local.get $3 return ) - (func $std/typedarray/testAt<~lib/typedarray/Uint32Array,u32> + (func $"std/typedarray/testAt<~lib/typedarray/Uint32Array,u32>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -21690,7 +20350,7 @@ local.get $4 return ) - (func $std/typedarray/testAt<~lib/typedarray/Int64Array,i64> + (func $"std/typedarray/testAt<~lib/typedarray/Int64Array,i64>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -21858,7 +20518,7 @@ local.get $4 return ) - (func $std/typedarray/testAt<~lib/typedarray/Uint64Array,u64> + (func $"std/typedarray/testAt<~lib/typedarray/Uint64Array,u64>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -22026,7 +20686,7 @@ local.get $4 return ) - (func $std/typedarray/testAt<~lib/typedarray/Float32Array,f32> + (func $"std/typedarray/testAt<~lib/typedarray/Float32Array,f32>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -22194,7 +20854,7 @@ local.get $4 return ) - (func $std/typedarray/testAt<~lib/typedarray/Float64Array,f64> + (func $"std/typedarray/testAt<~lib/typedarray/Float64Array,f64>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -22307,8 +20967,9 @@ (local $ptr i32) (local $i i32) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -22316,9 +20977,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Int8Array,i8,i8>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Int8Array,i8,i8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -22330,19 +20991,19 @@ local.get $initialValue local.set $initialValue|5 local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 call $~lib/typedarray/Int8Array#get:length i32.const 1 i32.sub @@ -22352,6 +21013,10 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|4 + local.tee $8 + i32.store offset=12 local.get $initialValue|5 local.get $ptr local.get $i @@ -22361,14 +21026,14 @@ i32.load8_s local.get $i local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 i32.const 4 global.set $~argumentsLength - local.get $fn|4 + local.get $8 i32.load call_indirect (type $6) local.set $initialValue|5 @@ -22380,17 +21045,17 @@ end end local.get $initialValue|5 - br $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Int8Array,i8,i8>|inlined.0 + br $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Int8Array,i8,i8>|inlined.0" end - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $9 return ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Int8Array,i8> + (func $"std/typedarray/testReduceRight<~lib/typedarray/Int8Array,i8>" (local $array i32) (local $result i32) (local $2 i32) @@ -22478,8 +21143,9 @@ (local $ptr i32) (local $i i32) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -22487,9 +21153,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint8Array,u8,u8>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint8Array,u8,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -22501,19 +21167,19 @@ local.get $initialValue local.set $initialValue|5 local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 call $~lib/typedarray/Uint8Array#get:length i32.const 1 i32.sub @@ -22523,6 +21189,10 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|4 + local.tee $8 + i32.store offset=12 local.get $initialValue|5 local.get $ptr local.get $i @@ -22532,14 +21202,14 @@ i32.load8_u local.get $i local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 i32.const 4 global.set $~argumentsLength - local.get $fn|4 + local.get $8 i32.load call_indirect (type $6) local.set $initialValue|5 @@ -22551,17 +21221,17 @@ end end local.get $initialValue|5 - br $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint8Array,u8,u8>|inlined.0 + br $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint8Array,u8,u8>|inlined.0" end - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $9 return ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8Array,u8> + (func $"std/typedarray/testReduceRight<~lib/typedarray/Uint8Array,u8>" (local $array i32) (local $result i32) (local $2 i32) @@ -22650,8 +21320,9 @@ (local $ptr i32) (local $i i32) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -22659,9 +21330,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint8ClampedArray,u8,u8>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint8ClampedArray,u8,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -22673,19 +21344,19 @@ local.get $initialValue local.set $initialValue|5 local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 call $~lib/typedarray/Uint8ClampedArray#get:length i32.const 1 i32.sub @@ -22695,6 +21366,10 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|4 + local.tee $8 + i32.store offset=12 local.get $initialValue|5 local.get $ptr local.get $i @@ -22704,14 +21379,14 @@ i32.load8_u local.get $i local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 i32.const 4 global.set $~argumentsLength - local.get $fn|4 + local.get $8 i32.load call_indirect (type $6) local.set $initialValue|5 @@ -22723,17 +21398,17 @@ end end local.get $initialValue|5 - br $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint8ClampedArray,u8,u8>|inlined.0 + br $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint8ClampedArray,u8,u8>|inlined.0" end - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $9 return ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8ClampedArray,u8> + (func $"std/typedarray/testReduceRight<~lib/typedarray/Uint8ClampedArray,u8>" (local $array i32) (local $result i32) (local $2 i32) @@ -22822,8 +21497,9 @@ (local $ptr i32) (local $i i32) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -22831,9 +21507,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Int16Array,i16,i16>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Int16Array,i16,i16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -22845,19 +21521,19 @@ local.get $initialValue local.set $initialValue|5 local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 call $~lib/typedarray/Int16Array#get:length i32.const 1 i32.sub @@ -22867,6 +21543,10 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|4 + local.tee $8 + i32.store offset=12 local.get $initialValue|5 local.get $ptr local.get $i @@ -22876,14 +21556,14 @@ i32.load16_s local.get $i local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 i32.const 4 global.set $~argumentsLength - local.get $fn|4 + local.get $8 i32.load call_indirect (type $6) local.set $initialValue|5 @@ -22895,17 +21575,17 @@ end end local.get $initialValue|5 - br $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Int16Array,i16,i16>|inlined.0 + br $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Int16Array,i16,i16>|inlined.0" end - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $9 return ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Int16Array,i16> + (func $"std/typedarray/testReduceRight<~lib/typedarray/Int16Array,i16>" (local $array i32) (local $result i32) (local $2 i32) @@ -22993,8 +21673,9 @@ (local $ptr i32) (local $i i32) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -23002,9 +21683,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint16Array,u16,u16>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint16Array,u16,u16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -23016,19 +21697,19 @@ local.get $initialValue local.set $initialValue|5 local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 call $~lib/typedarray/Uint16Array#get:length i32.const 1 i32.sub @@ -23038,6 +21719,10 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|4 + local.tee $8 + i32.store offset=12 local.get $initialValue|5 local.get $ptr local.get $i @@ -23047,14 +21732,14 @@ i32.load16_u local.get $i local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 i32.const 4 global.set $~argumentsLength - local.get $fn|4 + local.get $8 i32.load call_indirect (type $6) local.set $initialValue|5 @@ -23066,17 +21751,17 @@ end end local.get $initialValue|5 - br $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint16Array,u16,u16>|inlined.0 + br $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint16Array,u16,u16>|inlined.0" end - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $9 return ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint16Array,u16> + (func $"std/typedarray/testReduceRight<~lib/typedarray/Uint16Array,u16>" (local $array i32) (local $result i32) (local $2 i32) @@ -23165,8 +21850,9 @@ (local $ptr i32) (local $i i32) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -23174,9 +21860,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Int32Array,i32,i32>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Int32Array,i32,i32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -23188,19 +21874,19 @@ local.get $initialValue local.set $initialValue|5 local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 call $~lib/typedarray/Int32Array#get:length i32.const 1 i32.sub @@ -23210,6 +21896,10 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|4 + local.tee $8 + i32.store offset=12 local.get $initialValue|5 local.get $ptr local.get $i @@ -23219,14 +21909,14 @@ i32.load local.get $i local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 i32.const 4 global.set $~argumentsLength - local.get $fn|4 + local.get $8 i32.load call_indirect (type $6) local.set $initialValue|5 @@ -23238,17 +21928,17 @@ end end local.get $initialValue|5 - br $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Int32Array,i32,i32>|inlined.0 + br $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Int32Array,i32,i32>|inlined.0" end - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $9 return ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Int32Array,i32> + (func $"std/typedarray/testReduceRight<~lib/typedarray/Int32Array,i32>" (local $array i32) (local $result i32) (local $2 i32) @@ -23335,8 +22025,9 @@ (local $ptr i32) (local $i i32) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -23344,9 +22035,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint32Array,u32,u32>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint32Array,u32,u32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -23358,19 +22049,19 @@ local.get $initialValue local.set $initialValue|5 local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 call $~lib/typedarray/Uint32Array#get:length i32.const 1 i32.sub @@ -23380,6 +22071,10 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|4 + local.tee $8 + i32.store offset=12 local.get $initialValue|5 local.get $ptr local.get $i @@ -23389,14 +22084,14 @@ i32.load local.get $i local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 i32.const 4 global.set $~argumentsLength - local.get $fn|4 + local.get $8 i32.load call_indirect (type $6) local.set $initialValue|5 @@ -23408,17 +22103,17 @@ end end local.get $initialValue|5 - br $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint32Array,u32,u32>|inlined.0 + br $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint32Array,u32,u32>|inlined.0" end - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $9 return ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint32Array,u32> + (func $"std/typedarray/testReduceRight<~lib/typedarray/Uint32Array,u32>" (local $array i32) (local $result i32) (local $2 i32) @@ -23505,9 +22200,10 @@ (local $ptr i32) (local $i i32) (local $8 i32) - (local $9 i64) + (local $9 i32) + (local $10 i64) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -23515,9 +22211,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Int64Array,i64,i64>|inlined.0 (result i64) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Int64Array,i64,i64>|inlined.0" (result i64) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -23529,19 +22225,19 @@ local.get $initialValue local.set $initialValue|5 local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 call $~lib/typedarray/Int64Array#get:length i32.const 1 i32.sub @@ -23551,6 +22247,10 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|4 + local.tee $8 + i32.store offset=12 local.get $initialValue|5 local.get $ptr local.get $i @@ -23560,14 +22260,14 @@ i64.load local.get $i local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 i32.const 4 global.set $~argumentsLength - local.get $fn|4 + local.get $8 i32.load call_indirect (type $16) local.set $initialValue|5 @@ -23579,17 +22279,17 @@ end end local.get $initialValue|5 - br $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Int64Array,i64,i64>|inlined.0 + br $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Int64Array,i64,i64>|inlined.0" end - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $10 return ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Int64Array,i64> + (func $"std/typedarray/testReduceRight<~lib/typedarray/Int64Array,i64>" (local $array i32) (local $result i64) (local $2 i32) @@ -23676,9 +22376,10 @@ (local $ptr i32) (local $i i32) (local $8 i32) - (local $9 i64) + (local $9 i32) + (local $10 i64) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -23686,9 +22387,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint64Array,u64,u64>|inlined.0 (result i64) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint64Array,u64,u64>|inlined.0" (result i64) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -23700,19 +22401,19 @@ local.get $initialValue local.set $initialValue|5 local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 call $~lib/typedarray/Uint64Array#get:length i32.const 1 i32.sub @@ -23722,6 +22423,10 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|4 + local.tee $8 + i32.store offset=12 local.get $initialValue|5 local.get $ptr local.get $i @@ -23731,14 +22436,14 @@ i64.load local.get $i local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 i32.const 4 global.set $~argumentsLength - local.get $fn|4 + local.get $8 i32.load call_indirect (type $16) local.set $initialValue|5 @@ -23750,17 +22455,17 @@ end end local.get $initialValue|5 - br $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint64Array,u64,u64>|inlined.0 + br $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint64Array,u64,u64>|inlined.0" end - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $10 return ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint64Array,u64> + (func $"std/typedarray/testReduceRight<~lib/typedarray/Uint64Array,u64>" (local $array i32) (local $result i64) (local $2 i32) @@ -23847,9 +22552,10 @@ (local $ptr i32) (local $i i32) (local $8 i32) - (local $9 f32) + (local $9 i32) + (local $10 f32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -23857,9 +22563,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Float32Array,f32,f32>|inlined.0 (result f32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Float32Array,f32,f32>|inlined.0" (result f32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -23871,19 +22577,19 @@ local.get $initialValue local.set $initialValue|5 local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 call $~lib/typedarray/Float32Array#get:length i32.const 1 i32.sub @@ -23893,6 +22599,10 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|4 + local.tee $8 + i32.store offset=12 local.get $initialValue|5 local.get $ptr local.get $i @@ -23902,16 +22612,16 @@ f32.load local.get $i local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 i32.const 4 global.set $~argumentsLength - local.get $fn|4 + local.get $8 i32.load - call_indirect (type $19) + call_indirect (type $20) local.set $initialValue|5 local.get $i i32.const 1 @@ -23921,17 +22631,17 @@ end end local.get $initialValue|5 - br $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Float32Array,f32,f32>|inlined.0 + br $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Float32Array,f32,f32>|inlined.0" end - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $10 return ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Float32Array,f32> + (func $"std/typedarray/testReduceRight<~lib/typedarray/Float32Array,f32>" (local $array i32) (local $result f32) (local $2 i32) @@ -24018,9 +22728,10 @@ (local $ptr i32) (local $i i32) (local $8 i32) - (local $9 f64) + (local $9 i32) + (local $10 f64) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -24028,9 +22739,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Float64Array,f64,f64>|inlined.0 (result f64) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Float64Array,f64,f64>|inlined.0" (result f64) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -24042,19 +22753,19 @@ local.get $initialValue local.set $initialValue|5 local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 call $~lib/typedarray/Float64Array#get:length i32.const 1 i32.sub @@ -24064,6 +22775,10 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|4 + local.tee $8 + i32.store offset=12 local.get $initialValue|5 local.get $ptr local.get $i @@ -24073,16 +22788,16 @@ f64.load local.get $i local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 i32.const 4 global.set $~argumentsLength - local.get $fn|4 + local.get $8 i32.load - call_indirect (type $20) + call_indirect (type $21) local.set $initialValue|5 local.get $i i32.const 1 @@ -24092,17 +22807,17 @@ end end local.get $initialValue|5 - br $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Float64Array,f64,f64>|inlined.0 + br $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Float64Array,f64,f64>|inlined.0" end - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $10 return ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Float64Array,f64> + (func $"std/typedarray/testReduceRight<~lib/typedarray/Float64Array,f64>" (local $array i32) (local $result f64) (local $2 i32) @@ -24192,16 +22907,17 @@ (local $buf i32) (local $i i32) (local $10 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 + i32.const 24 memory.fill - block $~lib/typedarray/MAP<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) + block $"~lib/typedarray/MAP<~lib/typedarray/Int8Array,i8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -24211,19 +22927,19 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 call $~lib/typedarray/Int8Array#get:length local.set $len local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $len @@ -24254,6 +22970,10 @@ i32.const 0 i32.shl i32.add + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $10 + i32.store offset=20 local.get $ptr local.get $i i32.const 0 @@ -24262,14 +22982,14 @@ i32.load8_s local.get $i local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $10 i32.load call_indirect (type $1) i32.store8 @@ -24294,17 +23014,17 @@ local.get $byteLength i32.store offset=8 local.get $out - br $~lib/typedarray/MAP<~lib/typedarray/Int8Array,i8>|inlined.0 + br $"~lib/typedarray/MAP<~lib/typedarray/Int8Array,i8>|inlined.0" end - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $11 return ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8> + (func $"std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>" (local $source i32) (local $result i32) (local $2 i32) @@ -24440,16 +23160,17 @@ (local $buf i32) (local $i i32) (local $10 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 + i32.const 24 memory.fill - block $~lib/typedarray/MAP<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) + block $"~lib/typedarray/MAP<~lib/typedarray/Uint8Array,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -24459,19 +23180,19 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 call $~lib/typedarray/Uint8Array#get:length local.set $len local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $len @@ -24502,6 +23223,10 @@ i32.const 0 i32.shl i32.add + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $10 + i32.store offset=20 local.get $ptr local.get $i i32.const 0 @@ -24510,14 +23235,14 @@ i32.load8_u local.get $i local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $10 i32.load call_indirect (type $1) i32.store8 @@ -24542,14 +23267,14 @@ local.get $byteLength i32.store offset=8 local.get $out - br $~lib/typedarray/MAP<~lib/typedarray/Uint8Array,u8>|inlined.0 + br $"~lib/typedarray/MAP<~lib/typedarray/Uint8Array,u8>|inlined.0" end - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $11 return ) (func $~lib/typedarray/Uint8Array#__get (param $this i32) (param $index i32) (result i32) @@ -24597,7 +23322,7 @@ local.get $2 return ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8> + (func $"std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8>" (local $source i32) (local $result i32) (local $2 i32) @@ -24733,16 +23458,17 @@ (local $buf i32) (local $i i32) (local $10 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 + i32.const 24 memory.fill - block $~lib/typedarray/MAP<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) + block $"~lib/typedarray/MAP<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -24752,19 +23478,19 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 call $~lib/typedarray/Uint8ClampedArray#get:length local.set $len local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $len @@ -24795,6 +23521,10 @@ i32.const 0 i32.shl i32.add + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $10 + i32.store offset=20 local.get $ptr local.get $i i32.const 0 @@ -24803,14 +23533,14 @@ i32.load8_u local.get $i local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $10 i32.load call_indirect (type $1) i32.store8 @@ -24835,17 +23565,17 @@ local.get $byteLength i32.store offset=8 local.get $out - br $~lib/typedarray/MAP<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + br $"~lib/typedarray/MAP<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" end - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $11 return ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8> + (func $"std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8>" (local $source i32) (local $result i32) (local $2 i32) @@ -24981,16 +23711,17 @@ (local $buf i32) (local $i i32) (local $10 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 + i32.const 24 memory.fill - block $~lib/typedarray/MAP<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) + block $"~lib/typedarray/MAP<~lib/typedarray/Int16Array,i16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -25000,19 +23731,19 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 call $~lib/typedarray/Int16Array#get:length local.set $len local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $len @@ -25043,6 +23774,10 @@ i32.const 1 i32.shl i32.add + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $10 + i32.store offset=20 local.get $ptr local.get $i i32.const 1 @@ -25051,14 +23786,14 @@ i32.load16_s local.get $i local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $10 i32.load call_indirect (type $1) i32.store16 @@ -25083,14 +23818,14 @@ local.get $byteLength i32.store offset=8 local.get $out - br $~lib/typedarray/MAP<~lib/typedarray/Int16Array,i16>|inlined.0 + br $"~lib/typedarray/MAP<~lib/typedarray/Int16Array,i16>|inlined.0" end - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $11 return ) (func $~lib/typedarray/Int16Array#__get (param $this i32) (param $index i32) (result i32) @@ -25142,7 +23877,7 @@ local.get $2 return ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16> + (func $"std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16>" (local $source i32) (local $result i32) (local $2 i32) @@ -25278,16 +24013,17 @@ (local $buf i32) (local $i i32) (local $10 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 + i32.const 24 memory.fill - block $~lib/typedarray/MAP<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) + block $"~lib/typedarray/MAP<~lib/typedarray/Uint16Array,u16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -25297,19 +24033,19 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 call $~lib/typedarray/Uint16Array#get:length local.set $len local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $len @@ -25340,6 +24076,10 @@ i32.const 1 i32.shl i32.add + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $10 + i32.store offset=20 local.get $ptr local.get $i i32.const 1 @@ -25348,14 +24088,14 @@ i32.load16_u local.get $i local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $10 i32.load call_indirect (type $1) i32.store16 @@ -25380,14 +24120,14 @@ local.get $byteLength i32.store offset=8 local.get $out - br $~lib/typedarray/MAP<~lib/typedarray/Uint16Array,u16>|inlined.0 + br $"~lib/typedarray/MAP<~lib/typedarray/Uint16Array,u16>|inlined.0" end - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $11 return ) (func $~lib/typedarray/Uint16Array#__get (param $this i32) (param $index i32) (result i32) @@ -25439,7 +24179,7 @@ local.get $2 return ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16> + (func $"std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16>" (local $source i32) (local $result i32) (local $2 i32) @@ -25575,16 +24315,17 @@ (local $buf i32) (local $i i32) (local $10 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 + i32.const 24 memory.fill - block $~lib/typedarray/MAP<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + block $"~lib/typedarray/MAP<~lib/typedarray/Int32Array,i32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -25594,19 +24335,19 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 call $~lib/typedarray/Int32Array#get:length local.set $len local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $len @@ -25637,6 +24378,10 @@ i32.const 2 i32.shl i32.add + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $10 + i32.store offset=20 local.get $ptr local.get $i i32.const 2 @@ -25645,14 +24390,14 @@ i32.load local.get $i local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $10 i32.load call_indirect (type $1) i32.store @@ -25677,17 +24422,17 @@ local.get $byteLength i32.store offset=8 local.get $out - br $~lib/typedarray/MAP<~lib/typedarray/Int32Array,i32>|inlined.0 + br $"~lib/typedarray/MAP<~lib/typedarray/Int32Array,i32>|inlined.0" end - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $11 return ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32> + (func $"std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32>" (local $source i32) (local $result i32) (local $2 i32) @@ -25823,16 +24568,17 @@ (local $buf i32) (local $i i32) (local $10 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 + i32.const 24 memory.fill - block $~lib/typedarray/MAP<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) + block $"~lib/typedarray/MAP<~lib/typedarray/Uint32Array,u32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -25842,19 +24588,19 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 call $~lib/typedarray/Uint32Array#get:length local.set $len local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $len @@ -25885,6 +24631,10 @@ i32.const 2 i32.shl i32.add + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $10 + i32.store offset=20 local.get $ptr local.get $i i32.const 2 @@ -25893,14 +24643,14 @@ i32.load local.get $i local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $10 i32.load call_indirect (type $1) i32.store @@ -25925,14 +24675,14 @@ local.get $byteLength i32.store offset=8 local.get $out - br $~lib/typedarray/MAP<~lib/typedarray/Uint32Array,u32>|inlined.0 + br $"~lib/typedarray/MAP<~lib/typedarray/Uint32Array,u32>|inlined.0" end - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $11 return ) (func $~lib/typedarray/Uint32Array#__get (param $this i32) (param $index i32) (result i32) @@ -25984,7 +24734,7 @@ local.get $2 return ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32> + (func $"std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32>" (local $source i32) (local $result i32) (local $2 i32) @@ -26120,16 +24870,17 @@ (local $buf i32) (local $i i32) (local $10 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 + i32.const 24 memory.fill - block $~lib/typedarray/MAP<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) + block $"~lib/typedarray/MAP<~lib/typedarray/Int64Array,i64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -26139,19 +24890,19 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 call $~lib/typedarray/Int64Array#get:length local.set $len local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $len @@ -26182,6 +24933,10 @@ i32.const 3 i32.shl i32.add + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $10 + i32.store offset=20 local.get $ptr local.get $i i32.const 3 @@ -26190,16 +24945,16 @@ i64.load local.get $i local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $10 i32.load - call_indirect (type $21) + call_indirect (type $22) i64.store local.get $i i32.const 1 @@ -26222,14 +24977,14 @@ local.get $byteLength i32.store offset=8 local.get $out - br $~lib/typedarray/MAP<~lib/typedarray/Int64Array,i64>|inlined.0 + br $"~lib/typedarray/MAP<~lib/typedarray/Int64Array,i64>|inlined.0" end - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $11 return ) (func $~lib/typedarray/Int64Array#__get (param $this i32) (param $index i32) (result i64) @@ -26282,7 +25037,7 @@ local.get $3 return ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64> + (func $"std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>" (local $source i32) (local $result i32) (local $2 i32) @@ -26418,16 +25173,17 @@ (local $buf i32) (local $i i32) (local $10 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 + i32.const 24 memory.fill - block $~lib/typedarray/MAP<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) + block $"~lib/typedarray/MAP<~lib/typedarray/Uint64Array,u64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -26437,19 +25193,19 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 call $~lib/typedarray/Uint64Array#get:length local.set $len local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $len @@ -26480,6 +25236,10 @@ i32.const 3 i32.shl i32.add + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $10 + i32.store offset=20 local.get $ptr local.get $i i32.const 3 @@ -26488,16 +25248,16 @@ i64.load local.get $i local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $10 i32.load - call_indirect (type $21) + call_indirect (type $22) i64.store local.get $i i32.const 1 @@ -26520,14 +25280,14 @@ local.get $byteLength i32.store offset=8 local.get $out - br $~lib/typedarray/MAP<~lib/typedarray/Uint64Array,u64>|inlined.0 + br $"~lib/typedarray/MAP<~lib/typedarray/Uint64Array,u64>|inlined.0" end - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $11 return ) (func $~lib/typedarray/Uint64Array#__get (param $this i32) (param $index i32) (result i64) @@ -26580,7 +25340,7 @@ local.get $3 return ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64> + (func $"std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64>" (local $source i32) (local $result i32) (local $2 i32) @@ -26716,16 +25476,17 @@ (local $buf i32) (local $i i32) (local $10 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 + i32.const 24 memory.fill - block $~lib/typedarray/MAP<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + block $"~lib/typedarray/MAP<~lib/typedarray/Float32Array,f32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -26735,19 +25496,19 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 call $~lib/typedarray/Float32Array#get:length local.set $len local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $len @@ -26778,6 +25539,10 @@ i32.const 2 i32.shl i32.add + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $10 + i32.store offset=20 local.get $ptr local.get $i i32.const 2 @@ -26786,14 +25551,14 @@ f32.load local.get $i local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $10 i32.load call_indirect (type $30) f32.store @@ -26818,14 +25583,14 @@ local.get $byteLength i32.store offset=8 local.get $out - br $~lib/typedarray/MAP<~lib/typedarray/Float32Array,f32>|inlined.0 + br $"~lib/typedarray/MAP<~lib/typedarray/Float32Array,f32>|inlined.0" end - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $11 return ) (func $~lib/typedarray/Float32Array#__get (param $this i32) (param $index i32) (result f32) @@ -26878,7 +25643,7 @@ local.get $3 return ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32> + (func $"std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>" (local $source i32) (local $result i32) (local $2 i32) @@ -27014,16 +25779,17 @@ (local $buf i32) (local $i i32) (local $10 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 + i32.const 24 memory.fill - block $~lib/typedarray/MAP<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + block $"~lib/typedarray/MAP<~lib/typedarray/Float64Array,f64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -27033,19 +25799,19 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 call $~lib/typedarray/Float64Array#get:length local.set $len local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $len @@ -27076,6 +25842,10 @@ i32.const 3 i32.shl i32.add + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $10 + i32.store offset=20 local.get $ptr local.get $i i32.const 3 @@ -27084,14 +25854,14 @@ f64.load local.get $i local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $10 i32.load call_indirect (type $31) f64.store @@ -27116,17 +25886,17 @@ local.get $byteLength i32.store offset=8 local.get $out - br $~lib/typedarray/MAP<~lib/typedarray/Float64Array,f64>|inlined.0 + br $"~lib/typedarray/MAP<~lib/typedarray/Float64Array,f64>|inlined.0" end - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $11 return ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64> + (func $"std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>" (local $source i32) (local $result i32) (local $2 i32) @@ -27275,7 +26045,7 @@ i32.const 0 i32.const 20 memory.fill - block $~lib/typedarray/FILTER<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) + block $"~lib/typedarray/FILTER<~lib/typedarray/Int8Array,i8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -27386,7 +26156,7 @@ local.get $data i32.store offset=4 local.get $out - br $~lib/typedarray/FILTER<~lib/typedarray/Int8Array,i8>|inlined.0 + br $"~lib/typedarray/FILTER<~lib/typedarray/Int8Array,i8>|inlined.0" end local.set $14 global.get $~lib/memory/__stack_pointer @@ -27396,7 +26166,7 @@ local.get $14 return ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8> + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8>" (local $source i32) (local $result i32) (local $2 i32) @@ -27599,7 +26369,7 @@ i32.const 0 i32.const 20 memory.fill - block $~lib/typedarray/FILTER<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) + block $"~lib/typedarray/FILTER<~lib/typedarray/Uint8Array,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -27710,7 +26480,7 @@ local.get $data i32.store offset=4 local.get $out - br $~lib/typedarray/FILTER<~lib/typedarray/Uint8Array,u8>|inlined.0 + br $"~lib/typedarray/FILTER<~lib/typedarray/Uint8Array,u8>|inlined.0" end local.set $14 global.get $~lib/memory/__stack_pointer @@ -27720,7 +26490,7 @@ local.get $14 return ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8> + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>" (local $source i32) (local $result i32) (local $2 i32) @@ -27923,7 +26693,7 @@ i32.const 0 i32.const 20 memory.fill - block $~lib/typedarray/FILTER<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) + block $"~lib/typedarray/FILTER<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -28034,7 +26804,7 @@ local.get $data i32.store offset=4 local.get $out - br $~lib/typedarray/FILTER<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + br $"~lib/typedarray/FILTER<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" end local.set $14 global.get $~lib/memory/__stack_pointer @@ -28044,7 +26814,7 @@ local.get $14 return ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8> + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8>" (local $source i32) (local $result i32) (local $2 i32) @@ -28247,7 +27017,7 @@ i32.const 0 i32.const 20 memory.fill - block $~lib/typedarray/FILTER<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) + block $"~lib/typedarray/FILTER<~lib/typedarray/Int16Array,i16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -28358,7 +27128,7 @@ local.get $data i32.store offset=4 local.get $out - br $~lib/typedarray/FILTER<~lib/typedarray/Int16Array,i16>|inlined.0 + br $"~lib/typedarray/FILTER<~lib/typedarray/Int16Array,i16>|inlined.0" end local.set $14 global.get $~lib/memory/__stack_pointer @@ -28368,7 +27138,7 @@ local.get $14 return ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16> + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16>" (local $source i32) (local $result i32) (local $2 i32) @@ -28571,7 +27341,7 @@ i32.const 0 i32.const 20 memory.fill - block $~lib/typedarray/FILTER<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) + block $"~lib/typedarray/FILTER<~lib/typedarray/Uint16Array,u16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -28682,7 +27452,7 @@ local.get $data i32.store offset=4 local.get $out - br $~lib/typedarray/FILTER<~lib/typedarray/Uint16Array,u16>|inlined.0 + br $"~lib/typedarray/FILTER<~lib/typedarray/Uint16Array,u16>|inlined.0" end local.set $14 global.get $~lib/memory/__stack_pointer @@ -28692,7 +27462,7 @@ local.get $14 return ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16> + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16>" (local $source i32) (local $result i32) (local $2 i32) @@ -28895,7 +27665,7 @@ i32.const 0 i32.const 20 memory.fill - block $~lib/typedarray/FILTER<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + block $"~lib/typedarray/FILTER<~lib/typedarray/Int32Array,i32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -29006,7 +27776,7 @@ local.get $data i32.store offset=4 local.get $out - br $~lib/typedarray/FILTER<~lib/typedarray/Int32Array,i32>|inlined.0 + br $"~lib/typedarray/FILTER<~lib/typedarray/Int32Array,i32>|inlined.0" end local.set $14 global.get $~lib/memory/__stack_pointer @@ -29016,7 +27786,7 @@ local.get $14 return ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32> + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32>" (local $source i32) (local $result i32) (local $2 i32) @@ -29219,7 +27989,7 @@ i32.const 0 i32.const 20 memory.fill - block $~lib/typedarray/FILTER<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) + block $"~lib/typedarray/FILTER<~lib/typedarray/Uint32Array,u32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -29330,7 +28100,7 @@ local.get $data i32.store offset=4 local.get $out - br $~lib/typedarray/FILTER<~lib/typedarray/Uint32Array,u32>|inlined.0 + br $"~lib/typedarray/FILTER<~lib/typedarray/Uint32Array,u32>|inlined.0" end local.set $14 global.get $~lib/memory/__stack_pointer @@ -29340,7 +28110,7 @@ local.get $14 return ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32> + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32>" (local $source i32) (local $result i32) (local $2 i32) @@ -29543,7 +28313,7 @@ i32.const 0 i32.const 20 memory.fill - block $~lib/typedarray/FILTER<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) + block $"~lib/typedarray/FILTER<~lib/typedarray/Int64Array,i64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -29654,7 +28424,7 @@ local.get $data i32.store offset=4 local.get $out - br $~lib/typedarray/FILTER<~lib/typedarray/Int64Array,i64>|inlined.0 + br $"~lib/typedarray/FILTER<~lib/typedarray/Int64Array,i64>|inlined.0" end local.set $14 global.get $~lib/memory/__stack_pointer @@ -29664,7 +28434,7 @@ local.get $14 return ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64> + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64>" (local $source i32) (local $result i32) (local $2 i32) @@ -29867,7 +28637,7 @@ i32.const 0 i32.const 20 memory.fill - block $~lib/typedarray/FILTER<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) + block $"~lib/typedarray/FILTER<~lib/typedarray/Uint64Array,u64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -29978,7 +28748,7 @@ local.get $data i32.store offset=4 local.get $out - br $~lib/typedarray/FILTER<~lib/typedarray/Uint64Array,u64>|inlined.0 + br $"~lib/typedarray/FILTER<~lib/typedarray/Uint64Array,u64>|inlined.0" end local.set $14 global.get $~lib/memory/__stack_pointer @@ -29988,7 +28758,7 @@ local.get $14 return ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64> + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64>" (local $source i32) (local $result i32) (local $2 i32) @@ -30191,7 +28961,7 @@ i32.const 0 i32.const 20 memory.fill - block $~lib/typedarray/FILTER<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + block $"~lib/typedarray/FILTER<~lib/typedarray/Float32Array,f32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -30302,7 +29072,7 @@ local.get $data i32.store offset=4 local.get $out - br $~lib/typedarray/FILTER<~lib/typedarray/Float32Array,f32>|inlined.0 + br $"~lib/typedarray/FILTER<~lib/typedarray/Float32Array,f32>|inlined.0" end local.set $14 global.get $~lib/memory/__stack_pointer @@ -30312,7 +29082,7 @@ local.get $14 return ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32> + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32>" (local $source i32) (local $result i32) (local $2 i32) @@ -30515,7 +29285,7 @@ i32.const 0 i32.const 20 memory.fill - block $~lib/typedarray/FILTER<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + block $"~lib/typedarray/FILTER<~lib/typedarray/Float64Array,f64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -30626,7 +29396,7 @@ local.get $data i32.store offset=4 local.get $out - br $~lib/typedarray/FILTER<~lib/typedarray/Float64Array,f64>|inlined.0 + br $"~lib/typedarray/FILTER<~lib/typedarray/Float64Array,f64>|inlined.0" end local.set $14 global.get $~lib/memory/__stack_pointer @@ -30636,7 +29406,7 @@ local.get $14 return ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64> + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64>" (local $source i32) (local $result i32) (local $2 i32) @@ -30823,8 +29593,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -30832,9 +29603,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -30844,21 +29615,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Int8Array#get:length local.set $k loop $for-loop|0 @@ -30866,6 +29637,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 0 @@ -30874,19 +29649,19 @@ i32.load8_s local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $1) if i32.const 1 - br $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 + br $"~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0" end local.get $i i32.const 1 @@ -30896,17 +29671,17 @@ end end i32.const 0 - br $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 + br $"~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8> + (func $"std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>" (local $source i32) (local $result i32) (local $failResult i32) @@ -31018,8 +29793,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -31027,9 +29803,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -31039,21 +29815,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Uint8Array#get:length local.set $k loop $for-loop|0 @@ -31061,6 +29837,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 0 @@ -31069,19 +29849,19 @@ i32.load8_u local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $1) if i32.const 1 - br $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 + br $"~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0" end local.get $i i32.const 1 @@ -31091,17 +29871,17 @@ end end i32.const 0 - br $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 + br $"~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8> + (func $"std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>" (local $source i32) (local $result i32) (local $failResult i32) @@ -31213,8 +29993,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -31222,9 +30003,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/SOME<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/SOME<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -31234,21 +30015,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Uint8ClampedArray#get:length local.set $k loop $for-loop|0 @@ -31256,6 +30037,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 0 @@ -31264,19 +30049,19 @@ i32.load8_u local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $1) if i32.const 1 - br $~lib/typedarray/SOME<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + br $"~lib/typedarray/SOME<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" end local.get $i i32.const 1 @@ -31286,17 +30071,17 @@ end end i32.const 0 - br $~lib/typedarray/SOME<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + br $"~lib/typedarray/SOME<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8> + (func $"std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>" (local $source i32) (local $result i32) (local $failResult i32) @@ -31408,8 +30193,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -31417,9 +30203,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -31429,21 +30215,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Int16Array#get:length local.set $k loop $for-loop|0 @@ -31451,6 +30237,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 1 @@ -31459,19 +30249,19 @@ i32.load16_s local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $1) if i32.const 1 - br $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 + br $"~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0" end local.get $i i32.const 1 @@ -31481,17 +30271,17 @@ end end i32.const 0 - br $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 + br $"~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16> + (func $"std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>" (local $source i32) (local $result i32) (local $failResult i32) @@ -31603,8 +30393,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -31612,9 +30403,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -31624,21 +30415,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Uint16Array#get:length local.set $k loop $for-loop|0 @@ -31646,6 +30437,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 1 @@ -31654,19 +30449,19 @@ i32.load16_u local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $1) if i32.const 1 - br $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 + br $"~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0" end local.get $i i32.const 1 @@ -31676,17 +30471,17 @@ end end i32.const 0 - br $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 + br $"~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16> + (func $"std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>" (local $source i32) (local $result i32) (local $failResult i32) @@ -31798,8 +30593,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -31807,9 +30603,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -31819,21 +30615,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Int32Array#get:length local.set $k loop $for-loop|0 @@ -31841,6 +30637,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 2 @@ -31849,19 +30649,19 @@ i32.load local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $1) if i32.const 1 - br $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 + br $"~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0" end local.get $i i32.const 1 @@ -31871,17 +30671,17 @@ end end i32.const 0 - br $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 + br $"~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32> + (func $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>" (local $source i32) (local $result i32) (local $failResult i32) @@ -31993,8 +30793,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -32002,9 +30803,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -32014,21 +30815,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Uint32Array#get:length local.set $k loop $for-loop|0 @@ -32036,6 +30837,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 2 @@ -32044,19 +30849,19 @@ i32.load local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $1) if i32.const 1 - br $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 + br $"~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0" end local.get $i i32.const 1 @@ -32066,17 +30871,17 @@ end end i32.const 0 - br $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 + br $"~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32> + (func $"std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>" (local $source i32) (local $result i32) (local $failResult i32) @@ -32188,8 +30993,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -32197,9 +31003,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -32209,21 +31015,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Int64Array#get:length local.set $k loop $for-loop|0 @@ -32231,6 +31037,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 3 @@ -32239,19 +31049,19 @@ i64.load local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $7) if i32.const 1 - br $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 + br $"~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0" end local.get $i i32.const 1 @@ -32261,17 +31071,17 @@ end end i32.const 0 - br $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 + br $"~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64> + (func $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>" (local $source i32) (local $result i32) (local $failResult i32) @@ -32383,8 +31193,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -32392,9 +31203,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -32404,21 +31215,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Uint64Array#get:length local.set $k loop $for-loop|0 @@ -32426,6 +31237,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 3 @@ -32434,19 +31249,19 @@ i64.load local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $7) if i32.const 1 - br $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0 + br $"~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0" end local.get $i i32.const 1 @@ -32456,17 +31271,17 @@ end end i32.const 0 - br $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0 + br $"~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64> + (func $"std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>" (local $source i32) (local $result i32) (local $failResult i32) @@ -32578,8 +31393,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -32587,9 +31403,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -32599,21 +31415,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Float32Array#get:length local.set $k loop $for-loop|0 @@ -32621,6 +31437,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 2 @@ -32629,19 +31449,19 @@ f32.load local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $9) if i32.const 1 - br $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 + br $"~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0" end local.get $i i32.const 1 @@ -32651,17 +31471,17 @@ end end i32.const 0 - br $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 + br $"~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32> + (func $"std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>" (local $source i32) (local $result i32) (local $failResult i32) @@ -32773,8 +31593,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -32782,9 +31603,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -32794,21 +31615,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Float64Array#get:length local.set $k loop $for-loop|0 @@ -32816,6 +31637,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 3 @@ -32824,19 +31649,19 @@ f64.load local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $10) if i32.const 1 - br $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 + br $"~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0" end local.get $i i32.const 1 @@ -32846,17 +31671,17 @@ end end i32.const 0 - br $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 + br $"~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64> + (func $"std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>" (local $source i32) (local $result i32) (local $failResult i32) @@ -32968,8 +31793,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -32977,9 +31803,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -32989,21 +31815,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Int8Array#get:length local.set $k loop $for-loop|0 @@ -33011,6 +31837,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 0 @@ -33019,19 +31849,19 @@ i32.load8_s local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $1) if local.get $i - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 + br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0" end local.get $i i32.const 1 @@ -33041,17 +31871,17 @@ end end i32.const -1 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 + br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8> + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>" (local $source i32) (local $result i32) (local $failResult i32) @@ -33164,8 +31994,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -33173,9 +32004,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -33185,21 +32016,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Uint8Array#get:length local.set $k loop $for-loop|0 @@ -33207,6 +32038,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 0 @@ -33215,19 +32050,19 @@ i32.load8_u local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $1) if local.get $i - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 + br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0" end local.get $i i32.const 1 @@ -33237,17 +32072,17 @@ end end i32.const -1 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 + br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8> + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>" (local $source i32) (local $result i32) (local $failResult i32) @@ -33360,8 +32195,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -33369,9 +32205,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -33381,21 +32217,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Uint8ClampedArray#get:length local.set $k loop $for-loop|0 @@ -33403,6 +32239,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 0 @@ -33411,19 +32251,19 @@ i32.load8_u local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $1) if local.get $i - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" end local.get $i i32.const 1 @@ -33433,17 +32273,17 @@ end end i32.const -1 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8> + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>" (local $source i32) (local $result i32) (local $failResult i32) @@ -33556,8 +32396,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -33565,9 +32406,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -33577,21 +32418,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Int16Array#get:length local.set $k loop $for-loop|0 @@ -33599,6 +32440,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 1 @@ -33607,19 +32452,19 @@ i32.load16_s local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $1) if local.get $i - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 + br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0" end local.get $i i32.const 1 @@ -33629,17 +32474,17 @@ end end i32.const -1 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 + br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16> + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>" (local $source i32) (local $result i32) (local $failResult i32) @@ -33752,8 +32597,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -33761,9 +32607,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -33773,21 +32619,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Uint16Array#get:length local.set $k loop $for-loop|0 @@ -33795,6 +32641,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 1 @@ -33803,19 +32653,19 @@ i32.load16_u local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $1) if local.get $i - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 + br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0" end local.get $i i32.const 1 @@ -33825,17 +32675,17 @@ end end i32.const -1 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 + br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16> + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>" (local $source i32) (local $result i32) (local $failResult i32) @@ -33948,8 +32798,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -33957,9 +32808,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -33969,21 +32820,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Int32Array#get:length local.set $k loop $for-loop|0 @@ -33991,6 +32842,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 2 @@ -33999,19 +32854,19 @@ i32.load local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $1) if local.get $i - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 + br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0" end local.get $i i32.const 1 @@ -34021,17 +32876,17 @@ end end i32.const -1 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 + br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32> + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>" (local $source i32) (local $result i32) (local $failResult i32) @@ -34144,8 +32999,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -34153,9 +33009,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -34165,21 +33021,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Uint32Array#get:length local.set $k loop $for-loop|0 @@ -34187,6 +33043,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 2 @@ -34195,19 +33055,19 @@ i32.load local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $1) if local.get $i - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 + br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0" end local.get $i i32.const 1 @@ -34217,17 +33077,17 @@ end end i32.const -1 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 + br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32> + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>" (local $source i32) (local $result i32) (local $failResult i32) @@ -34340,8 +33200,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -34349,9 +33210,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -34361,21 +33222,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Int64Array#get:length local.set $k loop $for-loop|0 @@ -34383,6 +33244,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 3 @@ -34391,19 +33256,19 @@ i64.load local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $7) if local.get $i - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 + br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0" end local.get $i i32.const 1 @@ -34413,17 +33278,17 @@ end end i32.const -1 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 + br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64> + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>" (local $source i32) (local $result i32) (local $failResult i32) @@ -34536,8 +33401,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -34545,9 +33411,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -34557,21 +33423,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Uint64Array#get:length local.set $k loop $for-loop|0 @@ -34579,6 +33445,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 3 @@ -34587,19 +33457,19 @@ i64.load local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $7) if local.get $i - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 + br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0" end local.get $i i32.const 1 @@ -34609,17 +33479,17 @@ end end i32.const -1 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 + br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64> + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>" (local $source i32) (local $result i32) (local $failResult i32) @@ -34732,8 +33602,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -34741,9 +33612,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -34753,21 +33624,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Float32Array#get:length local.set $k loop $for-loop|0 @@ -34775,6 +33646,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 2 @@ -34783,19 +33658,19 @@ f32.load local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $9) if local.get $i - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 + br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0" end local.get $i i32.const 1 @@ -34805,17 +33680,17 @@ end end i32.const -1 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 + br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32> + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>" (local $source i32) (local $result i32) (local $failResult i32) @@ -34928,8 +33803,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -34937,9 +33813,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -34949,21 +33825,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Float64Array#get:length local.set $k loop $for-loop|0 @@ -34971,6 +33847,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 3 @@ -34979,19 +33859,19 @@ f64.load local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $10) if local.get $i - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 + br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0" end local.get $i i32.const 1 @@ -35001,17 +33881,17 @@ end end i32.const -1 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 + br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64> + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>" (local $source i32) (local $result i32) (local $failResult i32) @@ -35123,8 +34003,9 @@ (local $ptr i32) (local $i i32) (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -35132,9 +34013,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -35144,19 +34025,19 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 call $~lib/typedarray/Int8Array#get:length i32.const 1 i32.sub @@ -35166,6 +34047,10 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $6 + i32.store offset=12 local.get $ptr local.get $i i32.const 0 @@ -35174,19 +34059,19 @@ i32.load8_s local.get $i local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $6 i32.load call_indirect (type $1) if local.get $i - br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 + br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0" end local.get $i i32.const 1 @@ -35196,17 +34081,17 @@ end end i32.const -1 - br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 + br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0" end - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $7 return ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int8Array,i8> + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int8Array,i8>" (local $source i32) (local $result i32) (local $failResult i32) @@ -35318,8 +34203,9 @@ (local $ptr i32) (local $i i32) (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -35327,9 +34213,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -35339,19 +34225,19 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 call $~lib/typedarray/Uint8Array#get:length i32.const 1 i32.sub @@ -35361,6 +34247,10 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $6 + i32.store offset=12 local.get $ptr local.get $i i32.const 0 @@ -35369,19 +34259,19 @@ i32.load8_u local.get $i local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $6 i32.load call_indirect (type $1) if local.get $i - br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 + br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0" end local.get $i i32.const 1 @@ -35391,17 +34281,17 @@ end end i32.const -1 - br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 + br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0" end - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $7 return ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8Array,u8> + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8Array,u8>" (local $source i32) (local $result i32) (local $failResult i32) @@ -35513,8 +34403,9 @@ (local $ptr i32) (local $i i32) (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -35522,9 +34413,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -35534,19 +34425,19 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 call $~lib/typedarray/Uint8ClampedArray#get:length i32.const 1 i32.sub @@ -35556,6 +34447,10 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $6 + i32.store offset=12 local.get $ptr local.get $i i32.const 0 @@ -35564,19 +34459,19 @@ i32.load8_u local.get $i local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $6 i32.load call_indirect (type $1) if local.get $i - br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" end local.get $i i32.const 1 @@ -35586,17 +34481,17 @@ end end i32.const -1 - br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" end - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $7 return ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8ClampedArray,u8> + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8ClampedArray,u8>" (local $source i32) (local $result i32) (local $failResult i32) @@ -35708,8 +34603,9 @@ (local $ptr i32) (local $i i32) (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -35717,9 +34613,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -35729,19 +34625,19 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 call $~lib/typedarray/Int16Array#get:length i32.const 1 i32.sub @@ -35751,6 +34647,10 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $6 + i32.store offset=12 local.get $ptr local.get $i i32.const 1 @@ -35759,19 +34659,19 @@ i32.load16_s local.get $i local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $6 i32.load call_indirect (type $1) if local.get $i - br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 + br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0" end local.get $i i32.const 1 @@ -35781,17 +34681,17 @@ end end i32.const -1 - br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 + br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0" end - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $7 return ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int16Array,i16> + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int16Array,i16>" (local $source i32) (local $result i32) (local $failResult i32) @@ -35903,8 +34803,9 @@ (local $ptr i32) (local $i i32) (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -35912,9 +34813,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -35924,19 +34825,19 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 call $~lib/typedarray/Uint16Array#get:length i32.const 1 i32.sub @@ -35946,6 +34847,10 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $6 + i32.store offset=12 local.get $ptr local.get $i i32.const 1 @@ -35954,19 +34859,19 @@ i32.load16_u local.get $i local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $6 i32.load call_indirect (type $1) if local.get $i - br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 + br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0" end local.get $i i32.const 1 @@ -35976,17 +34881,17 @@ end end i32.const -1 - br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 + br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0" end - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $7 return ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint16Array,u16> + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint16Array,u16>" (local $source i32) (local $result i32) (local $failResult i32) @@ -36098,8 +35003,9 @@ (local $ptr i32) (local $i i32) (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -36107,9 +35013,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -36119,19 +35025,19 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 call $~lib/typedarray/Int32Array#get:length i32.const 1 i32.sub @@ -36141,6 +35047,10 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $6 + i32.store offset=12 local.get $ptr local.get $i i32.const 2 @@ -36149,19 +35059,19 @@ i32.load local.get $i local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $6 i32.load call_indirect (type $1) if local.get $i - br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 + br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0" end local.get $i i32.const 1 @@ -36171,17 +35081,17 @@ end end i32.const -1 - br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 + br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0" end - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $7 return ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int32Array,i32> + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int32Array,i32>" (local $source i32) (local $result i32) (local $failResult i32) @@ -36293,8 +35203,9 @@ (local $ptr i32) (local $i i32) (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -36302,9 +35213,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -36314,19 +35225,19 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 call $~lib/typedarray/Uint32Array#get:length i32.const 1 i32.sub @@ -36336,6 +35247,10 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $6 + i32.store offset=12 local.get $ptr local.get $i i32.const 2 @@ -36344,19 +35259,19 @@ i32.load local.get $i local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $6 i32.load call_indirect (type $1) if local.get $i - br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 + br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0" end local.get $i i32.const 1 @@ -36366,17 +35281,17 @@ end end i32.const -1 - br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 + br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0" end - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $7 return ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint32Array,u32> + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint32Array,u32>" (local $source i32) (local $result i32) (local $failResult i32) @@ -36488,8 +35403,9 @@ (local $ptr i32) (local $i i32) (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -36497,9 +35413,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -36509,19 +35425,19 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 call $~lib/typedarray/Int64Array#get:length i32.const 1 i32.sub @@ -36531,6 +35447,10 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $6 + i32.store offset=12 local.get $ptr local.get $i i32.const 3 @@ -36539,19 +35459,19 @@ i64.load local.get $i local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $6 i32.load call_indirect (type $7) if local.get $i - br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 + br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0" end local.get $i i32.const 1 @@ -36561,17 +35481,17 @@ end end i32.const -1 - br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 + br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0" end - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $7 return ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int64Array,i64> + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int64Array,i64>" (local $source i32) (local $result i32) (local $failResult i32) @@ -36683,8 +35603,9 @@ (local $ptr i32) (local $i i32) (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -36692,9 +35613,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -36704,19 +35625,19 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 call $~lib/typedarray/Uint64Array#get:length i32.const 1 i32.sub @@ -36726,6 +35647,10 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $6 + i32.store offset=12 local.get $ptr local.get $i i32.const 3 @@ -36734,19 +35659,19 @@ i64.load local.get $i local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $6 i32.load call_indirect (type $7) if local.get $i - br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 + br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0" end local.get $i i32.const 1 @@ -36756,17 +35681,17 @@ end end i32.const -1 - br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 + br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0" end - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $7 return ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint64Array,u64> + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint64Array,u64>" (local $source i32) (local $result i32) (local $failResult i32) @@ -36878,8 +35803,9 @@ (local $ptr i32) (local $i i32) (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -36887,9 +35813,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -36899,19 +35825,19 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 call $~lib/typedarray/Float32Array#get:length i32.const 1 i32.sub @@ -36921,6 +35847,10 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $6 + i32.store offset=12 local.get $ptr local.get $i i32.const 2 @@ -36929,19 +35859,19 @@ f32.load local.get $i local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $6 i32.load call_indirect (type $9) if local.get $i - br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 + br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0" end local.get $i i32.const 1 @@ -36951,17 +35881,17 @@ end end i32.const -1 - br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 + br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0" end - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $7 return ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float32Array,f32> + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float32Array,f32>" (local $source i32) (local $result i32) (local $failResult i32) @@ -37073,8 +36003,9 @@ (local $ptr i32) (local $i i32) (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -37082,9 +36013,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -37094,19 +36025,19 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 call $~lib/typedarray/Float64Array#get:length i32.const 1 i32.sub @@ -37116,6 +36047,10 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $6 + i32.store offset=12 local.get $ptr local.get $i i32.const 3 @@ -37124,19 +36059,19 @@ f64.load local.get $i local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $6 i32.load call_indirect (type $10) if local.get $i - br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 + br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0" end local.get $i i32.const 1 @@ -37146,17 +36081,17 @@ end end i32.const -1 - br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 + br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0" end - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $7 return ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float64Array,f64> + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float64Array,f64>" (local $source i32) (local $result i32) (local $failResult i32) @@ -37269,8 +36204,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -37278,9 +36214,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -37290,21 +36226,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Int8Array#get:length local.set $k loop $for-loop|0 @@ -37313,6 +36249,10 @@ i32.lt_s if block $for-continue|0 + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 0 @@ -37321,21 +36261,21 @@ i32.load8_s local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $1) if br $for-continue|0 end i32.const 0 - br $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 + br $"~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0" end local.get $i i32.const 1 @@ -37345,17 +36285,17 @@ end end i32.const 1 - br $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 + br $"~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8> + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>" (local $source i32) (local $result i32) (local $failResult i32) @@ -37467,8 +36407,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -37476,9 +36417,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -37488,21 +36429,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Uint8Array#get:length local.set $k loop $for-loop|0 @@ -37511,6 +36452,10 @@ i32.lt_s if block $for-continue|0 + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 0 @@ -37519,21 +36464,21 @@ i32.load8_u local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $1) if br $for-continue|0 end i32.const 0 - br $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 + br $"~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0" end local.get $i i32.const 1 @@ -37543,17 +36488,17 @@ end end i32.const 1 - br $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 + br $"~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8> + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>" (local $source i32) (local $result i32) (local $failResult i32) @@ -37665,8 +36610,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -37674,9 +36620,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/EVERY<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -37686,21 +36632,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Uint8ClampedArray#get:length local.set $k loop $for-loop|0 @@ -37709,6 +36655,10 @@ i32.lt_s if block $for-continue|0 + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 0 @@ -37717,21 +36667,21 @@ i32.load8_u local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $1) if br $for-continue|0 end i32.const 0 - br $~lib/typedarray/EVERY<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + br $"~lib/typedarray/EVERY<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" end local.get $i i32.const 1 @@ -37741,17 +36691,17 @@ end end i32.const 1 - br $~lib/typedarray/EVERY<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + br $"~lib/typedarray/EVERY<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8> + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>" (local $source i32) (local $result i32) (local $failResult i32) @@ -37863,8 +36813,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -37872,9 +36823,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -37884,21 +36835,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Int16Array#get:length local.set $k loop $for-loop|0 @@ -37907,6 +36858,10 @@ i32.lt_s if block $for-continue|0 + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 1 @@ -37915,21 +36870,21 @@ i32.load16_s local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $1) if br $for-continue|0 end i32.const 0 - br $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 + br $"~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0" end local.get $i i32.const 1 @@ -37939,17 +36894,17 @@ end end i32.const 1 - br $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 + br $"~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16> + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>" (local $source i32) (local $result i32) (local $failResult i32) @@ -38061,8 +37016,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -38070,9 +37026,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -38082,21 +37038,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Uint16Array#get:length local.set $k loop $for-loop|0 @@ -38105,6 +37061,10 @@ i32.lt_s if block $for-continue|0 + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 1 @@ -38113,21 +37073,21 @@ i32.load16_u local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $1) if br $for-continue|0 end i32.const 0 - br $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 + br $"~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0" end local.get $i i32.const 1 @@ -38137,17 +37097,17 @@ end end i32.const 1 - br $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 + br $"~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16> + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>" (local $source i32) (local $result i32) (local $failResult i32) @@ -38259,8 +37219,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -38268,9 +37229,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -38280,21 +37241,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Int32Array#get:length local.set $k loop $for-loop|0 @@ -38303,6 +37264,10 @@ i32.lt_s if block $for-continue|0 + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 2 @@ -38311,21 +37276,21 @@ i32.load local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $1) if br $for-continue|0 end i32.const 0 - br $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 + br $"~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0" end local.get $i i32.const 1 @@ -38335,17 +37300,17 @@ end end i32.const 1 - br $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 + br $"~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32> + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>" (local $source i32) (local $result i32) (local $failResult i32) @@ -38457,8 +37422,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -38466,9 +37432,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -38478,21 +37444,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Uint32Array#get:length local.set $k loop $for-loop|0 @@ -38501,6 +37467,10 @@ i32.lt_s if block $for-continue|0 + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 2 @@ -38509,21 +37479,21 @@ i32.load local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $1) if br $for-continue|0 end i32.const 0 - br $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 + br $"~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0" end local.get $i i32.const 1 @@ -38533,17 +37503,17 @@ end end i32.const 1 - br $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 + br $"~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32> + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>" (local $source i32) (local $result i32) (local $failResult i32) @@ -38655,8 +37625,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -38664,9 +37635,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -38676,21 +37647,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Int64Array#get:length local.set $k loop $for-loop|0 @@ -38699,6 +37670,10 @@ i32.lt_s if block $for-continue|0 + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 3 @@ -38707,21 +37682,21 @@ i64.load local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $7) if br $for-continue|0 end i32.const 0 - br $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 + br $"~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0" end local.get $i i32.const 1 @@ -38731,17 +37706,17 @@ end end i32.const 1 - br $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 + br $"~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64> + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>" (local $source i32) (local $result i32) (local $failResult i32) @@ -38853,8 +37828,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -38862,9 +37838,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -38874,21 +37850,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Uint64Array#get:length local.set $k loop $for-loop|0 @@ -38897,6 +37873,10 @@ i32.lt_s if block $for-continue|0 + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 3 @@ -38905,21 +37885,21 @@ i64.load local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $7) if br $for-continue|0 end i32.const 0 - br $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0 + br $"~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0" end local.get $i i32.const 1 @@ -38929,17 +37909,17 @@ end end i32.const 1 - br $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0 + br $"~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64> + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>" (local $source i32) (local $result i32) (local $failResult i32) @@ -39051,8 +38031,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -39060,9 +38041,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -39072,21 +38053,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Float32Array#get:length local.set $k loop $for-loop|0 @@ -39095,6 +38076,10 @@ i32.lt_s if block $for-continue|0 + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 2 @@ -39103,21 +38088,21 @@ f32.load local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $9) if br $for-continue|0 end i32.const 0 - br $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 + br $"~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0" end local.get $i i32.const 1 @@ -39127,17 +38112,17 @@ end end i32.const 1 - br $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 + br $"~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32> + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>" (local $source i32) (local $result i32) (local $failResult i32) @@ -39249,8 +38234,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -39258,9 +38244,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + i64.const 0 + i64.store offset=8 + block $"~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -39270,21 +38256,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Float64Array#get:length local.set $k loop $for-loop|0 @@ -39293,6 +38279,10 @@ i32.lt_s if block $for-continue|0 + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 3 @@ -39301,21 +38291,21 @@ f64.load local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $10) if br $for-continue|0 end i32.const 0 - br $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 + br $"~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0" end local.get $i i32.const 1 @@ -39325,17 +38315,17 @@ end end i32.const 1 - br $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 + br $"~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64> + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>" (local $source i32) (local $result i32) (local $failResult i32) @@ -39440,7 +38430,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $value i32) (param $index i32) (param $self i32) + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0" (param $value i32) (param $index i32) (param $self i32) (local $matchedValue i32) (local $4 i32) global.get $~lib/memory/__stack_pointer @@ -39514,8 +38504,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -39523,8 +38514,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -39534,21 +38525,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Int8Array#get:length local.set $k loop $for-loop|0 @@ -39556,6 +38547,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 0 @@ -39564,14 +38559,14 @@ i32.load8_s local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $5) local.get $i @@ -39582,11 +38577,11 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8> + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -39691,7 +38686,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $value i32) (param $index i32) (param $self i32) + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8>~anonymous|0" (param $value i32) (param $index i32) (param $self i32) (local $matchedValue i32) (local $4 i32) global.get $~lib/memory/__stack_pointer @@ -39767,8 +38762,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -39776,8 +38772,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -39787,21 +38783,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Uint8Array#get:length local.set $k loop $for-loop|0 @@ -39809,6 +38805,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 0 @@ -39817,14 +38817,14 @@ i32.load8_u local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $5) local.get $i @@ -39835,11 +38835,11 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8> + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -39947,7 +38947,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (param $value i32) (param $index i32) (param $self i32) + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0" (param $value i32) (param $index i32) (param $self i32) (local $matchedValue i32) (local $4 i32) global.get $~lib/memory/__stack_pointer @@ -40023,8 +39023,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -40032,8 +39033,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -40043,21 +39044,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Uint8ClampedArray#get:length local.set $k loop $for-loop|0 @@ -40065,6 +39066,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 0 @@ -40073,14 +39078,14 @@ i32.load8_u local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $5) local.get $i @@ -40091,11 +39096,11 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8> + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -40203,7 +39208,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $value i32) (param $index i32) (param $self i32) + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0" (param $value i32) (param $index i32) (param $self i32) (local $matchedValue i32) (local $4 i32) global.get $~lib/memory/__stack_pointer @@ -40277,8 +39282,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -40286,8 +39292,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -40297,21 +39303,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Int16Array#get:length local.set $k loop $for-loop|0 @@ -40319,6 +39325,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 1 @@ -40327,14 +39337,14 @@ i32.load16_s local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $5) local.get $i @@ -40345,11 +39355,11 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16> + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -40454,7 +39464,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $value i32) (param $index i32) (param $self i32) + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16>~anonymous|0" (param $value i32) (param $index i32) (param $self i32) (local $matchedValue i32) (local $4 i32) global.get $~lib/memory/__stack_pointer @@ -40530,8 +39540,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -40539,8 +39550,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -40550,21 +39561,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Uint16Array#get:length local.set $k loop $for-loop|0 @@ -40572,6 +39583,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 1 @@ -40580,14 +39595,14 @@ i32.load16_u local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $5) local.get $i @@ -40598,11 +39613,11 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16> + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -40710,7 +39725,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $value i32) (param $index i32) (param $self i32) + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0" (param $value i32) (param $index i32) (param $self i32) (local $matchedValue i32) (local $4 i32) global.get $~lib/memory/__stack_pointer @@ -40782,8 +39797,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -40791,8 +39807,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -40802,21 +39818,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Int32Array#get:length local.set $k loop $for-loop|0 @@ -40824,6 +39840,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 2 @@ -40832,14 +39852,14 @@ i32.load local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $5) local.get $i @@ -40850,11 +39870,11 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32> + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -40956,7 +39976,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $value i32) (param $index i32) (param $self i32) + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32>~anonymous|0" (param $value i32) (param $index i32) (param $self i32) (local $matchedValue i32) (local $4 i32) global.get $~lib/memory/__stack_pointer @@ -41028,8 +40048,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -41037,8 +40058,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -41048,21 +40069,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Uint32Array#get:length local.set $k loop $for-loop|0 @@ -41070,6 +40091,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 2 @@ -41078,14 +40103,14 @@ i32.load local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $5) local.get $i @@ -41096,11 +40121,11 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32> + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -41202,7 +40227,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $value i64) (param $index i32) (param $self i32) + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0" (param $value i64) (param $index i32) (param $self i32) (local $matchedValue i32) (local $4 i32) global.get $~lib/memory/__stack_pointer @@ -41275,8 +40300,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -41284,8 +40310,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -41295,21 +40321,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Int64Array#get:length local.set $k loop $for-loop|0 @@ -41317,6 +40343,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 3 @@ -41325,16 +40355,16 @@ i64.load local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load - call_indirect (type $25) + call_indirect (type $26) local.get $i i32.const 1 i32.add @@ -41343,11 +40373,11 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64> + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -41452,7 +40482,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $value i64) (param $index i32) (param $self i32) + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64>~anonymous|0" (param $value i64) (param $index i32) (param $self i32) (local $matchedValue i32) (local $4 i32) global.get $~lib/memory/__stack_pointer @@ -41525,8 +40555,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -41534,8 +40565,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -41545,21 +40576,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Uint64Array#get:length local.set $k loop $for-loop|0 @@ -41567,6 +40598,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 3 @@ -41575,16 +40610,16 @@ i64.load local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load - call_indirect (type $25) + call_indirect (type $26) local.get $i i32.const 1 i32.add @@ -41593,11 +40628,11 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64> + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -41702,7 +40737,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $value f32) (param $index i32) (param $self i32) + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0" (param $value f32) (param $index i32) (param $self i32) (local $matchedValue i32) (local $4 i32) global.get $~lib/memory/__stack_pointer @@ -41775,8 +40810,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -41784,8 +40820,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -41795,21 +40831,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Float32Array#get:length local.set $k loop $for-loop|0 @@ -41817,6 +40853,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 2 @@ -41825,16 +40865,16 @@ f32.load local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load - call_indirect (type $38) + call_indirect (type $37) local.get $i i32.const 1 i32.add @@ -41843,11 +40883,11 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32> + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -41952,7 +40992,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $value f64) (param $index i32) (param $self i32) + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0" (param $value f64) (param $index i32) (param $self i32) (local $matchedValue i32) (local $4 i32) global.get $~lib/memory/__stack_pointer @@ -42025,8 +41065,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -42034,8 +41075,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -42045,21 +41086,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Float64Array#get:length local.set $k loop $for-loop|0 @@ -42067,6 +41108,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 3 @@ -42075,16 +41120,16 @@ f64.load local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load - call_indirect (type $39) + call_indirect (type $38) local.get $i i32.const 1 i32.add @@ -42093,11 +41138,11 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64> + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -42236,7 +41281,7 @@ local.get $1 return ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int8Array,i8> + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Int8Array,i8>" (local $values i32) (local $length i32) (local $array i32) @@ -42541,7 +41586,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/SUBARRAY<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) + block $"~lib/typedarray/SUBARRAY<~lib/typedarray/Uint8Array,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -42659,7 +41704,7 @@ i32.shl i32.store offset=8 local.get $out - br $~lib/typedarray/SUBARRAY<~lib/typedarray/Uint8Array,u8>|inlined.0 + br $"~lib/typedarray/SUBARRAY<~lib/typedarray/Uint8Array,u8>|inlined.0" end local.set $19 global.get $~lib/memory/__stack_pointer @@ -42669,7 +41714,7 @@ local.get $19 return ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint8Array,u8> + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Uint8Array,u8>" (local $values i32) (local $length i32) (local $array i32) @@ -42977,7 +42022,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/SUBARRAY<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) + block $"~lib/typedarray/SUBARRAY<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -43095,7 +42140,7 @@ i32.shl i32.store offset=8 local.get $out - br $~lib/typedarray/SUBARRAY<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + br $"~lib/typedarray/SUBARRAY<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" end local.set $19 global.get $~lib/memory/__stack_pointer @@ -43105,7 +42150,7 @@ local.get $19 return ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint8ClampedArray,u8> + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Uint8ClampedArray,u8>" (local $values i32) (local $length i32) (local $array i32) @@ -43413,7 +42458,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/SUBARRAY<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) + block $"~lib/typedarray/SUBARRAY<~lib/typedarray/Int16Array,i16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -43531,7 +42576,7 @@ i32.shl i32.store offset=8 local.get $out - br $~lib/typedarray/SUBARRAY<~lib/typedarray/Int16Array,i16>|inlined.0 + br $"~lib/typedarray/SUBARRAY<~lib/typedarray/Int16Array,i16>|inlined.0" end local.set $19 global.get $~lib/memory/__stack_pointer @@ -43541,7 +42586,7 @@ local.get $19 return ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int16Array,i16> + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Int16Array,i16>" (local $values i32) (local $length i32) (local $array i32) @@ -43846,7 +42891,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/SUBARRAY<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) + block $"~lib/typedarray/SUBARRAY<~lib/typedarray/Uint16Array,u16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -43964,7 +43009,7 @@ i32.shl i32.store offset=8 local.get $out - br $~lib/typedarray/SUBARRAY<~lib/typedarray/Uint16Array,u16>|inlined.0 + br $"~lib/typedarray/SUBARRAY<~lib/typedarray/Uint16Array,u16>|inlined.0" end local.set $19 global.get $~lib/memory/__stack_pointer @@ -43974,7 +43019,7 @@ local.get $19 return ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint16Array,u16> + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Uint16Array,u16>" (local $values i32) (local $length i32) (local $array i32) @@ -44253,7 +43298,7 @@ local.get $1 return ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int32Array,i32> + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Int32Array,i32>" (local $values i32) (local $length i32) (local $array i32) @@ -44555,7 +43600,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/SUBARRAY<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) + block $"~lib/typedarray/SUBARRAY<~lib/typedarray/Uint32Array,u32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -44673,7 +43718,7 @@ i32.shl i32.store offset=8 local.get $out - br $~lib/typedarray/SUBARRAY<~lib/typedarray/Uint32Array,u32>|inlined.0 + br $"~lib/typedarray/SUBARRAY<~lib/typedarray/Uint32Array,u32>|inlined.0" end local.set $19 global.get $~lib/memory/__stack_pointer @@ -44683,7 +43728,7 @@ local.get $19 return ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint32Array,u32> + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Uint32Array,u32>" (local $values i32) (local $length i32) (local $array i32) @@ -44985,7 +44030,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/SUBARRAY<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) + block $"~lib/typedarray/SUBARRAY<~lib/typedarray/Int64Array,i64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -45103,7 +44148,7 @@ i32.shl i32.store offset=8 local.get $out - br $~lib/typedarray/SUBARRAY<~lib/typedarray/Int64Array,i64>|inlined.0 + br $"~lib/typedarray/SUBARRAY<~lib/typedarray/Int64Array,i64>|inlined.0" end local.set $19 global.get $~lib/memory/__stack_pointer @@ -45113,7 +44158,7 @@ local.get $19 return ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64> + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64>" (local $values i32) (local $length i32) (local $array i32) @@ -45418,7 +44463,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/SUBARRAY<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) + block $"~lib/typedarray/SUBARRAY<~lib/typedarray/Uint64Array,u64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -45536,7 +44581,7 @@ i32.shl i32.store offset=8 local.get $out - br $~lib/typedarray/SUBARRAY<~lib/typedarray/Uint64Array,u64>|inlined.0 + br $"~lib/typedarray/SUBARRAY<~lib/typedarray/Uint64Array,u64>|inlined.0" end local.set $19 global.get $~lib/memory/__stack_pointer @@ -45546,7 +44591,7 @@ local.get $19 return ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64> + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64>" (local $values i32) (local $length i32) (local $array i32) @@ -45851,7 +44896,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/SUBARRAY<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + block $"~lib/typedarray/SUBARRAY<~lib/typedarray/Float32Array,f32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -45969,7 +45014,7 @@ i32.shl i32.store offset=8 local.get $out - br $~lib/typedarray/SUBARRAY<~lib/typedarray/Float32Array,f32>|inlined.0 + br $"~lib/typedarray/SUBARRAY<~lib/typedarray/Float32Array,f32>|inlined.0" end local.set $19 global.get $~lib/memory/__stack_pointer @@ -45979,7 +45024,7 @@ local.get $19 return ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32> + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32>" (local $values i32) (local $length i32) (local $array i32) @@ -46255,7 +45300,7 @@ local.get $1 return ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64> + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64>" (local $values i32) (local $length i32) (local $array i32) @@ -46515,7 +45560,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) + block $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -46546,7 +45591,7 @@ end if i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0" end local.get $index i32.const 0 @@ -46588,7 +45633,7 @@ i32.eq if local.get $index - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0" end local.get $index i32.const 1 @@ -46598,7 +45643,7 @@ end end i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0" end local.set $11 global.get $~lib/memory/__stack_pointer @@ -46624,7 +45669,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) + block $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -46648,7 +45693,7 @@ i32.eq if i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0" end local.get $index i32.const 0 @@ -46693,7 +45738,7 @@ i32.eq if local.get $index - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0" end local.get $index i32.const 1 @@ -46703,7 +45748,7 @@ end end i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -46758,7 +45803,7 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int8Array,i8> + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int8Array,i8>" (local $values i32) (local $length i32) (local $array i32) @@ -47412,7 +46457,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) + block $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -47443,7 +46488,7 @@ end if i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0" end local.get $index i32.const 0 @@ -47486,7 +46531,7 @@ i32.eq if local.get $index - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0" end local.get $index i32.const 1 @@ -47496,7 +46541,7 @@ end end i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0" end local.set $11 global.get $~lib/memory/__stack_pointer @@ -47522,7 +46567,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) + block $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -47546,7 +46591,7 @@ i32.eq if i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0" end local.get $index i32.const 0 @@ -47592,7 +46637,7 @@ i32.eq if local.get $index - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0" end local.get $index i32.const 1 @@ -47602,7 +46647,7 @@ end end i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -47657,7 +46702,7 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8Array,u8> + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8Array,u8>" (local $values i32) (local $length i32) (local $array i32) @@ -48312,7 +47357,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) + block $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -48343,7 +47388,7 @@ end if i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" end local.get $index i32.const 0 @@ -48386,7 +47431,7 @@ i32.eq if local.get $index - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" end local.get $index i32.const 1 @@ -48396,7 +47441,7 @@ end end i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" end local.set $11 global.get $~lib/memory/__stack_pointer @@ -48422,7 +47467,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) + block $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -48446,7 +47491,7 @@ i32.eq if i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" end local.get $index i32.const 0 @@ -48492,7 +47537,7 @@ i32.eq if local.get $index - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" end local.get $index i32.const 1 @@ -48502,7 +47547,7 @@ end end i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -48557,7 +47602,7 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8ClampedArray,u8> + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8ClampedArray,u8>" (local $values i32) (local $length i32) (local $array i32) @@ -49212,7 +48257,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) + block $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -49243,7 +48288,7 @@ end if i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0" end local.get $index i32.const 0 @@ -49285,7 +48330,7 @@ i32.eq if local.get $index - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0" end local.get $index i32.const 1 @@ -49295,7 +48340,7 @@ end end i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0" end local.set $11 global.get $~lib/memory/__stack_pointer @@ -49321,7 +48366,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) + block $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -49345,7 +48390,7 @@ i32.eq if i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0" end local.get $index i32.const 0 @@ -49390,7 +48435,7 @@ i32.eq if local.get $index - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0" end local.get $index i32.const 1 @@ -49400,7 +48445,7 @@ end end i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -49455,7 +48500,7 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int16Array,i16> + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int16Array,i16>" (local $values i32) (local $length i32) (local $array i32) @@ -50109,7 +49154,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) + block $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -50140,7 +49185,7 @@ end if i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0" end local.get $index i32.const 0 @@ -50183,7 +49228,7 @@ i32.eq if local.get $index - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0" end local.get $index i32.const 1 @@ -50193,7 +49238,7 @@ end end i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0" end local.set $11 global.get $~lib/memory/__stack_pointer @@ -50219,7 +49264,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) + block $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -50243,7 +49288,7 @@ i32.eq if i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0" end local.get $index i32.const 0 @@ -50289,7 +49334,7 @@ i32.eq if local.get $index - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0" end local.get $index i32.const 1 @@ -50299,7 +49344,7 @@ end end i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -50354,7 +49399,7 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint16Array,u16> + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint16Array,u16>" (local $values i32) (local $length i32) (local $array i32) @@ -51009,7 +50054,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + block $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -51040,7 +50085,7 @@ end if i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0" end local.get $index i32.const 0 @@ -51081,7 +50126,7 @@ i32.eq if local.get $index - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0" end local.get $index i32.const 1 @@ -51091,7 +50136,7 @@ end end i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0" end local.set $11 global.get $~lib/memory/__stack_pointer @@ -51117,7 +50162,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + block $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -51141,7 +50186,7 @@ i32.eq if i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0" end local.get $index i32.const 0 @@ -51185,7 +50230,7 @@ i32.eq if local.get $index - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0" end local.get $index i32.const 1 @@ -51195,7 +50240,7 @@ end end i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -51250,7 +50295,7 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int32Array,i32> + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int32Array,i32>" (local $values i32) (local $length i32) (local $array i32) @@ -51903,7 +50948,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) + block $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -51934,7 +50979,7 @@ end if i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0" end local.get $index i32.const 0 @@ -51975,7 +51020,7 @@ i32.eq if local.get $index - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0" end local.get $index i32.const 1 @@ -51985,7 +51030,7 @@ end end i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0" end local.set $11 global.get $~lib/memory/__stack_pointer @@ -52011,7 +51056,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) + block $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -52035,7 +51080,7 @@ i32.eq if i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0" end local.get $index i32.const 0 @@ -52079,7 +51124,7 @@ i32.eq if local.get $index - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0" end local.get $index i32.const 1 @@ -52089,7 +51134,7 @@ end end i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -52144,7 +51189,7 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint32Array,u32> + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint32Array,u32>" (local $values i32) (local $length i32) (local $array i32) @@ -52797,7 +51842,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) + block $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -52828,7 +51873,7 @@ end if i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0" end local.get $index i32.const 0 @@ -52869,7 +51914,7 @@ i64.eq if local.get $index - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0" end local.get $index i32.const 1 @@ -52879,7 +51924,7 @@ end end i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0" end local.set $11 global.get $~lib/memory/__stack_pointer @@ -52905,7 +51950,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) + block $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -52929,7 +51974,7 @@ i32.eq if i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0" end local.get $index i32.const 0 @@ -52973,7 +52018,7 @@ i64.eq if local.get $index - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0" end local.get $index i32.const 1 @@ -52983,7 +52028,7 @@ end end i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -53038,7 +52083,7 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int64Array,i64> + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int64Array,i64>" (local $values i32) (local $length i32) (local $array i32) @@ -53692,7 +52737,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) + block $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -53723,7 +52768,7 @@ end if i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0" end local.get $index i32.const 0 @@ -53764,7 +52809,7 @@ i64.eq if local.get $index - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0" end local.get $index i32.const 1 @@ -53774,7 +52819,7 @@ end end i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0" end local.set $11 global.get $~lib/memory/__stack_pointer @@ -53800,7 +52845,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) + block $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -53824,7 +52869,7 @@ i32.eq if i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0" end local.get $index i32.const 0 @@ -53868,7 +52913,7 @@ i64.eq if local.get $index - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0" end local.get $index i32.const 1 @@ -53878,7 +52923,7 @@ end end i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -53933,7 +52978,7 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint64Array,u64> + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint64Array,u64>" (local $values i32) (local $length i32) (local $array i32) @@ -54587,7 +53632,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + block $"~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -54618,7 +53663,7 @@ end if i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0" end local.get $index i32.const 0 @@ -54659,7 +53704,7 @@ f32.eq if local.get $index - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0" end local.get $index i32.const 1 @@ -54669,7 +53714,7 @@ end end i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0" end local.set $11 global.get $~lib/memory/__stack_pointer @@ -54695,7 +53740,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + block $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -54719,7 +53764,7 @@ i32.eq if i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0" end local.get $index i32.const 0 @@ -54763,7 +53808,7 @@ f32.eq if local.get $index - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0" end local.get $index i32.const 1 @@ -54773,7 +53818,7 @@ end end i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -54828,7 +53873,7 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float32Array,f32> + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float32Array,f32>" (local $values i32) (local $length i32) (local $array i32) @@ -55482,7 +54527,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + block $"~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -55513,7 +54558,7 @@ end if i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0" end local.get $index i32.const 0 @@ -55554,7 +54599,7 @@ f64.eq if local.get $index - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0" end local.get $index i32.const 1 @@ -55564,7 +54609,7 @@ end end i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0" end local.set $11 global.get $~lib/memory/__stack_pointer @@ -55590,7 +54635,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + block $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -55614,7 +54659,7 @@ i32.eq if i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0" end local.get $index i32.const 0 @@ -55658,7 +54703,7 @@ f64.eq if local.get $index - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0" end local.get $index i32.const 1 @@ -55668,7 +54713,7 @@ end end i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -55723,7 +54768,7 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float64Array,f64> + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float64Array,f64>" (local $values i32) (local $length i32) (local $array i32) @@ -56378,7 +55423,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + block $"~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -56411,7 +55456,7 @@ end if i32.const 0 - br $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 + br $"~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0" end local.get $index i32.const 0 @@ -56465,7 +55510,7 @@ end if i32.const 1 - br $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 + br $"~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0" end local.get $index i32.const 1 @@ -56475,7 +55520,7 @@ end end i32.const 0 - br $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 + br $"~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0" end local.set $12 global.get $~lib/memory/__stack_pointer @@ -56504,7 +55549,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + block $"~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -56537,7 +55582,7 @@ end if i32.const 0 - br $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 + br $"~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0" end local.get $index i32.const 0 @@ -56591,7 +55636,7 @@ end if i32.const 1 - br $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 + br $"~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0" end local.get $index i32.const 1 @@ -56601,7 +55646,7 @@ end end i32.const 0 - br $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 + br $"~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0" end local.set $12 global.get $~lib/memory/__stack_pointer @@ -57077,13 +56122,13 @@ (func $~lib/typedarray/Int8Array#toString (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 - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -57091,32 +56136,29 @@ i32.store local.get $1 i32.const 8560 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/typedarray/Int8Array#join 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 $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int8Array,i8> + (func $"std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int8Array,i8>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + 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.const 20 - memory.fill + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 5 @@ -57174,14 +56216,9 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 local.get $1 i32.const 8560 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 - local.get $1 call $~lib/typedarray/Int8Array#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -57189,11 +56226,6 @@ i32.store offset=4 local.get $1 i32.const 8592 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -57208,7 +56240,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 local.get $1 call $~lib/typedarray/Int8Array#toString local.set $1 @@ -57217,11 +56249,6 @@ i32.store offset=4 local.get $1 i32.const 8592 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -57233,7 +56260,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) @@ -57458,13 +56485,13 @@ (func $~lib/typedarray/Uint8Array#toString (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 - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -57472,32 +56499,29 @@ i32.store local.get $1 i32.const 8560 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/typedarray/Uint8Array#join 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 $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint8Array,u8> + (func $"std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint8Array,u8>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + 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.const 20 - memory.fill + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 5 @@ -57555,14 +56579,9 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 local.get $1 i32.const 8560 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 - local.get $1 call $~lib/typedarray/Uint8Array#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -57570,11 +56589,6 @@ i32.store offset=4 local.get $1 i32.const 8592 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -57589,7 +56603,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 local.get $1 call $~lib/typedarray/Uint8Array#toString local.set $1 @@ -57598,11 +56612,6 @@ i32.store offset=4 local.get $1 i32.const 8592 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -57614,7 +56623,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) @@ -57660,13 +56669,13 @@ (func $~lib/typedarray/Uint8ClampedArray#toString (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 - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -57674,32 +56683,29 @@ i32.store local.get $1 i32.const 8560 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/typedarray/Uint8ClampedArray#join 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 $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint8ClampedArray,u8> + (func $"std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint8ClampedArray,u8>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + 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.const 20 - memory.fill + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 5 @@ -57757,14 +56763,9 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 local.get $1 i32.const 8560 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 - local.get $1 call $~lib/typedarray/Uint8ClampedArray#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -57772,11 +56773,6 @@ i32.store offset=4 local.get $1 i32.const 8592 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -57791,7 +56787,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 local.get $1 call $~lib/typedarray/Uint8ClampedArray#toString local.set $1 @@ -57800,11 +56796,6 @@ i32.store offset=4 local.get $1 i32.const 8592 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -57816,7 +56807,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) @@ -58041,13 +57032,13 @@ (func $~lib/typedarray/Int16Array#toString (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 - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -58055,32 +57046,29 @@ i32.store local.get $1 i32.const 8560 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/typedarray/Int16Array#join 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 $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int16Array,i16> + (func $"std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int16Array,i16>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + 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.const 20 - memory.fill + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 5 @@ -58138,14 +57126,9 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 local.get $1 i32.const 8560 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 - local.get $1 call $~lib/typedarray/Int16Array#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -58153,11 +57136,6 @@ i32.store offset=4 local.get $1 i32.const 8592 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -58172,7 +57150,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 local.get $1 call $~lib/typedarray/Int16Array#toString local.set $1 @@ -58181,11 +57159,6 @@ i32.store offset=4 local.get $1 i32.const 8592 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -58197,7 +57170,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) @@ -58422,13 +57395,13 @@ (func $~lib/typedarray/Uint16Array#toString (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 - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -58436,32 +57409,29 @@ i32.store local.get $1 i32.const 8560 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/typedarray/Uint16Array#join 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 $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint16Array,u16> + (func $"std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint16Array,u16>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + 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.const 20 - memory.fill + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 5 @@ -58519,14 +57489,9 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 local.get $1 i32.const 8560 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 - local.get $1 call $~lib/typedarray/Uint16Array#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -58534,11 +57499,6 @@ i32.store offset=4 local.get $1 i32.const 8592 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -58553,7 +57513,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 local.get $1 call $~lib/typedarray/Uint16Array#toString local.set $1 @@ -58562,11 +57522,6 @@ i32.store offset=4 local.get $1 i32.const 8592 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -58578,7 +57533,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) @@ -58803,13 +57758,13 @@ (func $~lib/typedarray/Int32Array#toString (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 - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -58817,32 +57772,29 @@ i32.store local.get $1 i32.const 8560 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/typedarray/Int32Array#join 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 $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int32Array,i32> + (func $"std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int32Array,i32>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + 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.const 20 - memory.fill + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 5 @@ -58900,14 +57852,9 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 local.get $1 i32.const 8560 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 - local.get $1 call $~lib/typedarray/Int32Array#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -58915,11 +57862,6 @@ i32.store offset=4 local.get $1 i32.const 8592 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -58934,7 +57876,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 local.get $1 call $~lib/typedarray/Int32Array#toString local.set $1 @@ -58943,11 +57885,6 @@ i32.store offset=4 local.get $1 i32.const 8592 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -58959,7 +57896,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) @@ -59184,13 +58121,13 @@ (func $~lib/typedarray/Uint32Array#toString (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 - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -59198,32 +58135,29 @@ i32.store local.get $1 i32.const 8560 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/typedarray/Uint32Array#join 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 $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint32Array,u32> + (func $"std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint32Array,u32>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + 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.const 20 - memory.fill + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 5 @@ -59281,14 +58215,9 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 local.get $1 i32.const 8560 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 - local.get $1 call $~lib/typedarray/Uint32Array#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -59296,11 +58225,6 @@ i32.store offset=4 local.get $1 i32.const 8592 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -59315,7 +58239,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 local.get $1 call $~lib/typedarray/Uint32Array#toString local.set $1 @@ -59324,11 +58248,6 @@ i32.store offset=4 local.get $1 i32.const 8592 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -59340,7 +58259,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) @@ -59567,13 +58486,13 @@ (func $~lib/typedarray/Int64Array#toString (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 - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -59581,32 +58500,29 @@ i32.store local.get $1 i32.const 8560 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/typedarray/Int64Array#join 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 $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int64Array,i64> + (func $"std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int64Array,i64>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + 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.const 20 - memory.fill + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 5 @@ -59664,14 +58580,9 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 local.get $1 i32.const 8560 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 - local.get $1 call $~lib/typedarray/Int64Array#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -59679,11 +58590,6 @@ i32.store offset=4 local.get $1 i32.const 8592 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -59698,7 +58604,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 local.get $1 call $~lib/typedarray/Int64Array#toString local.set $1 @@ -59707,11 +58613,6 @@ i32.store offset=4 local.get $1 i32.const 8592 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -59723,7 +58624,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) @@ -59948,13 +58849,13 @@ (func $~lib/typedarray/Uint64Array#toString (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 - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -59962,32 +58863,29 @@ i32.store local.get $1 i32.const 8560 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/typedarray/Uint64Array#join 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 $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint64Array,u64> + (func $"std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint64Array,u64>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + 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.const 20 - memory.fill + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 5 @@ -60045,14 +58943,9 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 local.get $1 i32.const 8560 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 - local.get $1 call $~lib/typedarray/Uint64Array#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -60060,11 +58953,6 @@ i32.store offset=4 local.get $1 i32.const 8592 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -60079,7 +58967,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 local.get $1 call $~lib/typedarray/Uint64Array#toString local.set $1 @@ -60088,11 +58976,6 @@ i32.store offset=4 local.get $1 i32.const 8592 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -60104,7 +58987,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) @@ -60147,8 +59030,7 @@ if local.get $dataStart f32.load - f64.promote_f32 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $10 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -60204,8 +59086,7 @@ i32.shl i32.add local.get $value - f64.promote_f32 - call $~lib/util/number/dtoa_buffered + call $~lib/util/number/dtoa_buffered i32.add local.set $offset local.get $sepLen @@ -60246,8 +59127,7 @@ i32.shl i32.add local.get $value - f64.promote_f32 - call $~lib/util/number/dtoa_buffered + call $~lib/util/number/dtoa_buffered i32.add local.set $offset local.get $estLen @@ -60322,13 +59202,13 @@ (func $~lib/typedarray/Float32Array#toString (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 - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -60336,32 +59216,29 @@ i32.store local.get $1 i32.const 8560 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/typedarray/Float32Array#join 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 $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Float32Array,f32> + (func $"std/typedarray/testArrayJoinAndToString<~lib/typedarray/Float32Array,f32>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + 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.const 20 - memory.fill + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 5 @@ -60419,14 +59296,9 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 local.get $1 i32.const 8560 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 - local.get $1 call $~lib/typedarray/Float32Array#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -60434,11 +59306,6 @@ i32.store offset=4 local.get $1 i32.const 9776 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -60453,7 +59320,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 local.get $1 call $~lib/typedarray/Float32Array#toString local.set $1 @@ -60462,11 +59329,6 @@ i32.store offset=4 local.get $1 i32.const 9776 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -60478,7 +59340,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) @@ -60521,7 +59383,7 @@ if local.get $dataStart f64.load - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $10 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -60577,7 +59439,7 @@ i32.shl i32.add local.get $value - call $~lib/util/number/dtoa_buffered + call $~lib/util/number/dtoa_buffered i32.add local.set $offset local.get $sepLen @@ -60618,7 +59480,7 @@ i32.shl i32.add local.get $value - call $~lib/util/number/dtoa_buffered + call $~lib/util/number/dtoa_buffered i32.add local.set $offset local.get $estLen @@ -60693,13 +59555,13 @@ (func $~lib/typedarray/Float64Array#toString (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 - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -60707,32 +59569,29 @@ i32.store local.get $1 i32.const 8560 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/typedarray/Float64Array#join 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 $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Float64Array,f64> + (func $"std/typedarray/testArrayJoinAndToString<~lib/typedarray/Float64Array,f64>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + 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.const 20 - memory.fill + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 5 @@ -60790,14 +59649,9 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 local.get $1 i32.const 8560 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 - local.get $1 call $~lib/typedarray/Float64Array#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -60805,11 +59659,6 @@ i32.store offset=4 local.get $1 i32.const 9776 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -60824,7 +59673,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 local.get $1 call $~lib/typedarray/Float64Array#toString local.set $1 @@ -60833,11 +59682,6 @@ i32.store offset=4 local.get $1 i32.const 9776 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -60849,7 +59693,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) @@ -60872,7 +59716,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/WRAP<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) + block $"~lib/typedarray/WRAP<~lib/typedarray/Uint8Array,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $buffer local.tee $buffer|3 @@ -60976,7 +59820,7 @@ i32.add i32.store offset=4 local.get $out - br $~lib/typedarray/WRAP<~lib/typedarray/Uint8Array,u8>|inlined.0 + br $"~lib/typedarray/WRAP<~lib/typedarray/Uint8Array,u8>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -61161,7 +60005,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/WRAP<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) + block $"~lib/typedarray/WRAP<~lib/typedarray/Int8Array,i8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $buffer local.tee $buffer|3 @@ -61265,7 +60109,7 @@ i32.add i32.store offset=4 local.get $out - br $~lib/typedarray/WRAP<~lib/typedarray/Int8Array,i8>|inlined.0 + br $"~lib/typedarray/WRAP<~lib/typedarray/Int8Array,i8>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -61318,7 +60162,7 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Int8Array,i8> + (func $"std/typedarray/testArrayWrap<~lib/typedarray/Int8Array,i8>" (local $values i32) (local $length i32) (local $array i32) @@ -61484,7 +60328,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint8Array,u8> + (func $"std/typedarray/testArrayWrap<~lib/typedarray/Uint8Array,u8>" (local $values i32) (local $length i32) (local $array i32) @@ -61672,7 +60516,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/WRAP<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) + block $"~lib/typedarray/WRAP<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $buffer local.tee $buffer|3 @@ -61776,7 +60620,7 @@ i32.add i32.store offset=4 local.get $out - br $~lib/typedarray/WRAP<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + br $"~lib/typedarray/WRAP<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -61829,7 +60673,7 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint8ClampedArray,u8> + (func $"std/typedarray/testArrayWrap<~lib/typedarray/Uint8ClampedArray,u8>" (local $values i32) (local $length i32) (local $array i32) @@ -62019,7 +60863,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/WRAP<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) + block $"~lib/typedarray/WRAP<~lib/typedarray/Int16Array,i16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $buffer local.tee $buffer|3 @@ -62123,7 +60967,7 @@ i32.add i32.store offset=4 local.get $out - br $~lib/typedarray/WRAP<~lib/typedarray/Int16Array,i16>|inlined.0 + br $"~lib/typedarray/WRAP<~lib/typedarray/Int16Array,i16>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -62176,7 +61020,7 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Int16Array,i16> + (func $"std/typedarray/testArrayWrap<~lib/typedarray/Int16Array,i16>" (local $values i32) (local $length i32) (local $array i32) @@ -62367,7 +61211,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/WRAP<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) + block $"~lib/typedarray/WRAP<~lib/typedarray/Uint16Array,u16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $buffer local.tee $buffer|3 @@ -62471,7 +61315,7 @@ i32.add i32.store offset=4 local.get $out - br $~lib/typedarray/WRAP<~lib/typedarray/Uint16Array,u16>|inlined.0 + br $"~lib/typedarray/WRAP<~lib/typedarray/Uint16Array,u16>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -62524,7 +61368,7 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint16Array,u16> + (func $"std/typedarray/testArrayWrap<~lib/typedarray/Uint16Array,u16>" (local $values i32) (local $length i32) (local $array i32) @@ -62718,7 +61562,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/WRAP<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + block $"~lib/typedarray/WRAP<~lib/typedarray/Int32Array,i32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $buffer local.tee $buffer|3 @@ -62822,7 +61666,7 @@ i32.add i32.store offset=4 local.get $out - br $~lib/typedarray/WRAP<~lib/typedarray/Int32Array,i32>|inlined.0 + br $"~lib/typedarray/WRAP<~lib/typedarray/Int32Array,i32>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -62875,7 +61719,7 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Int32Array,i32> + (func $"std/typedarray/testArrayWrap<~lib/typedarray/Int32Array,i32>" (local $values i32) (local $length i32) (local $array i32) @@ -63069,7 +61913,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/WRAP<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) + block $"~lib/typedarray/WRAP<~lib/typedarray/Uint32Array,u32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $buffer local.tee $buffer|3 @@ -63173,7 +62017,7 @@ i32.add i32.store offset=4 local.get $out - br $~lib/typedarray/WRAP<~lib/typedarray/Uint32Array,u32>|inlined.0 + br $"~lib/typedarray/WRAP<~lib/typedarray/Uint32Array,u32>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -63226,7 +62070,7 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint32Array,u32> + (func $"std/typedarray/testArrayWrap<~lib/typedarray/Uint32Array,u32>" (local $values i32) (local $length i32) (local $array i32) @@ -63422,7 +62266,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/WRAP<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) + block $"~lib/typedarray/WRAP<~lib/typedarray/Int64Array,i64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $buffer local.tee $buffer|3 @@ -63526,7 +62370,7 @@ i32.add i32.store offset=4 local.get $out - br $~lib/typedarray/WRAP<~lib/typedarray/Int64Array,i64>|inlined.0 + br $"~lib/typedarray/WRAP<~lib/typedarray/Int64Array,i64>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -63579,7 +62423,7 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Int64Array,i64> + (func $"std/typedarray/testArrayWrap<~lib/typedarray/Int64Array,i64>" (local $values i32) (local $length i32) (local $array i32) @@ -63778,7 +62622,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/WRAP<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) + block $"~lib/typedarray/WRAP<~lib/typedarray/Uint64Array,u64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $buffer local.tee $buffer|3 @@ -63882,7 +62726,7 @@ i32.add i32.store offset=4 local.get $out - br $~lib/typedarray/WRAP<~lib/typedarray/Uint64Array,u64>|inlined.0 + br $"~lib/typedarray/WRAP<~lib/typedarray/Uint64Array,u64>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -63935,7 +62779,7 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint64Array,u64> + (func $"std/typedarray/testArrayWrap<~lib/typedarray/Uint64Array,u64>" (local $values i32) (local $length i32) (local $array i32) @@ -64136,7 +62980,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/WRAP<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + block $"~lib/typedarray/WRAP<~lib/typedarray/Float32Array,f32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $buffer local.tee $buffer|3 @@ -64240,7 +63084,7 @@ i32.add i32.store offset=4 local.get $out - br $~lib/typedarray/WRAP<~lib/typedarray/Float32Array,f32>|inlined.0 + br $"~lib/typedarray/WRAP<~lib/typedarray/Float32Array,f32>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -64293,7 +63137,7 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Float32Array,f32> + (func $"std/typedarray/testArrayWrap<~lib/typedarray/Float32Array,f32>" (local $values i32) (local $length i32) (local $array i32) @@ -64496,7 +63340,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/WRAP<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + block $"~lib/typedarray/WRAP<~lib/typedarray/Float64Array,f64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $buffer local.tee $buffer|3 @@ -64600,7 +63444,7 @@ i32.add i32.store offset=4 local.get $out - br $~lib/typedarray/WRAP<~lib/typedarray/Float64Array,f64>|inlined.0 + br $"~lib/typedarray/WRAP<~lib/typedarray/Float64Array,f64>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -64653,7 +63497,7 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Float64Array,f64> + (func $"std/typedarray/testArrayWrap<~lib/typedarray/Float64Array,f64>" (local $values i32) (local $length i32) (local $array i32) @@ -65098,11 +63942,6 @@ i32.ne if i32.const 10320 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 i32.const 3 local.get $i f64.convert_i32_s @@ -65942,11 +64781,6 @@ (local $7 i32) (local $8 i32) (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - (local $14 i32) global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub @@ -65963,29 +64797,29 @@ local.tee $setSource4 i32.store local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set @@ -65996,38 +64830,38 @@ local.tee $setSource5 i32.store offset=8 local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -66038,29 +64872,29 @@ local.tee $setSource6 i32.store offset=12 local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set @@ -66071,191 +64905,191 @@ local.tee $a i32.store offset=16 local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource1 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 0 call $~lib/typedarray/Int8Array#set<~lib/array/Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 0 i32.const 16 i32.const 10288 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource2 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 3 call $~lib/typedarray/Int8Array#set<~lib/array/Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 0 i32.const 16 i32.const 10368 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 6 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 0 i32.const 16 i32.const 10400 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> i32.const 1 drop local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource3 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 2 call $~lib/typedarray/Int8Array#set<~lib/array/Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 0 i32.const 16 i32.const 10432 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 0 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 4 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource7 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 7 call $~lib/typedarray/Int8Array#set<~lib/array/Array> i32.const 0 drop local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 0 i32.const 16 i32.const 10464 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> global.get $~lib/memory/__stack_pointer i32.const 24 @@ -66546,11 +65380,6 @@ i32.ne if i32.const 10528 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 i32.const 3 local.get $i f64.convert_i32_s @@ -67340,11 +66169,6 @@ (local $7 i32) (local $8 i32) (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - (local $14 i32) global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub @@ -67361,29 +66185,29 @@ local.tee $setSource4 i32.store local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set @@ -67394,38 +66218,38 @@ local.tee $setSource5 i32.store offset=8 local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -67436,29 +66260,29 @@ local.tee $setSource6 i32.store offset=12 local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set @@ -67469,191 +66293,191 @@ local.tee $a i32.store offset=16 local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource1 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 0 call $~lib/typedarray/Uint8Array#set<~lib/array/Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 0 i32.const 64 i32.const 10496 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource2 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 3 call $~lib/typedarray/Uint8Array#set<~lib/array/Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 0 i32.const 64 i32.const 10576 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 6 call $~lib/typedarray/Uint8Array#set<~lib/typedarray/Int64Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 0 i32.const 64 i32.const 10608 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> i32.const 1 drop local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource3 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 2 call $~lib/typedarray/Uint8Array#set<~lib/array/Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 0 i32.const 64 i32.const 10640 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 0 call $~lib/typedarray/Uint8Array#set<~lib/typedarray/Uint8Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 4 call $~lib/typedarray/Uint8Array#set<~lib/typedarray/Int16Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource7 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 7 call $~lib/typedarray/Uint8Array#set<~lib/array/Array> i32.const 0 drop local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 0 i32.const 64 i32.const 10672 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> global.get $~lib/memory/__stack_pointer i32.const 24 @@ -67908,11 +66732,6 @@ i32.ne if i32.const 10736 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 i32.const 3 local.get $i f64.convert_i32_s @@ -68799,11 +67618,6 @@ (local $7 i32) (local $8 i32) (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - (local $14 i32) global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub @@ -68820,29 +67634,29 @@ local.tee $setSource4 i32.store local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set @@ -68853,38 +67667,38 @@ local.tee $setSource5 i32.store offset=8 local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -68895,29 +67709,29 @@ local.tee $setSource6 i32.store offset=12 local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set @@ -68928,191 +67742,191 @@ local.tee $a i32.store offset=16 local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource1 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 0 call $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 0 i32.const 64 i32.const 10704 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource2 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 0 i32.const 64 i32.const 10800 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 6 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 0 i32.const 64 i32.const 10832 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> i32.const 1 drop local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource3 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 0 i32.const 64 i32.const 10864 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 0 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Uint8Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 4 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource7 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 7 call $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> i32.const 1 drop local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 0 i32.const 64 i32.const 10896 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> global.get $~lib/memory/__stack_pointer i32.const 24 @@ -69405,11 +68219,6 @@ i32.ne if i32.const 10976 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 i32.const 3 local.get $i f64.convert_i32_s @@ -70231,11 +69040,6 @@ (local $7 i32) (local $8 i32) (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - (local $14 i32) global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub @@ -70252,29 +69056,29 @@ local.tee $setSource4 i32.store local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set @@ -70285,38 +69089,38 @@ local.tee $setSource5 i32.store offset=8 local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -70327,29 +69131,29 @@ local.tee $setSource6 i32.store offset=12 local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set @@ -70360,191 +69164,191 @@ local.tee $a i32.store offset=16 local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource1 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 0 call $~lib/typedarray/Int16Array#set<~lib/array/Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 1 i32.const 65 i32.const 10928 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource2 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 3 call $~lib/typedarray/Int16Array#set<~lib/array/Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 1 i32.const 65 i32.const 11024 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 6 call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 1 i32.const 65 i32.const 11072 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> i32.const 1 drop local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource3 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 2 call $~lib/typedarray/Int16Array#set<~lib/array/Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 1 i32.const 65 i32.const 11120 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 0 call $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 4 call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource7 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 7 call $~lib/typedarray/Int16Array#set<~lib/array/Array> i32.const 0 drop local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 1 i32.const 65 i32.const 11168 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 24 @@ -70837,11 +69641,6 @@ i32.ne if i32.const 11264 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 i32.const 3 local.get $i f64.convert_i32_s @@ -71663,11 +70462,6 @@ (local $7 i32) (local $8 i32) (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - (local $14 i32) global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub @@ -71684,29 +70478,29 @@ local.tee $setSource4 i32.store local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set @@ -71717,38 +70511,38 @@ local.tee $setSource5 i32.store offset=8 local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -71759,29 +70553,29 @@ local.tee $setSource6 i32.store offset=12 local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set @@ -71792,191 +70586,191 @@ local.tee $a i32.store offset=16 local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource1 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 0 call $~lib/typedarray/Uint16Array#set<~lib/array/Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 1 i32.const 66 i32.const 11216 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource2 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 3 call $~lib/typedarray/Uint16Array#set<~lib/array/Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 1 i32.const 66 i32.const 11312 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 6 call $~lib/typedarray/Uint16Array#set<~lib/typedarray/Int64Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 1 i32.const 66 i32.const 11360 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> i32.const 1 drop local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource3 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 2 call $~lib/typedarray/Uint16Array#set<~lib/array/Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 1 i32.const 66 i32.const 11408 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 0 call $~lib/typedarray/Uint16Array#set<~lib/typedarray/Uint8Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 4 call $~lib/typedarray/Uint16Array#set<~lib/typedarray/Int16Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource7 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 7 call $~lib/typedarray/Uint16Array#set<~lib/array/Array> i32.const 0 drop local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 1 i32.const 66 i32.const 11456 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> global.get $~lib/memory/__stack_pointer i32.const 24 @@ -72212,11 +71006,6 @@ i32.ne if i32.const 11568 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 i32.const 3 local.get $i f64.convert_i32_s @@ -73070,11 +71859,6 @@ (local $7 i32) (local $8 i32) (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - (local $14 i32) global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub @@ -73091,29 +71875,29 @@ local.tee $setSource4 i32.store local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set @@ -73124,38 +71908,38 @@ local.tee $setSource5 i32.store offset=8 local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -73166,29 +71950,29 @@ local.tee $setSource6 i32.store offset=12 local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set @@ -73199,191 +71983,191 @@ local.tee $a i32.store offset=16 local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource1 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 0 call $~lib/typedarray/Int32Array#set<~lib/array/Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 2 i32.const 17 i32.const 11504 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource2 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 3 call $~lib/typedarray/Int32Array#set<~lib/array/Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 2 i32.const 17 i32.const 11616 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 6 call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int64Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 2 i32.const 17 i32.const 11680 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> i32.const 1 drop local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource3 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 2 call $~lib/typedarray/Int32Array#set<~lib/array/Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 2 i32.const 17 i32.const 11744 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 0 call $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 4 call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource7 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 7 call $~lib/typedarray/Int32Array#set<~lib/array/Array> i32.const 0 drop local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 2 i32.const 17 i32.const 11808 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> global.get $~lib/memory/__stack_pointer i32.const 24 @@ -73644,11 +72428,6 @@ i32.ne if i32.const 11936 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 i32.const 3 local.get $i f64.convert_i32_s @@ -74502,11 +73281,6 @@ (local $7 i32) (local $8 i32) (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - (local $14 i32) global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub @@ -74523,29 +73297,29 @@ local.tee $setSource4 i32.store local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set @@ -74556,38 +73330,38 @@ local.tee $setSource5 i32.store offset=8 local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -74598,29 +73372,29 @@ local.tee $setSource6 i32.store offset=12 local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set @@ -74631,191 +73405,191 @@ local.tee $a i32.store offset=16 local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource1 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 0 call $~lib/typedarray/Uint32Array#set<~lib/array/Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 2 i32.const 67 i32.const 11872 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource2 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 3 call $~lib/typedarray/Uint32Array#set<~lib/array/Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 2 i32.const 67 i32.const 11984 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 6 call $~lib/typedarray/Uint32Array#set<~lib/typedarray/Int64Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 2 i32.const 67 i32.const 12048 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> i32.const 1 drop local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource3 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 2 call $~lib/typedarray/Uint32Array#set<~lib/array/Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 2 i32.const 67 i32.const 12112 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 0 call $~lib/typedarray/Uint32Array#set<~lib/typedarray/Uint8Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 4 call $~lib/typedarray/Uint32Array#set<~lib/typedarray/Int16Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource7 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 7 call $~lib/typedarray/Uint32Array#set<~lib/array/Array> i32.const 0 drop local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 2 i32.const 67 i32.const 12176 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> global.get $~lib/memory/__stack_pointer i32.const 24 @@ -75111,11 +73885,6 @@ i64.ne if i32.const 12352 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 i32.const 3 local.get $i f64.convert_i32_s @@ -75939,11 +74708,6 @@ (local $7 i32) (local $8 i32) (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - (local $14 i32) global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub @@ -75960,29 +74724,29 @@ local.tee $setSource4 i32.store local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set @@ -75993,38 +74757,38 @@ local.tee $setSource5 i32.store offset=8 local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -76035,29 +74799,29 @@ local.tee $setSource6 i32.store offset=12 local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set @@ -76068,191 +74832,191 @@ local.tee $a i32.store offset=16 local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource1 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 0 call $~lib/typedarray/Int64Array#set<~lib/array/Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 3 i32.const 68 i32.const 12240 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource2 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 3 call $~lib/typedarray/Int64Array#set<~lib/array/Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 3 i32.const 68 i32.const 12400 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 6 call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 3 i32.const 68 i32.const 12512 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> i32.const 1 drop local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource3 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 2 call $~lib/typedarray/Int64Array#set<~lib/array/Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 3 i32.const 68 i32.const 12624 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 0 call $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 4 call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource7 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 7 call $~lib/typedarray/Int64Array#set<~lib/array/Array> i32.const 0 drop local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 3 i32.const 68 i32.const 12736 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> global.get $~lib/memory/__stack_pointer i32.const 24 @@ -76548,11 +75312,6 @@ i64.ne if i32.const 12960 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 i32.const 3 local.get $i f64.convert_i32_s @@ -77376,11 +76135,6 @@ (local $7 i32) (local $8 i32) (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - (local $14 i32) global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub @@ -77397,29 +76151,29 @@ local.tee $setSource4 i32.store local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set @@ -77430,38 +76184,38 @@ local.tee $setSource5 i32.store offset=8 local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -77472,29 +76226,29 @@ local.tee $setSource6 i32.store offset=12 local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set @@ -77505,191 +76259,191 @@ local.tee $a i32.store offset=16 local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource1 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 0 call $~lib/typedarray/Uint64Array#set<~lib/array/Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 3 i32.const 69 i32.const 12848 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource2 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 3 call $~lib/typedarray/Uint64Array#set<~lib/array/Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 3 i32.const 69 i32.const 13008 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 6 call $~lib/typedarray/Uint64Array#set<~lib/typedarray/Int64Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 3 i32.const 69 i32.const 13120 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> i32.const 1 drop local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource3 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 2 call $~lib/typedarray/Uint64Array#set<~lib/array/Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 3 i32.const 69 i32.const 13232 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 0 call $~lib/typedarray/Uint64Array#set<~lib/typedarray/Uint8Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 4 call $~lib/typedarray/Uint64Array#set<~lib/typedarray/Int16Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource7 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 7 call $~lib/typedarray/Uint64Array#set<~lib/array/Array> i32.const 0 drop local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 3 i32.const 69 i32.const 13344 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> global.get $~lib/memory/__stack_pointer i32.const 24 @@ -77960,11 +76714,6 @@ f32.ne if i32.const 13520 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 i32.const 3 local.get $i f64.convert_i32_s @@ -78635,10 +77384,6 @@ (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 24 i32.sub @@ -78655,29 +77400,29 @@ local.tee $setSource4 i32.store local.get $setSource4 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set local.get $setSource4 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set local.get $setSource4 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set @@ -78688,38 +77433,38 @@ local.tee $setSource5 i32.store offset=8 local.get $setSource5 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -78730,29 +77475,29 @@ local.tee $setSource6 i32.store offset=12 local.get $setSource6 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set local.get $setSource6 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set local.get $setSource6 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set @@ -78763,160 +77508,160 @@ local.tee $a i32.store offset=16 local.get $a - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 global.get $std/typedarray/setSource1 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=20 - local.get $12 + local.get $8 i32.const 0 call $~lib/typedarray/Float32Array#set<~lib/array/Array> local.get $a - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 10 i32.const 2 i32.const 62 i32.const 13456 call $~lib/rt/__newArray - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=20 - local.get $12 + local.get $8 call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> local.get $a - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 global.get $std/typedarray/setSource2 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=20 - local.get $12 + local.get $8 i32.const 3 call $~lib/typedarray/Float32Array#set<~lib/array/Array> local.get $a - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 10 i32.const 2 i32.const 62 i32.const 13568 call $~lib/rt/__newArray - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=20 - local.get $12 + local.get $8 call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> local.get $a - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 local.get $setSource4 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=20 - local.get $12 + local.get $8 i32.const 6 call $~lib/typedarray/Float32Array#set<~lib/typedarray/Int64Array> local.get $a - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 10 i32.const 2 i32.const 62 i32.const 13632 call $~lib/rt/__newArray - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=20 - local.get $12 + local.get $8 call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> i32.const 0 drop local.get $a - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 local.get $setSource5 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=20 - local.get $12 + local.get $8 i32.const 0 call $~lib/typedarray/Float32Array#set<~lib/typedarray/Uint8Array> local.get $a - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 local.get $setSource6 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=20 - local.get $12 + local.get $8 i32.const 4 call $~lib/typedarray/Float32Array#set<~lib/typedarray/Int16Array> local.get $a - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 global.get $std/typedarray/setSource7 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=20 - local.get $12 + local.get $8 i32.const 7 call $~lib/typedarray/Float32Array#set<~lib/array/Array> i32.const 0 drop local.get $a - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 10 i32.const 2 i32.const 62 i32.const 13696 call $~lib/rt/__newArray - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=20 - local.get $12 + local.get $8 call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> global.get $~lib/memory/__stack_pointer i32.const 24 @@ -79187,11 +77932,6 @@ f64.ne if i32.const 13872 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 i32.const 3 local.get $i f64.convert_i32_s @@ -79894,10 +78634,6 @@ (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 24 i32.sub @@ -79914,29 +78650,29 @@ local.tee $setSource4 i32.store local.get $setSource4 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set local.get $setSource4 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set local.get $setSource4 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set @@ -79947,38 +78683,38 @@ local.tee $setSource5 i32.store offset=8 local.get $setSource5 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -79989,29 +78725,29 @@ local.tee $setSource6 i32.store offset=12 local.get $setSource6 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set local.get $setSource6 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set local.get $setSource6 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set @@ -80022,160 +78758,160 @@ local.tee $a i32.store offset=16 local.get $a - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 global.get $std/typedarray/setSource1 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=20 - local.get $12 + local.get $8 i32.const 0 call $~lib/typedarray/Float64Array#set<~lib/array/Array> local.get $a - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 10 i32.const 3 i32.const 63 i32.const 13760 call $~lib/rt/__newArray - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=20 - local.get $12 + local.get $8 call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> local.get $a - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 global.get $std/typedarray/setSource2 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=20 - local.get $12 + local.get $8 i32.const 3 call $~lib/typedarray/Float64Array#set<~lib/array/Array> local.get $a - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 10 i32.const 3 i32.const 63 i32.const 13920 call $~lib/rt/__newArray - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=20 - local.get $12 + local.get $8 call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> local.get $a - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 local.get $setSource4 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=20 - local.get $12 + local.get $8 i32.const 6 call $~lib/typedarray/Float64Array#set<~lib/typedarray/Int64Array> local.get $a - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 10 i32.const 3 i32.const 63 i32.const 14032 call $~lib/rt/__newArray - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=20 - local.get $12 + local.get $8 call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> i32.const 0 drop local.get $a - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 local.get $setSource5 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=20 - local.get $12 + local.get $8 i32.const 0 call $~lib/typedarray/Float64Array#set<~lib/typedarray/Uint8Array> local.get $a - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 local.get $setSource6 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=20 - local.get $12 + local.get $8 i32.const 4 call $~lib/typedarray/Float64Array#set<~lib/typedarray/Int16Array> local.get $a - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 global.get $std/typedarray/setSource7 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=20 - local.get $12 + local.get $8 i32.const 7 call $~lib/typedarray/Float64Array#set<~lib/array/Array> i32.const 0 drop local.get $a - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 10 i32.const 3 i32.const 63 i32.const 14144 call $~lib/rt/__newArray - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=20 - local.get $12 + local.get $8 call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> global.get $~lib/memory/__stack_pointer i32.const 24 @@ -81189,7 +79925,7 @@ global.set $~lib/memory/__stack_pointer local.get $2 ) - (func $std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8> + (func $"std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8>" (local $source i32) (local $result i32) (local $2 i32) @@ -81950,7 +80686,7 @@ global.set $~lib/memory/__stack_pointer local.get $2 ) - (func $std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8> + (func $"std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8>" (local $source i32) (local $result i32) (local $2 i32) @@ -82237,7 +80973,7 @@ global.set $~lib/memory/__stack_pointer local.get $2 ) - (func $std/typedarray/testArraySort<~lib/typedarray/Uint8ClampedArray,u8> + (func $"std/typedarray/testArraySort<~lib/typedarray/Uint8ClampedArray,u8>" (local $source i32) (local $result i32) (local $2 i32) @@ -83000,7 +81736,7 @@ global.set $~lib/memory/__stack_pointer local.get $2 ) - (func $std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16> + (func $"std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16>" (local $source i32) (local $result i32) (local $2 i32) @@ -83761,7 +82497,7 @@ global.set $~lib/memory/__stack_pointer local.get $2 ) - (func $std/typedarray/testArraySort<~lib/typedarray/Uint16Array,u16> + (func $"std/typedarray/testArraySort<~lib/typedarray/Uint16Array,u16>" (local $source i32) (local $result i32) (local $2 i32) @@ -84524,7 +83260,7 @@ global.set $~lib/memory/__stack_pointer local.get $2 ) - (func $std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32> + (func $"std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32>" (local $source i32) (local $result i32) (local $2 i32) @@ -85285,7 +84021,7 @@ global.set $~lib/memory/__stack_pointer local.get $2 ) - (func $std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32> + (func $"std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32>" (local $source i32) (local $result i32) (local $2 i32) @@ -86048,7 +84784,7 @@ global.set $~lib/memory/__stack_pointer local.get $2 ) - (func $std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64> + (func $"std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64>" (local $source i32) (local $result i32) (local $2 i32) @@ -86809,7 +85545,7 @@ global.set $~lib/memory/__stack_pointer local.get $2 ) - (func $std/typedarray/testArraySort<~lib/typedarray/Uint64Array,u64> + (func $"std/typedarray/testArraySort<~lib/typedarray/Uint64Array,u64>" (local $source i32) (local $result i32) (local $2 i32) @@ -87574,7 +86310,7 @@ global.set $~lib/memory/__stack_pointer local.get $2 ) - (func $std/typedarray/testArraySort<~lib/typedarray/Float32Array,f32> + (func $"std/typedarray/testArraySort<~lib/typedarray/Float32Array,f32>" (local $source i32) (local $result i32) (local $2 i32) @@ -87768,7 +86504,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArraySort<~lib/typedarray/Float64Array,f64> + (func $"std/typedarray/testArraySort<~lib/typedarray/Float64Array,f64>" (local $source i32) (local $result i32) (local $2 i32) @@ -88028,42 +86764,6 @@ (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) - (local $78 i32) - (local $79 i32) - (local $80 i32) - (local $81 i32) - (local $82 i32) - (local $83 i32) - (local $84 i32) - (local $85 i32) - (local $86 i32) - (local $87 i32) - (local $88 i32) - (local $89 i32) - (local $90 i32) - (local $91 i32) - (local $92 i32) - (local $93 i32) - (local $94 i32) - (local $95 i32) - (local $96 i32) - (local $97 i32) - (local $98 i32) - (local $99 i32) - (local $100 i32) global.get $~lib/memory/__stack_pointer i32.const 124 i32.sub @@ -88145,38 +86845,38 @@ local.tee $0 i32.store local.get $0 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set local.get $0 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set local.get $0 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set local.get $0 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/typedarray/Int32Array#get:length i32.const 3 i32.eq @@ -88190,11 +86890,11 @@ unreachable end local.get $0 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset i32.const 0 i32.eq @@ -88208,11 +86908,11 @@ unreachable end local.get $0 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 3 i32.const 4 @@ -88228,11 +86928,11 @@ unreachable end local.get $0 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 call $~lib/typedarray/Int32Array#__get i32.const 1 @@ -88247,11 +86947,11 @@ unreachable end local.get $0 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 call $~lib/typedarray/Int32Array#__get i32.const 2 @@ -88266,11 +86966,11 @@ unreachable end local.get $0 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 2 call $~lib/typedarray/Int32Array#__get i32.const 3 @@ -88286,22 +86986,22 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#subarray local.tee $0 i32.store local.get $0 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/typedarray/Int32Array#get:length i32.const 1 i32.eq @@ -88315,11 +87015,11 @@ unreachable end local.get $0 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset i32.const 1 i32.const 4 @@ -88335,11 +87035,11 @@ unreachable end local.get $0 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 1 i32.const 4 @@ -88355,11 +87055,11 @@ unreachable end local.get $0 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 call $~lib/typedarray/Int32Array#__get i32.const 2 @@ -88380,95 +87080,95 @@ local.tee $1 i32.store offset=8 local.get $1 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 f64.const 1 call $~lib/typedarray/Float64Array#__set local.get $1 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 f64.const 2 call $~lib/typedarray/Float64Array#__set local.get $1 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 2 f64.const 7 call $~lib/typedarray/Float64Array#__set local.get $1 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 3 f64.const 6 call $~lib/typedarray/Float64Array#__set local.get $1 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 4 f64.const 5 call $~lib/typedarray/Float64Array#__set local.get $1 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 5 f64.const 4 call $~lib/typedarray/Float64Array#__set local.get $1 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 6 f64.const 3 call $~lib/typedarray/Float64Array#__set local.get $1 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 7 f64.const 8 call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer local.get $1 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 2 i32.const 6 call $~lib/typedarray/Float64Array#subarray local.tee $1 i32.store offset=8 local.get $1 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/typedarray/Float64Array#get:length i32.const 4 i32.eq @@ -88482,11 +87182,11 @@ unreachable end local.get $1 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset i32.const 2 i32.const 8 @@ -88502,11 +87202,11 @@ unreachable end local.get $1 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 4 i32.const 8 @@ -88522,33 +87222,33 @@ unreachable end local.get $1 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Float64Array#sort@varargs drop local.get $1 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 call $~lib/typedarray/Float64Array#__get f64.const 4 f64.eq if (result i32) local.get $1 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 call $~lib/typedarray/Float64Array#__get f64.const 5 @@ -88558,11 +87258,11 @@ end if (result i32) local.get $1 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 2 call $~lib/typedarray/Float64Array#__get f64.const 6 @@ -88572,11 +87272,11 @@ end if (result i32) local.get $1 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 3 call $~lib/typedarray/Float64Array#__get f64.const 7 @@ -88600,38 +87300,38 @@ local.tee $2 i32.store offset=12 local.get $2 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const -32 call $~lib/typedarray/Uint8ClampedArray#__set local.get $2 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set local.get $2 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 2 i32.const 256 call $~lib/typedarray/Uint8ClampedArray#__set local.get $2 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 0 @@ -88646,11 +87346,11 @@ unreachable end local.get $2 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 2 @@ -88665,11 +87365,11 @@ unreachable end local.get $2 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 255 @@ -88690,77 +87390,77 @@ local.tee $3 i32.store offset=16 local.get $3 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 1 call $~lib/typedarray/Int8Array#__set local.get $3 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 i32.const 2 call $~lib/typedarray/Int8Array#__set local.get $3 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 2 i32.const 3 call $~lib/typedarray/Int8Array#__set local.get $3 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 3 i32.const 4 call $~lib/typedarray/Int8Array#__set local.get $3 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 4 i32.const 5 call $~lib/typedarray/Int8Array#__set local.get $3 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 i32.const 1 i32.const 3 call $~lib/typedarray/Int8Array#fill drop local.get $3 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 5 i32.const 0 i32.const 16 i32.const 704 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/isInt8ArrayEqual i32.eqz if @@ -88772,11 +87472,11 @@ unreachable end local.get $3 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 0 i32.const 1 @@ -88785,21 +87485,21 @@ call $~lib/typedarray/Int8Array#fill@varargs drop local.get $3 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 5 i32.const 0 i32.const 16 i32.const 784 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/isInt8ArrayEqual i32.eqz if @@ -88811,32 +87511,32 @@ unreachable end local.get $3 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 i32.const 0 i32.const -3 call $~lib/typedarray/Int8Array#fill drop local.get $3 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 5 i32.const 0 i32.const 16 i32.const 816 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/isInt8ArrayEqual i32.eqz if @@ -88848,11 +87548,11 @@ unreachable end local.get $3 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 2 i32.const -2 i32.const 2 @@ -88861,21 +87561,21 @@ call $~lib/typedarray/Int8Array#fill@varargs drop local.get $3 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 5 i32.const 0 i32.const 16 i32.const 848 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/isInt8ArrayEqual i32.eqz if @@ -88887,32 +87587,32 @@ unreachable end local.get $3 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 1 i32.const 0 call $~lib/typedarray/Int8Array#fill drop local.get $3 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 5 i32.const 0 i32.const 16 i32.const 880 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/isInt8ArrayEqual i32.eqz if @@ -88925,22 +87625,22 @@ end global.get $~lib/memory/__stack_pointer local.get $3 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 i32.const 4 call $~lib/typedarray/Int8Array#subarray - local.tee $14 + local.tee $9 i32.store offset=24 - local.get $14 - local.set $100 + local.get $9 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 0 i32.const 1 @@ -88948,12 +87648,12 @@ i32.const 0 call $~lib/typedarray/Int8Array#fill@varargs drop - local.get $14 - local.set $100 + local.get $9 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/typedarray/Int8Array#get:length i32.const 3 i32.eq @@ -88966,12 +87666,12 @@ call $~lib/builtins/abort unreachable end - local.get $14 - local.set $100 + local.get $9 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset i32.const 1 i32.eq @@ -88984,12 +87684,12 @@ call $~lib/builtins/abort unreachable end - local.get $14 - local.set $100 + local.get $9 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 3 i32.eq @@ -89002,22 +87702,22 @@ call $~lib/builtins/abort unreachable end - local.get $14 - local.set $100 + local.get $9 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 3 i32.const 0 i32.const 16 i32.const 912 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/isInt8ArrayEqual i32.eqz if @@ -89029,21 +87729,21 @@ unreachable end local.get $3 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 5 i32.const 0 i32.const 16 i32.const 944 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/isInt8ArrayEqual i32.eqz if @@ -89058,80 +87758,80 @@ i32.const 0 i32.const 5 call $~lib/typedarray/Int32Array#constructor - local.tee $19 + local.tee $12 i32.store offset=28 - local.get $19 - local.set $100 + local.get $12 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $19 - local.set $100 + local.get $12 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $19 - local.set $100 + local.get $12 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set - local.get $19 - local.set $100 + local.get $12 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 3 i32.const 4 call $~lib/typedarray/Int32Array#__set - local.get $19 - local.set $100 + local.get $12 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 4 i32.const 5 call $~lib/typedarray/Int32Array#__set - local.get $19 - local.set $100 + local.get $12 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 i32.const 1 i32.const 3 call $~lib/typedarray/Int32Array#fill drop - local.get $19 - local.set $100 + local.get $12 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 5 i32.const 2 i32.const 17 i32.const 976 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -89142,12 +87842,12 @@ call $~lib/builtins/abort unreachable end - local.get $19 - local.set $100 + local.get $12 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 0 i32.const 1 @@ -89155,22 +87855,22 @@ i32.const 0 call $~lib/typedarray/Int32Array#fill@varargs drop - local.get $19 - local.set $100 + local.get $12 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 5 i32.const 2 i32.const 17 i32.const 1024 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -89181,33 +87881,33 @@ call $~lib/builtins/abort unreachable end - local.get $19 - local.set $100 + local.get $12 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 i32.const 0 i32.const -3 call $~lib/typedarray/Int32Array#fill drop - local.get $19 - local.set $100 + local.get $12 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 5 i32.const 2 i32.const 17 i32.const 1072 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -89218,12 +87918,12 @@ call $~lib/builtins/abort unreachable end - local.get $19 - local.set $100 + local.get $12 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 2 i32.const -2 i32.const 2 @@ -89231,22 +87931,22 @@ i32.const 0 call $~lib/typedarray/Int32Array#fill@varargs drop - local.get $19 - local.set $100 + local.get $12 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 5 i32.const 2 i32.const 17 i32.const 1120 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -89257,33 +87957,33 @@ call $~lib/builtins/abort unreachable end - local.get $19 - local.set $100 + local.get $12 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 1 i32.const 0 call $~lib/typedarray/Int32Array#fill drop - local.get $19 - local.set $100 + local.get $12 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 5 i32.const 2 i32.const 17 i32.const 1168 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -89295,23 +87995,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $19 - local.set $100 + local.get $12 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 i32.const 4 call $~lib/typedarray/Int32Array#subarray - local.tee $30 + local.tee $18 i32.store offset=32 - local.get $30 - local.set $100 + local.get $18 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 0 i32.const 1 @@ -89319,12 +88019,12 @@ i32.const 0 call $~lib/typedarray/Int32Array#fill@varargs drop - local.get $30 - local.set $100 + local.get $18 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/typedarray/Int32Array#get:length i32.const 3 i32.eq @@ -89337,12 +88037,12 @@ call $~lib/builtins/abort unreachable end - local.get $30 - local.set $100 + local.get $18 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset i32.const 1 i32.const 4 @@ -89357,12 +88057,12 @@ call $~lib/builtins/abort unreachable end - local.get $30 - local.set $100 + local.get $18 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 3 i32.const 4 @@ -89377,22 +88077,22 @@ call $~lib/builtins/abort unreachable end - local.get $30 - local.set $100 + local.get $18 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 3 i32.const 2 i32.const 17 i32.const 1216 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -89403,22 +88103,22 @@ call $~lib/builtins/abort unreachable end - local.get $19 - local.set $100 + local.get $12 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 5 i32.const 2 i32.const 17 i32.const 1248 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -89433,80 +88133,80 @@ i32.const 0 i32.const 6 call $~lib/typedarray/Int8Array#constructor - local.tee $35 + local.tee $21 i32.store offset=36 - local.get $35 - local.set $100 + local.get $21 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 1 call $~lib/typedarray/Int8Array#__set - local.get $35 - local.set $100 + local.get $21 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $35 - local.set $100 + local.get $21 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 2 i32.const 3 call $~lib/typedarray/Int8Array#__set - local.get $35 - local.set $100 + local.get $21 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 3 i32.const 4 call $~lib/typedarray/Int8Array#__set - local.get $35 - local.set $100 + local.get $21 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 4 i32.const 5 call $~lib/typedarray/Int8Array#__set - local.get $35 - local.set $100 + local.get $21 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 5 i32.const 6 call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - local.get $35 - local.set $100 + local.get $21 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 i32.const 6 call $~lib/typedarray/Int8Array#subarray - local.tee $36 + local.tee $22 i32.store offset=40 - local.get $36 - local.set $100 + local.get $22 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 call $~lib/typedarray/Int8Array#__get i32.const 2 @@ -89520,12 +88220,12 @@ call $~lib/builtins/abort unreachable end - local.get $36 - local.set $100 + local.get $22 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/typedarray/Int8Array#get:length i32.const 5 i32.eq @@ -89538,12 +88238,12 @@ call $~lib/builtins/abort unreachable end - local.get $36 - local.set $100 + local.get $22 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset i32.const 1 i32.eq @@ -89556,12 +88256,12 @@ call $~lib/builtins/abort unreachable end - local.get $36 - local.set $100 + local.get $22 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 5 i32.eq @@ -89575,23 +88275,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $36 - local.set $100 + local.get $22 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 i32.const 5 call $~lib/typedarray/Int8Array#subarray - local.tee $37 + local.tee $23 i32.store offset=44 - local.get $37 - local.set $100 + local.get $23 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 call $~lib/typedarray/Int8Array#__get i32.const 3 @@ -89605,12 +88305,12 @@ call $~lib/builtins/abort unreachable end - local.get $37 - local.set $100 + local.get $23 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/typedarray/Int8Array#get:length i32.const 4 i32.eq @@ -89623,12 +88323,12 @@ call $~lib/builtins/abort unreachable end - local.get $37 - local.set $100 + local.get $23 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset i32.const 2 i32.eq @@ -89641,12 +88341,12 @@ call $~lib/builtins/abort unreachable end - local.get $37 - local.set $100 + local.get $23 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 4 i32.eq @@ -89660,23 +88360,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $37 - local.set $100 + local.get $23 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 i32.const 4 call $~lib/typedarray/Int8Array#subarray - local.tee $38 + local.tee $24 i32.store offset=48 - local.get $38 - local.set $100 + local.get $24 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 call $~lib/typedarray/Int8Array#__get i32.const 4 @@ -89690,12 +88390,12 @@ call $~lib/builtins/abort unreachable end - local.get $38 - local.set $100 + local.get $24 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/typedarray/Int8Array#get:length i32.const 3 i32.eq @@ -89708,12 +88408,12 @@ call $~lib/builtins/abort unreachable end - local.get $38 - local.set $100 + local.get $24 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset i32.const 3 i32.eq @@ -89726,12 +88426,12 @@ call $~lib/builtins/abort unreachable end - local.get $38 - local.set $100 + local.get $24 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 3 i32.eq @@ -89748,94 +88448,94 @@ i32.const 0 i32.const 5 call $~lib/typedarray/Int32Array#constructor - local.tee $39 + local.tee $25 i32.store offset=52 - local.get $39 - local.set $100 + local.get $25 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $39 - local.set $100 + local.get $25 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $39 - local.set $100 + local.get $25 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set - local.get $39 - local.set $100 + local.get $25 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 3 i32.const 4 call $~lib/typedarray/Int32Array#__set - local.get $39 - local.set $100 + local.get $25 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 4 i32.const 5 call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.get $39 - local.set $100 + local.get $25 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Int32Array#slice@varargs - local.tee $40 + local.tee $26 i32.store offset=56 - local.get $39 - local.set $100 + local.get $25 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=60 - local.get $100 + local.get $64 i32.const 0 i32.const 3 i32.const 2 global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Int32Array#copyWithin@varargs - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 5 i32.const 2 i32.const 17 i32.const 1296 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -89847,46 +88547,46 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $40 - local.set $100 + local.get $26 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Int32Array#slice@varargs - local.tee $39 + local.tee $25 i32.store offset=52 - local.get $39 - local.set $100 + local.get $25 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=60 - local.get $100 + local.get $64 i32.const 1 i32.const 3 i32.const 2 global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Int32Array#copyWithin@varargs - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 5 i32.const 2 i32.const 17 i32.const 1344 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -89898,46 +88598,46 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $40 - local.set $100 + local.get $26 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Int32Array#slice@varargs - local.tee $39 + local.tee $25 i32.store offset=52 - local.get $39 - local.set $100 + local.get $25 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=60 - local.get $100 + local.get $64 i32.const 1 i32.const 2 i32.const 2 global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Int32Array#copyWithin@varargs - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 5 i32.const 2 i32.const 17 i32.const 1392 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -89949,46 +88649,46 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $40 - local.set $100 + local.get $26 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Int32Array#slice@varargs - local.tee $39 + local.tee $25 i32.store offset=52 - local.get $39 - local.set $100 + local.get $25 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=60 - local.get $100 + local.get $64 i32.const 2 i32.const 2 i32.const 2 global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Int32Array#copyWithin@varargs - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 5 i32.const 2 i32.const 17 i32.const 1440 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -90000,44 +88700,44 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $40 - local.set $100 + local.get $26 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Int32Array#slice@varargs - local.tee $39 + local.tee $25 i32.store offset=52 - local.get $39 - local.set $100 + local.get $25 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=60 - local.get $100 + local.get $64 i32.const 0 i32.const 3 i32.const 4 call $~lib/typedarray/Int32Array#copyWithin - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 5 i32.const 2 i32.const 17 i32.const 1488 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -90049,44 +88749,44 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $40 - local.set $100 + local.get $26 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Int32Array#slice@varargs - local.tee $39 + local.tee $25 i32.store offset=52 - local.get $39 - local.set $100 + local.get $25 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=60 - local.get $100 + local.get $64 i32.const 1 i32.const 3 i32.const 4 call $~lib/typedarray/Int32Array#copyWithin - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 5 i32.const 2 i32.const 17 i32.const 1536 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -90098,44 +88798,44 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $40 - local.set $100 + local.get $26 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Int32Array#slice@varargs - local.tee $39 + local.tee $25 i32.store offset=52 - local.get $39 - local.set $100 + local.get $25 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=60 - local.get $100 + local.get $64 i32.const 1 i32.const 2 i32.const 4 call $~lib/typedarray/Int32Array#copyWithin - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 5 i32.const 2 i32.const 17 i32.const 1584 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -90147,46 +88847,46 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $40 - local.set $100 + local.get $26 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Int32Array#slice@varargs - local.tee $39 + local.tee $25 i32.store offset=52 - local.get $39 - local.set $100 + local.get $25 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=60 - local.get $100 + local.get $64 i32.const 0 i32.const -2 i32.const 2 global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Int32Array#copyWithin@varargs - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 5 i32.const 2 i32.const 17 i32.const 1632 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -90198,44 +88898,44 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $40 - local.set $100 + local.get $26 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Int32Array#slice@varargs - local.tee $39 + local.tee $25 i32.store offset=52 - local.get $39 - local.set $100 + local.get $25 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=60 - local.get $100 + local.get $64 i32.const 0 i32.const -2 i32.const -1 call $~lib/typedarray/Int32Array#copyWithin - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 5 i32.const 2 i32.const 17 i32.const 1680 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -90247,44 +88947,44 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $40 - local.set $100 + local.get $26 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Int32Array#slice@varargs - local.tee $39 + local.tee $25 i32.store offset=52 - local.get $39 - local.set $100 + local.get $25 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=60 - local.get $100 + local.get $64 i32.const -4 i32.const -3 i32.const -2 call $~lib/typedarray/Int32Array#copyWithin - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 5 i32.const 2 i32.const 17 i32.const 1728 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -90296,44 +88996,44 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $40 - local.set $100 + local.get $26 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Int32Array#slice@varargs - local.tee $39 + local.tee $25 i32.store offset=52 - local.get $39 - local.set $100 + local.get $25 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=60 - local.get $100 + local.get $64 i32.const -4 i32.const -3 i32.const -1 call $~lib/typedarray/Int32Array#copyWithin - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 5 i32.const 2 i32.const 17 i32.const 1776 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -90345,46 +89045,46 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $40 - local.set $100 + local.get $26 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Int32Array#slice@varargs - local.tee $39 + local.tee $25 i32.store offset=52 - local.get $39 - local.set $100 + local.get $25 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=60 - local.get $100 + local.get $64 i32.const -4 i32.const -3 i32.const 2 global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Int32Array#copyWithin@varargs - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 5 i32.const 2 i32.const 17 i32.const 1824 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -90399,71 +89099,71 @@ i32.const 0 i32.const 5 call $~lib/typedarray/Int32Array#constructor - local.tee $65 + local.tee $39 i32.store offset=64 - local.get $65 - local.set $100 + local.get $39 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $65 - local.set $100 + local.get $39 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $65 - local.set $100 + local.get $39 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set - local.get $65 - local.set $100 + local.get $39 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 3 i32.const 4 call $~lib/typedarray/Int32Array#__set - local.get $65 - local.set $100 + local.get $39 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 4 i32.const 5 call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.get $65 - local.set $100 + local.get $39 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 i32.const 4 call $~lib/typedarray/Int32Array#subarray - local.tee $66 + local.tee $40 i32.store offset=68 - local.get $66 - local.set $100 + local.get $40 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/typedarray/Int32Array#get:length i32.const 3 i32.eq @@ -90476,12 +89176,12 @@ call $~lib/builtins/abort unreachable end - local.get $66 - local.set $100 + local.get $40 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset i32.const 4 i32.eq @@ -90494,12 +89194,12 @@ call $~lib/builtins/abort unreachable end - local.get $66 - local.set $100 + local.get $40 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 12 i32.eq @@ -90513,23 +89213,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $65 - local.set $100 + local.get $39 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 i32.const 3 call $~lib/typedarray/Int32Array#slice - local.tee $67 + local.tee $41 i32.store offset=72 - local.get $67 - local.set $100 + local.get $41 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 call $~lib/typedarray/Int32Array#__get i32.const 2 @@ -90543,12 +89243,12 @@ call $~lib/builtins/abort unreachable end - local.get $67 - local.set $100 + local.get $41 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 call $~lib/typedarray/Int32Array#__get i32.const 3 @@ -90562,12 +89262,12 @@ call $~lib/builtins/abort unreachable end - local.get $67 - local.set $100 + local.get $41 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/typedarray/Int32Array#get:length i32.const 2 i32.eq @@ -90580,12 +89280,12 @@ call $~lib/builtins/abort unreachable end - local.get $67 - local.set $100 + local.get $41 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset i32.const 0 i32.eq @@ -90598,12 +89298,12 @@ call $~lib/builtins/abort unreachable end - local.get $67 - local.set $100 + local.get $41 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 8 i32.eq @@ -90617,23 +89317,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $66 - local.set $100 + local.get $40 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#slice - local.tee $68 + local.tee $42 i32.store offset=76 - local.get $68 - local.set $100 + local.get $42 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 call $~lib/typedarray/Int32Array#__get i32.const 3 @@ -90647,12 +89347,12 @@ call $~lib/builtins/abort unreachable end - local.get $68 - local.set $100 + local.get $42 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/typedarray/Int32Array#get:length i32.const 1 i32.eq @@ -90665,12 +89365,12 @@ call $~lib/builtins/abort unreachable end - local.get $68 - local.set $100 + local.get $42 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset i32.const 0 i32.eq @@ -90683,12 +89383,12 @@ call $~lib/builtins/abort unreachable end - local.get $68 - local.set $100 + local.get $42 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 4 i32.eq @@ -90702,21 +89402,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $65 - local.set $100 + local.get $39 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 0 global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Int32Array#slice@varargs - local.tee $69 + local.tee $43 i32.store offset=80 - local.get $69 - local.get $65 + local.get $43 + local.get $39 i32.ne i32.eqz if @@ -90727,19 +89427,19 @@ call $~lib/builtins/abort unreachable end - local.get $69 - local.set $100 + local.get $43 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/typedarray/Int32Array#get:length - local.get $65 - local.set $100 + local.get $39 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/typedarray/Int32Array#get:length i32.eq i32.eqz @@ -90751,19 +89451,19 @@ call $~lib/builtins/abort unreachable end - local.get $69 - local.set $100 + local.get $43 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $65 - local.set $100 + local.get $39 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset i32.eq i32.eqz @@ -90775,19 +89475,19 @@ call $~lib/builtins/abort unreachable end - local.get $69 - local.set $100 + local.get $43 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/arraybuffer/ArrayBufferView#get:byteLength - local.get $65 - local.set $100 + local.get $39 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.eq i32.eqz @@ -90799,159 +89499,159 @@ call $~lib/builtins/abort unreachable end - call $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testReduce<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testReduce<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testReduce<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testReduce<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testReduce<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testReduce<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testReduce<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64> - call $std/typedarray/testAt<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testAt<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testAt<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testAt<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testAt<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testAt<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testAt<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testAt<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testAt<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testAt<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testAt<~lib/typedarray/Float64Array,f64> - call $std/typedarray/testReduceRight<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testReduceRight<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testReduceRight<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testReduceRight<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testReduceRight<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testReduceRight<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testReduceRight<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testReduceRight<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testReduceRight<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testReduceRight<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testReduceRight<~lib/typedarray/Float64Array,f64> - call $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64> - call $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64> - call $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64> - call $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64> - call $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float64Array,f64> - call $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64> - call $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64> - call $std/typedarray/testArrayReverse<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testArrayReverse<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testArrayReverse<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testArrayReverse<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testArrayReverse<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testArrayReverse<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testArrayReverse<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64> - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float64Array,f64> + call $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>" + call $"std/typedarray/testReduce<~lib/typedarray/Uint8Array,u8>" + call $"std/typedarray/testReduce<~lib/typedarray/Uint8ClampedArray,u8>" + call $"std/typedarray/testReduce<~lib/typedarray/Int16Array,i16>" + call $"std/typedarray/testReduce<~lib/typedarray/Uint16Array,u16>" + call $"std/typedarray/testReduce<~lib/typedarray/Int32Array,i32>" + call $"std/typedarray/testReduce<~lib/typedarray/Uint32Array,u32>" + call $"std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>" + call $"std/typedarray/testReduce<~lib/typedarray/Uint64Array,u64>" + call $"std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>" + call $"std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>" + call $"std/typedarray/testAt<~lib/typedarray/Int8Array,i8>" + call $"std/typedarray/testAt<~lib/typedarray/Uint8Array,u8>" + call $"std/typedarray/testAt<~lib/typedarray/Uint8ClampedArray,u8>" + call $"std/typedarray/testAt<~lib/typedarray/Int16Array,i16>" + call $"std/typedarray/testAt<~lib/typedarray/Uint16Array,u16>" + call $"std/typedarray/testAt<~lib/typedarray/Int32Array,i32>" + call $"std/typedarray/testAt<~lib/typedarray/Uint32Array,u32>" + call $"std/typedarray/testAt<~lib/typedarray/Int64Array,i64>" + call $"std/typedarray/testAt<~lib/typedarray/Uint64Array,u64>" + call $"std/typedarray/testAt<~lib/typedarray/Float32Array,f32>" + call $"std/typedarray/testAt<~lib/typedarray/Float64Array,f64>" + call $"std/typedarray/testReduceRight<~lib/typedarray/Int8Array,i8>" + call $"std/typedarray/testReduceRight<~lib/typedarray/Uint8Array,u8>" + call $"std/typedarray/testReduceRight<~lib/typedarray/Uint8ClampedArray,u8>" + call $"std/typedarray/testReduceRight<~lib/typedarray/Int16Array,i16>" + call $"std/typedarray/testReduceRight<~lib/typedarray/Uint16Array,u16>" + call $"std/typedarray/testReduceRight<~lib/typedarray/Int32Array,i32>" + call $"std/typedarray/testReduceRight<~lib/typedarray/Uint32Array,u32>" + call $"std/typedarray/testReduceRight<~lib/typedarray/Int64Array,i64>" + call $"std/typedarray/testReduceRight<~lib/typedarray/Uint64Array,u64>" + call $"std/typedarray/testReduceRight<~lib/typedarray/Float32Array,f32>" + call $"std/typedarray/testReduceRight<~lib/typedarray/Float64Array,f64>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>" + call $"std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8>" + call $"std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>" + call $"std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8>" + call $"std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16>" + call $"std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16>" + call $"std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32>" + call $"std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32>" + call $"std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64>" + call $"std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64>" + call $"std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32>" + call $"std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64>" + call $"std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>" + call $"std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>" + call $"std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>" + call $"std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>" + call $"std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>" + call $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>" + call $"std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>" + call $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>" + call $"std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>" + call $"std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>" + call $"std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>" + call $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>" + call $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>" + call $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>" + call $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>" + call $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>" + call $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>" + call $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>" + call $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>" + call $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>" + call $"std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>" + call $"std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>" + call $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int8Array,i8>" + call $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8Array,u8>" + call $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8ClampedArray,u8>" + call $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int16Array,i16>" + call $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint16Array,u16>" + call $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int32Array,i32>" + call $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint32Array,u32>" + call $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int64Array,i64>" + call $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint64Array,u64>" + call $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float32Array,f32>" + call $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float64Array,f64>" + call $"std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>" + call $"std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>" + call $"std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>" + call $"std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>" + call $"std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>" + call $"std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>" + call $"std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>" + call $"std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>" + call $"std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>" + call $"std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>" + call $"std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>" + call $"std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>" + call $"std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8>" + call $"std/typedarray/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8>" + call $"std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>" + call $"std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16>" + call $"std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>" + call $"std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32>" + call $"std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>" + call $"std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64>" + call $"std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>" + call $"std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>" + call $"std/typedarray/testArrayReverse<~lib/typedarray/Int8Array,i8>" + call $"std/typedarray/testArrayReverse<~lib/typedarray/Uint8Array,u8>" + call $"std/typedarray/testArrayReverse<~lib/typedarray/Uint8ClampedArray,u8>" + call $"std/typedarray/testArrayReverse<~lib/typedarray/Int16Array,i16>" + call $"std/typedarray/testArrayReverse<~lib/typedarray/Uint16Array,u16>" + call $"std/typedarray/testArrayReverse<~lib/typedarray/Int32Array,i32>" + call $"std/typedarray/testArrayReverse<~lib/typedarray/Uint32Array,u32>" + call $"std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64>" + call $"std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64>" + call $"std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32>" + call $"std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64>" + call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int8Array,i8>" + call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8Array,u8>" + call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8ClampedArray,u8>" + call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int16Array,i16>" + call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint16Array,u16>" + call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int32Array,i32>" + call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint32Array,u32>" + call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int64Array,i64>" + call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint64Array,u64>" + call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float32Array,f32>" + call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float64Array,f64>" global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 1 call $~lib/typedarray/Float64Array#constructor - local.tee $76 + local.tee $47 i32.store offset=84 - local.get $76 - local.set $100 + local.get $47 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 f64.const nan:0x8000000000000 call $~lib/typedarray/Float64Array#__set - local.get $76 - local.set $100 + local.get $47 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 f64.const nan:0x8000000000000 i32.const 0 call $~lib/typedarray/Float64Array#indexOf @@ -90966,12 +89666,12 @@ call $~lib/builtins/abort unreachable end - local.get $76 - local.set $100 + local.get $47 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 f64.const nan:0x8000000000000 i32.const 0 call $~lib/typedarray/Float64Array#includes @@ -90992,23 +89692,23 @@ i32.const 0 i32.const 1 call $~lib/typedarray/Float32Array#constructor - local.tee $77 + local.tee $48 i32.store offset=88 - local.get $77 - local.set $100 + local.get $48 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 f32.const nan:0x400000 call $~lib/typedarray/Float32Array#__set - local.get $77 - local.set $100 + local.get $48 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 f32.const nan:0x400000 i32.const 0 call $~lib/typedarray/Float32Array#indexOf @@ -91023,12 +89723,12 @@ call $~lib/builtins/abort unreachable end - local.get $77 - local.set $100 + local.get $48 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 f32.const nan:0x400000 i32.const 0 call $~lib/typedarray/Float32Array#includes @@ -91045,43 +89745,43 @@ call $~lib/builtins/abort unreachable end - call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Float64Array,f64> + call $"std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int8Array,i8>" + call $"std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint8Array,u8>" + call $"std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint8ClampedArray,u8>" + call $"std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int16Array,i16>" + call $"std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint16Array,u16>" + call $"std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int32Array,i32>" + call $"std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint32Array,u32>" + call $"std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int64Array,i64>" + call $"std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint64Array,u64>" + call $"std/typedarray/testArrayJoinAndToString<~lib/typedarray/Float32Array,f32>" + call $"std/typedarray/testArrayJoinAndToString<~lib/typedarray/Float64Array,f64>" global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $80 + local.tee $50 i32.store offset=92 global.get $~lib/memory/__stack_pointer - local.get $80 - local.set $100 + local.get $50 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 2 global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Uint8Array.wrap@varargs - local.tee $81 + local.tee $51 i32.store offset=96 - local.get $81 - local.set $100 + local.get $51 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/typedarray/Uint8Array#get:length i32.const 0 i32.eq @@ -91098,28 +89798,28 @@ i32.const 0 i32.const 2 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $80 + local.tee $50 i32.store offset=92 global.get $~lib/memory/__stack_pointer - local.get $80 - local.set $100 + local.get $50 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 2 i32.const 2 global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Uint8Array.wrap@varargs - local.tee $81 + local.tee $51 i32.store offset=96 - local.get $81 - local.set $100 + local.get $51 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/typedarray/Uint8Array#get:length i32.const 0 i32.eq @@ -91132,17 +89832,17 @@ call $~lib/builtins/abort unreachable end - call $std/typedarray/testArrayWrap<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testArrayWrap<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testArrayWrap<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testArrayWrap<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testArrayWrap<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testArrayWrap<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testArrayWrap<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testArrayWrap<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testArrayWrap<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testArrayWrap<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testArrayWrap<~lib/typedarray/Float64Array,f64> + call $"std/typedarray/testArrayWrap<~lib/typedarray/Int8Array,i8>" + call $"std/typedarray/testArrayWrap<~lib/typedarray/Uint8Array,u8>" + call $"std/typedarray/testArrayWrap<~lib/typedarray/Uint8ClampedArray,u8>" + call $"std/typedarray/testArrayWrap<~lib/typedarray/Int16Array,i16>" + call $"std/typedarray/testArrayWrap<~lib/typedarray/Uint16Array,u16>" + call $"std/typedarray/testArrayWrap<~lib/typedarray/Int32Array,i32>" + call $"std/typedarray/testArrayWrap<~lib/typedarray/Uint32Array,u32>" + call $"std/typedarray/testArrayWrap<~lib/typedarray/Int64Array,i64>" + call $"std/typedarray/testArrayWrap<~lib/typedarray/Uint64Array,u64>" + call $"std/typedarray/testArrayWrap<~lib/typedarray/Float32Array,f32>" + call $"std/typedarray/testArrayWrap<~lib/typedarray/Float64Array,f64>" call $std/typedarray/testTypedArraySet<~lib/typedarray/Int8Array> call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8Array> call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8ClampedArray> @@ -91158,38 +89858,38 @@ i32.const 0 i32.const 10 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $90 + local.tee $56 i32.store offset=100 global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 3 call $~lib/typedarray/Float32Array#constructor - local.tee $91 + local.tee $57 i32.store offset=104 - local.get $91 - local.set $100 + local.get $57 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 f32.const 400 call $~lib/typedarray/Float32Array#__set - local.get $91 - local.set $100 + local.get $57 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 f32.const nan:0x400000 call $~lib/typedarray/Float32Array#__set - local.get $91 - local.set $100 + local.get $57 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 2 f32.const inf call $~lib/typedarray/Float32Array#__set @@ -91197,41 +89897,41 @@ i32.const 0 i32.const 4 call $~lib/typedarray/Int64Array#constructor - local.tee $92 + local.tee $58 i32.store offset=108 - local.get $92 - local.set $100 + local.get $58 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i64.const -10 call $~lib/typedarray/Int64Array#__set - local.get $92 - local.set $100 + local.get $58 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 i64.const 100 call $~lib/typedarray/Int64Array#__set - local.get $92 - local.set $100 + local.get $58 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 2 i64.const 10 call $~lib/typedarray/Int64Array#__set - local.get $92 - local.set $100 + local.get $58 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 3 i64.const 300 call $~lib/typedarray/Int64Array#__set @@ -91239,124 +89939,124 @@ i32.const 0 i32.const 2 call $~lib/typedarray/Int32Array#constructor - local.tee $93 + local.tee $59 i32.store offset=112 - local.get $93 - local.set $100 + local.get $59 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 300 call $~lib/typedarray/Int32Array#__set - local.get $93 - local.set $100 + local.get $59 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 i32.const -1 call $~lib/typedarray/Int32Array#__set - local.get $90 - local.set $100 + local.get $56 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 - local.get $91 - local.set $100 + local.get $64 + local.get $57 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Float32Array> - local.get $90 - local.set $100 + local.get $56 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 - local.get $92 - local.set $100 + local.get $64 + local.get $58 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 i32.const 4 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> - local.get $90 - local.set $100 + local.get $56 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 - local.get $93 - local.set $100 + local.get $64 + local.get $59 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 i32.const 8 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int32Array> - local.get $90 - local.set $100 + local.get $56 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 10 i32.const 0 i32.const 64 i32.const 14256 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 4 call $~lib/typedarray/Uint32Array#constructor - local.tee $96 + local.tee $61 i32.store offset=116 - local.get $96 - local.set $100 + local.get $61 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 1 call $~lib/typedarray/Uint32Array#__set - local.get $96 - local.set $100 + local.get $61 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 i32.const 300 call $~lib/typedarray/Uint32Array#__set - local.get $96 - local.set $100 + local.get $61 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 2 i32.const 100 call $~lib/typedarray/Uint32Array#__set - local.get $96 - local.set $100 + local.get $61 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 3 i32.const -1 call $~lib/typedarray/Uint32Array#__set @@ -91364,100 +90064,100 @@ i32.const 0 i32.const 4 call $~lib/typedarray/Int16Array#constructor - local.tee $97 + local.tee $62 i32.store offset=120 - local.get $97 - local.set $100 + local.get $62 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const -10 call $~lib/typedarray/Int16Array#__set - local.get $97 - local.set $100 + local.get $62 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 i32.const 100 call $~lib/typedarray/Int16Array#__set - local.get $97 - local.set $100 + local.get $62 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 2 i32.const 10 call $~lib/typedarray/Int16Array#__set - local.get $97 - local.set $100 + local.get $62 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 3 i32.const 300 call $~lib/typedarray/Int16Array#__set - local.get $90 - local.set $100 + local.get $56 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 - local.get $96 - local.set $100 + local.get $64 + local.get $61 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 i32.const 0 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Uint32Array> - local.get $90 - local.set $100 + local.get $56 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 - local.get $97 - local.set $100 + local.get $64 + local.get $62 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 i32.const 5 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> - local.get $90 - local.set $100 + local.get $56 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 10 i32.const 0 i32.const 64 i32.const 14288 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> - call $std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testArraySort<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testArraySort<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testArraySort<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testArraySort<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testArraySort<~lib/typedarray/Float64Array,f64> + call $"std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8>" + call $"std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8>" + call $"std/typedarray/testArraySort<~lib/typedarray/Uint8ClampedArray,u8>" + call $"std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16>" + call $"std/typedarray/testArraySort<~lib/typedarray/Uint16Array,u16>" + call $"std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32>" + call $"std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32>" + call $"std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64>" + call $"std/typedarray/testArraySort<~lib/typedarray/Uint64Array,u64>" + call $"std/typedarray/testArraySort<~lib/typedarray/Float32Array,f32>" + call $"std/typedarray/testArraySort<~lib/typedarray/Float64Array,f64>" global.get $~lib/memory/__heap_base global.set $~lib/memory/__stack_pointer call $~lib/rt/itcms/__collect @@ -93022,6 +91722,200 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) + (local $j i32) + (local $5 i32) + (local $6 i32) + (local $k i32) + (local $tmp f64) + (local $9 i32) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $i + local.get $right + i32.eq + if + local.get $i + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + end + local.get $i + local.set $j + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $5 + i32.store + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + f64.load + local.get $ptr + local.get $j + i32.const 1 + i32.add + local.tee $j + i32.const 3 + i32.shl + i32.add + f64.load + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect (type $12) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $6 + i32.store offset=4 + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + f64.load + i32.const 2 + global.set $~argumentsLength + local.get $6 + i32.load + call_indirect (type $12) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 + end + end + local.get $j + local.set $k + loop $while-continue|1 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 3 + i32.shl + i32.add + f64.load + local.set $tmp + local.get $ptr + local.get $i + i32.const 3 + i32.shl + i32.add + local.get $ptr + local.get $k + i32.const 3 + i32.shl + i32.add + f64.load + f64.store + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 3 + i32.shl + i32.add + local.get $tmp + f64.store + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $9 + i32.store offset=8 + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + f64.load + i32.const 2 + global.set $~argumentsLength + local.get $9 + i32.load + call_indirect (type $12) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|2 + end + end + end + local.get $j + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + 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) @@ -93815,10 +92709,12 @@ local.get $17 return ) - (func $~lib/util/number/dtoa (param $value f64) (result i32) + (func $~lib/util/number/dtoa (param $value f32) (result i32) + (local $value|1 f64) + (local $isSingle i32) (local $size i32) (local $result i32) - (local $3 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -93827,76 +92723,143 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $value - f64.const 0 - f64.eq - if - i32.const 8640 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return - end - local.get $value - local.get $value - f64.sub - f64.const 0 - f64.eq - i32.eqz - if + block $~lib/util/number/dtoa_impl|inlined.0 (result i32) local.get $value - local.get $value - f64.ne + 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 8672 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return + i32.const 8640 + br $~lib/util/number/dtoa_impl|inlined.0 end - i32.const 8704 - i32.const 8752 - local.get $value + local.get $value|1 + local.get $value|1 + f64.sub f64.const 0 - f64.lt - select - local.set $3 + f64.eq + i32.eqz + if + local.get $value|1 + local.get $value|1 + f64.ne + if + i32.const 8672 + br $~lib/util/number/dtoa_impl|inlined.0 + end + 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 8784 + 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 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return + local.get $size + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $result + i32.store + local.get $result + i32.const 8784 + local.get $size + memory.copy + local.get $result + br $~lib/util/number/dtoa_impl|inlined.0 end - i32.const 8784 - local.get $value - call $~lib/util/number/dtoa_core - i32.const 1 - i32.shl - local.set $size + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $size - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $result + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + ) + (func $~lib/util/number/dtoa (param $value f64) (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 - local.get $result - i32.const 8784 - local.get $size - memory.copy - local.get $result - local.set $3 + block $~lib/util/number/dtoa_impl|inlined.1 (result i32) + local.get $value + local.set $value|1 + i32.const 0 + local.set $isSingle + local.get $value|1 + f64.const 0 + f64.eq + if + i32.const 8640 + br $~lib/util/number/dtoa_impl|inlined.1 + 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 8672 + br $~lib/util/number/dtoa_impl|inlined.1 + end + 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 8784 + 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 8784 + local.get $size + memory.copy + local.get $result + br $~lib/util/number/dtoa_impl|inlined.1 + end + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $5 return ) (func $~lib/arraybuffer/ArrayBuffer#constructor (param $this i32) (param $length i32) (result i32) @@ -93940,4 +92903,1750 @@ local.get $3 return ) + (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) + (local $j i32) + (local $5 i32) + (local $6 i32) + (local $k i32) + (local $tmp i32) + (local $9 i32) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $i + local.get $right + i32.eq + if + local.get $i + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + end + local.get $i + local.set $j + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $5 + i32.store + local.get $ptr + local.get $j + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.get $ptr + local.get $j + i32.const 1 + i32.add + local.tee $j + i32.const 0 + i32.shl + i32.add + i32.load8_s + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $6 + i32.store offset=4 + local.get $ptr + local.get $j + i32.const 0 + i32.shl + i32.add + i32.load8_s offset=1 + local.get $ptr + local.get $j + i32.const 0 + i32.shl + i32.add + i32.load8_s + i32.const 2 + global.set $~argumentsLength + local.get $6 + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 + end + end + local.get $j + local.set $k + loop $while-continue|1 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $tmp + local.get $ptr + local.get $i + i32.const 0 + i32.shl + i32.add + local.get $ptr + local.get $k + i32.const 0 + i32.shl + i32.add + i32.load8_s + i32.store8 + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 0 + i32.shl + i32.add + local.get $tmp + i32.store8 + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $9 + i32.store offset=8 + local.get $ptr + local.get $j + i32.const 0 + i32.shl + i32.add + i32.load8_s offset=1 + local.get $ptr + local.get $j + i32.const 0 + i32.shl + i32.add + i32.load8_s + i32.const 2 + global.set $~argumentsLength + local.get $9 + i32.load + call_indirect (type $0) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|2 + end + end + end + local.get $j + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + ) + (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) + (local $j i32) + (local $5 i32) + (local $6 i32) + (local $k i32) + (local $tmp i32) + (local $9 i32) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $i + local.get $right + i32.eq + if + local.get $i + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + end + local.get $i + local.set $j + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $5 + i32.store + local.get $ptr + local.get $j + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $ptr + local.get $j + i32.const 1 + i32.add + local.tee $j + i32.const 0 + i32.shl + i32.add + i32.load8_u + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $6 + i32.store offset=4 + local.get $ptr + local.get $j + i32.const 0 + i32.shl + i32.add + i32.load8_u offset=1 + local.get $ptr + local.get $j + i32.const 0 + i32.shl + i32.add + i32.load8_u + i32.const 2 + global.set $~argumentsLength + local.get $6 + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 + end + end + local.get $j + local.set $k + loop $while-continue|1 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $tmp + local.get $ptr + local.get $i + i32.const 0 + i32.shl + i32.add + local.get $ptr + local.get $k + i32.const 0 + i32.shl + i32.add + i32.load8_u + i32.store8 + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 0 + i32.shl + i32.add + local.get $tmp + i32.store8 + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $9 + i32.store offset=8 + local.get $ptr + local.get $j + i32.const 0 + i32.shl + i32.add + i32.load8_u offset=1 + local.get $ptr + local.get $j + i32.const 0 + i32.shl + i32.add + i32.load8_u + i32.const 2 + global.set $~argumentsLength + local.get $9 + i32.load + call_indirect (type $0) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|2 + end + end + end + local.get $j + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + ) + (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) + (local $j i32) + (local $5 i32) + (local $6 i32) + (local $k i32) + (local $tmp i32) + (local $9 i32) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $i + local.get $right + i32.eq + if + local.get $i + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + end + local.get $i + local.set $j + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $5 + i32.store + local.get $ptr + local.get $j + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.get $ptr + local.get $j + i32.const 1 + i32.add + local.tee $j + i32.const 1 + i32.shl + i32.add + i32.load16_s + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $6 + i32.store offset=4 + local.get $ptr + local.get $j + i32.const 1 + i32.shl + i32.add + i32.load16_s offset=2 + local.get $ptr + local.get $j + i32.const 1 + i32.shl + i32.add + i32.load16_s + i32.const 2 + global.set $~argumentsLength + local.get $6 + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 + end + end + local.get $j + local.set $k + loop $while-continue|1 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $tmp + local.get $ptr + local.get $i + i32.const 1 + i32.shl + i32.add + local.get $ptr + local.get $k + i32.const 1 + i32.shl + i32.add + i32.load16_s + i32.store16 + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 1 + i32.shl + i32.add + local.get $tmp + i32.store16 + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $9 + i32.store offset=8 + local.get $ptr + local.get $j + i32.const 1 + i32.shl + i32.add + i32.load16_s offset=2 + local.get $ptr + local.get $j + i32.const 1 + i32.shl + i32.add + i32.load16_s + i32.const 2 + global.set $~argumentsLength + local.get $9 + i32.load + call_indirect (type $0) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|2 + end + end + end + local.get $j + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + ) + (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) + (local $j i32) + (local $5 i32) + (local $6 i32) + (local $k i32) + (local $tmp i32) + (local $9 i32) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $i + local.get $right + i32.eq + if + local.get $i + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + end + local.get $i + local.set $j + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $5 + i32.store + local.get $ptr + local.get $j + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.get $ptr + local.get $j + i32.const 1 + i32.add + local.tee $j + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $6 + i32.store offset=4 + local.get $ptr + local.get $j + i32.const 1 + i32.shl + i32.add + i32.load16_u offset=2 + local.get $ptr + local.get $j + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.const 2 + global.set $~argumentsLength + local.get $6 + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 + end + end + local.get $j + local.set $k + loop $while-continue|1 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $tmp + local.get $ptr + local.get $i + i32.const 1 + i32.shl + i32.add + local.get $ptr + local.get $k + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 1 + i32.shl + i32.add + local.get $tmp + i32.store16 + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $9 + i32.store offset=8 + local.get $ptr + local.get $j + i32.const 1 + i32.shl + i32.add + i32.load16_u offset=2 + local.get $ptr + local.get $j + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.const 2 + global.set $~argumentsLength + local.get $9 + i32.load + call_indirect (type $0) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|2 + end + end + end + local.get $j + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + ) + (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) + (local $j i32) + (local $5 i32) + (local $6 i32) + (local $k i32) + (local $tmp i32) + (local $9 i32) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $i + local.get $right + i32.eq + if + local.get $i + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + end + local.get $i + local.set $j + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $5 + i32.store + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load + local.get $ptr + local.get $j + i32.const 1 + i32.add + local.tee $j + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $6 + i32.store offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $6 + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 + end + end + local.get $j + local.set $k + loop $while-continue|1 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.set $tmp + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $tmp + i32.store + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $9 + i32.store offset=8 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $9 + i32.load + call_indirect (type $0) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|2 + end + end + end + local.get $j + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + ) + (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) + (local $j i32) + (local $5 i32) + (local $6 i32) + (local $k i32) + (local $tmp i32) + (local $9 i32) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $i + local.get $right + i32.eq + if + local.get $i + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + end + local.get $i + local.set $j + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $5 + i32.store + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load + local.get $ptr + local.get $j + i32.const 1 + i32.add + local.tee $j + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $6 + i32.store offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $6 + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 + end + end + local.get $j + local.set $k + loop $while-continue|1 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.set $tmp + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $tmp + i32.store + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $9 + i32.store offset=8 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $9 + i32.load + call_indirect (type $0) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|2 + end + end + end + local.get $j + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + ) + (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) + (local $j i32) + (local $5 i32) + (local $6 i32) + (local $k i32) + (local $tmp i64) + (local $9 i32) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $i + local.get $right + i32.eq + if + local.get $i + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + end + local.get $i + local.set $j + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $5 + i32.store + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + i64.load + local.get $ptr + local.get $j + i32.const 1 + i32.add + local.tee $j + i32.const 3 + i32.shl + i32.add + i64.load + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect (type $8) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $6 + i32.store offset=4 + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + i64.load offset=8 + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + i64.load + i32.const 2 + global.set $~argumentsLength + local.get $6 + i32.load + call_indirect (type $8) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 + end + end + local.get $j + local.set $k + loop $while-continue|1 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 3 + i32.shl + i32.add + i64.load + local.set $tmp + local.get $ptr + local.get $i + i32.const 3 + i32.shl + i32.add + local.get $ptr + local.get $k + i32.const 3 + i32.shl + i32.add + i64.load + i64.store + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 3 + i32.shl + i32.add + local.get $tmp + i64.store + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $9 + i32.store offset=8 + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + i64.load offset=8 + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + i64.load + i32.const 2 + global.set $~argumentsLength + local.get $9 + i32.load + call_indirect (type $8) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|2 + end + end + end + local.get $j + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + ) + (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) + (local $j i32) + (local $5 i32) + (local $6 i32) + (local $k i32) + (local $tmp i64) + (local $9 i32) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $i + local.get $right + i32.eq + if + local.get $i + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + end + local.get $i + local.set $j + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $5 + i32.store + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + i64.load + local.get $ptr + local.get $j + i32.const 1 + i32.add + local.tee $j + i32.const 3 + i32.shl + i32.add + i64.load + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect (type $8) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $6 + i32.store offset=4 + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + i64.load offset=8 + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + i64.load + i32.const 2 + global.set $~argumentsLength + local.get $6 + i32.load + call_indirect (type $8) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 + end + end + local.get $j + local.set $k + loop $while-continue|1 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 3 + i32.shl + i32.add + i64.load + local.set $tmp + local.get $ptr + local.get $i + i32.const 3 + i32.shl + i32.add + local.get $ptr + local.get $k + i32.const 3 + i32.shl + i32.add + i64.load + i64.store + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 3 + i32.shl + i32.add + local.get $tmp + i64.store + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $9 + i32.store offset=8 + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + i64.load offset=8 + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + i64.load + i32.const 2 + global.set $~argumentsLength + local.get $9 + i32.load + call_indirect (type $8) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|2 + end + end + end + local.get $j + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + ) + (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) + (local $j i32) + (local $5 i32) + (local $6 i32) + (local $k i32) + (local $tmp f32) + (local $9 i32) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $i + local.get $right + i32.eq + if + local.get $i + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + end + local.get $i + local.set $j + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $5 + i32.store + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + f32.load + local.get $ptr + local.get $j + i32.const 1 + i32.add + local.tee $j + i32.const 2 + i32.shl + i32.add + f32.load + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect (type $13) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $6 + i32.store offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + f32.load offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + f32.load + i32.const 2 + global.set $~argumentsLength + local.get $6 + i32.load + call_indirect (type $13) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 + end + end + local.get $j + local.set $k + loop $while-continue|1 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + f32.load + local.set $tmp + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + f32.load + f32.store + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $tmp + f32.store + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $9 + i32.store offset=8 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + f32.load offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + f32.load + i32.const 2 + global.set $~argumentsLength + local.get $9 + i32.load + call_indirect (type $13) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|2 + end + end + end + local.get $j + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + ) ) diff --git a/tests/compiler/std/typedarray.release.wat b/tests/compiler/std/typedarray.release.wat index 7ea4d1b913..c05cdc426a 100644 --- a/tests/compiler/std/typedarray.release.wat +++ b/tests/compiler/std/typedarray.release.wat @@ -1,7 +1,7 @@ (module (type $0 (func (param i32 i32) (result i32))) - (type $1 (func)) - (type $2 (func (param i32 i32 i32) (result i32))) + (type $1 (func (param i32 i32 i32) (result i32))) + (type $2 (func)) (type $3 (func (param i32) (result i32))) (type $4 (func (param i32 i32 i32))) (type $5 (func (param i32 i32))) @@ -11,37 +11,36 @@ (type $9 (func (param i32))) (type $10 (func (param f64 f64) (result i32))) (type $11 (func (param f32 f32) (result i32))) - (type $12 (func (param i32 i32 i32 i32 i32))) - (type $13 (func (param i32 i32 i32 i32 i32 i32))) - (type $14 (func (param f32 i32 i32) (result i32))) - (type $15 (func (param f64 i32 i32) (result i32))) + (type $12 (func (param f64 i32 i32) (result i32))) + (type $13 (func (param f32 i32 i32) (result i32))) + (type $14 (func (param i32 i32 i32 i32 i32))) + (type $15 (func (param i32 i32 i32 i32 i32 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 $18 (func (param i32 i64 i32) (result i32))) + (type $19 (func (param i32 i64) (result i32))) (type $20 (func (param i32 i32 i32 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) (result i32))) - (type $26 (func (param i32 i32) (result f64))) - (type $27 (func (param i32 i32) (result f32))) + (type $22 (func (param i32 i32) (result f64))) + (type $23 (func (param i32 i32) (result f32))) + (type $24 (func (param i32 f64 i32) (result i32))) + (type $25 (func (param f64 f64 i32 i32) (result f64))) + (type $26 (func (param f32 f32 i32 i32) (result f32))) + (type $27 (func (param i64 i32 i32) (result i64))) (type $28 (func (param i64 i32 i32))) - (type $29 (func (param f32 i32 i32) (result f32))) - (type $30 (func (param f64 i32 i32) (result f64))) - (type $31 (func (param f32 i32 i32))) - (type $32 (func (param f64 i32 i32))) - (type $33 (func (param i32 f32 i32) (result i32))) - (type $34 (func (param i32 f64 i32) (result i32))) - (type $35 (func (result i32))) - (type $36 (func (param i32 i64 i32))) - (type $37 (func (param i32 i64 i64 i32 i64 i32) (result i32))) + (type $29 (func (param i32 f32 i32) (result i32))) + (type $30 (func (param i32 f64) (result i32))) + (type $31 (func (param i32 f32) (result i32))) + (type $32 (func (param f64 i32 i32) (result f64))) + (type $33 (func (param f32 i32 i32) (result f32))) + (type $34 (func (param f64 i32 i32))) + (type $35 (func (param f32 i32 i32))) + (type $36 (func (param i32 i32 f64))) + (type $37 (func (param i32 i32 f32))) (type $38 (func (param i32 i32 f64 f64 f64 f64 f64))) - (type $39 (func (param i32 i32 f64))) - (type $40 (func (param i32 i32 f32))) - (type $41 (func (param i32 f32) (result i32))) - (type $42 (func (param f64) (result i32))) + (type $39 (func (param i32 i64 i32))) + (type $40 (func (result i32))) + (type $41 (func (param i32 i64 i64 i32 i64 i32) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (import "env" "trace" (func $~lib/builtins/trace (param i32 i32 f64 f64 f64 f64 f64))) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) @@ -674,2616 +673,3378 @@ (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) + (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/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~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/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~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/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/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/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~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/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~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/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~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/Uint64Array,u64>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~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/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16>~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/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)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 7152 - call $~lib/rt/itcms/__visit - i32.const 7616 - call $~lib/rt/itcms/__visit - i32.const 7728 - call $~lib/rt/itcms/__visit - i32.const 10928 - call $~lib/rt/itcms/__visit - i32.const 11008 - call $~lib/rt/itcms/__visit - i32.const 11088 - call $~lib/rt/itcms/__visit - i32.const 11184 - call $~lib/rt/itcms/__visit - i32.const 11264 - call $~lib/rt/itcms/__visit - i32.const 1360 - call $~lib/rt/itcms/__visit - i32.const 1056 - call $~lib/rt/itcms/__visit - i32.const 1168 - call $~lib/rt/itcms/__visit - i32.const 8432 - call $~lib/rt/itcms/__visit - i32.const 9488 - 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) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 - global.get $~lib/rt/itcms/iter - i32.eq + i32.const 1073741804 + i32.ge_u 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 + i32.const 1168 + i32.const 1232 + i32.const 261 + i32.const 31 + call $~lib/builtins/abort + unreachable end - block $__inlined_func$~lib/rt/itcms/Object#unlink$1388 - 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 49088 - i32.lt_u - i32.and - i32.eqz - if + 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 $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$68 + end + local.get $2 i32.const 0 - i32.const 1232 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable + i32.gt_s + br_if $do-loop|0 end - br $__inlined_func$~lib/rt/itcms/Object#unlink$1388 - 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 + 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 - 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 + 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.load offset=12 + i32.const 16 + i32.add + call $~lib/rt/tlsf/allocateBlock + local.tee $2 + local.get $1 + i32.store offset=12 + local.get $2 + local.get $0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace local.tee $1 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 16000 - i32.load - i32.gt_u - if - i32.const 1360 - i32.const 1424 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.const 16004 - i32.add - i32.load - i32.const 32 - i32.and - end + i32.load offset=8 local.set $3 local.get $2 - i32.load offset=8 - local.set $1 - local.get $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 $0 - local.get $1 + local.get $2 + local.get $3 i32.store offset=8 - local.get $1 - local.get $0 - local.get $1 + 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 - local.get $0 i32.store offset=8 - ) - (func $~lib/rt/itcms/__visit (param $0 i32) + 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 - i32.eqz + memory.fill + local.get $1 + ) + (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 16320 + i32.lt_s if - return + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/white + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 20 - i32.sub - local.tee $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u 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 + i32.const 1360 + i32.const 1760 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable end - ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) + 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 - local.tee $3 - i32.const 1 - i32.and - i32.eqz + global.get $~lib/memory/__stack_pointer + i32.const 4 + 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 + 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 0 - i32.const 1504 - i32.const 268 - i32.const 14 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u + 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 0 - i32.const 1504 - i32.const 270 - i32.const 14 + i32.const 1360 + i32.const 1632 + i32.const 178 + i32.const 45 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=4 + i32.add local.get $2 - i32.const 23 - i32.lt_u - i32.and - i32.eqz + i32.store8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int32Array#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 16320 + i32.lt_s if - i32.const 0 - i32.const 1504 - i32.const 284 - i32.const 14 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $1 + 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 $5 - local.get $1 - i32.load offset=4 - local.tee $4 + 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/Int64Array#__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 16320 + i32.lt_s if - local.get $4 - local.get $5 - i32.store offset=8 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.get $5 + 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 - local.get $5 - local.get $4 - i32.store offset=4 + i32.const 1360 + i32.const 1632 + i32.const 1031 + i32.const 64 + call $~lib/builtins/abort + unreachable end - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $2 - i32.const 4 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 i32.shl - local.get $3 i32.add - i32.const 2 - i32.shl + local.get $2 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 4 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 + global.set $~lib/memory/__stack_pointer ) - (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 + (func $~lib/typedarray/Int16Array#__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 16320 + i32.lt_s if - i32.const 0 - i32.const 1504 - i32.const 201 - i32.const 14 + 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $1 - i32.load - local.tee $3 + local.get $0 + i32.load offset=8 i32.const 1 - i32.and - i32.eqz + i32.shr_u + i32.ge_u if - i32.const 0 - i32.const 1504 - i32.const 203 - i32.const 14 + i32.const 1360 + i32.const 1632 + i32.const 463 + 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 4 + i32.const 1 + i32.shl i32.add - local.get $1 - i32.load - i32.const -4 - i32.and + local.get $2 + i32.store16 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.tee $4 - i32.load - local.tee $2 - i32.const 1 - i32.and + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result 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 16320 + i32.lt_s 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 + 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.shl + local.tee $5 + i32.const 1 + call $~lib/rt/itcms/__new + local.set $1 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 + local.get $5 + memory.copy end - local.get $4 - local.get $2 - i32.const 2 - i32.or + local.get $1 i32.store - local.get $3 - i32.const -4 - i32.and + i32.const 16 + local.get $2 + call $~lib/rt/itcms/__new 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.store + local.get $2 + local.get $1 + call $~lib/rt/itcms/__link + local.get $2 + local.get $1 + i32.store offset=4 + local.get $2 + local.get $5 + i32.store offset=8 + local.get $2 + 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 $2 - i32.add - i32.ne + ) + (func $~lib/typedarray/Int64Array#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 16320 + i32.lt_s if - i32.const 0 - i32.const 1504 - i32.const 234 - i32.const 14 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $4 + 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 3 + i32.shr_u + 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 - 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 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s if - i32.const 0 - i32.const 1504 - i32.const 251 - i32.const 14 + 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 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $5 + i32.store + local.get $0 + i32.load offset=12 + global.get $~lib/memory/__stack_pointer 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 + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int8Array#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 16320 + i32.lt_s if - local.get $3 - local.get $1 - i32.store offset=4 + 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 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $5 + i32.store + local.get $0 + i32.load offset=8 + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.shl - local.get $2 - i32.add - i32.const 2 - i32.shl i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int32Array#__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 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $1 - i32.store offset=96 local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 747 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load - i32.const 1 - local.get $5 - i32.shl - i32.or i32.store local.get $0 - local.get $5 + i32.load offset=4 + local.get $1 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 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (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 + (func $~lib/arraybuffer/ArrayBufferView#get:byteOffset (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s if - i32.const 0 - i32.const 1504 - i32.const 382 - i32.const 14 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 19 + 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 $0 + i32.store + local.get $0 + i32.load + i32.sub + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - i32.const -16 - i32.and + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int8Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub - local.set $1 + 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 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=1568 - local.tee $3 + i32.store + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u 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 + i32.const 1360 + i32.const 1632 + i32.const 36 + i32.const 45 + call $~lib/builtins/abort + unreachable end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $1 + local.get $0 + i32.load offset=4 + i32.add + local.get $2 + i32.store8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int16Array#get:length (param $0 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - local.tee $3 - i32.const 20 - i32.lt_u + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s if - return + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable 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 0 i32.store - local.get $1 + 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/Float64Array#__set (param $0 i32) (param $1 i32) (param $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 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 offset=4 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $1 - i32.const 0 - i32.store offset=8 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 1457 + 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 4 + i32.const 3 + i32.shl i32.add - local.get $3 + local.get $2 + f64.store + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.tee $3 - i32.const 2 + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint32Array#__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 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 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $3 - i32.store offset=1568 + i32.store + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 889 + 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 - call $~lib/rt/tlsf/insertBlock + 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/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) + (func $~lib/typedarray/Float32Array#__set (param $0 i32) (param $1 i32) (param $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 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 + 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 2 + i32.shr_u + i32.ge_u if + i32.const 1360 + i32.const 1632 + i32.const 1315 + i32.const 64 + call $~lib/builtins/abort unreachable end - i32.const 49088 - i32.const 0 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - i32.const 50656 + 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 $~lib/typedarray/Uint8ClampedArray#__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 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 - loop $for-loop|0 + 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 1632 + i32.const 320 + i32.const 45 + 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 offset=4 + i32.add + i32.const 255 + local.get $2 + i32.sub + i32.const 31 + i32.shr_s + local.get $2 + i32.or + local.get $2 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i32.and + i32.store8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (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 23 - i32.lt_u + 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 2 - i32.shl - i32.const 49088 - i32.add - i32.const 0 - i32.store offset=4 - i32.const 0 - local.set $1 - loop $for-loop|1 + i32.const 3 + i32.eq + i32.and + if 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 49088 - 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 + call $~lib/rt/itcms/Object#makeGray end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 end end - i32.const 49088 - i32.const 50660 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - 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 49088 - i32.lt_u + (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 16320 + i32.lt_s if - return + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/tlsf/ROOT - i32.eqz + 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 - call $~lib/rt/tlsf/initialize + i32.const 1360 + i32.const 1632 + i32.const 1173 + i32.const 64 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/tlsf/ROOT - local.set $2 + 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/typedarray/Uint16Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + global.get $~lib/memory/__stack_pointer 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) + 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 - else - local.get $1 - 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 $1 - local.get $1 - i32.load - i32.const 1 - i32.or + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $2 local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/itcms/step (result i32) - (local $0 i32) - (local $1 i32) - (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - local.get $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 - local.get $0 - i32.load offset=4 - 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 49088 - 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 49088 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total - local.get $0 - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.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 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.ge_u if - i32.const 0 - i32.const 1504 - i32.const 334 - i32.const 14 + i32.const 1360 + i32.const 1632 + i32.const 605 + i32.const 64 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add i32.load offset=4 - i32.const -1 local.get $1 + i32.const 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 + i32.add + local.get $2 + i32.store16 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/typedarray/Uint8Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) - local.get $1 - i32.const 1073741820 - i32.gt_u + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s if - i32.const 1168 - i32.const 1504 - i32.const 461 - i32.const 29 + i32.const 49120 + i32.const 49168 + 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 - 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 $3 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - memory.size - local.tee $1 - local.get $3 - i32.const 256 - i32.ge_u - if (result i32) - local.get $3 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $3 - i32.const 1 - i32.const 27 - local.get $3 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $3 - end - else - local.get $3 - end - i32.const 4 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + block $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0" (result i32) + i32.const -1 local.get $0 - 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 + call $~lib/typedarray/Int8Array#get:length + local.tee $3 + i32.eqz + local.get $2 + local.get $3 + i32.ge_s + i32.or + br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0" + drop local.get $2 - i32.gt_s - select - memory.grow i32.const 0 i32.lt_s if local.get $2 - memory.grow + 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.set $0 + loop $while-continue|0 + local.get $2 + local.get $3 i32.lt_s if - unreachable + local.get $2 + local.get $0 + local.get $2 + i32.add + i32.load8_u + local.get $1 + i32.const 255 + i32.and + i32.eq + br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0" + drop + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 end end - local.get $0 - 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 $0 - local.get $3 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1504 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end + i32.const -1 end - local.get $3 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.gt_u + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int64Array#constructor (param $0 i32) (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 16320 + i32.lt_s if - i32.const 0 - i32.const 1504 - i32.const 501 - i32.const 14 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - call $~lib/rt/tlsf/removeBlock + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.load - local.set $4 - local.get $3 - i32.const 4 + local.get $0 + i32.const 3 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - i32.const 15 - i32.and + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/typedarray/Int16Array#constructor (param $0 i32) (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 16320 + i32.lt_s if - i32.const 0 - i32.const 1504 - i32.const 361 - i32.const 14 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $4 - i32.const -4 - i32.and - local.get $3 + 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 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + local.get $0 + i32.const 1 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/typedarray/Uint8Array#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.sub - local.tee $2 - i32.const 16 - i32.ge_u + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s if - local.get $1 - local.get $3 - local.get $4 - i32.const 2 - i32.and - i32.or - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $3 - i32.add - local.tee $3 - local.get $2 - i32.const 4 - i32.sub + i32.const 49120 + i32.const 49168 i32.const 1 - i32.or - i32.store - local.get $0 - local.get $3 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $4 - i32.const -2 - i32.and - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $0 - local.get $0 - i32.load - i32.const -3 - i32.and - i32.store + 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 5 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $1 - ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) local.get $0 - i32.const 1073741804 - i32.ge_u + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/typedarray/Int32Array#__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 16320 + i32.lt_s if - i32.const 1168 - i32.const 1232 - i32.const 261 - i32.const 31 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold + 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 2 + i32.shr_u i32.ge_u if - block $__inlined_func$~lib/rt/itcms/interrupt$68 - 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$68 - end - local.get $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - local.tee $2 - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - local.get $2 - i32.add - global.set $~lib/rt/itcms/threshold - end - end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize + i32.const 1360 + i32.const 1632 + i32.const 736 + i32.const 64 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/tlsf/ROOT + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 16 - i32.add - call $~lib/rt/tlsf/allocateBlock - local.tee $2 - local.get $1 - i32.store offset=12 - local.get $2 + i32.store 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.const 2 + i32.shl + i32.add i32.load - i32.const -4 - i32.and + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 - i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int32Array#constructor (param $0 i32) (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 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 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 9 + call $~lib/rt/itcms/__new local.tee $1 - i32.const 0 - local.get $0 - memory.fill + i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - ) - (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) - (local $2 i32) + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.eqz + local.get $0 + i32.const 2 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/typedarray/Int8Array#__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 16320 + i32.lt_s if - return + 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 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.eqz + i32.store + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u if - i32.const 0 - i32.const 1232 - i32.const 295 - i32.const 14 + i32.const 1360 + i32.const 1632 + i32.const 25 + i32.const 45 call $~lib/builtins/abort unreachable end - global.get $~lib/rt/itcms/white - local.tee $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $1 - i32.const 20 - i32.sub - local.tee $1 + local.get $0 i32.load offset=4 - i32.const 3 - i32.and - i32.eq + i32.add + i32.load8_s + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Float64Array#__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 16320 + i32.lt_s if - local.get $0 - i32.const 20 - i32.sub - i32.load offset=4 - i32.const 3 - i32.and - local.tee $0 - local.get $2 - 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 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - ) - (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) - (local $5 f64) - (local $6 f64) - (local $7 i32) - (local $8 f64) - (local $9 i32) + 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 $3 - local.get $2 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 1446 + 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.sub - i32.const 1 + i32.const 3 + i32.shl i32.add - local.tee $7 - local.get $3 - i32.sub - i32.const 1 - i32.and - i32.sub - local.get $7 - i32.const 1 - i32.and - local.get $3 - select + f64.load + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.set $7 - loop $for-loop|0 - local.get $2 - local.get $7 - i32.ge_s + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint8ClampedArray#__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 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 + 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 1632 + i32.const 309 + i32.const 45 + 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 offset=4 + i32.add + i32.load8_u + global.get $~lib/memory/__stack_pointer + i32.const 4 + 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 $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 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 + 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 + if (result i32) + local.get $2 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + else + i32.const 1 + end + i32.eqz if - local.get $0 - local.get $7 - i32.const 3 - i32.shl - i32.add - local.tee $3 - f64.load offset=8 - local.tee $8 - local.set $6 - local.get $3 - f64.load - local.set $5 - i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $8 - local.get $4 - i32.load - call_indirect (type $10) - i32.const 0 - i32.le_s - if - local.get $5 - local.set $6 - local.get $8 - local.set $5 + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $0 + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end end - local.get $7 - i32.const 1 - i32.sub - local.set $3 + end + block $__inlined_func$~lib/util/string/compareImpl$714 loop $while-continue|1 - local.get $1 + local.get $0 + local.tee $3 + i32.const 1 + i32.sub + local.set $0 local.get $3 - i32.le_s if - block $while-break|1 - local.get $0 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.tee $9 - f64.load - local.set $8 - i32.const 2 - global.set $~argumentsLength - local.get $8 - local.get $5 - local.get $4 - i32.load - call_indirect (type $10) - i32.const 0 - i32.le_s - br_if $while-break|1 - local.get $9 - local.get $8 - f64.store offset=16 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - br $while-continue|1 - end + local.get $2 + i32.load16_u + local.tee $5 + local.get $1 + i32.load16_u + local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 + i32.ne + br_if $__inlined_func$~lib/util/string/compareImpl$714 + local.get $2 + i32.const 2 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 end end + i32.const 0 + local.set $3 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.eqz + return + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (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 49088 + i32.const 0 + i32.store + i32.const 50656 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if local.get $0 - local.get $3 - i32.const 3 + i32.const 2 i32.shl + i32.const 49088 i32.add - local.get $5 - f64.store offset=16 - loop $while-continue|2 + i32.const 0 + i32.store offset=4 + i32.const 0 + local.set $1 + loop $for-loop|1 local.get $1 - local.get $3 - i32.le_s + i32.const 16 + i32.lt_u if - block $while-break|2 - local.get $0 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.tee $9 - f64.load - local.set $5 - i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $6 - local.get $4 - i32.load - call_indirect (type $10) - i32.const 0 - i32.le_s - br_if $while-break|2 - local.get $9 - local.get $5 - f64.store offset=8 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - br $while-continue|2 - end + local.get $0 + i32.const 4 + i32.shl + local.get $1 + i32.add + i32.const 2 + i32.shl + i32.const 49088 + 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 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.get $6 - f64.store offset=8 - local.get $7 - i32.const 2 + i32.const 1 i32.add - local.set $7 + local.set $0 br $for-loop|0 end end + i32.const 49088 + i32.const 50660 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 49088 + global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) (local $4 i32) - (local $5 f64) - (local $6 i32) - (local $7 f64) local.get $1 - local.get $2 - i32.eq + i32.const 1073741820 + i32.gt_u if - local.get $1 - return + i32.const 1168 + i32.const 1504 + i32.const 461 + i32.const 29 + call $~lib/builtins/abort + unreachable end local.get $0 local.get $1 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $5 - local.get $0 - local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $7 - i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $7 - local.get $3 - i32.load - call_indirect (type $10) - i32.const 0 - i32.gt_s + 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 $3 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz if - loop $while-continue|0 - local.get $2 - local.get $4 - i32.gt_s + local.get $3 + i32.const 256 + i32.ge_u + if (result i32) + local.get $3 + i32.const 536870910 + i32.lt_u if (result i32) - local.get $0 - local.get $4 - i32.const 3 - i32.shl - i32.add - local.tee $6 - f64.load offset=8 - local.set $5 - local.get $6 - f64.load - local.set $7 - i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $7 local.get $3 - i32.load - call_indirect (type $10) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $4 i32.const 1 - i32.add - local.set $4 - br $while-continue|0 - end - end - local.get $4 - local.set $2 - loop $while-continue|1 - local.get $1 - local.get $2 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.tee $3 - f64.load - local.set $5 + i32.const 27 local.get $3 - local.get $0 - local.get $2 - i32.const 3 + i32.clz + i32.sub i32.shl i32.add - local.tee $3 - f64.load - f64.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - local.get $3 - local.get $5 - f64.store - local.get $2 i32.const 1 i32.sub - local.set $2 - br $while-continue|1 - end - end - else - loop $while-continue|2 - local.get $2 - local.get $4 - i32.gt_s - if (result i32) - local.get $0 - local.get $4 - i32.const 3 - i32.shl - i32.add - local.tee $1 - f64.load offset=8 - local.set $5 - local.get $1 - f64.load - local.set $7 - i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $7 - local.get $3 - i32.load - call_indirect (type $10) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $while-continue|2 + else + local.get $3 end + else + local.get $3 end - end - local.get $4 - ) - (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) - (local $6 i32) - (local $7 f64) - (local $8 f64) - (local $9 i32) - (local $10 i32) - local.get $2 - i32.const 1 - i32.sub - local.tee $6 - local.get $3 - i32.add - local.set $9 - local.get $6 - i32.const 1 - i32.add - local.set $2 - loop $for-loop|0 + i32.const 4 + local.get $0 + i32.load offset=1568 + memory.size + local.tee $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.set $2 + local.get $1 + local.get $2 local.get $1 local.get $2 + i32.gt_s + select + memory.grow + i32.const 0 i32.lt_s if local.get $2 - i32.const 1 - i32.sub - local.tee $2 - i32.const 3 - i32.shl - local.tee $10 - local.get $4 - i32.add - local.get $0 - local.get $10 - i32.add - f64.load - f64.store - br $for-loop|0 - end - end - loop $for-loop|1 - local.get $3 - local.get $6 - i32.gt_s - if - local.get $4 - local.get $9 - local.get $6 - i32.sub - i32.const 3 - i32.shl - i32.add - local.get $0 - local.get $6 - i32.const 3 - i32.shl - i32.add - f64.load offset=8 - f64.store - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|1 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end end - end - loop $for-loop|2 + local.get $0 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 $0 local.get $3 - i32.le_s + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz if - local.get $4 - local.get $6 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $7 - local.get $4 - local.get $2 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $8 - i32.const 2 - global.set $~argumentsLength - local.get $7 - local.get $8 - local.get $5 - i32.load - call_indirect (type $10) i32.const 0 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $7 - f64.store - local.get $6 - i32.const 1 - i32.sub - local.set $6 - else - local.get $0 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $8 - f64.store - local.get $2 - i32.const 1 - i32.add - local.set $2 - end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|2 + i32.const 1504 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable end end - ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f64) (param $1 f64) (result i32) - (local $2 i64) - (local $3 i64) - local.get $0 - i64.reinterpret_f64 - local.tee $2 - i64.const 63 - i64.shr_s - i64.const 1 - i64.shr_u - local.get $2 - i64.xor - local.tee $2 - local.get $1 - i64.reinterpret_f64 - local.tee $3 - i64.const 63 - i64.shr_s - i64.const 1 - i64.shr_u - local.get $3 - i64.xor - local.tee $3 - i64.gt_s - local.get $2 local.get $3 - i64.lt_s - i32.sub - ) - (func $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - local.get $0 - local.get $1 - i32.add - ) - (func $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i32) (result i64) - local.get $0 - local.get $1 - i64.add - ) - (func $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 f32) (param $2 i32) (param $3 i32) (result f32) - local.get $0 local.get $1 - f32.add - ) - (func $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 f64) (param $2 i32) (param $3 i32) (result f64) + 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 $0 local.get $1 - f64.add - ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - local.get $0 - i32.mul - ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i64) - local.get $0 - local.get $0 - i64.mul - ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 i32) (param $2 i32) (result f32) - local.get $0 - local.get $0 - f32.mul - ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 i32) (param $2 i32) (result f64) - local.get $0 - local.get $0 - f64.mul - ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - i32.extend8_s - i32.const 2 - i32.gt_s - ) - (func $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) + call $~lib/rt/tlsf/removeBlock local.get $1 - local.get $0 - i32.const 20 - i32.sub - local.tee $3 i32.load + local.set $4 + local.get $3 + 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 $4 i32.const -4 i32.and - i32.const 16 + local.get $3 i32.sub - i32.le_u + local.tee $2 + i32.const 16 + i32.ge_u if + local.get $1 local.get $3 + local.get $4 + i32.const 2 + i32.and + i32.or + i32.store local.get $1 - i32.store offset=16 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + local.get $2 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store local.get $0 - return + local.get $3 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $4 + i32.const -2 + i32.and + i32.store + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $0 + local.get $0 + i32.load + i32.const -3 + i32.and + i32.store end local.get $1 - local.get $3 - i32.load offset=12 - call $~lib/rt/itcms/__new - local.tee $2 - local.get $0 - local.get $1 - local.get $3 - i32.load offset=16 - local.tee $0 - local.get $0 - local.get $1 - i32.gt_u - select - memory.copy - local.get $2 ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/rt/tlsf/__free (param $0 i32) + (local $1 i32) + (local $2 i32) local.get $0 - i32.const 255 - i32.and - i32.const 2 - i32.gt_u - ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + i32.const 49088 + 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 - i32.extend16_s - i32.const 2 - i32.gt_s - ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + i32.const 4 + i32.sub + local.set $1 local.get $0 - i32.const 65535 + i32.const 15 i32.and - i32.const 2 - i32.gt_u - ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + i32.const 1 local.get $0 - i32.const 2 - i32.gt_s + 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 1504 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + i32.store + local.get $1 + call $~lib/rt/tlsf/insertBlock ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#constructor (param $0 i32) (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 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 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 local.get $0 - i32.const 2 - i32.gt_u - ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 - i64.const 2 - i64.gt_s ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int8Array#constructor (param $0 i32) (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 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 + 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 + global.get $~lib/memory/__stack_pointer + local.get $1 local.get $0 - i64.const 2 - i64.gt_u - ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 - f32.const 2 - f32.gt ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - f64.const 2 - f64.gt - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Float64Array#constructor (param $0 i32) (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 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 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 12 + 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 + global.get $~lib/memory/__stack_pointer + local.get $1 local.get $0 - i32.const 255 - i32.and - i32.const 2 - i32.eq - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + i32.const 3 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 - i32.const 255 - i32.and - i32.eqz ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Float32Array#constructor (param $0 i32) (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 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 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 12 + 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 + global.get $~lib/memory/__stack_pointer + local.get $1 local.get $0 - i32.const 65535 - i32.and i32.const 2 - i32.eq - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 - i32.const 65535 - i32.and - i32.eqz ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint8Array#__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 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 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 2 - i32.eq - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + i32.store + local.get $1 local.get $0 - i32.eqz - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + i32.load offset=8 + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 167 + i32.const 45 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.get $0 - i64.const 2 - i64.eq - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + i32.store + local.get $1 local.get $0 - i64.eqz + i32.load offset=4 + i32.add + i32.load8_u + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint64Array#__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 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 + global.get $~lib/memory/__stack_pointer local.get $0 - f32.const 2 - f32.eq - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|1 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + i32.store + local.get $1 local.get $0 - f32.const 0 - f32.eq - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 1162 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.get $0 - f64.const 2 - f64.eq - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|1 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + i32.store local.get $0 - f64.const 0 - f64.eq + i32.load offset=4 + 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 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint32Array#constructor (param $0 i32) (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 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 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 12 + 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 + global.get $~lib/memory/__stack_pointer + local.get $1 + local.get $0 + i32.const 2 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 - i32.const 255 - i32.and - i32.const 4 - i32.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint32Array#__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 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 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 65535 - i32.and + i32.store + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 878 + 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 2 + i32.shl + i32.add + i32.load + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.eq + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint16Array#__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 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 594 + 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 1 + i32.shl + i32.add + i32.load16_u + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.eq + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int64Array#__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 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 + global.get $~lib/memory/__stack_pointer local.get $0 - i64.const 4 - i64.eq - ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + i32.store + local.get $1 local.get $0 - f32.const 4 - f32.eq - ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 1020 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.get $0 - f64.const 4 - f64.eq - ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + i32.store local.get $0 - i32.extend8_s - i32.const 1 - i32.and - i32.eqz + i32.load offset=4 + 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 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int16Array#__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 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 local.get $0 + i32.load offset=8 i32.const 1 - i32.and - i32.eqz - ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + i32.shr_u + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 452 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.get $0 - i32.extend16_s + i32.store + local.get $0 + i32.load offset=4 + local.get $1 i32.const 1 - i32.and - i32.eqz + i32.shl + i32.add + i32.load16_s + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Float32Array#__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 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 + global.get $~lib/memory/__stack_pointer local.get $0 - i64.const 1 - i64.and - i64.eqz + i32.store + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 1304 + 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 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 $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) + (func $std/typedarray/isInt32ArrayEqual (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) (local $4 i32) - block $__inlined_func$~lib/math/NativeMathf.mod (result 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 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + block $folding-inner0 + local.get $1 + call $~lib/array/Array#get:length + local.get $3 + i32.ne + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.reinterpret_f32 - local.tee $1 - i32.const 23 - i32.shr_u - i32.const 255 - i32.and - local.tee $2 - i32.const 255 - i32.eq - if - local.get $0 - local.get $0 - f32.add - local.tee $0 - local.get $0 - f32.div - br $__inlined_func$~lib/math/NativeMathf.mod + i32.store + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.set $3 + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $2 + call $~lib/typedarray/Int32Array#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + local.get $2 + call $~lib/array/Array#__get + local.get $4 + i32.ne + br_if $folding-inner0 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end end - local.get $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer i32.const 1 - i32.shl + return + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (func $~lib/typedarray/Uint64Array#constructor (param $0 i32) (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 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 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 12 + 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 + global.get $~lib/memory/__stack_pointer + local.get $1 + local.get $0 + i32.const 3 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/typedarray/Uint16Array#constructor (param $0 i32) (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 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 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 12 + 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 + global.get $~lib/memory/__stack_pointer + local.get $1 + local.get $0 + i32.const 1 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/typedarray/Float64Array#indexOf (param $0 i32) (param $1 f64) (param $2 i32) (result 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 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 + 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 + block $"~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0" (result i32) + i32.const -1 + local.get $0 + call $~lib/typedarray/Int64Array#get:length local.tee $3 - i32.const -2147483648 - i32.le_u - if - local.get $0 - local.get $3 - i32.const -2147483648 - i32.ne - f32.convert_i32_u - f32.mul - br $__inlined_func$~lib/math/NativeMathf.mod - end - local.get $1 - i32.const -2147483648 - i32.and - local.set $3 + i32.eqz local.get $2 - if (result i32) - local.get $1 - i32.const 8388607 - i32.and - i32.const 8388608 - i32.or - else - local.get $1 - i32.const 1 + local.get $3 + i32.ge_s + i32.or + br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0" + drop + local.get $2 + i32.const 0 + i32.lt_s + if local.get $2 - local.get $1 - i32.const 9 - i32.shl - i32.clz - i32.sub + local.get $3 + i32.add local.tee $2 - i32.sub - i32.shl + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.set $2 end - local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.set $0 loop $while-continue|0 local.get $2 - i32.const 128 - i32.gt_s + local.get $3 + i32.lt_s if - local.get $1 - i32.const 8388608 - i32.ge_u - if (result i32) - local.get $0 - f32.const 0 - f32.mul - local.get $1 - i32.const 8388608 - i32.eq - br_if $__inlined_func$~lib/math/NativeMathf.mod - drop - local.get $1 - i32.const 8388608 - i32.sub - else - local.get $1 - end - i32.const 1 + local.get $2 + local.get $0 + local.get $2 + i32.const 3 i32.shl - local.set $1 + i32.add + f64.load + local.get $1 + f64.eq + br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0" + drop local.get $2 i32.const 1 - i32.sub + i32.add local.set $2 br $while-continue|0 end end - local.get $1 - i32.const 8388608 - i32.ge_u - if - local.get $0 - f32.const 0 - f32.mul - local.get $1 - i32.const 8388608 - i32.eq - br_if $__inlined_func$~lib/math/NativeMathf.mod - drop - local.get $1 - i32.const 8388608 - i32.sub - local.set $1 - end + i32.const -1 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Float32Array#indexOf (param $0 i32) (param $1 f32) (param $2 i32) (result 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 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 + 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 + block $"~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0" (result i32) + i32.const -1 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.tee $3 + i32.eqz local.get $2 - local.get $1 - i32.const 8 - i32.shl - i32.clz - local.tee $4 - i32.sub - local.set $2 - local.get $1 - local.get $4 - i32.shl - local.set $1 + local.get $3 + i32.ge_s + i32.or + br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0" + drop local.get $2 i32.const 0 - i32.gt_s - if (result i32) - local.get $1 - i32.const 8388608 - i32.sub + i32.lt_s + if local.get $2 - i32.const 23 - i32.shl - i32.or - else - local.get $1 - i32.const 1 + local.get $3 + i32.add + local.tee $2 + i32.const 0 local.get $2 - i32.sub - i32.shr_u + i32.const 0 + i32.gt_s + select + local.set $2 end - local.get $3 - i32.or - f32.reinterpret_i32 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.set $0 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $2 + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + f32.load + local.get $1 + f32.eq + br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0" + drop + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 + end + end + i32.const -1 end - f32.const 0 - f32.eq + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) - (local $3 i64) - (local $4 i64) - (local $5 i64) - (local $6 i64) - block $__inlined_func$~lib/math/NativeMath.mod$1 (result f64) + (func $~lib/typedarray/Uint64Array#indexOf (param $0 i32) (param $1 i64) (param $2 i32) (result 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 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 + 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 + block $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0" (result i32) + i32.const -1 local.get $0 - i64.reinterpret_f64 - local.tee $4 - i64.const 52 - i64.shr_u - i64.const 2047 - i64.and - local.tee $6 - i64.const 2047 - i64.eq - if - local.get $0 - local.get $0 - f64.add - local.tee $0 - local.get $0 - f64.div - br $__inlined_func$~lib/math/NativeMath.mod$1 - end - local.get $4 - i64.const 1 - i64.shl + call $~lib/typedarray/Int64Array#get:length local.tee $3 - i64.const -9223372036854775808 - i64.le_u + i32.eqz + local.get $2 + local.get $3 + i32.ge_s + i32.or + br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0" + drop + local.get $2 + i32.const 0 + i32.lt_s if - local.get $0 + local.get $2 local.get $3 - i64.const -9223372036854775808 - i64.ne - f64.convert_i32_u - f64.mul - br $__inlined_func$~lib/math/NativeMath.mod$1 - end - local.get $4 - i64.const 63 - i64.shr_u - local.set $5 - local.get $6 - i64.eqz - if (result i64) - local.get $4 - i64.const 1 - local.get $6 - local.get $4 - i64.const 12 - i64.shl - i64.clz - i64.sub - local.tee $6 - i64.sub - i64.shl - else - local.get $4 - i64.const 4503599627370495 - i64.and - i64.const 4503599627370496 - i64.or + i32.add + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.set $2 end - local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.set $0 loop $while-continue|0 - local.get $6 - i64.const 1024 - i64.gt_s + local.get $2 + local.get $3 + i32.lt_s if - local.get $3 - i64.const 4503599627370496 - i64.ge_u - if (result i64) - local.get $0 - f64.const 0 - f64.mul - local.get $3 - i64.const 4503599627370496 - i64.eq - br_if $__inlined_func$~lib/math/NativeMath.mod$1 - drop - local.get $3 - i64.const 4503599627370496 - i64.sub - else - local.get $3 - end - i64.const 1 - i64.shl - local.set $3 - local.get $6 - i64.const 1 - i64.sub - local.set $6 + local.get $2 + local.get $0 + local.get $2 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $1 + i64.eq + br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0" + drop + local.get $2 + i32.const 1 + i32.add + local.set $2 br $while-continue|0 end end + i32.const -1 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint32Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result 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 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 + 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 + block $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0" (result i32) + i32.const -1 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.tee $3 + i32.eqz + local.get $2 local.get $3 - i64.const 4503599627370496 - i64.ge_u + i32.ge_s + i32.or + br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0" + drop + local.get $2 + i32.const 0 + i32.lt_s if - local.get $0 - f64.const 0 - f64.mul + local.get $2 local.get $3 - i64.const 4503599627370496 - i64.eq - br_if $__inlined_func$~lib/math/NativeMath.mod$1 - drop + i32.add + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.set $2 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.set $0 + loop $while-continue|0 + local.get $2 local.get $3 - i64.const 4503599627370496 - i64.sub - local.set $3 + i32.lt_s + if + local.get $2 + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $1 + i32.eq + br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0" + drop + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 + end end - local.get $6 + i32.const -1 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint16Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result 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 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 + 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 + block $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0" (result i32) + i32.const -1 + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.tee $3 + i32.eqz + local.get $2 local.get $3 - i64.const 11 - i64.shl - i64.clz - local.tee $4 - i64.sub - local.set $6 + i32.ge_s + i32.or + br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0" + drop + 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.set $0 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.get $1 + i32.const 65535 + i32.and + i32.eq + br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0" + drop + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 + end + end + i32.const -1 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int64Array#indexOf (param $0 i32) (param $1 i64) (param $2 i32) (result 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 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 + 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 + block $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0" (result i32) + i32.const -1 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.tee $3 + i32.eqz + local.get $2 local.get $3 - local.get $4 - i64.shl - local.set $3 - local.get $6 - i64.const 0 - i64.gt_s - if (result i64) + i32.ge_s + i32.or + br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0" + drop + local.get $2 + i32.const 0 + i32.lt_s + if + local.get $2 local.get $3 - i64.const 4503599627370496 - i64.sub - local.get $6 - i64.const 52 - i64.shl - i64.or - else + i32.add + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.set $2 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.set $0 + loop $while-continue|0 + local.get $2 local.get $3 - i64.const 1 - local.get $6 - i64.sub - i64.shr_u + i32.lt_s + if + local.get $2 + local.get $0 + local.get $2 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $1 + i64.eq + br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0" + drop + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 + end end - local.get $5 - i64.const 63 - i64.shl - i64.or - f64.reinterpret_i64 + i32.const -1 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int32Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result 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 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 + 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 + block $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0" (result i32) + i32.const -1 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.tee $3 + i32.eqz + local.get $2 + local.get $3 + i32.ge_s + i32.or + br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0" + drop + 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.set $0 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $2 + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $1 + i32.eq + br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0" + drop + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 + end + end + i32.const -1 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (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 - f64.const 0 - f64.eq ) (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -3389,5028 +4150,4996 @@ i32.store16 end ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) + (func $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $0 local.get $1 - i32.extend8_s - local.tee $3 - i32.const 0 + i32.add + ) + (func $~lib/typedarray/Uint8Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result 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 16320 i32.lt_s - local.tee $2 if - local.get $3 - i32.const -128 - i32.eq - if - local.get $0 - i64.const 15762813447372845 - i64.store - i32.const 4 - return - end - local.get $0 - i32.const 45 - i32.store16 - i32.const 0 - local.get $1 - i32.sub - local.set $1 + i32.const 49120 + i32.const 49168 + 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 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.set $0 - local.get $1 - i32.extend8_s - local.tee $3 - i32.const 10 - i32.lt_u - if + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + block $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0" (result i32) + i32.const -1 local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.tee $3 + i32.eqz + br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0" + drop + local.get $2 local.get $3 - i32.const 48 - i32.or - i32.store16 + i32.add + local.get $3 + i32.const 1 + i32.sub + local.get $2 local.get $2 + local.get $3 + i32.ge_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.set $0 + loop $while-continue|0 + local.get $2 + i32.const 0 + i32.ge_s + if + local.get $2 + local.get $0 + local.get $2 + i32.add + i32.load8_u + local.get $1 + i32.const 255 + i32.and + i32.eq + br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0" + drop + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + i32.const -1 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int32Array#slice@varargs (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - i32.add - return + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.get $1 - i32.extend8_s - 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 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $2of2 + block $1of2 + block $outOfRange + global.get $~argumentsLength + br_table $1of2 $1of2 $2of2 $outOfRange + end + unreachable end + i32.const 2147483647 + local.set $1 end - local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store + local.get $0 + i32.const 0 local.get $1 - local.get $3 - call $~lib/util/number/utoa32_dec_lut - local.get $2 - local.get $3 + call $~lib/typedarray/Int32Array#slice + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) (local $2 i32) + (local $3 i32) local.get $1 - i32.const 255 + local.get $0 + i32.const 20 + i32.sub + local.tee $3 + i32.load + i32.const -4 i32.and - local.tee $2 - i32.const 10 - i32.lt_u + i32.const 16 + i32.sub + i32.le_u if + local.get $3 + local.get $1 + i32.store offset=16 local.get $0 - local.get $2 - i32.const 48 - i32.or - i32.store16 - i32.const 1 return end local.get $1 - i32.const 255 - i32.and - local.set $1 - i32.const 3 - local.get $1 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add + local.get $3 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.tee $2 + local.get $0 local.get $1 - i32.const 100 - i32.ge_u - select - local.set $2 + local.get $3 + i32.load offset=16 + local.tee $0 local.get $0 local.get $1 - local.get $2 - call $~lib/util/number/utoa32_dec_lut + i32.gt_u + select + memory.copy local.get $2 ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - local.get $1 - i32.extend16_s - local.tee $3 - i32.const 0 + (func $~lib/arraybuffer/ArrayBufferView#constructor (param $0 i32) (param $1 i32) (param $2 i32) (result 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 16320 i32.lt_s - local.tee $2 if - local.get $3 - i32.const -32768 - i32.eq - if - local.get $0 - i64.const 15481338470793261 - i64.store - local.get $0 - i32.const 3670070 - i32.store offset=8 - i32.const 6 - return - end - local.get $0 - i32.const 45 - i32.store16 - i32.const 0 - local.get $1 - i32.sub - local.set $1 + i32.const 49120 + i32.const 49168 + 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 local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.set $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + call $~lib/rt/itcms/__link + 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 local.get $1 - i32.extend16_s - local.tee $3 - i32.const 10 - i32.lt_u + i32.const 1073741820 + local.get $2 + i32.shr_u + i32.gt_u if - local.get $0 - local.get $3 - i32.const 48 - i32.or - i32.store16 - local.get $2 - i32.const 1 - i32.add - return + i32.const 1056 + i32.const 1104 + i32.const 19 + i32.const 57 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer local.get $1 - i32.extend16_s + local.get $2 + i32.shl 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.set $3 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - local.get $3 - call $~lib/util/number/utoa32_dec_lut + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $2 - local.get $3 + i32.store offset=12 + local.get $0 + local.get $2 + i32.store + local.get $0 + local.get $2 + call $~lib/rt/itcms/__link + 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 $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - i32.const 65535 - i32.and - local.tee $2 - i32.const 10 - i32.lt_u + (func $~lib/arraybuffer/ArrayBuffer#slice (param $0 i32) (param $1 i32) (param $2 i32) (result 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 16320 + i32.lt_s if - local.get $0 - local.get $2 - i32.const 48 - i32.or - i32.store16 + i32.const 49120 + i32.const 49168 i32.const 1 - return + 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 + local.set $3 local.get $1 - i32.const 65535 - i32.and - local.set $1 - local.get $1 - i32.const 100 - i32.lt_u + i32.const 0 + i32.lt_s if (result i32) local.get $1 - i32.const 10 - i32.ge_u - i32.const 1 + local.get $3 i32.add + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select else local.get $1 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add + local.get $3 local.get $1 - i32.const 1000 - i32.ge_u - i32.add + local.get $3 + i32.lt_s + select end - local.set $2 - local.get $0 - local.get $1 - local.get $2 - call $~lib/util/number/utoa32_dec_lut + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $2 - ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 i32.const 0 i32.lt_s - local.tee $2 - if - local.get $0 - i32.const 45 - i32.store16 + if (result i32) + local.get $2 + local.get $3 + i32.add + local.tee $2 i32.const 0 - local.get $1 - i32.sub - local.set $1 - end - local.get $0 + local.get $2 + i32.const 0 + i32.gt_s + select + else + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.lt_s + select + end + local.get $1 + i32.sub + local.tee $2 + i32.const 0 local.get $2 + i32.const 0 + i32.gt_s + select + local.tee $2 i32.const 1 - i32.shl - i32.add - local.set $0 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=4 + local.get $3 + local.get $0 local.get $1 - i32.const 10 - i32.lt_u + i32.add + local.get $2 + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (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 16320 + i32.lt_s if - local.get $0 - local.get $1 - i32.const 48 - i32.or - i32.store16 - local.get $2 + i32.const 49120 + i32.const 49168 i32.const 1 - i32.add - return + 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 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 - call $~lib/util/number/utoa32_dec_lut + 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.add - ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + 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 7776 + return + end + local.get $3 + i32.eqz + local.get $4 local.get $1 - i32.const 10 - i32.lt_u + i32.const 1 + i32.shl + i32.eq + i32.and if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.const 48 - i32.or - i32.store16 - i32.const 1 return end - local.get $0 - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=4 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 $0 - call $~lib/util/number/utoa32_dec_lut local.get $0 + local.get $3 + i32.add + local.get $2 + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 ) - (func $~lib/util/number/utoa64_dec_lut (param $0 i32) (param $1 i64) (param $2 i32) - (local $3 i32) - (local $4 i32) - loop $while-continue|0 - local.get $1 - i64.const 100000000 - i64.ge_u - if - local.get $0 - local.get $2 - i32.const 4 - i32.sub - local.tee $2 - i32.const 1 - i32.shl - i32.add - local.get $1 - local.get $1 - i64.const 100000000 - i64.div_u - local.tee $1 - i64.const 100000000 - i64.mul - i64.sub - i32.wrap_i64 - local.tee $3 - i32.const 10000 - i32.rem_u - local.tee $4 - i32.const 100 - i32.div_u - i32.const 2 - i32.shl - i32.const 8012 - i32.add - i64.load32_u - local.get $4 - 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 - local.get $0 - local.get $2 - i32.const 4 - i32.sub - local.tee $2 - i32.const 1 - i32.shl - i32.add - local.get $3 - i32.const 10000 - i32.div_u - local.tee $3 - i32.const 100 - i32.div_u - i32.const 2 - i32.shl - i32.const 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 + (func $~lib/typedarray/Uint8Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + 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 + 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 $0 + i32.store + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.set $2 end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $0 local.get $1 - i32.wrap_i64 local.get $2 - call $~lib/util/number/utoa32_dec_lut + call $~lib/typedarray/Uint8Array#lastIndexOf + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i64) (result i32) - (local $2 i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 255 + i32.and + i32.const 2 + i32.eq + ) + (func $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0" (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i64.const 2 + i64.eq + ) + (func $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 2 + i32.eq + ) + (func $~lib/typedarray/Uint64Array#lastIndexOf (param $0 i32) (param $1 i64) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) - local.get $1 - i64.const 0 - i64.lt_s - local.tee $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s if - local.get $0 - i32.const 45 - i32.store16 - i64.const 0 - local.get $1 - i64.sub - local.set $1 + i32.const 49120 + i32.const 49168 + 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 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.set $4 - local.get $1 - i64.const 10 - i64.lt_u - if - local.get $4 - local.get $1 - i64.const 48 - i64.or - i64.store16 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + block $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0" (result i32) + i32.const -1 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.tee $3 + i32.eqz + br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0" + drop + local.get $2 local.get $3 - i32.const 1 i32.add - return - end - local.get $1 - i64.const 4294967295 - i64.le_u - if - local.get $1 - i32.wrap_i64 - local.tee $2 - i32.const 100000 - i32.lt_u - if (result i32) + local.get $3 + i32.const 1 + i32.sub + local.get $2 + local.get $2 + local.get $3 + i32.ge_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.set $0 + loop $while-continue|0 local.get $2 - i32.const 100 - i32.lt_u - if (result i32) + i32.const 0 + i32.ge_s + if 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.shl i32.add + i64.load + local.get $1 + i64.eq + br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0" + drop 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 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 end end - local.set $0 - local.get $4 + i32.const -1 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint32Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result 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 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 + 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 + block $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0" (result i32) + i32.const -1 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.tee $3 + i32.eqz + br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0" + drop + local.get $2 + local.get $3 + i32.add + local.get $3 + i32.const 1 + i32.sub + local.get $2 + local.get $2 + local.get $3 + i32.ge_s + select local.get $2 + i32.const 0 + i32.lt_s + select + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 - call $~lib/util/number/utoa32_dec_lut - else - local.get $4 - local.get $1 - local.get $1 - i64.const 1000000000000000 - i64.lt_u - if (result i32) - local.get $1 - i64.const 1000000000000 - i64.lt_u - if (result i32) - local.get $1 - i64.const 100000000000 - i64.ge_u - i32.const 10 - i32.add - local.get $1 - i64.const 10000000000 - i64.ge_u - i32.add - else - local.get $1 - i64.const 100000000000000 - i64.ge_u - i32.const 13 - i32.add - local.get $1 - i64.const 10000000000000 - i64.ge_u - i32.add - end - else - local.get $1 - i64.const 100000000000000000 - i64.lt_u - if (result i32) - local.get $1 - i64.const 10000000000000000 - i64.ge_u - i32.const 16 - i32.add - else - local.get $1 - i64.const -8446744073709551616 - i64.ge_u - i32.const 18 + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.set $0 + loop $while-continue|0 + local.get $2 + i32.const 0 + i32.ge_s + if + local.get $2 + local.get $0 + local.get $2 + i32.const 2 + i32.shl i32.add + i32.load local.get $1 - i64.const 1000000000000000000 - i64.ge_u - i32.add + i32.eq + br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0" + drop + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 end end - local.tee $0 - call $~lib/util/number/utoa64_dec_lut + i32.const -1 end - local.get $0 - local.get $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i64) (result i32) - (local $2 i32) + (func $~lib/typedarray/Uint16Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - local.get $0 - local.set $2 - local.get $1 - i64.const 10 - i64.lt_u + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s if - local.get $0 - local.get $1 - i64.const 48 - i64.or - i64.store16 + i32.const 49120 + i32.const 49168 i32.const 1 - return + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.get $1 - i64.const 4294967295 - i64.le_u - if - local.get $1 - i32.wrap_i64 + global.get $~lib/memory/__stack_pointer + 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 + block $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0" (result i32) + i32.const -1 + local.get $0 + call $~lib/typedarray/Int16Array#get:length 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.eqz + br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0" + drop + local.get $2 + local.get $3 + i32.add + local.get $3 + i32.const 1 + i32.sub + local.get $2 + local.get $2 + local.get $3 + i32.ge_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.set $0 + loop $while-continue|0 + local.get $2 + i32.const 0 + i32.ge_s + if + local.get $2 + local.get $0 + local.get $2 i32.const 1 + i32.shl i32.add - else - local.get $3 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $3 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $3 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $3 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $3 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $3 - i32.const 100000000 - i32.ge_u - i32.add + i32.load16_u + local.get $1 + i32.const 65535 + i32.and + i32.eq + br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0" + drop + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 end end - local.set $0 + i32.const -1 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int64Array#lastIndexOf (param $0 i32) (param $1 i64) (param $2 i32) (result 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 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 + 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 + block $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0" (result i32) + i32.const -1 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.tee $3 + i32.eqz + br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0" + drop local.get $2 local.get $3 - local.get $0 - call $~lib/util/number/utoa32_dec_lut - else + i32.add + local.get $3 + i32.const 1 + i32.sub local.get $2 - local.get $1 - local.get $1 - i64.const 1000000000000000 - i64.lt_u - if (result i32) - local.get $1 - i64.const 1000000000000 - i64.lt_u - if (result i32) - local.get $1 - i64.const 100000000000 - i64.ge_u - i32.const 10 - i32.add - local.get $1 - i64.const 10000000000 - i64.ge_u - i32.add - else - local.get $1 - i64.const 100000000000000 - i64.ge_u - i32.const 13 + local.get $2 + local.get $3 + i32.ge_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.set $0 + loop $while-continue|0 + local.get $2 + i32.const 0 + i32.ge_s + if + local.get $2 + local.get $0 + local.get $2 + i32.const 3 + i32.shl i32.add + i64.load local.get $1 - i64.const 10000000000000 - i64.ge_u - i32.add + i64.eq + br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0" + drop + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 end - else - local.get $1 - i64.const 100000000000000000 - i64.lt_u - if (result i32) - local.get $1 - i64.const 10000000000000000 - i64.ge_u - i32.const 16 - i32.add - else - local.get $1 - i64.const -8446744073709551616 - i64.ge_u - i32.const 18 + end + i32.const -1 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int32Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result 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 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 + 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 + block $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0" (result i32) + i32.const -1 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.tee $3 + i32.eqz + br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0" + drop + local.get $2 + local.get $3 + i32.add + local.get $3 + i32.const 1 + i32.sub + local.get $2 + local.get $2 + local.get $3 + i32.ge_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.set $0 + loop $while-continue|0 + local.get $2 + i32.const 0 + i32.ge_s + if + local.get $2 + local.get $0 + local.get $2 + i32.const 2 + i32.shl i32.add + i32.load local.get $1 - i64.const 1000000000000000000 - i64.ge_u - i32.add + i32.eq + br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0" + drop + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 end end - local.tee $0 - call $~lib/util/number/utoa64_dec_lut + i32.const -1 end - local.get $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) - (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) - (local $6 i32) - (local $7 i32) - (local $8 i64) - (local $9 i64) - (local $10 i32) - (local $11 i64) - (local $12 i64) - local.get $2 - local.get $1 - i64.sub - local.set $9 - i64.const 1 - i32.const 0 - local.get $3 + (func $~lib/typedarray/Int32Array#copyWithin (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.sub - local.tee $10 - i64.extend_i32_s - local.tee $1 - i64.shl - local.tee $12 - i64.const 1 - i64.sub - local.tee $11 - local.get $2 - i64.and - local.set $8 - local.get $2 - local.get $1 - i64.shr_u - i32.wrap_i64 + 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 + 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 $0 + call $~lib/typedarray/Int32Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $3 + local.get $4 + local.get $3 + local.get $4 + i32.lt_s + select + local.set $5 + local.get $0 + i32.load offset=4 local.tee $3 - i32.const 100000 - i32.lt_u + local.get $1 + i32.const 0 + i32.lt_s if (result i32) - local.get $3 - i32.const 100 - i32.lt_u - if (result i32) - local.get $3 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $3 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $3 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $3 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $3 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $3 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $3 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.set $7 - loop $while-continue|0 - local.get $7 + local.get $1 + local.get $4 + i32.add + local.tee $1 + i32.const 0 + local.get $1 i32.const 0 i32.gt_s - if - block $break|1 - block $case10|1 - block $case9|1 - block $case8|1 - block $case7|1 - block $case6|1 - block $case5|1 - block $case4|1 - block $case3|1 - block $case2|1 - block $case1|1 - block $case0|1 - local.get $7 - i32.const 1 - i32.sub - br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $case0|1 $case10|1 - end - local.get $3 - i32.const 1000000000 - i32.div_u - local.set $6 - local.get $3 - i32.const 1000000000 - i32.rem_u - local.set $3 - br $break|1 - end - local.get $3 - i32.const 100000000 - i32.div_u - local.set $6 - local.get $3 - i32.const 100000000 - i32.rem_u - local.set $3 - br $break|1 - end - local.get $3 - i32.const 10000000 - i32.div_u - local.set $6 - local.get $3 - i32.const 10000000 - i32.rem_u - local.set $3 - br $break|1 - end - local.get $3 - i32.const 1000000 - i32.div_u - local.set $6 - local.get $3 - i32.const 1000000 - i32.rem_u - local.set $3 - br $break|1 - end - local.get $3 - i32.const 100000 - i32.div_u - local.set $6 - local.get $3 - i32.const 100000 - i32.rem_u - local.set $3 - br $break|1 - end - local.get $3 - i32.const 10000 - i32.div_u - local.set $6 - local.get $3 - i32.const 10000 - i32.rem_u - local.set $3 - br $break|1 - end - local.get $3 - i32.const 1000 - i32.div_u - local.set $6 - local.get $3 - i32.const 1000 - i32.rem_u - local.set $3 - br $break|1 - end - local.get $3 - i32.const 100 - i32.div_u - local.set $6 - local.get $3 - i32.const 100 - i32.rem_u - local.set $3 - br $break|1 - end - local.get $3 - i32.const 10 - i32.div_u - local.set $6 - local.get $3 - i32.const 10 - i32.rem_u - local.set $3 - br $break|1 - end - local.get $3 - local.set $6 - i32.const 0 - local.set $3 - br $break|1 - end - i32.const 0 - local.set $6 - end - local.get $5 - local.get $6 - i32.or - if - local.get $0 - local.get $5 - i32.const 1 - i32.shl - i32.add - local.get $6 - i32.const 65535 - i32.and - i32.const 48 - i32.add - i32.store16 - local.get $5 - i32.const 1 - i32.add - local.set $5 - end - local.get $7 - i32.const 1 - i32.sub - local.set $7 - local.get $4 - local.get $3 - i64.extend_i32_u - local.get $10 - i64.extend_i32_s - local.tee $2 - i64.shl - local.get $8 - i64.add - local.tee $1 - i64.ge_u - if - global.get $~lib/util/number/_K - local.get $7 - i32.add - global.set $~lib/util/number/_K - local.get $7 - i32.const 2 - i32.shl - i32.const 10736 - i32.add - i64.load32_u - local.get $2 - i64.shl - local.set $2 - local.get $0 - local.get $5 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - i32.add - local.tee $0 - i32.load16_u - local.set $7 - loop $while-continue|3 - local.get $1 - local.get $9 - i64.lt_u - local.get $4 - local.get $1 - i64.sub - local.get $2 - i64.ge_u - i32.and - if (result i32) - local.get $9 - local.get $1 - local.get $2 - i64.add - local.tee $8 - i64.gt_u - local.get $9 - local.get $1 - i64.sub - local.get $8 - local.get $9 - i64.sub - i64.gt_u - i32.or - else - i32.const 0 - end - if - local.get $7 - i32.const 1 - i32.sub - local.set $7 - local.get $1 - local.get $2 - i64.add - local.set $1 - br $while-continue|3 - end - end - local.get $0 - local.get $7 - i32.store16 - local.get $5 - return - end - br $while-continue|0 - end - end - loop $while-continue|4 + select + else + local.get $1 local.get $4 - i64.const 10 - i64.mul - local.set $4 - local.get $8 - i64.const 10 - i64.mul - local.tee $1 - local.get $10 - i64.extend_i32_s - i64.shr_u - local.tee $2 - local.get $5 - i64.extend_i32_s - i64.or - i64.const 0 - i64.ne - if - local.get $0 - local.get $5 - i32.const 1 - i32.shl - i32.add - local.get $2 - i32.wrap_i64 - i32.const 65535 - i32.and - i32.const 48 - i32.add - i32.store16 - local.get $5 - i32.const 1 - i32.add - local.set $5 - end - local.get $7 - i32.const 1 - i32.sub - local.set $7 local.get $1 - local.get $11 - i64.and - local.tee $8 local.get $4 - i64.ge_u - br_if $while-continue|4 + i32.lt_s + select end - global.get $~lib/util/number/_K - local.get $7 + local.tee $1 + i32.const 2 + i32.shl i32.add - global.set $~lib/util/number/_K - local.get $9 + local.get $3 + local.get $2 i32.const 0 - local.get $7 - i32.sub + i32.lt_s + if (result i32) + local.get $2 + local.get $4 + i32.add + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + else + local.get $2 + local.get $4 + local.get $2 + local.get $4 + i32.lt_s + select + end + local.tee $2 i32.const 2 i32.shl - i32.const 10736 i32.add - i64.load32_u - i64.mul - local.set $1 - local.get $0 local.get $5 - i32.const 1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $4 + local.get $5 + i32.add + local.tee $3 + i32.const 0 + local.get $3 + i32.const 0 + i32.gt_s + select + else + local.get $5 + local.get $4 + local.get $4 + local.get $5 + i32.gt_s + select + end + local.get $2 i32.sub - i32.const 1 + local.tee $2 + local.get $4 + local.get $1 + i32.sub + local.tee $1 + local.get $1 + local.get $2 + i32.gt_s + select + i32.const 2 i32.shl + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.tee $0 - i32.load16_u - local.set $7 - loop $while-continue|6 - local.get $1 - local.get $8 - i64.gt_u - local.get $4 - local.get $8 - i64.sub - local.get $12 - i64.ge_u - i32.and - if (result i32) - local.get $1 - local.get $8 - local.get $12 - i64.add - local.tee $2 - i64.gt_u - local.get $1 - local.get $8 - i64.sub - local.get $2 - local.get $1 - i64.sub - i64.gt_u - i32.or - else - i32.const 0 - end - if - local.get $7 - i32.const 1 - i32.sub - local.set $7 - local.get $8 - local.get $12 - i64.add - local.set $8 - br $while-continue|6 - end - end + global.set $~lib/memory/__stack_pointer local.get $0 - local.get $7 - i32.store16 - local.get $5 ) - (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Float64Array#lastIndexOf (param $0 i32) (param $1 f64) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) - local.get $2 - i32.eqz + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s if - local.get $0 - local.get $1 + i32.const 49120 + i32.const 49168 i32.const 1 - i32.shl - i32.add - i32.const 3145774 - i32.store - local.get $1 - i32.const 2 - i32.add - return + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.get $1 - local.get $2 - i32.add - local.tee $3 - i32.const 21 - i32.le_s - local.get $1 - local.get $3 - i32.le_s - i32.and - if (result i32) - loop $for-loop|0 - local.get $1 - local.get $3 - i32.lt_s + global.get $~lib/memory/__stack_pointer + 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 + block $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0" (result i32) + i32.const -1 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.tee $3 + i32.eqz + br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0" + drop + local.get $2 + local.get $3 + i32.add + local.get $3 + i32.const 1 + i32.sub + local.get $2 + local.get $2 + local.get $3 + i32.ge_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.set $0 + loop $while-continue|0 + local.get $2 + i32.const 0 + i32.ge_s if + local.get $2 local.get $0 - local.get $1 - i32.const 1 + local.get $2 + i32.const 3 i32.shl i32.add - i32.const 48 - i32.store16 + f64.load local.get $1 + f64.eq + br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0" + drop + local.get $2 i32.const 1 - i32.add - local.set $1 - br $for-loop|0 + i32.sub + local.set $2 + br $while-continue|0 end end - local.get $0 - local.get $3 + i32.const -1 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Float32Array#lastIndexOf (param $0 i32) (param $1 f32) (param $2 i32) (result 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 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - i32.shl - i32.add - i32.const 3145774 - i32.store + 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 + block $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0" (result i32) + i32.const -1 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.tee $3 + i32.eqz + br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0" + drop + local.get $2 local.get $3 - i32.const 2 i32.add - else local.get $3 - i32.const 21 - i32.le_s + i32.const 1 + i32.sub + local.get $2 + local.get $2 local.get $3 + i32.ge_s + select + local.get $2 i32.const 0 - i32.gt_s - i32.and - if (result i32) - local.get $0 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.tee $0 - i32.const 2 - i32.add - local.get $0 - i32.const 0 + i32.lt_s + select + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.set $0 + loop $while-continue|0 local.get $2 - i32.sub - i32.const 1 - i32.shl - memory.copy - local.get $0 - i32.const 46 - i32.store16 - local.get $1 - i32.const 1 - i32.add - else - local.get $3 i32.const 0 - i32.le_s - local.get $3 - i32.const -6 - i32.gt_s - i32.and - if (result i32) + i32.ge_s + if + local.get $2 local.get $0 + local.get $2 i32.const 2 - local.get $3 - i32.sub - local.tee $3 - i32.const 1 i32.shl i32.add - local.get $0 + f32.load local.get $1 + f32.eq + br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0" + drop + local.get $2 i32.const 1 - i32.shl - memory.copy - local.get $0 - i32.const 3014704 - i32.store - i32.const 2 + i32.sub local.set $2 - loop $for-loop|1 - local.get $2 - local.get $3 - i32.lt_s - if - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 48 - i32.store16 - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|1 - end - end - local.get $1 - local.get $3 - i32.add - else - local.get $1 - i32.const 1 - i32.eq + br $while-continue|0 + end + end + i32.const -1 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> (param $0 i32) (param $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 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#get:length + local.get $3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 758 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $2 + call $~lib/typedarray/Uint8Array#__uget + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + local.get $2 + call $~lib/typedarray/Uint8Array#__uget + local.tee $5 + local.get $4 + i32.ne + if + i32.const 11760 + i32.const 3 + local.get $2 + f64.convert_i32_s + local.get $4 + f64.convert_i32_u + local.get $5 + f64.convert_i32_u + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.const 1568 + i32.const 764 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + 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/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + local.get $0 + i32.mul + ) + (func $std/typedarray/isInt8ArrayEqual (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 + block $folding-inner1 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + 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 + call $~lib/typedarray/Int8Array#get:length + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#get:length + local.get $3 + i32.ne + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.set $4 + loop $for-loop|0 + local.get $2 + local.get $4 + i32.lt_s if + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 101 - i32.store16 offset=2 + i32.store local.get $0 + local.get $2 + call $~lib/typedarray/Int8Array#__get + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.add - local.tee $2 - local.get $3 - i32.const 1 i32.sub - local.tee $0 - i32.const 0 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 i32.lt_s - local.tee $3 + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $2 + local.get $1 + i32.load offset=12 + i32.ge_u if - i32.const 0 - local.get $0 - i32.sub - local.set $0 - end - local.get $0 - 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 + i32.const 1360 + i32.const 1760 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable end - i32.const 1 - i32.add - local.tee $1 - call $~lib/util/number/utoa32_dec_lut - local.get $2 - i32.const 45 - i32.const 43 - local.get $3 - select - i32.store16 - else - local.get $0 - i32.const 4 - i32.add - local.get $0 - i32.const 2 - i32.add + global.get $~lib/memory/__stack_pointer local.get $1 - i32.const 1 - i32.shl - local.tee $2 - i32.const 2 - i32.sub - memory.copy - local.get $0 - i32.const 46 - i32.store16 offset=2 - local.get $0 + i32.store local.get $2 + local.get $1 + i32.load offset=4 i32.add - local.tee $0 - i32.const 101 - i32.store16 offset=2 - local.get $0 + i32.load8_s + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add - local.tee $4 - local.get $3 + global.set $~lib/memory/__stack_pointer + local.get $5 + i32.ne + br_if $folding-inner1 + local.get $2 i32.const 1 - i32.sub - local.tee $0 - i32.const 0 - i32.lt_s - local.tee $2 - if - i32.const 0 - local.get $0 - i32.sub - local.set $0 - end - local.get $0 - local.get $0 - 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 - i32.const 1 - i32.add - local.tee $0 - call $~lib/util/number/utoa32_dec_lut - local.get $4 - i32.const 45 - i32.const 43 - local.get $2 - select - i32.store16 - local.get $0 - local.get $1 i32.add - local.set $1 + local.set $2 + br $for-loop|0 end - local.get $1 - i32.const 2 - i32.add end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return end + 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 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 ) - (func $~lib/util/number/dtoa_core (param $0 i32) (param $1 f64) (result i32) - (local $2 i64) + (func $~lib/typedarray/Int8Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (local $4 i64) - (local $5 i64) - (local $6 i64) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i64) - (local $11 i64) - (local $12 i64) - (local $13 i64) - (local $14 i64) - (local $15 i64) - local.get $1 - f64.const 0 - f64.lt - local.tee $3 - if (result f64) - local.get $0 - i32.const 45 - i32.store16 - local.get $1 - f64.neg - else - local.get $1 - end - i64.reinterpret_f64 - local.tee $2 - i64.const 9218868437227405312 - i64.and - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.tee $7 - i32.const 1 - local.get $7 - select - i32.const 1075 - i32.sub - local.tee $8 - i32.const 1 + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.sub - local.get $2 - i64.const 4503599627370495 - i64.and - local.get $7 + 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 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.ne - i64.extend_i32_u - i64.const 52 - i64.shl - i64.add - local.tee $2 - i64.const 1 - i64.shl - i64.const 1 - i64.add - local.tee $4 - i64.clz - i32.wrap_i64 - local.tee $7 - i32.sub - local.set $9 - local.get $4 - local.get $7 - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_plus - local.get $2 - local.get $2 - i64.const 4503599627370496 - i64.eq - i32.const 1 - i32.add - local.tee $7 - i64.extend_i32_s - i64.shl - i64.const 1 - i64.sub - local.get $8 - local.get $7 - i32.sub - local.get $9 - i32.sub - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_minus - local.get $9 - global.set $~lib/util/number/_exp - i32.const 348 - i32.const -61 - global.get $~lib/util/number/_exp - local.tee $7 - i32.sub - f64.convert_i32_s - f64.const 0.30102999566398114 - f64.mul - f64.const 347 - f64.add - local.tee $1 - i32.trunc_sat_f64_s - local.tee $8 - local.get $8 - f64.convert_i32_s - local.get $1 - f64.ne - i32.add - i32.const 3 - i32.shr_s - i32.const 1 - i32.add - local.tee $8 - i32.const 3 - i32.shl - local.tee $9 - i32.sub - global.set $~lib/util/number/_K - local.get $9 - i32.const 9864 - i32.add - i64.load - global.set $~lib/util/number/_frc_pow - local.get $8 - i32.const 1 - i32.shl - i32.const 10560 - i32.add - i32.load16_s - global.set $~lib/util/number/_exp_pow - local.get $2 - local.get $2 - i64.clz - i64.shl - local.tee $2 - i64.const 4294967295 - i64.and - local.set $5 - local.get $2 - i64.const 32 - i64.shr_u + 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 + call $~lib/typedarray/Int8Array#get:length + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 4 + call $~lib/rt/itcms/__new local.tee $4 - global.get $~lib/util/number/_frc_pow - local.tee $10 - i64.const 4294967295 - i64.and - local.tee $11 - i64.mul - local.get $5 - local.get $11 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.set $12 - global.get $~lib/util/number/_frc_plus - local.tee $2 - i64.const 4294967295 - i64.and - local.set $13 - local.get $11 - local.get $2 - i64.const 32 - i64.shr_u - local.tee $6 - i64.mul - local.get $11 - local.get $13 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.set $14 - global.get $~lib/util/number/_frc_minus - local.tee $15 - i64.const 4294967295 - i64.and - local.set $2 - local.get $11 - local.get $15 - i64.const 32 - i64.shr_u - local.tee $15 - i64.mul - local.get $2 - local.get $11 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.set $11 - local.get $10 - i64.const 32 - i64.shr_u - local.tee $10 - local.get $6 - i64.mul - local.get $14 - i64.const 32 - i64.shr_u - i64.add - local.get $10 - local.get $13 - i64.mul - local.get $14 - i64.const 4294967295 - i64.and - i64.add - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - i64.const 1 - i64.sub - local.set $6 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $3 - i32.const 1 - i32.shl - i32.add + i32.store offset=4 + local.get $4 local.get $0 + i32.load + local.tee $5 + i32.store local.get $4 - local.get $10 - i64.mul - local.get $12 - i64.const 32 - i64.shr_u - i64.add local.get $5 - local.get $10 - i64.mul - local.get $12 - i64.const 4294967295 - i64.and - i64.add - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - local.get $6 - local.get $7 - global.get $~lib/util/number/_exp_pow - i32.add - i32.const -64 - i32.sub - local.get $6 - local.get $10 - local.get $15 - i64.mul - local.get $11 - i64.const 32 - i64.shr_u - i64.add - local.get $2 - local.get $10 - i64.mul - local.get $11 - i64.const 4294967295 - i64.and - i64.add - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - i64.const 1 - i64.add - i64.sub - local.get $3 - call $~lib/util/number/genDigits - local.get $3 - i32.sub - global.get $~lib/util/number/_K - call $~lib/util/number/prettify - local.get $3 - i32.add - ) - (func $~lib/util/number/dtoa_buffered (param $0 i32) (param $1 f64) (result i32) - (local $2 i32) + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $4 + local.get $0 + i32.load offset=4 local.get $1 - f64.const 0 - f64.eq - if - local.get $0 - i32.const 48 - i32.store16 - local.get $0 - i32.const 46 - i32.store16 offset=2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $3 + i32.add + local.tee $0 + i32.const 0 local.get $0 - i32.const 48 - i32.store16 offset=4 - i32.const 3 - return - end - local.get $1 - local.get $1 - f64.sub - f64.const 0 - f64.ne - if + i32.const 0 + i32.gt_s + select + else local.get $1 + local.get $3 local.get $1 - f64.ne - if - local.get $0 - i32.const 78 - i32.store16 - local.get $0 - i32.const 97 - i32.store16 offset=2 - local.get $0 - i32.const 78 - i32.store16 offset=4 - i32.const 3 - return - else - local.get $1 - f64.const 0 - f64.lt - local.tee $2 - if - local.get $0 - i32.const 45 - i32.store16 - local.get $0 - i32.const 2 - i32.add - local.set $0 - end - local.get $0 - i64.const 29555310648492105 - i64.store - local.get $0 - i64.const 34058970405077102 - i64.store offset=8 - local.get $2 - i32.const 8 - i32.add - return - end - unreachable + local.get $3 + i32.lt_s + select + end + local.tee $0 + i32.add + i32.store offset=4 + local.get $4 + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $2 + local.get $3 + i32.add + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + else + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.lt_s + select end + local.tee $1 + local.get $0 local.get $0 local.get $1 - call $~lib/util/number/dtoa_core + i32.lt_s + select + local.get $0 + i32.sub + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 ) - (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (func $~lib/typedarray/Int8Array#reverse (param $0 i32) (result 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.get $1 - local.get $3 - local.get $2 - local.get $1 - i32.sub - i32.const 1 - i32.add - local.tee $5 - local.get $3 - i32.sub - i32.const 1 - i32.and + (local $8 i64) + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - local.get $5 - i32.const 1 - i32.and - local.get $3 - select - i32.add - local.set $7 - loop $for-loop|0 - local.get $2 - local.get $7 - i32.ge_s - if - local.get $0 - local.get $7 - i32.add - local.tee $3 - i32.load8_s offset=1 - local.tee $6 - local.set $5 - local.get $3 - i32.load8_s - local.set $3 - i32.const 2 - global.set $~argumentsLength - local.get $3 - local.get $6 - local.get $4 - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - if - local.get $3 - local.set $5 - local.get $6 - local.set $3 - end - local.get $7 - i32.const 1 - i32.sub - local.set $6 - loop $while-continue|1 - local.get $1 - local.get $6 - i32.le_s - if - block $while-break|1 - local.get $0 - local.get $6 - i32.add - local.tee $8 - i32.load8_s - local.set $9 - i32.const 2 - global.set $~argumentsLength - local.get $9 - local.get $3 - local.get $4 - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - br_if $while-break|1 - local.get $8 - local.get $9 - i32.store8 offset=2 - local.get $6 - i32.const 1 - i32.sub - local.set $6 - br $while-continue|1 - end - end - end - local.get $0 - local.get $6 - i32.add - local.get $3 - i32.store8 offset=2 - loop $while-continue|2 - local.get $1 - local.get $6 - i32.le_s - if - block $while-break|2 - local.get $0 - local.get $6 - i32.add - local.tee $3 - i32.load8_s - local.set $8 - i32.const 2 - global.set $~argumentsLength - local.get $8 - local.get $5 - local.get $4 - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - br_if $while-break|2 - local.get $3 - local.get $8 - i32.store8 offset=1 - local.get $6 - i32.const 1 - i32.sub - local.set $6 - br $while-continue|2 - end - end - end - local.get $0 - local.get $6 - i32.add - local.get $5 - i32.store8 offset=1 - local.get $7 - i32.const 2 - i32.add - local.set $7 - br $for-loop|0 - end - end - ) - (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - local.get $1 - local.get $2 - i32.eq + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s if - local.get $1 - return + 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 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.add - i32.load8_s - local.set $5 - local.get $1 - i32.const 1 - i32.add - local.tee $4 + i32.store local.get $0 - i32.add - i32.load8_s - local.set $6 - i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $6 - local.get $3 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s + i32.load offset=4 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.tee $5 + i32.const 1 + i32.gt_u if + local.get $5 + i32.const 1 + i32.shr_u + local.set $4 + local.get $5 + i32.const 8 + i32.sub + local.set $6 loop $while-continue|0 - local.get $2 + local.get $1 + i32.const 7 + i32.add local.get $4 - i32.gt_s - if (result i32) - local.get $0 - local.get $4 + i32.lt_u + if + local.get $1 + local.get $2 i32.add - local.tee $5 - i32.load8_s offset=1 - local.set $6 - local.get $5 - i32.load8_s - local.set $5 - i32.const 2 - global.set $~argumentsLength + local.tee $7 + i64.load + local.tee $3 + i64.const 8 + i64.shr_u + i64.const 71777214294589695 + i64.and + local.get $3 + i64.const 71777214294589695 + i64.and + i64.const 8 + i64.shl + i64.or + local.set $3 + local.get $7 + local.get $2 local.get $6 - local.get $5 + i32.add + local.get $1 + i32.sub + local.tee $7 + i64.load + local.tee $8 + i64.const 8 + i64.shr_u + i64.const 71777214294589695 + i64.and + local.get $8 + i64.const 71777214294589695 + i64.and + i64.const 8 + i64.shl + i64.or + local.tee $8 + i64.const 16 + i64.shr_u + i64.const 281470681808895 + i64.and + local.get $8 + i64.const 281470681808895 + i64.and + i64.const 16 + i64.shl + i64.or + i64.const 32 + i64.rotr + i64.store + local.get $7 local.get $3 - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $4 - i32.const 1 + i64.const 16 + i64.shr_u + i64.const 281470681808895 + i64.and + local.get $3 + i64.const 281470681808895 + i64.and + i64.const 16 + i64.shl + i64.or + i64.const 32 + i64.rotr + i64.store + local.get $1 + i32.const 8 i32.add - local.set $4 + local.set $1 br $while-continue|0 end end - local.get $4 - local.set $2 + local.get $5 + i32.const 1 + i32.sub + local.set $5 loop $while-continue|1 local.get $1 - local.get $2 - i32.lt_s + local.get $4 + i32.lt_u if - local.get $0 local.get $1 + local.get $2 i32.add - local.tee $3 - i32.load8_s - local.set $5 - local.get $3 - local.get $0 + local.tee $6 + i32.load8_u + local.set $7 + local.get $6 local.get $2 + local.get $5 + local.get $1 + i32.sub i32.add - local.tee $3 - i32.load8_s + local.tee $6 + i32.load8_u + i32.store8 + local.get $6 + local.get $7 i32.store8 local.get $1 i32.const 1 i32.add local.set $1 - local.get $3 - local.get $5 - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 br $while-continue|1 end end - else - loop $while-continue|2 - local.get $2 - local.get $4 - i32.gt_s - if (result i32) - local.get $0 - local.get $4 - i32.add - local.tee $1 - i32.load8_s offset=1 - local.set $5 - local.get $1 - i32.load8_s - local.set $1 - i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $1 - local.get $3 - i32.load - call_indirect (type $0) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $while-continue|2 - end - end end - local.get $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 ) - (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $2 - i32.const 1 + (func $~lib/typedarray/Int32Array#copyWithin@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - local.tee $6 - local.get $3 - i32.add - local.set $7 - local.get $6 - i32.const 1 - i32.add - local.set $2 - loop $for-loop|0 - local.get $1 - local.get $2 - i32.lt_s - if - local.get $2 - i32.const 1 - i32.sub - local.tee $2 - local.get $4 - i32.add - local.get $0 - local.get $2 - i32.add - i32.load8_s - i32.store8 - br $for-loop|0 - end - end - loop $for-loop|1 - local.get $3 - local.get $6 - i32.gt_s - if - local.get $4 - local.get $7 - local.get $6 - i32.sub - i32.add - local.get $0 - local.get $6 - i32.add - i32.load8_s offset=1 - i32.store8 - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|1 - end + 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 - loop $for-loop|2 - local.get $1 - local.get $3 - i32.le_s - if - local.get $4 - local.get $6 - i32.add - i32.load8_s - local.set $8 - local.get $2 - local.get $4 - i32.add - i32.load8_s - local.set $7 - i32.const 2 - global.set $~argumentsLength - local.get $8 - local.get $7 - local.get $5 - i32.load - call_indirect (type $0) - i32.const 0 - i32.lt_s - if - local.get $0 - local.get $1 - i32.add - local.get $8 - i32.store8 - local.get $6 - i32.const 1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 2 i32.sub - local.set $6 - else - local.get $0 - local.get $1 - i32.add - local.get $7 - i32.store8 - local.get $2 - i32.const 1 - i32.add - local.set $2 + br_table $0of1 $1of1 $outOfRange end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|2 + unreachable end + i32.const 2147483647 + local.set $3 end - ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 - i32.extend8_s - local.get $1 - i32.extend8_s - i32.sub - ) - (func $std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) - local.get $1 - i32.extend8_s - local.tee $1 - local.get $0 - i32.extend8_s - local.tee $0 - i32.gt_s + i32.store local.get $0 local.get $1 - i32.gt_s - i32.sub + local.get $2 + local.get $3 + call $~lib/typedarray/Int32Array#copyWithin + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (func $~lib/typedarray/Int32Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + 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 + 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 $0 + call $~lib/typedarray/Int32Array#get:length + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $4 + local.get $0 + i32.load + local.tee $5 + i32.store + local.get $4 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $4 + local.get $0 + i32.load offset=4 local.get $1 - local.get $3 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $3 + i32.add + local.tee $0 + i32.const 0 + local.get $0 + i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $3 + local.get $1 + local.get $3 + i32.lt_s + select + end + local.tee $0 + i32.const 2 + i32.shl + i32.add + i32.store offset=4 + local.get $4 local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $2 + local.get $3 + i32.add + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + else + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.lt_s + select + end + local.tee $1 + local.get $0 + local.get $0 local.get $1 + i32.lt_s + select + local.get $0 i32.sub - i32.const 1 + i32.const 2 + i32.shl + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add - local.tee $5 - local.get $3 - i32.sub - i32.const 1 - i32.and + global.set $~lib/memory/__stack_pointer + local.get $4 + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> (param $0 i32) (param $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 - local.get $5 - i32.const 1 - i32.and + 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#get:length local.get $3 - select - i32.add - local.set $7 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 758 + i32.const 3 + call $~lib/builtins/abort + unreachable + end loop $for-loop|0 local.get $2 - local.get $7 - i32.ge_s + local.get $3 + i32.lt_s if + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $7 - i32.add - local.tee $3 - i32.load8_u offset=1 - local.tee $6 - local.set $5 - local.get $3 - i32.load8_u - local.set $3 - i32.const 2 - global.set $~argumentsLength - local.get $3 - local.get $6 + i32.store + local.get $0 + local.get $2 + call $~lib/typedarray/Uint8Array#__uget + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + local.get $2 + call $~lib/typedarray/Uint8Array#__uget + local.tee $5 local.get $4 - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s + i32.ne if - local.get $3 - local.set $5 - local.get $6 - local.set $3 + i32.const 11552 + i32.const 3 + local.get $2 + f64.convert_i32_s + local.get $4 + f64.convert_i32_u + local.get $5 + f64.convert_i32_u + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.const 1568 + i32.const 764 + i32.const 7 + call $~lib/builtins/abort + unreachable end - local.get $7 + local.get $2 i32.const 1 - i32.sub - local.set $6 - loop $while-continue|1 - local.get $1 - local.get $6 - i32.le_s - if - block $while-break|1 - local.get $0 - local.get $6 - i32.add - local.tee $8 - i32.load8_u - local.set $9 - i32.const 2 - global.set $~argumentsLength - local.get $9 - local.get $3 - local.get $4 - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - br_if $while-break|1 - local.get $8 - local.get $9 - i32.store8 offset=2 - local.get $6 - i32.const 1 - i32.sub - local.set $6 - br $while-continue|1 - end - end - end - local.get $0 - local.get $6 - i32.add - local.get $3 - i32.store8 offset=2 - loop $while-continue|2 - local.get $1 - local.get $6 - i32.le_s - if - block $while-break|2 - local.get $0 - local.get $6 - i32.add - local.tee $3 - i32.load8_u - local.set $8 - i32.const 2 - global.set $~argumentsLength - local.get $8 - local.get $5 - local.get $4 - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - br_if $while-break|2 - local.get $3 - local.get $8 - i32.store8 offset=1 - local.get $6 - i32.const 1 - i32.sub - local.set $6 - br $while-continue|2 - end - end - end - local.get $0 - local.get $6 - i32.add - local.get $5 - i32.store8 offset=1 - local.get $7 - i32.const 2 i32.add - local.set $7 + local.set $2 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/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - local.get $1 - local.get $2 - i32.eq + (func $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i64) + (local $5 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 16320 + i32.lt_s if - local.get $1 - return + 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 + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.add - i32.load8_u - local.set $5 + i32.store local.get $1 - i32.const 1 - i32.add - local.tee $4 - local.get $0 - i32.add - i32.load8_u - local.set $6 - i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $6 + call $~lib/array/Array#get:length local.get $3 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s + i32.ne if - loop $while-continue|0 + i32.const 0 + i32.const 1568 + i32.const 758 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 local.get $2 - local.get $4 - i32.gt_s - if (result i32) - local.get $0 - local.get $4 - i32.add - local.tee $5 - i32.load8_u offset=1 - local.set $6 - local.get $5 - i32.load8_u - local.set $5 - i32.const 2 - global.set $~argumentsLength - local.get $6 - local.get $5 - local.get $3 - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $while-continue|0 - end - end - local.get $4 - local.set $2 - loop $while-continue|1 + call $~lib/typedarray/Uint64Array#__uget + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store local.get $1 local.get $2 - i32.lt_s + call $~lib/typedarray/Uint64Array#__uget + local.tee $5 + local.get $4 + i64.ne if - local.get $0 - local.get $1 - i32.add - local.tee $3 - i32.load8_u - local.set $5 - local.get $3 - local.get $0 - local.get $2 - i32.add - local.tee $3 - i32.load8_u - i32.store8 - local.get $1 - i32.const 1 - i32.add - local.set $1 - local.get $3 - local.get $5 - i32.store8 + i32.const 13984 + i32.const 3 local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|1 - end - end - else - loop $while-continue|2 - local.get $2 - local.get $4 - i32.gt_s - if (result i32) - local.get $0 + f64.convert_i32_s local.get $4 - i32.add - local.tee $1 - i32.load8_u offset=1 - local.set $5 - local.get $1 - i32.load8_u - local.set $1 - i32.const 2 - global.set $~argumentsLength + f64.convert_i64_u local.get $5 - local.get $1 - local.get $3 - i32.load - call_indirect (type $0) - i32.const 0 - i32.ge_s - else + f64.convert_i64_u + f64.const 0 + f64.const 0 + call $~lib/builtins/trace i32.const 0 + i32.const 1568 + i32.const 764 + i32.const 7 + call $~lib/builtins/abort + unreachable end - if - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $while-continue|2 - end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 end end - local.get $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $2 - i32.const 1 + (func $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> (param $0 i32) (param $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 - local.tee $6 + 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#get:length local.get $3 - i32.add - local.set $7 - local.get $6 - i32.const 1 - i32.add - local.set $2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 758 + i32.const 3 + call $~lib/builtins/abort + unreachable + end loop $for-loop|0 - local.get $1 local.get $2 + local.get $3 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 local.get $2 - i32.const 1 - i32.sub - local.tee $2 + call $~lib/typedarray/Uint32Array#__uget + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + local.get $2 + call $~lib/typedarray/Uint32Array#__uget + local.tee $5 local.get $4 - i32.add - local.get $0 + i32.ne + if + i32.const 12960 + i32.const 3 + local.get $2 + f64.convert_i32_s + local.get $4 + f64.convert_i32_u + local.get $5 + f64.convert_i32_u + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.const 1568 + i32.const 764 + i32.const 7 + call $~lib/builtins/abort + unreachable + end local.get $2 + i32.const 1 i32.add - i32.load8_u - i32.store8 + local.set $2 br $for-loop|0 end end - loop $for-loop|1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> (param $0 i32) (param $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 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#get:length + local.get $3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 758 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|0 + local.get $2 local.get $3 - local.get $6 - i32.gt_s + i32.lt_s if - local.get $4 - local.get $7 - local.get $6 - i32.sub - i32.add + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $6 - i32.add - i32.load8_u offset=1 - i32.store8 - local.get $6 + i32.store + local.get $0 + local.get $2 + call $~lib/typedarray/Uint16Array#__uget + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + local.get $2 + call $~lib/typedarray/Uint16Array#__uget + local.tee $5 + local.get $4 + i32.ne + if + i32.const 12288 + i32.const 3 + local.get $2 + f64.convert_i32_s + local.get $4 + f64.convert_i32_u + local.get $5 + f64.convert_i32_u + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.const 1568 + i32.const 764 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $2 i32.const 1 i32.add - local.set $6 - br $for-loop|1 + local.set $2 + br $for-loop|0 end end - loop $for-loop|2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + 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 + call $~lib/typedarray/Int8Array#get:length + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store local.get $1 + call $~lib/array/Array#get:length local.get $3 - i32.le_s + i32.ne if - local.get $4 - local.get $6 - i32.add - i32.load8_u - local.set $8 - local.get $2 - local.get $4 - i32.add - i32.load8_u - local.set $7 - i32.const 2 - global.set $~argumentsLength - local.get $8 - local.get $7 - local.get $5 - i32.load - call_indirect (type $0) i32.const 0 + i32.const 1568 + i32.const 758 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|0 + local.get $2 + local.get $3 i32.lt_s if + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.add - local.get $8 - i32.store8 - local.get $6 - i32.const 1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - local.set $6 - else + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + 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 $2 local.get $0 + i32.load offset=4 + i32.add + i32.load8_s + local.set $4 + 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 $1 + 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 16320 + 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 $1 + i32.store + local.get $2 local.get $1 + i32.load offset=4 i32.add - local.get $7 - i32.store8 + i32.load8_s + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + local.get $5 + i32.ne + if + i32.const 11344 + i32.const 3 + local.get $2 + f64.convert_i32_s + local.get $4 + f64.convert_i32_s + local.get $5 + f64.convert_i32_s + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.const 1568 + i32.const 764 + i32.const 7 + call $~lib/builtins/abort + unreachable + end local.get $2 i32.const 1 i32.add local.set $2 + br $for-loop|0 end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|2 end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return end + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) - local.get $0 - i32.const 255 - i32.and - local.tee $0 - local.get $1 - i32.const 255 - i32.and - local.tee $1 - i32.gt_u - local.get $0 - local.get $1 - i32.lt_u + (func $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i64) + (local $5 i64) + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - ) - (func $std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) - local.get $1 - i32.const 255 - i32.and - local.tee $1 + 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 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 255 - i32.and - local.tee $0 - i32.gt_u + i32.store local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.gt_u - i32.sub - ) - (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $1 - local.get $3 - local.get $2 + i32.store local.get $1 - i32.sub - i32.const 1 - i32.add - local.tee $5 - local.get $3 - i32.sub - i32.const 1 - i32.and - i32.sub - local.get $5 - i32.const 1 - i32.and + call $~lib/array/Array#get:length local.get $3 - select - i32.add - local.set $7 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 758 + i32.const 3 + call $~lib/builtins/abort + unreachable + end loop $for-loop|0 local.get $2 - local.get $7 - i32.ge_s + local.get $3 + i32.lt_s if + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $7 - i32.const 1 - i32.shl - i32.add - local.tee $3 - i32.load16_s offset=2 - local.tee $6 - local.set $5 - local.get $3 - i32.load16_s - local.set $3 - i32.const 2 - global.set $~argumentsLength - local.get $3 - local.get $6 + i32.store + local.get $0 + local.get $2 + call $~lib/typedarray/Int64Array#__uget + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + local.get $2 + call $~lib/typedarray/Int64Array#__uget + local.tee $5 local.get $4 - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s + i64.ne if - local.get $3 - local.set $5 - local.get $6 - local.set $3 - end - local.get $7 - i32.const 1 - i32.sub - local.set $6 - loop $while-continue|1 - local.get $1 - local.get $6 - i32.le_s - if - block $while-break|1 - local.get $0 - local.get $6 - i32.const 1 - i32.shl - i32.add - local.tee $8 - i32.load16_s - local.set $9 - i32.const 2 - global.set $~argumentsLength - local.get $9 - local.get $3 - local.get $4 - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - br_if $while-break|1 - local.get $8 - local.get $9 - i32.store16 offset=4 - local.get $6 - i32.const 1 - i32.sub - local.set $6 - br $while-continue|1 - end - end - end - local.get $0 - local.get $6 - i32.const 1 - i32.shl - i32.add - local.get $3 - i32.store16 offset=4 - loop $while-continue|2 - local.get $1 - local.get $6 - i32.le_s - if - block $while-break|2 - local.get $0 - local.get $6 - i32.const 1 - i32.shl - i32.add - local.tee $3 - i32.load16_s - local.set $8 - i32.const 2 - global.set $~argumentsLength - local.get $8 - local.get $5 - local.get $4 - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - br_if $while-break|2 - local.get $3 - local.get $8 - i32.store16 offset=2 - local.get $6 - i32.const 1 - i32.sub - local.set $6 - br $while-continue|2 - end - end + i32.const 13376 + i32.const 3 + local.get $2 + f64.convert_i32_s + local.get $4 + f64.convert_i64_s + local.get $5 + f64.convert_i64_s + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.const 1568 + i32.const 764 + i32.const 7 + call $~lib/builtins/abort + unreachable end - local.get $0 - local.get $6 + local.get $2 i32.const 1 - i32.shl - i32.add - local.get $5 - i32.store16 offset=2 - local.get $7 - i32.const 2 i32.add - local.set $7 + local.set $2 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/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - local.get $1 - local.get $2 - i32.eq + global.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 - local.get $1 - return + 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 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $5 + i32.store local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $6 - i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $6 + i32.store + local.get $1 + call $~lib/array/Array#get:length local.get $3 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s + i32.ne if - loop $while-continue|0 + i32.const 0 + i32.const 1568 + i32.const 758 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 local.get $2 - local.get $4 - i32.gt_s - if (result i32) - local.get $0 - local.get $4 - i32.const 1 - i32.shl - i32.add - local.tee $5 - i32.load16_s offset=2 - local.set $6 - local.get $5 - i32.load16_s - local.set $5 - i32.const 2 - global.set $~argumentsLength - local.get $6 - local.get $5 - local.get $3 - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $while-continue|0 - end - end - local.get $4 - local.set $2 - loop $while-continue|1 + call $~lib/typedarray/Int32Array#__uget + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store local.get $1 local.get $2 - i32.lt_s + call $~lib/typedarray/Int32Array#__uget + local.tee $5 + local.get $4 + i32.ne if - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.tee $3 - i32.load16_s - local.set $5 - local.get $3 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.tee $3 - i32.load16_s - i32.store16 - local.get $1 - i32.const 1 - i32.add - local.set $1 - local.get $3 - local.get $5 - i32.store16 + i32.const 12592 + i32.const 3 local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|1 - end - end - else - loop $while-continue|2 - local.get $2 - local.get $4 - i32.gt_s - if (result i32) - local.get $0 + f64.convert_i32_s local.get $4 - i32.const 1 - i32.shl - i32.add - local.tee $1 - i32.load16_s offset=2 - local.set $5 - local.get $1 - i32.load16_s - local.set $1 - i32.const 2 - global.set $~argumentsLength + f64.convert_i32_s local.get $5 - local.get $1 - local.get $3 - i32.load - call_indirect (type $0) - i32.const 0 - i32.ge_s - else + f64.convert_i32_s + f64.const 0 + f64.const 0 + call $~lib/builtins/trace i32.const 0 + i32.const 1568 + i32.const 764 + i32.const 7 + call $~lib/builtins/abort + unreachable end - if - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $while-continue|2 - end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 end end - local.get $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $2 - i32.const 1 + (func $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> (param $0 i32) (param $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 - local.tee $6 + 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#get:length local.get $3 - i32.add - local.set $7 - local.get $6 - i32.const 1 - i32.add - local.set $2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 758 + i32.const 3 + call $~lib/builtins/abort + unreachable + end loop $for-loop|0 - local.get $1 local.get $2 + local.get $3 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 local.get $2 - i32.const 1 - i32.sub - local.tee $2 - i32.const 1 - i32.shl - local.tee $8 + call $~lib/typedarray/Int16Array#__uget + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + local.get $2 + call $~lib/typedarray/Int16Array#__uget + local.tee $5 local.get $4 + i32.ne + if + i32.const 12000 + i32.const 3 + local.get $2 + f64.convert_i32_s + local.get $4 + f64.convert_i32_s + local.get $5 + f64.convert_i32_s + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.const 1568 + i32.const 764 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 i32.add - local.get $0 - local.get $8 - i32.add - i32.load16_s - i32.store16 + local.set $2 br $for-loop|0 end end - loop $for-loop|1 - local.get $3 - local.get $6 - i32.gt_s + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/number/utoa64_dec_lut (param $0 i32) (param $1 i64) (param $2 i32) + (local $3 i32) + (local $4 i32) + loop $while-continue|0 + local.get $1 + i64.const 100000000 + i64.ge_u if - local.get $4 - local.get $7 - local.get $6 + local.get $0 + local.get $2 + i32.const 4 i32.sub + local.tee $2 i32.const 1 i32.shl i32.add - local.get $0 - local.get $6 - i32.const 1 + local.get $1 + local.get $1 + i64.const 100000000 + i64.div_u + local.tee $1 + i64.const 100000000 + i64.mul + i64.sub + i32.wrap_i64 + local.tee $3 + i32.const 10000 + i32.rem_u + local.tee $4 + i32.const 100 + i32.div_u + i32.const 2 i32.shl + i32.const 8012 i32.add - i32.load16_s offset=2 - i32.store16 - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|1 - end - end - loop $for-loop|2 - local.get $1 - local.get $3 - i32.le_s - if + i64.load32_u local.get $4 - local.get $6 - i32.const 1 + i32.const 100 + i32.rem_u + i32.const 2 i32.shl + i32.const 8012 i32.add - i32.load16_s - local.set $7 - local.get $4 + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store + local.get $0 local.get $2 + i32.const 4 + i32.sub + local.tee $2 i32.const 1 i32.shl i32.add - i32.load16_s - local.set $8 + local.get $3 + i32.const 10000 + i32.div_u + local.tee $3 + i32.const 100 + i32.div_u i32.const 2 - global.set $~argumentsLength - local.get $7 - local.get $8 - local.get $5 - i32.load - call_indirect (type $0) - i32.const 0 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $7 - i32.store16 - local.get $6 - i32.const 1 - i32.sub - local.set $6 - else - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $8 - i32.store16 - local.get $2 - i32.const 1 - i32.add - local.set $2 - end - local.get $1 - i32.const 1 + i32.shl + i32.const 8012 i32.add - local.set $1 - br $for-loop|2 + 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 - ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) - local.get $0 - i32.extend16_s - local.get $1 - i32.extend16_s - i32.sub - ) - (func $std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) - local.get $1 - i32.extend16_s - local.tee $1 - local.get $0 - i32.extend16_s - local.tee $0 - i32.gt_s local.get $0 local.get $1 - i32.gt_s - i32.sub + i32.wrap_i64 + local.get $2 + call $~lib/util/number/utoa32_dec_lut ) - (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (func $~lib/util/number/dtoa_core (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + (local $3 i64) + (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) + (local $6 i64) + (local $7 i64) (local $8 i32) (local $9 i32) + (local $10 i64) + (local $11 i64) + (local $12 i64) + (local $13 i64) + (local $14 i64) + (local $15 i64) + (local $16 i64) local.get $1 - local.get $3 + f64.const 0 + f64.lt + local.tee $4 + if + local.get $0 + i32.const 45 + i32.store16 + local.get $1 + f64.neg + local.set $1 + end local.get $2 - local.get $1 - i32.sub + if (result i64) + local.get $1 + f32.demote_f64 + i32.reinterpret_f32 + local.tee $8 + i32.const 2139095040 + i32.and + i32.const 23 + i32.shr_u + local.tee $9 + i32.const 1 + local.get $9 + select + i32.const 150 + i32.sub + local.set $5 + local.get $8 + i32.const 8388607 + i32.and + i64.extend_i32_u + local.get $9 + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 23 + i64.shl + i64.add + else + local.get $1 + i64.reinterpret_f64 + local.tee $3 + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.tee $8 + i32.const 1 + local.get $8 + select + i32.const 1075 + i32.sub + local.set $5 + local.get $3 + i64.const 4503599627370495 + i64.and + local.get $8 + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 52 + i64.shl + i64.add + end + local.set $3 + local.get $5 i32.const 1 - i32.add - local.tee $5 - local.get $3 i32.sub - i32.const 1 - i32.and + local.get $3 + i64.const 1 + i64.shl + i64.const 1 + i64.add + local.tee $6 + i64.clz + i32.wrap_i64 + local.tee $8 i32.sub - local.get $5 - i32.const 1 - i32.and + local.set $9 + local.get $6 + local.get $8 + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_plus local.get $3 + local.get $3 + i64.const 8388608 + i64.const 4503599627370496 + local.get $2 select + i64.eq + i32.const 1 i32.add - local.set $7 - loop $for-loop|0 - local.get $2 - local.get $7 - i32.ge_s - if - local.get $0 - local.get $7 - i32.const 1 - i32.shl - i32.add - local.tee $3 - i32.load16_u offset=2 - local.tee $6 - local.set $5 - local.get $3 - i32.load16_u - local.set $3 - i32.const 2 - global.set $~argumentsLength - local.get $3 - local.get $6 - local.get $4 - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - if - local.get $3 - local.set $5 - local.get $6 - local.set $3 - end - local.get $7 - i32.const 1 - i32.sub - local.set $6 - loop $while-continue|1 - local.get $1 - local.get $6 - i32.le_s - if - block $while-break|1 - local.get $0 - local.get $6 - i32.const 1 - i32.shl - i32.add - local.tee $8 - i32.load16_u - local.set $9 - i32.const 2 - global.set $~argumentsLength - local.get $9 - local.get $3 - local.get $4 - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - br_if $while-break|1 - local.get $8 - local.get $9 - i32.store16 offset=4 - local.get $6 - i32.const 1 - i32.sub - local.set $6 - br $while-continue|1 - end - end - end - local.get $0 - local.get $6 - i32.const 1 - i32.shl - i32.add - local.get $3 - i32.store16 offset=4 - loop $while-continue|2 - local.get $1 - local.get $6 - i32.le_s - if - block $while-break|2 - local.get $0 - local.get $6 - i32.const 1 - i32.shl - i32.add - local.tee $3 - i32.load16_u - local.set $8 - i32.const 2 - global.set $~argumentsLength - local.get $8 - local.get $5 - local.get $4 - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - br_if $while-break|2 - local.get $3 - local.get $8 - i32.store16 offset=2 - local.get $6 - i32.const 1 - i32.sub - local.set $6 - br $while-continue|2 - end - end - end - local.get $0 - local.get $6 - i32.const 1 - i32.shl - i32.add - local.get $5 - i32.store16 offset=2 - local.get $7 - i32.const 2 - i32.add - local.set $7 - br $for-loop|0 - end - end - ) - (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - local.get $1 + local.tee $2 + i64.extend_i32_s + i64.shl + i64.const 1 + i64.sub + local.get $5 local.get $2 - i32.eq - if - local.get $1 - return - end - local.get $0 + i32.sub + local.get $9 + i32.sub + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_minus + local.get $9 + global.set $~lib/util/number/_exp + i32.const 348 + i32.const -61 + global.get $~lib/util/number/_exp + i32.sub + f64.convert_i32_s + f64.const 0.30102999566398114 + f64.mul + f64.const 347 + f64.add + local.tee $1 + i32.trunc_sat_f64_s + local.tee $2 + local.get $2 + f64.convert_i32_s local.get $1 + f64.ne + i32.add + i32.const 3 + i32.shr_s i32.const 1 + i32.add + local.tee $2 + i32.const 3 i32.shl + local.tee $5 + i32.sub + global.set $~lib/util/number/_K + local.get $5 + i32.const 9864 i32.add - i32.load16_u - local.set $5 - local.get $0 - local.get $1 + i64.load + global.set $~lib/util/number/_frc_pow + local.get $2 i32.const 1 + i32.shl + i32.const 10560 i32.add - local.tee $4 + i32.load16_s + global.set $~lib/util/number/_exp_pow + local.get $3 + local.get $3 + i64.clz + i64.shl + local.tee $3 + i64.const 4294967295 + i64.and + local.set $10 + local.get $3 + i64.const 32 + i64.shr_u + local.tee $6 + global.get $~lib/util/number/_frc_pow + local.tee $11 + i64.const 4294967295 + i64.and + local.tee $12 + i64.mul + local.get $10 + local.get $12 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.set $13 + global.get $~lib/util/number/_frc_plus + local.tee $3 + i64.const 4294967295 + i64.and + local.set $14 + local.get $3 + i64.const 32 + i64.shr_u + local.tee $7 + local.get $12 + i64.mul + local.get $12 + local.get $14 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.set $15 + global.get $~lib/util/number/_frc_minus + local.tee $16 + i64.const 4294967295 + i64.and + local.set $3 + local.get $12 + local.get $16 + i64.const 32 + i64.shr_u + local.tee $16 + i64.mul + local.get $3 + local.get $12 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.set $12 + local.get $7 + local.get $11 + i64.const 32 + i64.shr_u + local.tee $7 + i64.mul + local.get $15 + i64.const 32 + i64.shr_u + i64.add + local.get $7 + local.get $14 + i64.mul + local.get $15 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.sub + local.set $11 + local.get $0 + local.get $4 i32.const 1 i32.shl i32.add - i32.load16_u - local.set $6 - i32.const 2 - global.set $~argumentsLength - local.get $5 + local.get $0 local.get $6 + local.get $7 + i64.mul + local.get $13 + i64.const 32 + i64.shr_u + i64.add + local.get $7 + local.get $10 + i64.mul + local.get $13 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + local.get $11 + global.get $~lib/util/number/_exp_pow + global.get $~lib/util/number/_exp + i32.add + i32.const -64 + i32.sub + local.get $11 + local.get $7 + local.get $16 + i64.mul + local.get $12 + i64.const 32 + i64.shr_u + i64.add local.get $3 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s + local.get $7 + i64.mul + local.get $12 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.add + i64.sub + local.get $4 + call $~lib/util/number/genDigits + local.get $4 + i32.sub + global.get $~lib/util/number/_K + call $~lib/util/number/prettify + local.get $4 + i32.add + ) + (func $~lib/typedarray/Uint8Array#sort (param $0 i32) (param $1 i32) (result 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 16320 + i32.lt_s if - loop $while-continue|0 - local.get $2 - local.get $4 - i32.gt_s - if (result i32) - local.get $0 - local.get $4 - i32.const 1 - i32.shl + i32.const 49120 + i32.const 49168 + 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 offset=4 + local.get $0 + i32.load offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/util/sort/SORT + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/typedarray/Uint8Array#some (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 16 + 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 + 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 $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.set $4 + block $"~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0" (result i32) + loop $for-loop|0 + local.get $2 + local.get $4 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $2 + local.get $3 i32.add - local.tee $5 - i32.load16_u offset=2 - local.set $6 - local.get $5 - i32.load16_u + i32.load8_u local.set $5 - i32.const 2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + i32.const 3 global.set $~argumentsLength - local.get $6 + i32.const 1 local.get $5 - local.get $3 + local.get $2 + local.get $0 + local.get $1 i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $4 + call_indirect (type $1) + br_if $"~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0" + drop + local.get $2 i32.const 1 i32.add - local.set $4 - br $while-continue|0 + local.set $2 + br $for-loop|0 end end - local.get $4 - local.set $2 - loop $while-continue|1 - local.get $1 + i32.const 0 + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint8Array#findLastIndex (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 16 + 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 + 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 $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + i32.const 1 + i32.sub + local.set $2 + block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0" + loop $for-loop|0 local.get $2 - i32.lt_s + i32.const 0 + i32.ge_s if - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.const 1 - i32.shl - i32.add - local.tee $3 - i32.load16_u - local.set $5 + i32.store offset=12 + local.get $2 local.get $3 + i32.add + i32.load8_u + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength local.get $2 - i32.const 1 - i32.shl - i32.add - local.tee $3 - i32.load16_u - i32.store16 + local.get $0 local.get $1 - i32.const 1 - i32.add - local.set $1 - local.get $3 - local.get $5 - i32.store16 + i32.load + call_indirect (type $1) + br_if $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0" local.get $2 i32.const 1 i32.sub local.set $2 - br $while-continue|1 + br $for-loop|0 end end - else - loop $while-continue|2 + i32.const -1 + local.set $2 + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/typedarray/Uint8Array#findIndex (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 16 + 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 + 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 $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.set $4 + block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0" + loop $for-loop|0 local.get $2 local.get $4 - i32.gt_s - if (result i32) - local.get $0 - local.get $4 - i32.const 1 - i32.shl - i32.add - local.tee $1 - i32.load16_u offset=2 - local.set $5 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer local.get $1 - i32.load16_u - local.set $1 - i32.const 2 + i32.store offset=12 + local.get $2 + local.get $3 + i32.add + i32.load8_u + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + i32.const 3 global.set $~argumentsLength - local.get $5 + local.get $2 + local.get $0 local.get $1 - local.get $3 i32.load - call_indirect (type $0) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if - local.get $4 + call_indirect (type $1) + br_if $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0" + local.get $2 i32.const 1 i32.add - local.set $4 - br $while-continue|2 + local.set $2 + br $for-loop|0 end end + i32.const -1 + local.set $2 end - local.get $4 - ) - (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer local.get $2 - i32.const 1 + ) + (func $~lib/typedarray/Uint8Array#every (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 16 i32.sub - local.tee $6 - local.get $3 - i32.add - local.set $7 - local.get $6 - i32.const 1 - i32.add - local.set $2 - loop $for-loop|0 - local.get $1 - local.get $2 - i32.lt_s - if - local.get $2 - i32.const 1 - i32.sub - local.tee $2 - i32.const 1 - i32.shl - local.tee $8 - local.get $4 - i32.add - local.get $0 - local.get $8 - i32.add - i32.load16_u - i32.store16 - br $for-loop|0 - end - end - loop $for-loop|1 - local.get $3 - local.get $6 - i32.gt_s - if - local.get $4 - local.get $7 - local.get $6 - i32.sub - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $6 - i32.const 1 - i32.shl - i32.add - i32.load16_u offset=2 - i32.store16 - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|1 - end + 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 - loop $for-loop|2 - local.get $1 - local.get $3 - i32.le_s - if - local.get $4 - local.get $6 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $7 - local.get $4 + 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 $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.set $4 + block $"~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0" (result i32) + loop $for-loop|0 local.get $2 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $8 - i32.const 2 - global.set $~argumentsLength - local.get $7 - local.get $8 - local.get $5 - i32.load - call_indirect (type $0) - i32.const 0 + local.get $4 i32.lt_s if - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.const 1 - i32.shl + i32.store offset=12 + local.get $2 + local.get $3 i32.add - local.get $7 - i32.store16 - local.get $6 - i32.const 1 - i32.sub - local.set $6 - else + i32.load8_u + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + local.get $5 + local.get $2 local.get $0 local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $8 - i32.store16 + i32.load + call_indirect (type $1) + i32.eqz + br_if $"~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0" + drop local.get $2 i32.const 1 i32.add local.set $2 + br $for-loop|0 end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|2 end + i32.const 1 end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) - local.get $0 - i32.const 65535 - i32.and - local.tee $0 - local.get $1 - i32.const 65535 - i32.and - local.tee $1 - i32.gt_u - local.get $0 - local.get $1 - i32.lt_u + (func $~lib/typedarray/Uint64Array#lastIndexOf@varargs (param $0 i32) (param $1 i64) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - ) - (func $std/typedarray/testArraySort<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) - local.get $1 - i32.const 65535 - i32.and - local.tee $1 + 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 + 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 $0 + i32.store + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.set $2 + end + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 65535 - i32.and - local.tee $0 - i32.gt_u + i32.store local.get $0 local.get $1 - i32.gt_u - i32.sub + local.get $2 + call $~lib/typedarray/Uint64Array#lastIndexOf + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) + (func $~lib/typedarray/Uint32Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + 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 + 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 $0 + i32.store + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.set $2 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 local.get $1 - local.get $3 local.get $2 + call $~lib/typedarray/Uint32Array#lastIndexOf + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint16Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + 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 + 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 $0 + i32.store + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.set $2 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 local.get $1 + local.get $2 + call $~lib/typedarray/Uint16Array#lastIndexOf + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int8Array#fill (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - i32.const 1 + 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 + 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 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.tee $0 + local.get $2 i32.add - local.tee $5 + local.get $2 + local.get $0 + local.get $0 + local.get $2 + i32.gt_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.tee $2 + local.get $0 local.get $3 - i32.sub - i32.const 1 - i32.and - i32.sub - local.get $5 - i32.const 1 - i32.and + i32.add + local.get $3 + local.get $0 + local.get $0 + local.get $3 + i32.gt_s + select local.get $3 + i32.const 0 + i32.lt_s select - i32.add - local.set $7 - loop $for-loop|0 + local.tee $0 + i32.lt_s + if local.get $2 - local.get $7 - i32.ge_s - if - local.get $0 - local.get $7 - i32.const 2 - i32.shl - i32.add - local.tee $3 - i32.load offset=4 - local.tee $6 - local.set $5 - local.get $3 - i32.load - local.set $3 - i32.const 2 - global.set $~argumentsLength - local.get $3 - local.get $6 - local.get $4 - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - if - local.get $3 - local.set $5 - local.get $6 - local.set $3 - end - local.get $7 - i32.const 1 - i32.sub - local.set $6 - loop $while-continue|1 - local.get $1 - local.get $6 - i32.le_s - if - block $while-break|1 - local.get $0 - local.get $6 - i32.const 2 - i32.shl - i32.add - local.tee $8 - i32.load - local.set $9 - i32.const 2 - global.set $~argumentsLength - local.get $9 - local.get $3 - local.get $4 - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - br_if $while-break|1 - local.get $8 - local.get $9 - i32.store offset=8 - local.get $6 - i32.const 1 - i32.sub - local.set $6 - br $while-continue|1 - end - end - end - local.get $0 - local.get $6 - i32.const 2 - i32.shl - i32.add - local.get $3 - i32.store offset=8 - loop $while-continue|2 - local.get $1 - local.get $6 - i32.le_s - if - block $while-break|2 - local.get $0 - local.get $6 - i32.const 2 - i32.shl - i32.add - local.tee $3 - i32.load - local.set $8 - i32.const 2 - global.set $~argumentsLength - local.get $8 - local.get $5 - local.get $4 - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - br_if $while-break|2 - local.get $3 - local.get $8 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.sub - local.set $6 - br $while-continue|2 - end - end - end - local.get $0 - local.get $6 - i32.const 2 - i32.shl - i32.add - local.get $5 - i32.store offset=4 - local.get $7 - i32.const 2 - i32.add - local.set $7 - br $for-loop|0 - end + local.get $4 + i32.add + local.get $1 + local.get $0 + local.get $2 + i32.sub + memory.fill end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (local $4 i32) + (func $~lib/typedarray/Int64Array#reverse (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i64) (local $5 i32) (local $6 i32) - local.get $1 - local.get $2 - i32.eq + global.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 - local.get $1 - return + 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 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 + i32.store local.get $0 - local.get $1 + i32.load offset=4 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.tee $5 i32.const 1 - i32.add - local.tee $4 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $6 - i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $6 - local.get $3 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s + i32.gt_u if + local.get $5 + i32.const 1 + i32.shr_u + local.set $3 + local.get $5 + i32.const 1 + i32.sub + local.set $5 loop $while-continue|0 - local.get $2 - local.get $4 - i32.gt_s - if (result i32) - local.get $0 - local.get $4 - i32.const 2 - i32.shl - i32.add - local.tee $5 - i32.load offset=4 - local.set $6 - local.get $5 - i32.load - local.set $5 - i32.const 2 - global.set $~argumentsLength - local.get $6 - local.get $5 - local.get $3 - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $while-continue|0 - end - end - local.get $4 - local.set $2 - loop $while-continue|1 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.lt_u if - local.get $0 + local.get $2 local.get $1 - i32.const 2 + i32.const 3 i32.shl i32.add - local.tee $3 - i32.load - local.set $5 - local.get $3 - local.get $0 + local.tee $6 + i64.load + local.set $4 + local.get $6 local.get $2 - i32.const 2 + local.get $5 + local.get $1 + i32.sub + i32.const 3 i32.shl i32.add - local.tee $3 - i32.load - i32.store + local.tee $6 + i64.load + i64.store + local.get $6 + local.get $4 + i64.store local.get $1 i32.const 1 i32.add local.set $1 - local.get $3 - local.get $5 - i32.store - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|1 + br $while-continue|0 end end - else - loop $while-continue|2 - local.get $2 - local.get $4 - i32.gt_s - if (result i32) - local.get $0 - local.get $4 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - local.set $5 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/typedarray/Int64Array#lastIndexOf@varargs (param $0 i32) (param $1 i64) (result 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 + 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 $0 + i32.store + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.set $2 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Int64Array#lastIndexOf + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int32Array#reverse (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 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 + 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 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.tee $4 + i32.const 1 + i32.gt_u + if + local.get $4 + i32.const 1 + i32.shr_u + local.set $3 + local.get $4 + i32.const 1 + i32.sub + local.set $5 + loop $while-continue|0 + local.get $1 + local.get $3 + i32.lt_u + if + local.get $2 local.get $1 - i32.load - local.set $1 i32.const 2 - global.set $~argumentsLength + i32.shl + i32.add + local.tee $6 + i32.load + local.set $4 + local.get $6 + local.get $2 local.get $5 local.get $1 - local.get $3 + i32.sub + i32.const 2 + i32.shl + i32.add + local.tee $6 i32.load - call_indirect (type $0) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if + i32.store + local.get $6 local.get $4 + i32.store + local.get $1 i32.const 1 i32.add - local.set $4 - br $while-continue|2 + local.set $1 + br $while-continue|0 end end end - local.get $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 ) - (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $2 - i32.const 1 + (func $~lib/typedarray/Int32Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - local.tee $6 - local.get $3 + 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 + 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 $0 + i32.store + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.set $2 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Int32Array#lastIndexOf + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.set $7 - local.get $6 - i32.const 1 + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int32Array#fill (param $0 i32) (param $1 i32) (param $2 i32) (param $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 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 + 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 + local.get $2 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.tee $0 i32.add + local.get $2 + local.get $0 + local.get $0 + local.get $2 + i32.gt_s + select + local.get $2 + i32.const 0 + i32.lt_s + select local.set $2 - loop $for-loop|0 + local.get $0 + local.get $3 + i32.add + local.get $3 + local.get $0 + local.get $0 + local.get $3 + i32.gt_s + select + local.get $3 + i32.const 0 + i32.lt_s + select + local.set $0 + block $__inlined_func$~lib/util/bytes/FILL$202 local.get $1 - local.get $2 - i32.lt_s - if - local.get $2 - i32.const 1 - i32.sub - local.tee $2 - i32.const 2 - i32.shl - local.tee $8 - local.get $4 - i32.add - local.get $0 - local.get $8 - i32.add - i32.load - i32.store - br $for-loop|0 - end - end - loop $for-loop|1 - local.get $3 - local.get $6 - i32.gt_s - if - local.get $4 - local.get $7 - local.get $6 - i32.sub - i32.const 2 - i32.shl - i32.add - local.get $0 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - i32.store - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|1 - end - end - loop $for-loop|2 + i32.eqz local.get $1 - local.get $3 - i32.le_s + i32.const -1 + i32.eq + i32.or if - local.get $4 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $7 - local.get $4 + local.get $0 local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $8 - i32.const 2 - global.set $~argumentsLength - local.get $7 - local.get $8 - local.get $5 - i32.load - call_indirect (type $0) - i32.const 0 - i32.lt_s + i32.gt_s if - local.get $0 - local.get $1 + local.get $4 + local.get $2 i32.const 2 i32.shl i32.add - local.get $7 - i32.store - local.get $6 - i32.const 1 - i32.sub - local.set $6 - else - local.get $0 local.get $1 + local.get $0 + local.get $2 + i32.sub + i32.const 2 + i32.shl + memory.fill + end + br $__inlined_func$~lib/util/bytes/FILL$202 + end + loop $for-loop|0 + local.get $0 + local.get $2 + i32.gt_s + if + local.get $4 + local.get $2 i32.const 2 i32.shl i32.add - local.get $8 + local.get $1 i32.store local.get $2 i32.const 1 i32.add local.set $2 + br $for-loop|0 end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|2 end end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) - local.get $0 - local.get $1 - i32.sub - ) - (func $std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) - local.get $0 - local.get $1 - i32.lt_s - local.get $0 - local.get $1 - i32.gt_s - i32.sub - ) - (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (func $~lib/typedarray/Int16Array#reverse (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $1 - local.get $3 - local.get $2 - local.get $1 - i32.sub - i32.const 1 - i32.add - local.tee $5 - local.get $3 - i32.sub - i32.const 1 - i32.and + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - local.get $5 + 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 + 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 + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.tee $4 i32.const 1 - i32.and - local.get $3 - select - i32.add - local.set $7 - loop $for-loop|0 - local.get $2 - local.get $7 - i32.ge_s - if - local.get $0 - local.get $7 - i32.const 2 - i32.shl + i32.gt_u + if + local.get $4 + i32.const 1 + i32.shr_u + local.set $3 + local.get $4 + i32.const 2 + i32.sub + local.set $5 + loop $while-continue|0 + local.get $1 + i32.const 1 i32.add - local.tee $3 - i32.load offset=4 - local.tee $6 - local.set $5 - local.get $3 - i32.load - local.set $3 - i32.const 2 - global.set $~argumentsLength local.get $3 - local.get $6 - local.get $4 - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s + i32.lt_u if - local.get $3 - local.set $5 - local.get $6 - local.set $3 - end - local.get $7 - i32.const 1 - i32.sub - local.set $6 - loop $while-continue|1 + local.get $2 + local.get $5 local.get $1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.tee $6 + i32.load + i32.const 16 + i32.rotr + local.set $7 local.get $6 - i32.le_s - if - block $while-break|1 - local.get $0 - local.get $6 - i32.const 2 - i32.shl - i32.add - local.tee $8 - i32.load - local.set $9 - i32.const 2 - global.set $~argumentsLength - local.get $9 - local.get $3 - local.get $4 - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - br_if $while-break|1 - local.get $8 - local.get $9 - i32.store offset=8 - local.get $6 - i32.const 1 - i32.sub - local.set $6 - br $while-continue|1 - end - end - end - local.get $0 - local.get $6 - i32.const 2 - i32.shl - i32.add - local.get $3 - i32.store offset=8 - loop $while-continue|2 + local.get $2 local.get $1 - local.get $6 - i32.le_s - if - block $while-break|2 - local.get $0 - local.get $6 - i32.const 2 - i32.shl - i32.add - local.tee $3 - i32.load - local.set $8 - i32.const 2 - global.set $~argumentsLength - local.get $8 - local.get $5 - local.get $4 - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - br_if $while-break|2 - local.get $3 - local.get $8 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.sub - local.set $6 - br $while-continue|2 - end - end - end - local.get $0 - local.get $6 - i32.const 2 - i32.shl - i32.add - local.get $5 - i32.store offset=4 - local.get $7 - i32.const 2 - i32.add - local.set $7 - br $for-loop|0 - end - end - ) - (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - local.get $1 - local.get $2 - i32.eq - if - local.get $1 - return - end - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 - local.get $0 - local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $6 - i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $6 - local.get $3 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - if - loop $while-continue|0 - local.get $2 - local.get $4 - i32.gt_s - if (result i32) - local.get $0 - local.get $4 - i32.const 2 + i32.const 1 i32.shl i32.add - local.tee $5 - i32.load offset=4 - local.set $6 - local.get $5 + local.tee $6 i32.load - local.set $5 - i32.const 2 - global.set $~argumentsLength + i32.const 16 + i32.rotr + i32.store local.get $6 - local.get $5 - local.get $3 - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $4 - i32.const 1 + local.get $7 + i32.store + local.get $1 + i32.const 2 i32.add - local.set $4 + local.set $1 br $while-continue|0 end end local.get $4 - local.set $2 + i32.const 1 + i32.sub + local.set $4 loop $while-continue|1 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.lt_u if - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.tee $3 - i32.load - local.set $5 - local.get $3 - local.get $0 local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $3 - i32.load - i32.store local.get $1 i32.const 1 + i32.shl i32.add - local.set $1 - local.get $3 + local.tee $5 + i32.load16_u + local.set $6 local.get $5 - i32.store local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|1 - end - end - else - loop $while-continue|2 - local.get $2 - local.get $4 - i32.gt_s - if (result i32) - local.get $0 local.get $4 - i32.const 2 + local.get $1 + i32.sub + i32.const 1 i32.shl i32.add - local.tee $1 - i32.load offset=4 - local.set $5 - local.get $1 - i32.load - local.set $1 - i32.const 2 - global.set $~argumentsLength + local.tee $5 + i32.load16_u + i32.store16 local.get $5 + local.get $6 + i32.store16 local.get $1 - local.get $3 - i32.load - call_indirect (type $0) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if - local.get $4 i32.const 1 i32.add - local.set $4 - br $while-continue|2 + local.set $1 + br $while-continue|1 end end end - local.get $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 ) - (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $2 - i32.const 1 + (func $~lib/typedarray/Float64Array#lastIndexOf@varargs (param $0 i32) (param $1 f64) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - local.tee $6 - local.get $3 - i32.add - local.set $7 - local.get $6 - i32.const 1 - i32.add - local.set $2 - loop $for-loop|0 - local.get $1 - local.get $2 - i32.lt_s - if - local.get $2 - i32.const 1 - i32.sub - local.tee $2 - i32.const 2 - i32.shl - local.tee $8 - local.get $4 - i32.add - local.get $0 - local.get $8 - i32.add - i32.load - i32.store - br $for-loop|0 - end - end - loop $for-loop|1 - local.get $3 - local.get $6 - i32.gt_s - if - local.get $4 - local.get $7 - local.get $6 - i32.sub - i32.const 2 - i32.shl - i32.add - local.get $0 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - i32.store - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|1 - end + 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 - loop $for-loop|2 - local.get $1 - local.get $3 - i32.le_s - if - local.get $4 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $7 - local.get $4 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $8 - i32.const 2 - global.set $~argumentsLength - local.get $7 - local.get $8 - local.get $5 - i32.load - call_indirect (type $0) - i32.const 0 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $7 - i32.store - local.get $6 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength i32.const 1 i32.sub - local.set $6 - else - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $8 - i32.store - local.get $2 - i32.const 1 - i32.add - local.set $2 + br_table $0of1 $1of1 $outOfRange end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|2 + unreachable end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.set $2 end - ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.gt_u + i32.store local.get $0 local.get $1 - i32.lt_u - i32.sub + local.get $2 + call $~lib/typedarray/Float64Array#lastIndexOf + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float32Array#lastIndexOf@varargs (param $0 i32) (param $1 f32) (result 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 + 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 $0 + i32.store + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.set $2 + end + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.lt_u + i32.store local.get $0 local.get $1 - i32.gt_u - i32.sub - ) - (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) - (local $5 i64) - (local $6 i64) - (local $7 i32) - (local $8 i64) - (local $9 i32) - local.get $1 - local.get $3 local.get $2 - local.get $1 - i32.sub - i32.const 1 - i32.add - local.tee $7 - local.get $3 - i32.sub - i32.const 1 - i32.and - i32.sub - local.get $7 - i32.const 1 - i32.and - local.get $3 - select + call $~lib/typedarray/Float32Array#lastIndexOf + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.set $7 - loop $for-loop|0 - local.get $2 - local.get $7 - i32.ge_s - if - local.get $0 - local.get $7 - i32.const 3 - i32.shl - i32.add - local.tee $3 - i64.load offset=8 - local.tee $8 - local.set $6 - local.get $3 - i64.load - local.set $5 - i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $8 - local.get $4 - i32.load - call_indirect (type $7) - i32.const 0 - i32.le_s - if - local.get $5 - local.set $6 - local.get $8 - local.set $5 - end - local.get $7 - i32.const 1 - i32.sub - local.set $3 - loop $while-continue|1 - local.get $1 - local.get $3 - i32.le_s + global.set $~lib/memory/__stack_pointer + ) + (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 - block $while-break|1 + 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 $3 - i32.const 3 - i32.shl - i32.add - local.tee $9 - i64.load - local.set $8 - i32.const 2 - global.set $~argumentsLength - local.get $8 - local.get $5 - local.get $4 - i32.load - call_indirect (type $7) + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 i32.const 0 - i32.le_s - br_if $while-break|1 - local.get $9 - local.get $8 - i64.store offset=16 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - br $while-continue|1 + 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 - local.get $0 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.get $5 - i64.store offset=16 - loop $while-continue|2 - local.get $1 - local.get $3 - i32.le_s - if - block $while-break|2 + 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 49088 + i32.lt_u + if local.get $0 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.tee $9 - i64.load - local.set $5 - i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $6 - local.get $4 i32.load - call_indirect (type $7) - i32.const 0 - i32.le_s - br_if $while-break|2 - local.get $9 - local.get $5 - i64.store offset=8 - local.get $3 - i32.const 1 - i32.sub - local.set $3 + 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 - local.get $3 + 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.shl - i32.add - local.get $6 - i64.store offset=8 - local.get $7 - i32.const 2 - i32.add - local.set $7 - br $for-loop|0 + 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 49088 + 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/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (local $4 i32) - (local $5 i64) - (local $6 i32) - (local $7 i64) - local.get $1 - local.get $2 - i32.eq + (func $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 f64) + (local $5 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 16320 + i32.lt_s if - local.get $1 - return + 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 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $5 + i32.store local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $7 - i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $7 + i32.store + local.get $1 + call $~lib/array/Array#get:length local.get $3 - i32.load - call_indirect (type $7) - i32.const 0 - i32.gt_s + i32.ne if - loop $while-continue|0 + i32.const 0 + i32.const 1568 + i32.const 758 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 local.get $2 - local.get $4 - i32.gt_s - if (result i32) - local.get $0 - local.get $4 - i32.const 3 - i32.shl - i32.add - local.tee $6 - i64.load offset=8 - local.set $5 - local.get $6 - i64.load - local.set $7 - i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $7 - local.get $3 - i32.load - call_indirect (type $7) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $while-continue|0 - end - end - local.get $4 - local.set $2 - loop $while-continue|1 + call $~lib/typedarray/Float64Array#__uget + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store local.get $1 local.get $2 - i32.lt_s + call $~lib/typedarray/Float64Array#__uget + local.tee $5 + local.get $4 + f64.ne if - local.get $0 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.tee $3 - i64.load - local.set $5 - local.get $3 - local.get $0 - local.get $2 + i32.const 14896 i32.const 3 - i32.shl - i32.add - local.tee $3 - i64.load - i64.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - local.get $3 - local.get $5 - i64.store local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|1 - end - end - else - loop $while-continue|2 - local.get $2 - local.get $4 - i32.gt_s - if (result i32) - local.get $0 + f64.convert_i32_s local.get $4 - i32.const 3 - i32.shl - i32.add - local.tee $1 - i64.load offset=8 - local.set $5 - local.get $1 - i64.load - local.set $7 - i32.const 2 - global.set $~argumentsLength local.get $5 - local.get $7 - local.get $3 - i32.load - call_indirect (type $7) - i32.const 0 - i32.ge_s - else + f64.const 0 + f64.const 0 + call $~lib/builtins/trace i32.const 0 + i32.const 1568 + i32.const 764 + i32.const 7 + call $~lib/builtins/abort + unreachable end - if - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $while-continue|2 - end - end - end - local.get $4 - ) - (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) - (local $6 i32) - (local $7 i64) - (local $8 i64) - (local $9 i32) - (local $10 i32) - local.get $2 - i32.const 1 - i32.sub - local.tee $6 - local.get $3 - i32.add - local.set $9 - local.get $6 - i32.const 1 - i32.add - local.set $2 - loop $for-loop|0 - local.get $1 - local.get $2 - i32.lt_s - if local.get $2 i32.const 1 - i32.sub - local.tee $2 - i32.const 3 - i32.shl - local.tee $10 - local.get $4 - i32.add - local.get $0 - local.get $10 i32.add - i64.load - i64.store + local.set $2 br $for-loop|0 end end - loop $for-loop|1 - local.get $3 - local.get $6 - i32.gt_s - if - local.get $4 - local.get $9 - local.get $6 - i32.sub - i32.const 3 - i32.shl - i32.add - local.get $0 - local.get $6 - i32.const 3 - i32.shl - i32.add - i64.load offset=8 - i64.store - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|1 - end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 f32) + (local $5 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 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - loop $for-loop|2 - local.get $1 + 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 + call $~lib/typedarray/Int32Array#get:length + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#get:length + local.get $3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 758 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|0 + local.get $2 local.get $3 - i32.le_s + i32.lt_s if - local.get $4 - local.get $6 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $7 - local.get $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 local.get $2 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $8 - i32.const 2 - global.set $~argumentsLength - local.get $7 - local.get $8 - local.get $5 - i32.load - call_indirect (type $7) - i32.const 0 - i32.lt_s + call $~lib/typedarray/Float32Array#__uget + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + local.get $2 + call $~lib/typedarray/Float32Array#__uget + local.tee $5 + local.get $4 + f32.ne if - local.get $0 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $7 - i64.store - local.get $6 - i32.const 1 - i32.sub - local.set $6 - else - local.get $0 - local.get $1 + i32.const 14544 i32.const 3 - i32.shl - i32.add - local.get $8 - i64.store local.get $2 - i32.const 1 - i32.add - local.set $2 + f64.convert_i32_s + local.get $4 + f64.promote_f32 + local.get $5 + f64.promote_f32 + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.const 1568 + i32.const 764 + i32.const 7 + call $~lib/builtins/abort + unreachable end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 - br $for-loop|2 + local.set $2 + 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/util/sort/COMPARATOR~anonymous|0 (param $0 i64) (param $1 i64) (result i32) + (func $"std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0" (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i32) (result i64) local.get $0 local.get $1 - i64.gt_s + i64.add + ) + (func $"std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - local.get $1 - i64.lt_s - i32.sub + i32.const 65535 + i32.and + i32.const 2 + i32.eq ) - (func $std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i64) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0" (param $0 f64) (param $1 i32) (param $2 i32) (result i32) local.get $0 - local.get $1 - i64.lt_s + f64.const 2 + f64.eq + ) + (func $"std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0" (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + f32.const 2 + f32.eq + ) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|1" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 255 + i32.and + i32.const 4 + i32.eq + ) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1" (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i64.const 4 + i64.eq + ) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 + i32.const 4 + i32.eq + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) local.get $1 - i64.gt_s + local.get $3 + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.tee $5 + local.get $3 + i32.sub + i32.const 1 + i32.and i32.sub + local.get $5 + i32.const 1 + i32.and + local.get $3 + select + i32.add + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $7 + i32.ge_s + if + local.get $0 + local.get $7 + i32.add + local.tee $3 + i32.load8_u offset=1 + local.tee $6 + local.set $5 + local.get $3 + i32.load8_u + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $6 + local.get $4 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + if + local.get $3 + local.set $5 + local.get $6 + local.set $3 + end + local.get $7 + i32.const 1 + i32.sub + local.set $6 + loop $while-continue|1 + local.get $1 + local.get $6 + i32.le_s + if + block $while-break|1 + local.get $0 + local.get $6 + i32.add + local.tee $8 + i32.load8_u + local.set $9 + i32.const 2 + global.set $~argumentsLength + local.get $9 + local.get $3 + local.get $4 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $8 + local.get $9 + i32.store8 offset=2 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|1 + end + end + end + local.get $0 + local.get $6 + i32.add + local.get $3 + i32.store8 offset=2 + loop $while-continue|2 + local.get $1 + local.get $6 + i32.le_s + if + block $while-break|2 + local.get $0 + local.get $6 + i32.add + local.tee $3 + i32.load8_u + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $5 + local.get $4 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $3 + local.get $8 + i32.store8 offset=1 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|2 + end + end + end + local.get $0 + local.get $6 + i32.add + local.get $5 + i32.store8 offset=1 + local.get $7 + i32.const 2 + i32.add + local.set $7 + br $for-loop|0 + end + end ) (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (local $5 i64) @@ -8566,308 +9295,463 @@ end end ) - (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (local $4 i32) - (local $5 i64) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) (local $6 i32) - (local $7 i64) + (local $7 i32) + (local $8 i32) + (local $9 i32) local.get $1 + local.get $3 local.get $2 - i32.eq - if - local.get $1 - return - end - local.get $0 - local.get $1 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $5 - local.get $0 local.get $1 + i32.sub i32.const 1 i32.add - local.tee $4 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $7 - i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $7 + local.tee $5 local.get $3 - i32.load - call_indirect (type $7) - i32.const 0 - i32.gt_s - if - loop $while-continue|0 - local.get $2 - local.get $4 - i32.gt_s - if (result i32) - local.get $0 - local.get $4 - i32.const 3 - i32.shl - i32.add - local.tee $6 - i64.load offset=8 - local.set $5 - local.get $6 - i64.load - local.set $7 - i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $7 - local.get $3 - i32.load - call_indirect (type $7) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $while-continue|0 - end - end - local.get $4 - local.set $2 - loop $while-continue|1 - local.get $1 - local.get $2 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.tee $3 - i64.load - local.set $5 - local.get $3 - local.get $0 - local.get $2 - i32.const 3 - i32.shl - i32.add - local.tee $3 - i64.load - i64.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - local.get $3 - local.get $5 - i64.store - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|1 - end - end - else - loop $while-continue|2 - local.get $2 - local.get $4 - i32.gt_s - if (result i32) - local.get $0 - local.get $4 - i32.const 3 - i32.shl - i32.add - local.tee $1 - i64.load offset=8 - local.set $5 - local.get $1 - i64.load - local.set $7 - i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $7 - local.get $3 - i32.load - call_indirect (type $7) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $while-continue|2 - end - end - end - local.get $4 - ) - (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) - (local $6 i32) - (local $7 i64) - (local $8 i64) - (local $9 i32) - (local $10 i32) - local.get $2 + i32.sub i32.const 1 + i32.and i32.sub - local.tee $6 - local.get $3 - i32.add - local.set $9 - local.get $6 + local.get $5 i32.const 1 + i32.and + local.get $3 + select i32.add - local.set $2 + local.set $7 loop $for-loop|0 - local.get $1 local.get $2 - i32.lt_s + local.get $7 + i32.ge_s if - local.get $2 + local.get $0 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.tee $3 + i32.load offset=4 + local.tee $6 + local.set $5 + local.get $3 + i32.load + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $6 + local.get $4 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + if + local.get $3 + local.set $5 + local.get $6 + local.set $3 + end + local.get $7 i32.const 1 i32.sub - local.tee $2 - i32.const 3 + local.set $6 + loop $while-continue|1 + local.get $1 + local.get $6 + i32.le_s + if + block $while-break|1 + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.tee $8 + i32.load + local.set $9 + i32.const 2 + global.set $~argumentsLength + local.get $9 + local.get $3 + local.get $4 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $8 + local.get $9 + i32.store offset=8 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|1 + end + end + end + local.get $0 + local.get $6 + i32.const 2 i32.shl - local.tee $10 - local.get $4 i32.add + local.get $3 + i32.store offset=8 + loop $while-continue|2 + local.get $1 + local.get $6 + i32.le_s + if + block $while-break|2 + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.tee $3 + i32.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $5 + local.get $4 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $3 + local.get $8 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|2 + end + end + end local.get $0 - local.get $10 + local.get $6 + i32.const 2 + i32.shl i32.add - i64.load - i64.store + local.get $5 + i32.store offset=4 + local.get $7 + i32.const 2 + i32.add + local.set $7 br $for-loop|0 end end - loop $for-loop|1 - local.get $3 - local.get $6 - i32.gt_s + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + local.get $3 + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.tee $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $5 + i32.const 1 + i32.and + local.get $3 + select + i32.add + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $7 + i32.ge_s if - local.get $4 - local.get $9 - local.get $6 - i32.sub - i32.const 3 + local.get $0 + local.get $7 + i32.const 1 i32.shl i32.add + local.tee $3 + i32.load16_u offset=2 + local.tee $6 + local.set $5 + local.get $3 + i32.load16_u + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $6 + local.get $4 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + if + local.get $3 + local.set $5 + local.get $6 + local.set $3 + end + local.get $7 + i32.const 1 + i32.sub + local.set $6 + loop $while-continue|1 + local.get $1 + local.get $6 + i32.le_s + if + block $while-break|1 + local.get $0 + local.get $6 + i32.const 1 + i32.shl + i32.add + local.tee $8 + i32.load16_u + local.set $9 + i32.const 2 + global.set $~argumentsLength + local.get $9 + local.get $3 + local.get $4 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $8 + local.get $9 + i32.store16 offset=4 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|1 + end + end + end local.get $0 local.get $6 - i32.const 3 + i32.const 1 i32.shl i32.add - i64.load offset=8 - i64.store + local.get $3 + i32.store16 offset=4 + loop $while-continue|2 + local.get $1 + local.get $6 + i32.le_s + if + block $while-break|2 + local.get $0 + local.get $6 + i32.const 1 + i32.shl + i32.add + local.tee $3 + i32.load16_u + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $5 + local.get $4 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $3 + local.get $8 + i32.store16 offset=2 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|2 + end + end + end + local.get $0 local.get $6 i32.const 1 + i32.shl i32.add - local.set $6 - br $for-loop|1 + local.get $5 + i32.store16 offset=2 + local.get $7 + i32.const 2 + i32.add + local.set $7 + br $for-loop|0 end end - loop $for-loop|2 - local.get $1 - local.get $3 - i32.le_s + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + local.get $3 + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.tee $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $5 + i32.const 1 + i32.and + local.get $3 + select + i32.add + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $7 + i32.ge_s if - local.get $4 - local.get $6 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $7 - local.get $4 - local.get $2 - i32.const 3 - i32.shl + local.get $0 + local.get $7 i32.add - i64.load - local.set $8 + local.tee $3 + i32.load8_s offset=1 + local.tee $6 + local.set $5 + local.get $3 + i32.load8_s + local.set $3 i32.const 2 global.set $~argumentsLength - local.get $7 - local.get $8 - local.get $5 + local.get $3 + local.get $6 + local.get $4 i32.load - call_indirect (type $7) + call_indirect (type $0) i32.const 0 - i32.lt_s + i32.le_s if - local.get $0 + local.get $3 + local.set $5 + local.get $6 + local.set $3 + end + local.get $7 + i32.const 1 + i32.sub + local.set $6 + loop $while-continue|1 local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $7 - i64.store local.get $6 - i32.const 1 - i32.sub - local.set $6 - else - local.get $0 + i32.le_s + if + block $while-break|1 + local.get $0 + local.get $6 + i32.add + local.tee $8 + i32.load8_s + local.set $9 + i32.const 2 + global.set $~argumentsLength + local.get $9 + local.get $3 + local.get $4 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $8 + local.get $9 + i32.store8 offset=2 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|1 + end + end + end + local.get $0 + local.get $6 + i32.add + local.get $3 + i32.store8 offset=2 + loop $while-continue|2 local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $8 - i64.store - local.get $2 - i32.const 1 - i32.add - local.set $2 + local.get $6 + i32.le_s + if + block $while-break|2 + local.get $0 + local.get $6 + i32.add + local.tee $3 + i32.load8_s + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $5 + local.get $4 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $3 + local.get $8 + i32.store8 offset=1 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|2 + end + end end - local.get $1 - i32.const 1 + local.get $0 + local.get $6 i32.add - local.set $1 - br $for-loop|2 + local.get $5 + i32.store8 offset=1 + local.get $7 + i32.const 2 + i32.add + local.set $7 + br $for-loop|0 end end ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i64) (param $1 i64) (result i32) - local.get $0 - local.get $1 - i64.gt_u - local.get $0 - local.get $1 - i64.lt_u - i32.sub - ) - (func $std/typedarray/testArraySort<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $0 i64) (param $1 i64) (result i32) - local.get $0 - local.get $1 - i64.lt_u - local.get $0 - local.get $1 - i64.gt_u - i32.sub - ) - (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) - (local $5 f32) - (local $6 f32) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i64) + (local $6 i64) (local $7 i32) - (local $8 f32) + (local $8 i64) (local $9 i32) local.get $1 local.get $3 @@ -8896,15 +9780,15 @@ if local.get $0 local.get $7 - i32.const 2 + i32.const 3 i32.shl i32.add local.tee $3 - f32.load offset=4 + i64.load offset=8 local.tee $8 local.set $6 local.get $3 - f32.load + i64.load local.set $5 i32.const 2 global.set $~argumentsLength @@ -8912,7 +9796,7 @@ local.get $8 local.get $4 i32.load - call_indirect (type $11) + call_indirect (type $7) i32.const 0 i32.le_s if @@ -8933,11 +9817,11 @@ block $while-break|1 local.get $0 local.get $3 - i32.const 2 + i32.const 3 i32.shl i32.add local.tee $9 - f32.load + i64.load local.set $8 i32.const 2 global.set $~argumentsLength @@ -8945,13 +9829,13 @@ local.get $5 local.get $4 i32.load - call_indirect (type $11) + call_indirect (type $7) i32.const 0 i32.le_s br_if $while-break|1 local.get $9 local.get $8 - f32.store offset=8 + i64.store offset=16 local.get $3 i32.const 1 i32.sub @@ -8962,11 +9846,11 @@ end local.get $0 local.get $3 - i32.const 2 + i32.const 3 i32.shl i32.add local.get $5 - f32.store offset=8 + i64.store offset=16 loop $while-continue|2 local.get $1 local.get $3 @@ -8975,11 +9859,11 @@ block $while-break|2 local.get $0 local.get $3 - i32.const 2 + i32.const 3 i32.shl i32.add local.tee $9 - f32.load + i64.load local.set $5 i32.const 2 global.set $~argumentsLength @@ -8987,13 +9871,13 @@ local.get $6 local.get $4 i32.load - call_indirect (type $11) + call_indirect (type $7) i32.const 0 i32.le_s br_if $while-break|2 local.get $9 local.get $5 - f32.store offset=4 + i64.store offset=8 local.get $3 i32.const 1 i32.sub @@ -9004,11 +9888,11 @@ end local.get $0 local.get $3 - i32.const 2 + i32.const 3 i32.shl i32.add local.get $6 - f32.store offset=4 + i64.store offset=8 local.get $7 i32.const 2 i32.add @@ -9017,427 +9901,627 @@ end end ) - (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (local $4 i32) - (local $5 f32) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) (local $6 i32) - (local $7 f32) + (local $7 i32) + (local $8 i32) + (local $9 i32) local.get $1 + local.get $3 local.get $2 - i32.eq - if - local.get $1 - return - end - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $5 - local.get $0 local.get $1 + i32.sub i32.const 1 i32.add - local.tee $4 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $7 - i32.const 2 - global.set $~argumentsLength + local.tee $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub local.get $5 - local.get $7 + i32.const 1 + i32.and local.get $3 - i32.load - call_indirect (type $11) - i32.const 0 - i32.gt_s - if - loop $while-continue|0 - local.get $2 + select + i32.add + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $7 + i32.ge_s + if + local.get $0 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.tee $3 + i32.load offset=4 + local.tee $6 + local.set $5 + local.get $3 + i32.load + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $6 local.get $4 - i32.gt_s - if (result i32) - local.get $0 - local.get $4 - i32.const 2 - i32.shl - i32.add - local.tee $6 - f32.load offset=4 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + if + local.get $3 local.set $5 local.get $6 - f32.load - local.set $7 - i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $7 - local.get $3 - i32.load - call_indirect (type $11) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $while-continue|0 + local.set $3 end - end - local.get $4 - local.set $2 - loop $while-continue|1 - local.get $1 - local.get $2 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.tee $3 - f32.load - local.set $5 - local.get $3 - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $3 - f32.load - f32.store + local.get $7 + i32.const 1 + i32.sub + local.set $6 + loop $while-continue|1 local.get $1 - i32.const 1 - i32.add - local.set $1 - local.get $3 - local.get $5 - f32.store - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|1 + local.get $6 + i32.le_s + if + block $while-break|1 + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.tee $8 + i32.load + local.set $9 + i32.const 2 + global.set $~argumentsLength + local.get $9 + local.get $3 + local.get $4 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $8 + local.get $9 + i32.store offset=8 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|1 + end + end end - end - else - loop $while-continue|2 - local.get $2 - local.get $4 - i32.gt_s - if (result i32) - local.get $0 - local.get $4 - i32.const 2 - i32.shl - i32.add - local.tee $1 - f32.load offset=4 - local.set $5 + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.get $3 + i32.store offset=8 + loop $while-continue|2 local.get $1 - f32.load - local.set $7 - i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $7 - local.get $3 - i32.load - call_indirect (type $11) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $while-continue|2 + local.get $6 + i32.le_s + if + block $while-break|2 + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.tee $3 + i32.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $5 + local.get $4 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $3 + local.get $8 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|2 + end + end end + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.get $5 + i32.store offset=4 + local.get $7 + i32.const 2 + i32.add + local.set $7 + br $for-loop|0 end end - local.get $4 ) - (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) (local $6 i32) - (local $7 f32) - (local $8 f32) + (local $7 i32) + (local $8 i32) (local $9 i32) - (local $10 i32) + local.get $1 + local.get $3 local.get $2 - i32.const 1 + local.get $1 i32.sub - local.tee $6 - local.get $3 + i32.const 1 i32.add - local.set $9 - local.get $6 + local.tee $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $5 i32.const 1 + i32.and + local.get $3 + select i32.add - local.set $2 + local.set $7 loop $for-loop|0 - local.get $1 local.get $2 - i32.lt_s + local.get $7 + i32.ge_s if - local.get $2 + local.get $0 + local.get $7 i32.const 1 - i32.sub - local.tee $2 - i32.const 2 i32.shl - local.tee $10 - local.get $4 i32.add - local.get $0 - local.get $10 - i32.add - f32.load - f32.store - br $for-loop|0 - end - end - loop $for-loop|1 - local.get $3 - local.get $6 - i32.gt_s - if - local.get $4 - local.get $9 + local.tee $3 + i32.load16_s offset=2 + local.tee $6 + local.set $5 + local.get $3 + i32.load16_s + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $3 local.get $6 + local.get $4 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + if + local.get $3 + local.set $5 + local.get $6 + local.set $3 + end + local.get $7 + i32.const 1 i32.sub - i32.const 2 - i32.shl - i32.add + local.set $6 + loop $while-continue|1 + local.get $1 + local.get $6 + i32.le_s + if + block $while-break|1 + local.get $0 + local.get $6 + i32.const 1 + i32.shl + i32.add + local.tee $8 + i32.load16_s + local.set $9 + i32.const 2 + global.set $~argumentsLength + local.get $9 + local.get $3 + local.get $4 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $8 + local.get $9 + i32.store16 offset=4 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|1 + end + end + end local.get $0 local.get $6 - i32.const 2 + i32.const 1 i32.shl i32.add - f32.load offset=4 - f32.store + local.get $3 + i32.store16 offset=4 + loop $while-continue|2 + local.get $1 + local.get $6 + i32.le_s + if + block $while-break|2 + local.get $0 + local.get $6 + i32.const 1 + i32.shl + i32.add + local.tee $3 + i32.load16_s + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $5 + local.get $4 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $3 + local.get $8 + i32.store16 offset=2 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|2 + end + end + end + local.get $0 local.get $6 i32.const 1 + i32.shl i32.add - local.set $6 - br $for-loop|1 - end - end - loop $for-loop|2 - local.get $1 - local.get $3 - i32.le_s - if - local.get $4 - local.get $6 + local.get $5 + i32.store16 offset=2 + local.get $7 i32.const 2 - i32.shl i32.add - f32.load local.set $7 - local.get $4 - local.get $2 - i32.const 2 + br $for-loop|0 + end + end + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 f64) + (local $6 f64) + (local $7 i32) + (local $8 f64) + (local $9 i32) + local.get $1 + local.get $3 + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.tee $7 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $7 + i32.const 1 + i32.and + local.get $3 + select + i32.add + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $7 + i32.ge_s + if + local.get $0 + local.get $7 + i32.const 3 i32.shl i32.add - f32.load - local.set $8 + local.tee $3 + f64.load offset=8 + local.tee $8 + local.set $6 + local.get $3 + f64.load + local.set $5 i32.const 2 global.set $~argumentsLength - local.get $7 - local.get $8 local.get $5 + local.get $8 + local.get $4 i32.load - call_indirect (type $11) + call_indirect (type $10) i32.const 0 - i32.lt_s + i32.le_s if - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $7 - f32.store - local.get $6 - i32.const 1 - i32.sub + local.get $5 local.set $6 - else - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add local.get $8 - f32.store - local.get $2 - i32.const 1 - i32.add - local.set $2 + local.set $5 end - local.get $1 + local.get $7 i32.const 1 + i32.sub + local.set $3 + loop $while-continue|1 + local.get $1 + local.get $3 + i32.le_s + if + block $while-break|1 + local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.tee $9 + f64.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $5 + local.get $4 + i32.load + call_indirect (type $10) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $9 + local.get $8 + f64.store offset=16 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|1 + end + end + end + local.get $0 + local.get $3 + i32.const 3 + i32.shl i32.add - local.set $1 - br $for-loop|2 + local.get $5 + f64.store offset=16 + loop $while-continue|2 + local.get $1 + local.get $3 + i32.le_s + if + block $while-break|2 + local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.tee $9 + f64.load + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $5 + local.get $6 + local.get $4 + i32.load + call_indirect (type $10) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $9 + local.get $5 + f64.store offset=8 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|2 + end + end + end + local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.get $6 + f64.store offset=8 + local.get $7 + i32.const 2 + i32.add + local.set $7 + br $for-loop|0 end end ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f32) (param $1 f32) (result i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.reinterpret_f32 - local.tee $2 - i32.const 31 - i32.shr_s - i32.const 1 - i32.shr_u - local.get $2 - i32.xor - local.tee $2 + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 f32) + (local $6 f32) + (local $7 i32) + (local $8 f32) + (local $9 i32) local.get $1 - i32.reinterpret_f32 - local.tee $3 - i32.const 31 - i32.shr_s - i32.const 1 - i32.shr_u local.get $3 - i32.xor - local.tee $3 - i32.gt_s local.get $2 - local.get $3 - i32.lt_s - i32.sub - ) - (func $std/typedarray/testArraySort<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 f32) (result i32) - local.get $0 local.get $1 - f32.lt - local.get $0 - local.get $1 - f32.gt i32.sub - ) - (func $std/typedarray/testArraySort<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 f64) (result i32) - local.get $0 - local.get $1 - f64.lt - local.get $0 - local.get $1 - f64.gt + i32.const 1 + i32.add + local.tee $7 + local.get $3 i32.sub - ) - (func $~lib/rt/__visit_members (param $0 i32) - (local $1 i32) - block $folding-inner3 - block $folding-inner2 - block $folding-inner1 - block $folding-inner0 - block $invalid - 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-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner0 $folding-inner1 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $invalid - end - return - end - return - end - return + i32.const 1 + i32.and + i32.sub + local.get $7 + i32.const 1 + i32.and + local.get $3 + select + i32.add + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $7 + i32.ge_s + if + local.get $0 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.tee $3 + f32.load offset=4 + local.tee $8 + local.set $6 + local.get $3 + f32.load + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $5 + local.get $8 + local.get $4 + i32.load + call_indirect (type $11) + i32.const 0 + i32.le_s + if + local.get $5 + local.set $6 + local.get $8 + local.set $5 + end + local.get $7 + i32.const 1 + i32.sub + local.set $3 + loop $while-continue|1 + local.get $1 + local.get $3 + i32.le_s + if + block $while-break|1 + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.tee $9 + f32.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $5 + local.get $4 + i32.load + call_indirect (type $11) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $9 + local.get $8 + f32.store offset=8 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|1 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 16320 - i32.lt_s - br_if $folding-inner3 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - 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 - global.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 - br_if $folding-inner3 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 local.get $0 - i32.store - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $3 + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - return - end - local.get $0 - i32.load - local.tee $0 - if + local.get $5 + f32.store offset=8 + loop $while-continue|2 + local.get $1 + local.get $3 + i32.le_s + if + block $while-break|2 + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.tee $9 + f32.load + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $5 + local.get $6 + local.get $4 + i32.load + call_indirect (type $11) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $9 + local.get $5 + f32.store offset=4 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|2 + end + end + end local.get $0 - call $~lib/rt/itcms/__visit + local.get $3 + i32.const 2 + i32.shl + i32.add + local.get $6 + f32.store offset=4 + local.get $7 + i32.const 2 + i32.add + local.set $7 + br $for-loop|0 end - return end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable ) - (func $~start - call $start:std/typedarray - ) - (func $~lib/arraybuffer/ArrayBufferView#constructor (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) + (func $~lib/util/number/utoa32 (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) 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 @@ -9452,100 +10536,88 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - i64.const 0 - i64.store offset=8 + i32.const 0 + i32.store local.get $0 i32.eqz if - local.get $3 - i32.const 12 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 8000 + return end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store - local.get $0 - i32.const 0 - call $~lib/rt/itcms/__link - 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 - local.get $1 - i32.const 1073741820 - local.get $2 - i32.shr_u - i32.gt_u - if - i32.const 1056 - i32.const 1104 - i32.const 19 - i32.const 57 - call $~lib/builtins/abort - unreachable + 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 - global.get $~lib/memory/__stack_pointer - local.get $1 - local.get $2 - i32.shl - local.tee $1 + local.tee $2 i32.const 1 + i32.shl + i32.const 2 call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 - local.get $0 - local.get $2 + local.tee $1 i32.store + local.get $1 local.get $0 local.get $2 - call $~lib/rt/itcms/__link - 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 $1 - i32.store offset=8 + call $~lib/util/number/utoa32_dec_lut global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 ) - (func $~lib/typedarray/Int8Array#constructor (param $0 i32) (result i32) + (func $~lib/util/number/itoa32 (param $0 i32) (result i32) (local $1 i32) (local $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -9560,34 +10632,104 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - i32.const 12 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $1 + 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 + 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 $0 + select local.tee $2 - local.get $1 - i32.store offset=4 + 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 + local.get $0 + i32.add + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $0 + local.get $3 + i32.add local.get $2 local.get $1 + call $~lib/util/number/utoa32_dec_lut local.get $0 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $0 - i32.store + if + local.get $3 + 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 + local.get $3 ) - (func $~lib/arraybuffer/ArrayBufferView#get:byteOffset (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/typedarray/Uint8ClampedArray#at (param $0 i32) (param $1 i32) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -9605,31 +10747,376 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $0 - i32.load offset=4 - local.set $2 local.get $1 local.get $0 - i32.store + i32.load offset=8 + local.tee $2 + i32.const 0 + local.get $1 + i32.const 0 + i32.lt_s + select + i32.add + local.tee $1 local.get $2 + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 332 + i32.const 33 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load - i32.sub - local.set $0 + i32.store local.get $1 + local.get $0 + i32.load offset=4 + i32.add + i32.load8_u + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/typedarray/Int8Array#get:length (param $0 i32) (result i32) + (func $~lib/typedarray/Uint8Array.wrap@varargs (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 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + i32.const -1 + local.set $2 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + 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 16320 + 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 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + local.tee $3 + local.get $1 + i32.lt_u + if + i32.const 1360 + i32.const 1632 + i32.const 1860 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 0 + i32.lt_s + if + local.get $2 + i32.const -1 + i32.eq + if (result i32) + local.get $3 + local.get $1 + i32.sub + else + i32.const 1056 + i32.const 1632 + i32.const 1869 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.set $2 + else + local.get $1 + local.get $2 + i32.add + local.get $3 + i32.gt_s + if + i32.const 1056 + i32.const 1632 + i32.const 1874 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=8 + local.get $3 + local.get $0 + i32.store + local.get $3 + local.get $0 + call $~lib/rt/itcms/__link + local.get $3 + local.get $2 + i32.store offset=8 + local.get $3 + local.get $0 + local.get $1 + i32.add + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + 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 $3 + return + end + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/typedarray/Uint8Array#join (param $0 i32) (result i32) (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $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 offset=4 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.set $0 + global.get $~lib/memory/__stack_pointer + 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 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 + local.get $0 + i32.const 1 + i32.sub + local.tee $6 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 7776 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray$1419 + end + local.get $6 + i32.eqz + if + local.get $5 + i32.load8_u + call $~lib/util/number/utoa32 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$1419 + end + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 9580 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 10 + i32.add + local.get $6 + i32.mul + i32.const 10 + i32.add + local.tee $2 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + loop $for-loop|0 + local.get $3 + local.get $6 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $3 + local.get $5 + i32.add + i32.load8_u + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.set $1 + local.get $4 + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 9584 + local.get $4 + i32.const 1 + i32.shl + memory.copy + local.get $1 + local.get $4 + i32.add + local.set $1 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $2 + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $6 + i32.add + i32.load8_u + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.tee $1 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $~lib/string/String#substring + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$1419 + end + 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 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/typedarray/Uint8Array#at (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -9646,26 +11133,50 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store + local.get $1 local.get $0 i32.load offset=8 - local.set $0 + local.tee $2 + i32.const 0 + local.get $1 + i32.const 0 + i32.lt_s + select + i32.add + local.tee $1 + local.get $2 + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 190 + i32.const 33 + 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 offset=4 + i32.add + i32.load8_u + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/typedarray/Uint8Array#constructor (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/typedarray/Uint64Array#at (param $0 i32) (param $1 i32) (result i64) (local $2 i32) + (local $3 i64) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -9680,82 +11191,53 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $1 - i32.const 12 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u local.tee $2 + i32.const 0 local.get $1 - i32.store offset=4 - local.get $2 - local.get $1 - local.get $0 i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/typedarray/Uint8ClampedArray#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 16320 i32.lt_s + select + i32.add + local.tee $1 + local.get $2 + i32.ge_u if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 1360 + i32.const 1632 + i32.const 1185 + i32.const 33 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - i32.const 12 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 - i32.store offset=4 - local.get $2 - local.get $1 local.get $0 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $0 i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/typedarray/Int16Array#constructor (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/typedarray/Uint32Array#at (param $0 i32) (param $1 i32) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -9770,34 +11252,51 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - i32.const 12 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $1 + 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 2 + i32.shr_u local.tee $2 + i32.const 0 local.get $1 - i32.store offset=4 + i32.const 0 + i32.lt_s + select + i32.add + local.tee $1 local.get $2 - local.get $1 + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 901 + i32.const 33 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $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 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/typedarray/Int16Array#get:length (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/typedarray/Uint16Array#at (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -9814,28 +11313,53 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store + local.get $1 local.get $0 i32.load offset=8 i32.const 1 i32.shr_u - local.set $0 + local.tee $2 + i32.const 0 + local.get $1 + i32.const 0 + i32.lt_s + select + i32.add + local.tee $1 + local.get $2 + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 617 + i32.const 33 + 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 1 + i32.shl + i32.add + i32.load16_u + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/typedarray/Uint16Array#constructor (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (local $2 i32) 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 @@ -9850,79 +11374,57 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 - i32.const 12 - i32.const 8 - call $~lib/rt/itcms/__new - local.tee $1 + 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.tee $2 local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $0 - i32.const 1 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $0 - i32.store + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int8Array#get:length + local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer local.get $0 - ) - (func $~lib/typedarray/Int32Array#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 16320 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.get $2 i32.lt_s if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - i32.const 12 - i32.const 9 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 - i32.store offset=4 - local.get $2 + i32.store offset=8 local.get $1 - local.get $0 - i32.const 2 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $0 - i32.store + i32.load offset=4 + local.get $2 + memory.copy global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/typedarray/Int32Array#get:length (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/typedarray/Int8Array#fill@varargs (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -9939,28 +11441,42 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $2 + end + i32.const 2147483647 + local.set $3 + end + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $0 local.get $1 + local.get $2 + local.get $3 + call $~lib/typedarray/Int8Array#fill + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/typedarray/Uint32Array#constructor (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/typedarray/Int8Array#at (param $0 i32) (param $1 i32) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -9975,79 +11491,48 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - i32.const 12 - i32.const 10 - call $~lib/rt/itcms/__new - local.tee $1 + i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 - i32.store offset=4 - local.get $2 - local.get $1 local.get $0 - i32.const 2 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $1 local.get $0 - ) - (func $~lib/typedarray/Int64Array#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 16320 + i32.load offset=8 + local.tee $2 + i32.const 0 + local.get $1 + i32.const 0 i32.lt_s + select + i32.add + local.tee $1 + local.get $2 + i32.ge_u if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 1360 + i32.const 1632 + i32.const 48 + i32.const 33 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - i32.const 12 - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $1 + local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 - i32.store offset=4 - local.get $2 local.get $1 local.get $0 - i32.const 3 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $0 - i32.store + i32.load offset=4 + i32.add + i32.load8_s global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/typedarray/Int64Array#get:length (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/typedarray/Int64Array#at (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local $3 i64) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -10064,28 +11549,54 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + 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 - local.set $0 + local.tee $2 + i32.const 0 + local.get $1 + i32.const 0 + i32.lt_s + select + i32.add + local.tee $1 + local.get $2 + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 1043 + i32.const 33 + 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 + i64.load + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/typedarray/Uint64Array#constructor (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) + (func $~lib/typedarray/Int32Array#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -10100,37 +11611,104 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 - i32.const 12 - i32.const 12 - call $~lib/rt/itcms/__new - local.tee $1 + 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.tee $2 - local.get $1 + local.get $0 i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.set $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $3 + i32.add + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $3 + local.get $1 + local.get $3 + i32.lt_s + select + end + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $2 + local.get $3 + i32.add + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + else + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.lt_s + select + end local.get $1 + i32.sub + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.tee $2 + call $~lib/typedarray/Int32Array#constructor + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.load offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 3 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $0 - i32.store + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.const 2 + i32.shl + memory.copy global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $3 ) - (func $~lib/typedarray/Float32Array#constructor (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) + (func $~lib/typedarray/Int32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $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 global.get $~lib/memory/__stack_pointer @@ -10145,37 +11723,74 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 - i32.const 12 - i32.const 13 - call $~lib/rt/itcms/__new - local.tee $1 + 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.tee $2 local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 local.get $1 + call $~lib/array/Array#get:length + local.set $3 + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.get $2 + local.get $3 + i32.add + i32.lt_s + end + if + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 local.get $0 + i32.load offset=4 + local.get $2 i32.const 2 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $0 - i32.store + i32.shl + i32.add global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/typedarray/Float64Array#constructor (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) + (func $~lib/typedarray/Int32Array#fill@varargs (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -10190,36 +11805,42 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - i32.const 12 - i32.const 14 - call $~lib/rt/itcms/__new - local.tee $1 + i32.const 0 i32.store + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $2 + end + i32.const 2147483647 + local.set $3 + end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 - i32.store offset=4 - local.get $2 - local.get $1 local.get $0 - i32.const 3 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $0 i32.store + local.get $0 + local.get $1 + local.get $2 + local.get $3 + call $~lib/typedarray/Int32Array#fill global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $std/typedarray/testInstantiate (param $0 i32) - (local $1 i32) + (func $~lib/typedarray/Int32Array#at (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 48 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -10234,2196 +11855,2185 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 - i32.const 48 - memory.fill - local.get $1 - local.get $0 - call $~lib/typedarray/Int8Array#constructor - local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - if - i32.const 0 - i32.const 1568 - i32.const 32 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 local.get $0 + i32.store local.get $1 + local.get $0 i32.load offset=8 - i32.ne + i32.const 2 + i32.shr_u + local.tee $2 + i32.const 0 + local.get $1 + i32.const 0 + i32.lt_s + select + i32.add + local.tee $1 + local.get $2 + i32.ge_u if - i32.const 0 - i32.const 1568 + i32.const 1360 + i32.const 1632 + i32.const 759 i32.const 33 - 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/typedarray/Int8Array#get:length local.get $0 - i32.ne + 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/typedarray/Int16Array#at (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 34 - i32.const 3 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/typedarray/Uint8Array#constructor - local.tee $1 - i32.store offset=8 + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $1 - i32.store offset=4 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $2 + i32.const 0 local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.lt_s + select + i32.add + local.tee $1 + local.get $2 + i32.ge_u if - i32.const 0 - i32.const 1568 - i32.const 37 - i32.const 3 + i32.const 1360 + i32.const 1632 + i32.const 475 + i32.const 33 call $~lib/builtins/abort unreachable end 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 local.get $1 - i32.load offset=8 - i32.ne + i32.const 1 + i32.shl + i32.add + i32.load16_s + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Float64Array#subarray (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 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 38 - i32.const 3 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/typedarray/Int8Array#get:length + 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.ne - if - i32.const 0 - i32.const 1568 - i32.const 39 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.store global.get $~lib/memory/__stack_pointer local.get $0 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $1 - i32.store offset=12 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 12 + i32.const 14 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=4 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - if - i32.const 0 - i32.const 1568 - i32.const 42 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + local.get $4 + local.get $0 + i32.load + local.tee $5 + i32.store + local.get $4 + local.get $5 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 + local.get $4 local.get $0 + i32.load offset=4 local.get $1 - i32.load offset=8 - i32.ne - if + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $3 + i32.add + local.tee $0 i32.const 0 - i32.const 1568 - i32.const 43 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $0 + i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $3 + local.get $1 + local.get $3 + i32.lt_s + select end - global.get $~lib/memory/__stack_pointer - local.get $1 + local.tee $0 + i32.const 3 + i32.shl + i32.add i32.store offset=4 + local.get $4 + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $2 + local.get $3 + i32.add + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + else + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.lt_s + select + end + local.tee $1 + local.get $0 + local.get $0 local.get $1 - call $~lib/typedarray/Int8Array#get:length + i32.lt_s + select local.get $0 - i32.ne + i32.sub + i32.const 3 + i32.shl + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + ) + (func $~lib/typedarray/Float64Array#at (param $0 i32) (param $1 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 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 44 - i32.const 3 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/typedarray/Int16Array#constructor - local.tee $1 - i32.store offset=16 + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $1 - i32.store offset=4 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $2 + i32.const 0 local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.lt_s + select + i32.add + local.tee $1 + local.get $2 + i32.ge_u if - i32.const 0 - i32.const 1568 - i32.const 47 - i32.const 3 + i32.const 1360 + i32.const 1632 + i32.const 1469 + i32.const 33 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.load offset=8 local.get $0 - i32.const 1 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 i32.shl - i32.ne + i32.add + f64.load + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Float32Array#at (param $0 i32) (param $1 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 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 48 - i32.const 3 + 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/typedarray/Int16Array#get:length local.get $0 - i32.ne + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $2 + i32.const 0 + local.get $1 + i32.const 0 + i32.lt_s + select + i32.add + local.tee $1 + local.get $2 + i32.ge_u if - i32.const 0 - i32.const 1568 - i32.const 49 - i32.const 3 + i32.const 1360 + i32.const 1632 + i32.const 1327 + i32.const 33 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer local.get $0 - call $~lib/typedarray/Uint16Array#constructor - local.tee $1 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + i32.store + local.get $0 + i32.load offset=4 local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - if - i32.const 0 - i32.const 1568 - i32.const 52 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + 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/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.store offset=4 - local.get $1 - i32.load offset=8 - local.get $0 + i32.load + local.tee $3 i32.const 1 - i32.shl - i32.ne + i32.and + i32.eqz if i32.const 0 - i32.const 1568 - i32.const 53 - i32.const 3 + i32.const 1504 + i32.const 268 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/typedarray/Int16Array#get:length - local.get $0 - i32.ne + local.get $3 + i32.const -4 + i32.and + local.tee $3 + i32.const 12 + i32.lt_u if i32.const 0 - i32.const 1568 - i32.const 54 - i32.const 3 + i32.const 1504 + i32.const 270 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/typedarray/Int32Array#constructor - local.tee $1 - i32.store offset=24 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - if - i32.const 0 - i32.const 1568 - i32.const 57 - i32.const 3 - call $~lib/builtins/abort - unreachable + 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 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.load offset=8 - local.get $0 - i32.const 2 - i32.shl - i32.ne + 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 1568 - i32.const 58 - i32.const 3 + i32.const 1504 + i32.const 284 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.load offset=8 + local.set $5 local.get $1 - call $~lib/typedarray/Int32Array#get:length - local.get $0 - i32.ne + i32.load offset=4 + local.tee $4 if - i32.const 0 - i32.const 1568 - i32.const 59 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $4 + local.get $5 + i32.store offset=8 end - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/typedarray/Uint32Array#constructor - local.tee $1 - i32.store offset=28 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $5 if - i32.const 0 - i32.const 1568 - i32.const 62 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $5 + local.get $4 + i32.store offset=4 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 local.get $1 - i32.load offset=8 local.get $0 + local.get $2 + i32.const 4 + i32.shl + local.get $3 + i32.add i32.const 2 i32.shl - i32.ne + i32.add + local.tee $1 + i32.load offset=96 + i32.eq if - i32.const 0 - i32.const 1568 - i32.const 63 - i32.const 3 - call $~lib/builtins/abort - unreachable + 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 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + ) + (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 - call $~lib/typedarray/Int32Array#get:length - local.get $0 - i32.ne + i32.eqz if i32.const 0 - i32.const 1568 - i32.const 64 - i32.const 3 + i32.const 1504 + i32.const 201 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/typedarray/Int64Array#constructor - local.tee $1 - i32.store offset=32 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz if i32.const 0 - i32.const 1568 - i32.const 67 - i32.const 3 + i32.const 1504 + i32.const 203 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.const 4 + i32.add local.get $1 - i32.load offset=8 - local.get $0 - i32.const 3 - i32.shl - i32.ne + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.tee $2 + i32.const 1 + i32.and if - i32.const 0 - i32.const 1568 - i32.const 68 - i32.const 3 - call $~lib/builtins/abort - unreachable + 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 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/typedarray/Int64Array#get:length - local.get $0 - i32.ne + local.get $3 + i32.const 2 + i32.and if - i32.const 0 - i32.const 1568 - i32.const 69 - i32.const 3 - call $~lib/builtins/abort - unreachable + 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/typedarray/Uint64Array#constructor - local.tee $1 - i32.store offset=36 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + 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 1568 - i32.const 72 - i32.const 3 + i32.const 1504 + i32.const 233 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + local.get $4 local.get $1 - i32.load offset=8 - local.get $0 - i32.const 3 - i32.shl + i32.const 4 + i32.add + local.get $2 + i32.add i32.ne if i32.const 0 - i32.const 1568 - i32.const 73 - i32.const 3 + i32.const 1504 + i32.const 234 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + local.get $4 + i32.const 4 + i32.sub local.get $1 - call $~lib/typedarray/Int64Array#get:length - local.get $0 - i32.ne + 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 1568 - i32.const 74 - i32.const 3 + i32.const 1504 + i32.const 251 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer local.get $0 - call $~lib/typedarray/Float32Array#constructor - local.tee $1 - i32.store offset=40 - global.get $~lib/memory/__stack_pointer + 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 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $3 + i32.store offset=8 + local.get $3 if - i32.const 0 - i32.const 1568 - i32.const 77 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $3 + local.get $1 + i32.store offset=4 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.load offset=8 local.get $0 + local.get $5 + i32.const 4 + i32.shl + local.get $2 + i32.add i32.const 2 i32.shl - 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 - local.get $1 - i32.store offset=4 + i32.add local.get $1 - call $~lib/typedarray/Int32Array#get:length + i32.store offset=96 local.get $0 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 79 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/typedarray/Float64Array#constructor - local.tee $1 - i32.store offset=44 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - if - i32.const 0 - i32.const 1568 - i32.const 82 - 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.load offset=8 local.get $0 - i32.const 3 + i32.load + i32.const 1 + local.get $5 i32.shl - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 83 - 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/typedarray/Int64Array#get:length - local.get $0 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 84 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 48 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int32Array#__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 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 - local.tee $3 - i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.ge_u - if - i32.const 1360 - i32.const 1632 - i32.const 747 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 + i32.or i32.store local.get $0 - i32.load offset=4 - local.get $1 + local.get $5 i32.const 2 i32.shl i32.add - local.get $2 - i32.store - local.get $3 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int32Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.ge_u - if - i32.const 1360 - i32.const 1632 - i32.const 736 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store + local.tee $0 local.get $0 i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 + i32.const 1 local.get $2 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.shl + i32.or + i32.store offset=4 ) - (func $~lib/typedarray/Int32Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/rt/itcms/Object#makeGray (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 12 - 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 - local.tee $3 - i64.const 0 - i64.store - local.get $3 - i32.const 0 - i32.store offset=8 - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 9 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $3 - local.get $0 - i32.load - local.tee $4 - i32.store - local.get $3 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $3 local.get $0 - i32.load offset=4 - local.get $1 - i32.const 0 - i32.lt_s - if (result i32) - local.get $1 - local.get $5 - i32.add - local.tee $0 - i32.const 0 + global.get $~lib/rt/itcms/iter + i32.eq + if local.get $0 - i32.const 0 - i32.gt_s - select - else - local.get $1 - local.get $5 + 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 - local.get $5 - i32.lt_s - select + global.set $~lib/rt/itcms/iter end - local.tee $0 - i32.const 2 - i32.shl - i32.add - i32.store offset=4 - local.get $3 - local.get $2 - i32.const 0 - i32.lt_s - if (result i32) - local.get $2 - local.get $5 - i32.add + block $__inlined_func$~lib/rt/itcms/Object#unlink$1413 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and local.tee $1 - i32.const 0 + i32.eqz + if + local.get $0 + i32.load offset=8 + i32.eqz + local.get $0 + i32.const 49088 + 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$1413 + 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 - i32.const 0 - i32.gt_s - select - else local.get $2 - local.get $5 + i32.store offset=8 local.get $2 - local.get $5 - i32.lt_s - select + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 end - local.tee $1 - local.get $0 - local.get $0 - local.get $1 - i32.lt_s - select + global.get $~lib/rt/itcms/toSpace + local.set $2 local.get $0 - i32.sub + i32.load offset=12 + local.tee $1 i32.const 2 - i32.shl - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (func $~lib/typedarray/Float64Array#__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 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 + i32.le_u + if (result i32) i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $3 - 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 1360 - i32.const 1632 - i32.const 1457 - i32.const 64 - call $~lib/builtins/abort - unreachable + else + local.get $1 + i32.const 16000 + i32.load + i32.gt_u + if + i32.const 1360 + i32.const 1424 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 16004 + i32.add + i32.load + i32.const 32 + i32.and end - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 3 - i32.shl - i32.add + local.set $3 local.get $2 - f64.store - local.get $3 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Float64Array#subarray (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 12 - 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 - local.tee $3 - i64.const 0 - i64.store - local.get $3 - i32.const 0 - i32.store offset=8 - local.get $3 + i32.load offset=8 + local.set $1 local.get $0 - i32.store + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 local.get $3 - local.get $0 + select + local.get $2 + i32.or i32.store offset=4 local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 14 - call $~lib/rt/itcms/__new - local.tee $3 + local.get $1 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $3 - local.get $0 - i32.load - local.tee $4 - i32.store - local.get $3 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - i32.load offset=4 local.get $1 - i32.const 0 - i32.lt_s - if (result i32) - local.get $1 - local.get $5 - i32.add - local.tee $0 - i32.const 0 - local.get $0 - i32.const 0 - i32.gt_s - select - else - local.get $1 - local.get $5 - local.get $1 - local.get $5 - i32.lt_s - select - end - local.tee $0 + i32.load offset=4 i32.const 3 - i32.shl - i32.add + i32.and + i32.or i32.store offset=4 - local.get $3 local.get $2 - i32.const 0 - i32.lt_s - if (result i32) - local.get $2 - local.get $5 - i32.add - local.tee $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - else - local.get $2 - local.get $5 - local.get $2 - local.get $5 - i32.lt_s - select - end - local.tee $1 local.get $0 - local.get $0 - local.get $1 - i32.lt_s - select - local.get $0 - i32.sub - i32.const 3 - i32.shl i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 ) - (func $~lib/util/sort/SORT (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 f64) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - (local $14 i64) - (local $15 i32) - (local $16 i32) - (local $17 f64) - (local $18 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 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 - block $folding-inner0 - local.get $1 - i32.const 48 - i32.le_s - if - local.get $1 - i32.const 1 - i32.le_s - br_if $folding-inner0 - block $break|0 - block $case1|0 - local.get $1 - i32.const 3 - i32.ne - if - local.get $1 - i32.const 2 - i32.eq - br_if $case1|0 - br $break|0 + (func $~lib/rt/__visit_members (param $0 i32) + block $folding-inner3 + block $folding-inner2 + block $folding-inner1 + block $folding-inner0 + block $invalid + 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-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner0 $folding-inner1 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $invalid + end + return + end + return + end + return end - local.get $0 - f64.load - local.set $9 - local.get $0 - f64.load offset=8 - local.set $17 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $17 - local.get $9 - local.get $9 - local.get $17 - local.get $2 - i32.load - call_indirect (type $10) - i32.const 0 - i32.gt_s - local.tee $1 - select - f64.store - local.get $0 - f64.load offset=16 - local.set $18 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $18 - local.get $9 - local.get $17 - local.get $1 - select - local.tee $9 - local.get $9 - local.get $18 - local.get $2 - i32.load - call_indirect (type $10) - i32.const 0 - i32.gt_s - local.tee $1 - select - f64.store offset=8 - local.get $0 - local.get $9 - local.get $18 - local.get $1 - select - f64.store offset=16 + unreachable end - local.get $0 - f64.load - local.set $9 - local.get $0 - f64.load offset=8 - local.set $17 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $17 - local.get $9 - local.get $9 - local.get $17 - local.get $2 - i32.load - call_indirect (type $10) + global.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 + br_if $folding-inner3 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.gt_s - local.tee $1 - select - f64.store + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $9 - local.get $17 - local.get $1 - select - f64.store offset=8 - br $folding-inner0 + 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 global.get $~lib/memory/__stack_pointer - local.get $2 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner3 + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 0 - local.get $1 + 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 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $2 + i32.const 1 + i32.sub + local.tee $6 + local.get $3 + i32.add + local.set $7 + local.get $6 + i32.const 1 + i32.add + local.set $2 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $2 i32.const 1 i32.sub - i32.const 0 + local.tee $2 + local.get $4 + i32.add + local.get $0 local.get $2 - call $~lib/util/sort/insertionSort - br $folding-inner0 + i32.add + i32.load8_u + i32.store8 + br $for-loop|0 end - i32.const 33 - local.get $1 - i32.clz - i32.sub - local.tee $4 - i32.const 2 - i32.shl - local.tee $5 - i32.const 1 - i32.shl - local.set $6 - global.get $~lib/rt/tlsf/ROOT - i32.eqz + end + loop $for-loop|1 + local.get $3 + local.get $6 + i32.gt_s if - call $~lib/rt/tlsf/initialize + local.get $4 + local.get $7 + local.get $6 + i32.sub + i32.add + local.get $0 + local.get $6 + i32.add + i32.load8_u offset=1 + i32.store8 + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 end - local.get $5 - global.get $~lib/rt/tlsf/ROOT - local.get $6 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $11 - i32.add - local.set $12 - loop $for-loop|1 - local.get $3 + end + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if local.get $4 - i32.lt_u + local.get $6 + i32.add + i32.load8_u + local.set $8 + local.get $2 + local.get $4 + i32.add + i32.load8_u + local.set $7 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $7 + local.get $5 + i32.load + call_indirect (type $0) + i32.const 0 + i32.lt_s if - local.get $11 - local.get $3 - i32.const 2 - i32.shl + local.get $0 + local.get $1 i32.add - i32.const -1 - i32.store - local.get $3 + local.get $8 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + else + local.get $0 + local.get $1 + i32.add + local.get $7 + i32.store8 + local.get $2 i32.const 1 i32.add - local.set $3 - br $for-loop|1 + local.set $2 end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $1 - i32.const 3 - i32.shl - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.set $13 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - i32.const 0 + end + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i64) + (local $8 i64) + (local $9 i32) + (local $10 i32) + local.get $2 + i32.const 1 + i32.sub + local.tee $6 + local.get $3 + i32.add + local.set $9 + local.get $6 + i32.const 1 + i32.add + local.set $2 + loop $for-loop|0 local.get $1 - i32.const 1 - i32.sub - local.tee $10 local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $4 - i32.const 1 - i32.add - local.tee $1 - i32.const 32 i32.lt_s if - global.get $~lib/memory/__stack_pointer local.get $2 - i32.store + i32.const 1 + i32.sub + local.tee $2 + i32.const 3 + i32.shl + local.tee $10 + local.get $4 + i32.add local.get $0 - i32.const 0 - i32.const 31 - local.get $10 local.get $10 - i32.const 31 - i32.ge_s - select - local.tee $4 - local.get $1 - local.get $2 - call $~lib/util/sort/insertionSort + i32.add + i64.load + i64.store + br $for-loop|0 end - i32.const 0 - local.set $1 - i32.const 0 - local.set $3 - loop $while-continue|2 + end + loop $for-loop|1 + local.get $3 + local.get $6 + i32.gt_s + if local.get $4 - local.get $10 + local.get $9 + local.get $6 + i32.sub + i32.const 3 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 3 + i32.shl + i32.add + i64.load offset=8 + i64.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + local.get $4 + local.get $6 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $7 + local.get $4 + local.get $2 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $8 + local.get $5 + i32.load + call_indirect (type $7) + i32.const 0 i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store local.get $0 - local.get $4 - i32.const 1 + local.get $1 + i32.const 3 + i32.shl i32.add - local.tee $6 - local.get $10 - local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $5 + local.get $7 + i64.store local.get $6 - i32.sub i32.const 1 + i32.sub + local.set $6 + else + local.get $0 + local.get $1 + i32.const 3 + i32.shl i32.add - local.tee $7 - i32.const 32 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $6 - local.get $10 - local.get $6 - i32.const 31 - i32.add - local.tee $5 - local.get $5 - local.get $10 - i32.gt_s - select - local.tee $5 - local.get $7 - local.get $2 - call $~lib/util/sort/insertionSort - end - local.get $3 - local.get $6 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $10 - i32.const 1 - i32.add - i64.extend_i32_u - local.tee $14 - i64.div_u - local.get $5 - local.get $6 - i32.add + local.get $8 + i64.store + local.get $2 i32.const 1 i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $14 - i64.div_u - i64.xor - i32.wrap_i64 - i32.clz - local.set $7 - loop $for-loop|3 - local.get $1 - local.get $7 - i32.gt_u - if - local.get $1 - i32.const 2 - i32.shl - local.tee $15 - local.get $11 - i32.add - local.tee $16 - i32.load - local.tee $8 - i32.const -1 - i32.ne - if - local.get $12 - local.get $15 - i32.add - i32.load - i32.const 1 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $8 - local.get $3 - local.get $4 - local.get $13 - local.get $2 - call $~lib/util/sort/mergeRuns - local.get $16 - i32.const -1 - i32.store - local.get $8 - local.set $3 - end - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|3 - end - end - local.get $7 + local.set $2 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 + end + end + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $2 + i32.const 1 + i32.sub + local.tee $6 + local.get $3 + i32.add + local.set $7 + local.get $6 + i32.const 1 + i32.add + local.set $2 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 2 + i32.shl + local.tee $8 + local.get $4 + i32.add + local.get $0 + local.get $8 + i32.add + i32.load + i32.store + br $for-loop|0 + end + end + loop $for-loop|1 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $4 + local.get $7 + local.get $6 + i32.sub + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + local.get $4 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $7 + local.get $4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $8 + local.get $5 + i32.load + call_indirect (type $0) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $1 i32.const 2 i32.shl - local.tee $1 - local.get $11 i32.add - local.get $3 + local.get $7 i32.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + else + local.get $0 local.get $1 - local.get $12 + i32.const 2 + i32.shl i32.add - local.get $4 + local.get $8 i32.store - local.get $6 - local.set $3 - local.get $5 - local.set $4 - local.get $7 - local.set $1 - br $while-continue|2 + local.get $2 + i32.const 1 + i32.add + local.set $2 end - end - loop $for-loop|4 local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 + end + end + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $2 + i32.const 1 + i32.sub + local.tee $6 + local.get $3 + i32.add + local.set $7 + local.get $6 + i32.const 1 + i32.add + local.set $2 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + local.tee $8 + local.get $4 + i32.add + local.get $0 + local.get $8 + i32.add + i32.load16_u + i32.store16 + br $for-loop|0 + end + end + loop $for-loop|1 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $4 + local.get $7 + local.get $6 + i32.sub + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 1 + i32.shl + i32.add + i32.load16_u offset=2 + i32.store16 + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + local.get $4 + local.get $6 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $7 + local.get $4 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $8 + local.get $5 + i32.load + call_indirect (type $0) + i32.const 0 + i32.lt_s if + local.get $0 local.get $1 - i32.const 2 + i32.const 1 i32.shl - local.tee $3 - local.get $11 i32.add - i32.load - local.tee $4 - i32.const -1 - i32.ne - if - local.get $3 - local.get $12 - i32.add - i32.load - i32.const 1 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $4 - local.get $3 - local.get $10 - local.get $13 - local.get $2 - call $~lib/util/sort/mergeRuns - end - local.get $1 + local.get $7 + i32.store16 + local.get $6 i32.const 1 i32.sub - local.set $1 - br $for-loop|4 + local.set $6 + else + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $8 + i32.store16 + local.get $2 + i32.const 1 + i32.add + local.set $2 end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 end - local.get $13 - call $~lib/rt/tlsf/__free - local.get $11 - call $~lib/rt/tlsf/__free - 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.add - global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Float64Array#sort (param $0 i32) (param $1 i32) (result 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 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 - local.tee $3 - i64.const 0 - i64.store - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $2 - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) local.get $2 + i32.const 1 + i32.sub + local.tee $6 local.get $3 - local.get $1 - call $~lib/util/sort/SORT - global.get $~lib/memory/__stack_pointer - i32.const 8 i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/typedarray/Float64Array#sort@varargs (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 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 - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i32.const 0 - i32.store offset=8 - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - br_table $0of1 $1of1 $outOfRange - end - unreachable + local.set $7 + local.get $6 + i32.const 1 + i32.add + local.set $2 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + local.get $4 + i32.add + local.get $0 + local.get $2 + i32.add + i32.load8_s + i32.store8 + br $for-loop|0 end - i32.const 1696 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 1696 - i32.store end - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/typedarray/Float64Array#sort - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/typedarray/Float64Array#__get (param $0 i32) (param $1 i32) (result f64) - (local $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 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + loop $for-loop|1 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $4 + local.get $7 + local.get $6 + i32.sub + i32.add + local.get $0 + local.get $6 + i32.add + i32.load8_s offset=1 + i32.store8 + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end end - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $3 - 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 1360 - i32.const 1632 - i32.const 1446 - i32.const 64 - call $~lib/builtins/abort - unreachable + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + local.get $4 + local.get $6 + i32.add + i32.load8_s + local.set $8 + local.get $2 + local.get $4 + i32.add + i32.load8_s + local.set $7 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $7 + local.get $5 + i32.load + call_indirect (type $0) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $1 + i32.add + local.get $8 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + else + local.get $0 + local.get $1 + i32.add + local.get $7 + i32.store8 + local.get $2 + i32.const 1 + i32.add + local.set $2 + 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.tee $3 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $2 - local.get $3 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 ) - (func $~lib/typedarray/Uint8ClampedArray#__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 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 - local.tee $3 - i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=8 - i32.ge_u - if - i32.const 1360 - i32.const 1632 - i32.const 320 - i32.const 45 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=4 - i32.add - i32.const 255 + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i64) + (local $8 i64) + (local $9 i32) + (local $10 i32) local.get $2 + i32.const 1 i32.sub - i32.const 31 - i32.shr_s - local.get $2 - i32.or - local.get $2 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.and - i32.store8 + local.tee $6 local.get $3 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Uint8ClampedArray#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=8 - i32.ge_u - if - i32.const 1360 - i32.const 1632 - i32.const 309 - i32.const 45 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=4 i32.add - i32.load8_u - local.set $0 - local.get $2 - i32.const 4 + local.set $9 + local.get $6 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/typedarray/Int8Array#__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 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.set $2 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 3 + i32.shl + local.tee $10 + local.get $4 + i32.add + local.get $0 + local.get $10 + i32.add + i64.load + i64.store + br $for-loop|0 + end end - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=8 - i32.ge_u - if - i32.const 1360 - i32.const 1632 - i32.const 36 - i32.const 45 - call $~lib/builtins/abort - unreachable + loop $for-loop|1 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $4 + local.get $9 + local.get $6 + i32.sub + i32.const 3 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 3 + i32.shl + i32.add + i64.load offset=8 + i64.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end end - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=4 - i32.add - local.get $2 - i32.store8 - local.get $3 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int8Array#fill (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 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + local.get $4 + local.get $6 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $7 + local.get $4 + local.get $2 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $8 + local.get $5 + i32.load + call_indirect (type $7) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $7 + i64.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + else + local.get $0 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $8 + i64.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + 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.tee $5 - i32.const 0 - i32.store - local.get $5 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $4 - local.get $5 - local.get $0 - i32.store - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.tee $0 - local.get $2 - i32.add - local.get $2 - local.get $0 - local.get $0 - local.get $2 - i32.gt_s - select + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) local.get $2 - i32.const 0 - i32.lt_s - select - local.tee $2 - local.get $0 + i32.const 1 + i32.sub + local.tee $6 local.get $3 i32.add - local.get $3 - local.get $0 - local.get $0 - local.get $3 - i32.gt_s - select - local.get $3 - i32.const 0 - i32.lt_s - select - local.tee $0 - i32.lt_s - if - local.get $2 - local.get $4 - i32.add + local.set $7 + local.get $6 + i32.const 1 + i32.add + local.set $2 + loop $for-loop|0 local.get $1 - local.get $0 local.get $2 - i32.sub - memory.fill - end - 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) - (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 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 - local.tee $1 - i32.const 0 - i32.store - local.get $1 - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - local.set $0 - local.get $1 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/typedarray/Int8Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=8 - i32.ge_u - if - i32.const 1360 - i32.const 1632 - i32.const 25 - i32.const 45 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=4 - i32.add - i32.load8_s - local.set $0 - local.get $2 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $std/typedarray/isInt8ArrayEqual (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store + i32.lt_s + if + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 2 + i32.shl + local.tee $8 + local.get $4 + i32.add local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $8 + i32.add + i32.load i32.store - local.get $1 - call $~lib/array/Array#get:length - local.get $3 - i32.ne - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer + br $for-loop|0 + end + end + loop $for-loop|1 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $4 + local.get $7 + local.get $6 + i32.sub + i32.const 2 + i32.shl + i32.add local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 i32.store - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.set $5 - loop $for-loop|0 + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + local.get $4 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $7 + local.get $4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $8 + local.get $5 + i32.load + call_indirect (type $0) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + else + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store local.get $2 - local.get $5 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $2 - call $~lib/typedarray/Int8Array#__get - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $4 - i32.const 0 - i32.store - local.get $4 - local.get $1 - i32.store - local.get $2 - local.get $1 - i32.load offset=12 - i32.ge_u - if - i32.const 1360 - i32.const 1760 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $1 - i32.store - local.get $2 - local.get $1 - i32.load offset=4 - i32.add - i32.load8_s - local.set $6 - local.get $4 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $6 - i32.ne - br_if $folding-inner1 - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end + i32.const 1 + i32.add + local.set $2 end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $1 i32.const 1 - return + i32.add + local.set $1 + br $for-loop|2 end - 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 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 ) - (func $~lib/typedarray/Int8Array#fill@varargs (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $2 + i32.const 1 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 + local.tee $6 + local.get $3 + i32.add + local.set $7 + local.get $6 + i32.const 1 + i32.add + local.set $2 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + local.tee $8 + local.get $4 + i32.add + local.get $0 + local.get $8 + i32.add + i32.load16_s + i32.store16 + br $for-loop|0 + end end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $2of2 - block $1of2 - block $0of2 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of2 $1of2 $2of2 $outOfRange - end - unreachable - end + loop $for-loop|1 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $4 + local.get $7 + local.get $6 + i32.sub + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 1 + i32.shl + i32.add + i32.load16_s offset=2 + i32.store16 + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + local.get $4 + local.get $6 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $7 + local.get $4 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $8 + local.get $5 + i32.load + call_indirect (type $0) i32.const 0 - local.set $2 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $7 + i32.store16 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + else + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $8 + i32.store16 + local.get $2 + i32.const 1 + i32.add + local.set $2 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 end - i32.const 2147483647 - local.set $3 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 f64) + (local $8 f64) + (local $9 i32) + (local $10 i32) local.get $2 + i32.const 1 + i32.sub + local.tee $6 local.get $3 - call $~lib/typedarray/Int8Array#fill - global.get $~lib/memory/__stack_pointer - i32.const 4 i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int8Array#subarray (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 12 - 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 + local.set $9 + local.get $6 + i32.const 1 + i32.add + local.set $2 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 3 + i32.shl + local.tee $10 + local.get $4 + i32.add + local.get $0 + local.get $10 + i32.add + f64.load + f64.store + br $for-loop|0 + end end - global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - i32.const 0 - i32.store offset=8 - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $3 - local.get $0 - i32.load - local.tee $4 - i32.store - local.get $3 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $3 - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 0 - i32.lt_s - if (result i32) - local.get $1 - local.get $5 - i32.add - local.tee $0 - i32.const 0 - local.get $0 - i32.const 0 + loop $for-loop|1 + local.get $3 + local.get $6 i32.gt_s - select - else - local.get $1 - local.get $5 + if + local.get $4 + local.get $9 + local.get $6 + i32.sub + i32.const 3 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + f64.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + loop $for-loop|2 local.get $1 - local.get $5 - i32.lt_s - select + local.get $3 + i32.le_s + if + local.get $4 + local.get $6 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $7 + local.get $4 + local.get $2 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $8 + local.get $5 + i32.load + call_indirect (type $10) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $7 + f64.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + else + local.get $0 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $8 + f64.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 + end end - local.tee $0 - i32.add - i32.store offset=4 - local.get $3 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 f32) + (local $8 f32) + (local $9 i32) + (local $10 i32) local.get $2 - i32.const 0 - i32.lt_s - if (result i32) - local.get $2 - local.get $5 - i32.add - local.tee $1 - i32.const 0 + i32.const 1 + i32.sub + local.tee $6 + local.get $3 + i32.add + local.set $9 + local.get $6 + i32.const 1 + i32.add + local.set $2 + loop $for-loop|0 local.get $1 - i32.const 0 - i32.gt_s - select - else local.get $2 - local.get $5 - local.get $2 - local.get $5 i32.lt_s - select + if + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 2 + i32.shl + local.tee $10 + local.get $4 + i32.add + local.get $0 + local.get $10 + i32.add + f32.load + f32.store + br $for-loop|0 + end + end + loop $for-loop|1 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $4 + local.get $9 + local.get $6 + i32.sub + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + f32.load offset=4 + f32.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + local.get $4 + local.get $6 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $7 + local.get $4 + local.get $2 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $8 + local.get $5 + i32.load + call_indirect (type $11) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $7 + f32.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + else + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $8 + f32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 + end end - local.tee $1 - local.get $0 - local.get $0 - local.get $1 - i32.lt_s - select - local.get $0 - i32.sub - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 ) - (func $~lib/typedarray/Int32Array#fill (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -12438,104 +14048,159 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store - local.get $4 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $5 - local.get $4 - local.get $0 - i32.store + i32.store offset=8 + local.get $1 local.get $2 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.tee $0 + local.get $1 i32.add - local.get $2 - local.get $0 - local.get $0 - local.get $2 - i32.gt_s - select - local.get $2 - i32.const 0 - i32.lt_s - select - local.set $2 - local.get $0 - local.get $3 + i32.load8_u + local.get $1 + i32.const 1 i32.add - local.get $3 - local.get $0 + local.tee $4 local.get $0 + i32.add + i32.load8_u + i32.const 2 + global.set $~argumentsLength local.get $3 - i32.gt_s - select - local.get $3 + i32.load + call_indirect (type $0) i32.const 0 - i32.lt_s - select - local.set $0 - block $__inlined_func$~lib/util/bytes/FILL$202 - local.get $1 - i32.eqz - local.get $1 - i32.const -1 - i32.eq - i32.or - if - local.get $0 + i32.gt_s + if + loop $while-continue|0 local.get $2 + local.get $4 i32.gt_s - if + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $0 + local.get $4 + i32.add + local.tee $5 + i32.load8_u offset=1 local.get $5 - local.get $2 + i32.load8_u i32.const 2 - i32.shl + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 + i32.const 1 i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $2 + loop $while-continue|1 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $0 local.get $1 + i32.add + local.tee $3 + i32.load8_u + local.set $5 + local.get $3 local.get $0 local.get $2 + i32.add + local.tee $3 + i32.load8_u + i32.store8 + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $5 + i32.store8 + local.get $2 + i32.const 1 i32.sub - i32.const 2 - i32.shl - memory.fill + local.set $2 + br $while-continue|1 end - br $__inlined_func$~lib/util/bytes/FILL$202 end - loop $for-loop|0 - local.get $0 + else + loop $while-continue|2 local.get $2 + local.get $4 i32.gt_s - if - local.get $5 - local.get $2 - i32.const 2 - i32.shl + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $0 + local.get $4 i32.add + local.tee $1 + i32.load8_u offset=1 local.get $1 - i32.store - local.get $2 + i32.load8_u + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $0) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 i32.const 1 i32.add - local.set $2 - br $for-loop|0 + local.set $4 + br $while-continue|2 end end end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + local.get $4 ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i64) + (local $6 i32) + (local $7 i64) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -12550,48 +14215,170 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store + i32.store offset=8 local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u + local.get $2 + i32.eq if - i32.const 1360 - i32.const 1760 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 + local.get $3 i32.store local.get $0 - i32.load offset=4 local.get $1 - i32.const 2 + i32.const 3 i32.shl i32.add - i32.load - local.set $0 - local.get $2 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i64.load local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $4 + i32.const 3 + i32.shl + i32.add + i64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $7) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + local.tee $6 + i64.load offset=8 + local.get $6 + i64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $7) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $2 + loop $while-continue|1 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.tee $3 + i64.load + local.set $5 + local.get $3 + local.get $0 + local.get $2 + i32.const 3 + i32.shl + i32.add + local.tee $3 + i64.load + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $5 + i64.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + local.tee $1 + i64.load offset=8 + local.get $1 + i64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $7) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 ) - (func $std/typedarray/isInt32ArrayEqual (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) + (local $5 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -12606,75 +14393,170 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store + i32.store offset=8 + local.get $1 + local.get $2 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + end + global.get $~lib/memory/__stack_pointer local.get $3 - local.get $0 i32.store local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer local.get $1 - i32.store - block $folding-inner0 - local.get $1 - call $~lib/array/Array#get:length - local.get $3 - i32.ne - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $3 - loop $for-loop|0 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.tee $5 + i32.load offset=4 + local.get $5 + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $2 + loop $while-continue|1 + local.get $1 local.get $2 - local.get $3 i32.lt_s if - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + local.get $1 + i32.const 2 + i32.shl + i32.add + local.tee $3 + i32.load + local.set $5 + local.get $3 local.get $0 local.get $2 - call $~lib/typedarray/Int32Array#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 2 + i32.shl + i32.add + local.tee $3 + i32.load i32.store local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $5 + i32.store local.get $2 - call $~lib/array/Array#__get + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=4 + local.get $1 + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $0) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if local.get $4 - i32.ne - br_if $folding-inner0 - local.get $2 i32.const 1 i32.add - local.set $2 - br $for-loop|0 + local.set $4 + br $while-continue|2 end end - 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 - i32.const 4 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 + local.get $4 ) - (func $~lib/typedarray/Int32Array#fill@varargs (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -12689,42 +14571,168 @@ unreachable end global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store - block $2of2 - block $1of2 - block $0of2 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of2 $1of2 $2of2 $outOfRange - end - unreachable - end - i32.const 0 - local.set $2 - end - i32.const 2147483647 - local.set $3 + i32.store offset=8 + local.get $1 + local.get $2 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store local.get $0 local.get $1 - local.get $2 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.const 2 + global.set $~argumentsLength local.get $3 - call $~lib/typedarray/Int32Array#fill + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + local.tee $5 + i32.load16_u offset=2 + local.get $5 + i32.load16_u + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $2 + loop $while-continue|1 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.tee $3 + i32.load16_u + local.set $5 + local.get $3 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.tee $3 + i32.load16_u + i32.store16 + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $5 + i32.store16 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + local.tee $1 + i32.load16_u offset=2 + local.get $1 + i32.load16_u + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $0) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + local.get $4 ) - (func $~lib/typedarray/Int32Array#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -12741,108 +14749,159 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 + local.get $1 + local.get $2 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + end + global.get $~lib/memory/__stack_pointer local.get $3 - local.get $0 i32.store - local.get $3 - local.get $0 - i32.store offset=4 local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $3 local.get $1 - i32.const 0 - i32.lt_s - if (result i32) - local.get $1 - local.get $3 - i32.add - local.tee $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - else - local.get $1 - local.get $3 - local.get $1 - local.get $3 - i32.lt_s - select - end - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 0 - i32.lt_s - if (result i32) - local.get $2 - local.get $3 - i32.add - local.tee $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - else - local.get $2 - local.get $3 - local.get $2 - local.get $3 - i32.lt_s - select - end + i32.add + i32.load8_s local.get $1 - i32.sub - local.tee $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - local.tee $3 - call $~lib/typedarray/Int32Array#constructor + i32.const 1 + i32.add local.tee $4 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $4 - i32.store offset=4 - local.get $4 - i32.load offset=4 - local.set $5 - local.get $2 - local.get $0 - i32.store offset=4 - local.get $5 local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl i32.add - local.get $3 + i32.load8_s i32.const 2 - i32.shl - memory.copy - local.get $2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $0 + local.get $4 + i32.add + local.tee $5 + i32.load8_s offset=1 + local.get $5 + i32.load8_s + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $2 + loop $while-continue|1 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $1 + i32.add + local.tee $3 + i32.load8_s + local.set $5 + local.get $3 + local.get $0 + local.get $2 + i32.add + local.tee $3 + i32.load8_s + i32.store8 + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $5 + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $0 + local.get $4 + i32.add + local.tee $1 + i32.load8_s offset=1 + local.get $1 + i32.load8_s + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $0) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer local.get $4 ) - (func $~lib/typedarray/Int32Array#slice@varargs (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i64) + (local $6 i32) + (local $7 i64) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -12857,38 +14916,170 @@ unreachable end global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store - block $2of2 - block $1of2 - block $outOfRange - global.get $~argumentsLength - br_table $1of2 $1of2 $2of2 $outOfRange - end - unreachable - end - i32.const 2147483647 - local.set $1 + i32.store offset=8 + local.get $1 + local.get $2 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store local.get $0 - i32.const 0 local.get $1 - call $~lib/typedarray/Int32Array#slice - local.set $0 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $4 + i32.const 3 + i32.shl + i32.add + i64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $7) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + local.tee $6 + i64.load offset=8 + local.get $6 + i64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $7) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $2 + loop $while-continue|1 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.tee $3 + i64.load + local.set $5 + local.get $3 + local.get $0 + local.get $2 + i32.const 3 + i32.shl + i32.add + local.tee $3 + i64.load + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $5 + i64.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + local.tee $1 + i64.load offset=8 + local.get $1 + i64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $7) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $4 ) - (func $~lib/typedarray/Int32Array#copyWithin (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) + (local $6 i32) 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 @@ -12903,175 +15094,170 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 - local.get $0 - i32.store - local.get $4 - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $4 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $3 - local.get $4 - local.get $3 - local.get $4 - i32.lt_s - select - local.set $5 - local.get $0 - i32.load offset=4 - local.tee $3 - local.get $1 i32.const 0 - i32.lt_s - if (result i32) - local.get $1 - local.get $4 + i32.store offset=8 + local.get $1 + local.get $2 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add - local.tee $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - else - local.get $1 - local.get $4 + global.set $~lib/memory/__stack_pointer local.get $1 - local.get $4 - i32.lt_s - select + return end - local.tee $1 - i32.const 2 - i32.shl - i32.add + global.get $~lib/memory/__stack_pointer local.get $3 - local.get $2 - i32.const 0 - i32.lt_s - if (result i32) - local.get $2 - local.get $4 - i32.add - local.tee $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - else - local.get $2 - local.get $4 - local.get $2 - local.get $4 - i32.lt_s - select - end - local.tee $2 + i32.store + local.get $0 + local.get $1 i32.const 2 i32.shl i32.add - local.get $5 - i32.const 0 - i32.lt_s - if (result i32) - local.get $4 - local.get $5 - i32.add - local.tee $3 - i32.const 0 - local.get $3 - i32.const 0 - i32.gt_s - select - else - local.get $5 - local.get $4 - local.get $4 - local.get $5 - i32.gt_s - select - end - local.get $2 - i32.sub - local.tee $2 - local.get $4 - local.get $1 - i32.sub - local.tee $1 + i32.load + local.get $0 local.get $1 - local.get $2 - i32.gt_s - select + i32.const 1 + i32.add + local.tee $4 i32.const 2 i32.shl - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/typedarray/Int32Array#copyWithin@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_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 - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength + loop $while-continue|0 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.tee $5 + i32.load offset=4 + local.get $5 + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $2 + loop $while-continue|1 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.tee $3 + i32.load + local.set $5 + local.get $3 + local.get $0 + local.get $2 i32.const 2 + i32.shl + i32.add + local.tee $3 + i32.load + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $5 + i32.store + local.get $2 + i32.const 1 i32.sub - br_table $0of1 $1of1 $outOfRange + local.set $2 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=4 + local.get $1 + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $0) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 end - unreachable end - i32.const 2147483647 - local.set $3 end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $2 - local.get $3 - call $~lib/typedarray/Int32Array#copyWithin - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $4 ) - (func $~lib/typedarray/Uint8Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -13086,45 +15272,169 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store + i32.store offset=8 local.get $1 - local.get $0 - i32.load offset=8 - i32.ge_u + local.get $2 + i32.eq if - i32.const 1360 - i32.const 1632 - i32.const 178 - i32.const 45 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return end global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 + local.get $3 i32.store + local.get $0 local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_s local.get $0 - i32.load offset=4 + local.get $1 + i32.const 1 i32.add - local.get $2 - i32.store8 + local.tee $4 + i32.const 1 + i32.shl + i32.add + i32.load16_s + i32.const 2 + global.set $~argumentsLength local.get $3 - i32.const 4 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + local.tee $5 + i32.load16_s offset=2 + local.get $5 + i32.load16_s + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $2 + loop $while-continue|1 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.tee $3 + i32.load16_s + local.set $5 + local.get $3 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.tee $3 + i32.load16_s + i32.store16 + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $5 + i32.store16 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + local.tee $1 + i32.load16_s offset=2 + local.get $1 + i32.load16_s + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $0) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + local.get $4 ) - (func $~lib/typedarray/Uint8Array#reduce (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) - (local $5 i32) + (local $5 f64) (local $6 i32) + (local $7 f64) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -13141,70 +15451,171 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 i64.const 0 i64.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $5 - local.get $0 - i32.store - local.get $5 local.get $1 - i32.store offset=4 - local.get $5 - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $4 - local.get $5 + local.get $2 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store local.get $0 - i32.store offset=8 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.set $5 - loop $for-loop|0 - local.get $2 - local.get $5 - i32.lt_s - if + local.get $1 + i32.const 1 + i32.add + local.tee $4 + i32.const 3 + i32.shl + i32.add + f64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $10) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 local.get $2 local.get $4 - i32.add - i32.load8_u - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 4 - global.set $~argumentsLength - local.get $3 - local.get $6 - local.get $2 - local.get $0 + i32.gt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + local.tee $6 + f64.load offset=8 + local.get $6 + f64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $10) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $2 + loop $while-continue|1 local.get $1 - i32.load - call_indirect (type $6) - local.set $3 local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.tee $3 + f64.load + local.set $5 + local.get $3 + local.get $0 + local.get $2 + i32.const 3 + i32.shl + i32.add + local.tee $3 + f64.load + f64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $5 + f64.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + local.tee $1 + f64.load offset=8 + local.get $1 + f64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $10) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end end end global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $4 ) - (func $~lib/typedarray/Int16Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 f32) + (local $6 i32) + (local $7 f32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -13219,964 +15630,1180 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store + i32.store offset=8 local.get $1 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - i32.ge_u + local.get $2 + i32.eq if - i32.const 1360 - i32.const 1632 - i32.const 463 - i32.const 64 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return end global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 + local.get $3 i32.store local.get $0 - i32.load offset=4 local.get $1 - i32.const 1 + i32.const 2 i32.shl i32.add - local.get $2 - i32.store16 - local.get $3 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Uint16Array#__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 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 - local.tee $3 - i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - i32.ge_u - if - i32.const 1360 - i32.const 1632 - i32.const 605 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store + f32.load local.get $0 - i32.load offset=4 local.get $1 i32.const 1 + i32.add + local.tee $4 + i32.const 2 i32.shl i32.add - local.get $2 - i32.store16 + f32.load + i32.const 2 + global.set $~argumentsLength local.get $3 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Uint32Array#__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 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 - local.tee $3 + i32.load + call_indirect (type $11) i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.ge_u + i32.gt_s if - i32.const 1360 - i32.const 1632 - i32.const 889 - i32.const 64 - call $~lib/builtins/abort - unreachable + loop $while-continue|0 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.tee $6 + f32.load offset=4 + local.get $6 + f32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $11) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $2 + loop $while-continue|1 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.tee $3 + f32.load + local.set $5 + local.get $3 + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.tee $3 + f32.load + f32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $5 + f32.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.tee $1 + f32.load offset=4 + local.get $1 + f32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $11) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end end global.get $~lib/memory/__stack_pointer - local.tee $3 - 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 $3 - i32.const 4 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + local.get $4 ) - (func $~lib/typedarray/Int64Array#__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 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 - local.tee $3 - i32.const 0 - i32.store - local.get $3 + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) local.get $0 - i32.store + i32.const 255 + i32.and + local.tee $0 local.get $1 + i32.const 255 + i32.and + local.tee $1 + i32.gt_u local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.ge_u - if - i32.const 1360 - i32.const 1632 - i32.const 1031 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - 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 - local.get $3 - 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) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.lt_u i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + ) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 255 + i32.and + local.tee $2 + i32.const 10 + i32.lt_u if - i32.const 49120 - i32.const 49168 - i32.const 1 + local.get $0 + local.get $2 + i32.const 48 + i32.or + i32.store16 i32.const 1 - call $~lib/builtins/abort - unreachable + return end - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store local.get $1 - local.get $0 - i32.load offset=8 + i32.const 255 + i32.and + local.set $1 i32.const 3 - i32.shr_u - i32.ge_u - if - i32.const 1360 - i32.const 1632 - i32.const 1173 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - 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 - local.get $3 - i32.const 4 + i32.const 10 + i32.ge_u + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Float32Array#__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 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 - local.tee $3 - i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store local.get $1 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u + i32.const 100 i32.ge_u - if - i32.const 1360 - i32.const 1632 - i32.const 1315 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store + select + local.set $2 local.get $0 - i32.load offset=4 local.get $1 - i32.const 2 - i32.shl - i32.add local.get $2 - f32.store - local.get $3 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + call $~lib/util/number/utoa32_dec_lut + local.get $2 ) - (func $~lib/typedarray/Int8Array#at (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i64) (result 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 - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=8 - local.tee $2 - i32.const 0 + (local $3 i32) local.get $1 - i32.const 0 - i32.lt_s - select - i32.add - local.tee $1 - local.get $2 - i32.ge_u + i64.const 10 + i64.lt_u if - i32.const 1360 - i32.const 1632 - i32.const 48 - i32.const 33 - call $~lib/builtins/abort - unreachable + local.get $0 + local.get $1 + i64.const 48 + i64.or + i64.store16 + i32.const 1 + return end - global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 - i32.store + local.set $2 local.get $1 - local.get $0 - i32.load offset=4 - i32.add - i32.load8_s - local.set $0 - local.get $2 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/typedarray/Uint8Array#at (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + i64.const 4294967295 + i64.le_u if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $1 + i32.wrap_i64 + local.tee $3 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $3 + i32.const 100 + i32.lt_u + if (result i32) + local.get $3 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $3 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $3 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $3 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $3 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $3 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $3 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.set $0 + local.get $2 + local.get $3 + local.get $0 + call $~lib/util/number/utoa32_dec_lut + else + local.get $2 + local.get $1 + local.get $1 + i64.const 1000000000000000 + i64.lt_u + if (result i32) + local.get $1 + i64.const 1000000000000 + i64.lt_u + if (result i32) + local.get $1 + i64.const 100000000000 + i64.ge_u + i32.const 10 + i32.add + local.get $1 + i64.const 10000000000 + i64.ge_u + i32.add + else + local.get $1 + i64.const 100000000000000 + i64.ge_u + i32.const 13 + i32.add + local.get $1 + i64.const 10000000000000 + i64.ge_u + i32.add + end + else + local.get $1 + i64.const 100000000000000000 + i64.lt_u + if (result i32) + local.get $1 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 + i32.add + else + local.get $1 + i64.const -8446744073709551616 + i64.ge_u + i32.const 18 + i32.add + local.get $1 + i64.const 1000000000000000000 + i64.ge_u + i32.add + end + end + local.tee $0 + call $~lib/util/number/utoa64_dec_lut end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $1 local.get $0 - i32.load offset=8 - local.tee $2 - i32.const 0 + ) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) local.get $1 - i32.const 0 - i32.lt_s - select - i32.add - local.tee $1 - local.get $2 - i32.ge_u + i32.const 10 + i32.lt_u if - i32.const 1360 - i32.const 1632 - i32.const 190 - i32.const 33 - call $~lib/builtins/abort - unreachable + local.get $0 + local.get $1 + i32.const 48 + i32.or + i32.store16 + i32.const 1 + return end - global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 - i32.store local.get $1 - local.get $0 - i32.load offset=4 - i32.add - i32.load8_u - local.set $0 - local.get $2 - i32.const 4 - i32.add - global.set $~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 $0 + call $~lib/util/number/utoa32_dec_lut local.get $0 ) - (func $~lib/typedarray/Uint8ClampedArray#at (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + local.get $1 + i32.const 65535 + i32.and + local.tee $2 + i32.const 10 + i32.lt_u if - i32.const 49120 - i32.const 49168 - i32.const 1 + local.get $0 + local.get $2 + i32.const 48 + i32.or + i32.store16 i32.const 1 - call $~lib/builtins/abort - unreachable + return end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store local.get $1 - local.get $0 - i32.load offset=8 - local.tee $2 - i32.const 0 + i32.const 65535 + i32.and + local.set $1 local.get $1 - i32.const 0 - i32.lt_s - select - i32.add - local.tee $1 - local.get $2 - i32.ge_u - if - i32.const 1360 - i32.const 1632 - i32.const 332 - i32.const 33 - call $~lib/builtins/abort - unreachable + 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 - global.get $~lib/memory/__stack_pointer - local.tee $2 + local.set $2 local.get $0 - i32.store local.get $1 - local.get $0 - i32.load offset=4 - i32.add - i32.load8_u - local.set $0 local.get $2 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + call $~lib/util/number/utoa32_dec_lut + local.get $2 ) - (func $~lib/typedarray/Int16Array#at (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.tee $2 - i32.const 0 + (local $3 i32) local.get $1 + i32.extend8_s + local.tee $3 i32.const 0 i32.lt_s - select - i32.add - local.tee $1 - local.get $2 - i32.ge_u + local.tee $2 if - i32.const 1360 - i32.const 1632 - i32.const 475 - i32.const 33 - call $~lib/builtins/abort - unreachable + local.get $3 + i32.const -128 + i32.eq + if + local.get $0 + i64.const 15762813447372845 + i64.store + i32.const 4 + return + end + local.get $0 + i32.const 45 + i32.store16 + i32.const 0 + local.get $1 + i32.sub + local.set $1 end - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store local.get $0 - i32.load offset=4 - local.get $1 + local.get $2 i32.const 1 i32.shl i32.add - i32.load16_s local.set $0 - local.get $2 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/typedarray/Uint16Array#at (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + local.get $1 + i32.extend8_s + local.tee $3 + i32.const 10 + i32.lt_u if - i32.const 49120 - i32.const 49168 - i32.const 1 + local.get $0 + local.get $3 + i32.const 48 + i32.or + i32.store16 + local.get $2 i32.const 1 - call $~lib/builtins/abort - unreachable + i32.add + return end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.tee $2 - i32.const 0 local.get $1 - i32.const 0 - i32.lt_s - select - i32.add + i32.extend8_s local.tee $1 - local.get $2 - i32.ge_u - if - i32.const 1360 - i32.const 1632 - i32.const 617 - i32.const 33 - call $~lib/builtins/abort - unreachable + 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 - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store + local.set $3 local.get $0 - i32.load offset=4 local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $0 + local.get $3 + call $~lib/util/number/utoa32_dec_lut local.get $2 - i32.const 4 + local.get $3 i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/typedarray/Int32Array#at (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i64) (result 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 + (local $3 i32) + (local $4 i32) + local.get $1 + i64.const 0 + i64.lt_s + local.tee $3 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 - local.tee $2 - i32.const 0 - i32.store - local.get $2 + local.get $0 + i32.const 45 + i32.store16 + i64.const 0 + local.get $1 + i64.sub + local.set $1 + end local.get $0 - i32.store + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $4 local.get $1 + i64.const 10 + i64.lt_u + if + local.get $4 + local.get $1 + i64.const 48 + i64.or + i64.store16 + local.get $3 + i32.const 1 + i32.add + return + end + local.get $1 + i64.const 4294967295 + i64.le_u + if + local.get $1 + i32.wrap_i64 + local.tee $2 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $2 + i32.const 100 + i32.lt_u + if (result i32) + local.get $2 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $2 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $2 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $2 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $2 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $2 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $2 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.set $0 + local.get $4 + local.get $2 + local.get $0 + call $~lib/util/number/utoa32_dec_lut + else + local.get $4 + local.get $1 + local.get $1 + i64.const 1000000000000000 + i64.lt_u + if (result i32) + local.get $1 + i64.const 1000000000000 + i64.lt_u + if (result i32) + local.get $1 + i64.const 100000000000 + i64.ge_u + i32.const 10 + i32.add + local.get $1 + i64.const 10000000000 + i64.ge_u + i32.add + else + local.get $1 + i64.const 100000000000000 + i64.ge_u + i32.const 13 + i32.add + local.get $1 + i64.const 10000000000000 + i64.ge_u + i32.add + end + else + local.get $1 + i64.const 100000000000000000 + i64.lt_u + if (result i32) + local.get $1 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 + i32.add + else + local.get $1 + i64.const -8446744073709551616 + i64.ge_u + i32.const 18 + i32.add + local.get $1 + i64.const 1000000000000000000 + i64.ge_u + i32.add + end + end + local.tee $0 + call $~lib/util/number/utoa64_dec_lut + end local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $2 - i32.const 0 + local.get $3 + i32.add + ) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) local.get $1 i32.const 0 i32.lt_s - select - i32.add - local.tee $1 - local.get $2 - i32.ge_u + local.tee $2 if - i32.const 1360 - i32.const 1632 - i32.const 759 - i32.const 33 - call $~lib/builtins/abort - unreachable + local.get $0 + i32.const 45 + i32.store16 + i32.const 0 + local.get $1 + i32.sub + local.set $1 end - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 + local.get $2 + i32.const 1 i32.shl i32.add - i32.load local.set $0 - local.get $2 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/typedarray/Uint32Array#at (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + local.get $1 + i32.const 10 + i32.lt_u if - i32.const 49120 - i32.const 49168 - i32.const 1 + local.get $0 + local.get $1 + i32.const 48 + i32.or + i32.store16 + local.get $2 i32.const 1 - call $~lib/builtins/abort - unreachable + i32.add + return end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 local.get $0 - i32.store local.get $1 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $2 - i32.const 0 local.get $1 - i32.const 0 - i32.lt_s - select - i32.add - local.tee $1 - local.get $2 - i32.ge_u - if - i32.const 1360 - i32.const 1632 - i32.const 901 - i32.const 33 - call $~lib/builtins/abort - unreachable + 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 - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store + local.tee $0 + call $~lib/util/number/utoa32_dec_lut local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 local.get $2 - i32.const 4 i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/typedarray/Int64Array#at (param $0 i32) (param $1 i32) (result i64) - (local $2 i64) + (func $~lib/util/number/itoa_buffered (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 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 - local.tee $3 - i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store local.get $1 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u + i32.extend16_s local.tee $3 i32.const 0 - local.get $1 - i32.const 0 i32.lt_s - select - i32.add - local.tee $1 - local.get $3 - i32.ge_u + local.tee $2 if - i32.const 1360 - i32.const 1632 - i32.const 1043 - i32.const 33 - call $~lib/builtins/abort - unreachable + local.get $3 + i32.const -32768 + i32.eq + if + local.get $0 + i64.const 15481338470793261 + i64.store + local.get $0 + i32.const 3670070 + i32.store offset=8 + i32.const 6 + return + end + local.get $0 + i32.const 45 + i32.store16 + i32.const 0 + local.get $1 + i32.sub + local.set $1 end - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store local.get $0 - i32.load offset=4 - local.get $1 - i32.const 3 + local.get $2 + i32.const 1 i32.shl i32.add - i64.load - local.set $2 - local.get $3 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $~lib/typedarray/Uint64Array#at (param $0 i32) (param $1 i32) (result i64) - (local $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 16320 - i32.lt_s + local.set $0 + local.get $1 + i32.extend16_s + local.tee $3 + i32.const 10 + i32.lt_u if - i32.const 49120 - i32.const 49168 - i32.const 1 + local.get $0 + local.get $3 + i32.const 48 + i32.or + i32.store16 + local.get $2 i32.const 1 - call $~lib/builtins/abort - unreachable + i32.add + return end - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store local.get $1 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.tee $3 - i32.const 0 - local.get $1 - i32.const 0 - i32.lt_s - select - i32.add + i32.extend16_s local.tee $1 - local.get $3 - i32.ge_u - if - i32.const 1360 - i32.const 1632 - i32.const 1185 - i32.const 33 - call $~lib/builtins/abort - unreachable + 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 - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store + local.set $3 local.get $0 - i32.load offset=4 local.get $1 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $2 local.get $3 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + call $~lib/util/number/utoa32_dec_lut local.get $2 + local.get $3 + i32.add ) - (func $~lib/typedarray/Float32Array#at (param $0 i32) (param $1 i32) (result f32) - (local $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 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 + (func $~lib/util/number/dtoa_buffered (param $0 i32) (param $1 f64) (result i32) + (local $2 i32) + block $~lib/util/number/dtoa_buffered_impl|inlined.1 (result i32) + local.get $1 + f64.const 0 + f64.eq + if + local.get $0 + i32.const 48 + i32.store16 + local.get $0 + i32.const 46 + i32.store16 offset=2 + local.get $0 + i32.const 48 + i32.store16 offset=4 + i32.const 3 + br $~lib/util/number/dtoa_buffered_impl|inlined.1 + end + local.get $1 + local.get $1 + f64.sub + f64.const 0 + f64.ne + if + local.get $1 + local.get $1 + f64.ne + if + local.get $0 + i32.const 78 + i32.store16 + local.get $0 + i32.const 97 + i32.store16 offset=2 + local.get $0 + i32.const 78 + i32.store16 offset=4 + i32.const 3 + br $~lib/util/number/dtoa_buffered_impl|inlined.1 + else + local.get $1 + f64.const 0 + f64.lt + local.tee $2 + if + local.get $0 + i32.const 45 + i32.store16 + local.get $0 + i32.const 2 + i32.add + local.set $0 + end + local.get $0 + i64.const 29555310648492105 + i64.store + local.get $0 + i64.const 34058970405077102 + i64.store offset=8 + local.get $2 + i32.const 8 + i32.add + br $~lib/util/number/dtoa_buffered_impl|inlined.1 + end + unreachable + end + local.get $0 + local.get $1 + i32.const 0 + call $~lib/util/number/dtoa_core + end + ) + (func $~lib/util/number/dtoa_buffered (param $0 i32) (param $1 f32) (result i32) + (local $2 f64) + (local $3 i32) + block $~lib/util/number/dtoa_buffered_impl|inlined.0 (result i32) + local.get $1 + f64.promote_f32 + local.tee $2 + f64.const 0 + f64.eq + if + local.get $0 + i32.const 48 + i32.store16 + local.get $0 + i32.const 46 + i32.store16 offset=2 + local.get $0 + i32.const 48 + i32.store16 offset=4 + i32.const 3 + br $~lib/util/number/dtoa_buffered_impl|inlined.0 + end + local.get $2 + local.get $2 + f64.sub + f64.const 0 + f64.ne + if + local.get $2 + local.get $2 + f64.ne + if + local.get $0 + i32.const 78 + i32.store16 + local.get $0 + i32.const 97 + i32.store16 offset=2 + local.get $0 + i32.const 78 + i32.store16 offset=4 + i32.const 3 + br $~lib/util/number/dtoa_buffered_impl|inlined.0 + else + local.get $2 + f64.const 0 + f64.lt + local.tee $3 + if + local.get $0 + i32.const 45 + i32.store16 + local.get $0 + i32.const 2 + i32.add + local.set $0 + end + local.get $0 + i64.const 29555310648492105 + i64.store + local.get $0 + i64.const 34058970405077102 + i64.store offset=8 + local.get $3 + i32.const 8 + i32.add + br $~lib/util/number/dtoa_buffered_impl|inlined.0 + end + unreachable + end + local.get $0 + local.get $2 + i32.const 1 + call $~lib/util/number/dtoa_core + end + ) + (func $~lib/typedarray/Uint8ClampedArray#subarray (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 12 + 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 - local.tee $3 + 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 $0 + call $~lib/typedarray/Int8Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 local.get $3 local.get $0 + i32.load + local.tee $4 i32.store - local.get $1 + local.get $3 + local.get $4 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $3 - i32.const 0 - local.get $1 - i32.const 0 - i32.lt_s + i32.store offset=4 + local.get $3 + local.get $0 + i32.load offset=4 + i32.const 4 + local.get $2 + local.get $2 + i32.const 4 + i32.gt_s select + local.tee $0 i32.add - local.tee $1 + i32.store offset=4 local.get $3 - i32.ge_u - if - i32.const 1360 - i32.const 1632 - i32.const 1327 - i32.const 33 - call $~lib/builtins/abort - unreachable + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $2 + i32.add + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $2 + local.get $1 + local.get $2 + i32.lt_s + select end - global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $1 local.get $0 - i32.store local.get $0 - i32.load offset=4 local.get $1 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $2 - local.get $3 - i32.const 4 + i32.lt_s + select + local.get $0 + i32.sub + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $3 ) - (func $~lib/typedarray/Float64Array#at (param $0 i32) (param $1 i32) (result f64) - (local $2 f64) + (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) + (local $4 i64) + (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -14191,58 +16818,110 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store - local.get $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.tee $3 - i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 local.get $1 + call $~lib/typedarray/Int64Array#get:length + local.set $3 + local.get $2 i32.const 0 i32.lt_s - select - i32.add - local.tee $1 - local.get $3 - i32.ge_u + if (result i32) + i32.const 1 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.get $2 + local.get $3 + i32.add + i32.lt_s + end if i32.const 1360 i32.const 1632 - i32.const 1469 - i32.const 33 + i32.const 1902 + i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 - i32.store + i32.store offset=8 + local.get $2 local.get $0 i32.load offset=4 - local.get $1 - i32.const 3 - i32.shl i32.add - f64.load local.set $2 - local.get $3 - i32.const 4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $1 + i32.const 0 + local.set $0 + loop $for-loop|0 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $2 + i32.add + local.get $1 + local.get $0 + i32.const 3 + i32.shl + i32.add + i64.load + local.tee $4 + i32.wrap_i64 + local.tee $5 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i64.extend_i32_s + i32.const 255 + local.get $5 + i32.sub + i32.const 31 + i32.shr_s + i64.extend_i32_s + local.get $4 + i64.or + i64.and + i64.store8 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) - (func $~lib/typedarray/Uint8Array#reduceRight (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -14259,59 +16938,95 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $2 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $4 + local.get $1 + call $~lib/typedarray/Int16Array#get:length + local.set $3 local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.get $2 + local.get $3 + i32.add + i32.lt_s + end + if + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 + local.get $2 local.get $0 - call $~lib/typedarray/Int8Array#get:length - i32.const 1 - i32.sub + i32.load offset=4 + i32.add local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $0 loop $for-loop|0 - local.get $2 - i32.const 0 - i32.ge_s + local.get $0 + local.get $3 + i32.lt_s if - local.get $2 - local.get $4 - i32.add - i32.load8_u - local.set $5 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - i32.const 4 - global.set $~argumentsLength - local.get $3 - local.get $5 local.get $2 + i32.add + i32.const 255 + local.get $4 local.get $0 - local.get $1 - i32.load - call_indirect (type $6) - local.set $3 - local.get $2 i32.const 1 + i32.shl + i32.add + i32.load16_s + local.tee $1 i32.sub - local.set $2 + i32.const 31 + i32.shr_s + local.get $1 + i32.or + local.get $1 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i32.and + i32.store8 + local.get $0 + i32.const 1 + i32.add + local.set $0 br $for-loop|0 end end @@ -14319,226 +17034,315 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8> - (local $0 i32) - (local $1 i32) + (func $~lib/typedarray/Uint8Array#toString (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 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/typedarray/Uint8Array#join + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint8Array#subarray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - i64.const 0 - i64.store offset=8 - local.get $1 - i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer + 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 $0 + call $~lib/typedarray/Int8Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $3 + local.get $0 + i32.load + local.tee $4 + i32.store + local.get $3 + local.get $4 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $3 + local.get $0 + i32.load offset=4 + i32.const 4 + local.get $2 + local.get $2 + i32.const 4 + i32.gt_s + select + local.tee $0 + i32.add + i32.store offset=4 + local.get $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $2 + i32.add local.tee $1 i32.const 0 - i32.const 20 - memory.fill - local.get $1 - local.get $6 - i32.store local.get $1 - i32.const 3600 - i32.store offset=4 + i32.const 0 + i32.gt_s + select + else local.get $1 - local.get $6 - i32.store offset=8 - local.get $6 - call $~lib/typedarray/Int8Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - i32.load offset=4 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer + local.get $2 local.get $1 + local.get $2 + i32.lt_s + select + end + local.tee $1 + local.get $0 + local.get $0 + local.get $1 + i32.lt_s + select + local.get $0 + i32.sub + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/typedarray/Uint8Array#reduceRight (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 16 + 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 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=16 - loop $for-loop|0 - local.get $0 - local.get $1 - i32.lt_s - if - local.get $0 - local.get $3 - i32.add - i32.load8_s - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $0 - local.get $7 - i32.add - local.get $4 - local.get $0 - local.get $6 - i32.const 3600 - i32.load - call_indirect (type $2) - i32.store8 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - local.get $5 - local.get $7 - i32.store - local.get $5 - local.get $7 - call $~lib/rt/itcms/__link - local.get $5 - local.get $7 - i32.store offset=4 - local.get $5 - local.get $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer + 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 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + i32.const 1 + i32.sub + local.set $2 + loop $for-loop|0 local.get $2 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 i32.const 0 - call $~lib/typedarray/Int8Array#__get - i32.const 1 - i32.ne + i32.ge_s if - i32.const 0 - i32.const 1568 - i32.const 388 - i32.const 3 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $2 + local.get $4 + i32.add + i32.load8_u + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + i32.const 4 + global.set $~argumentsLength + local.get $3 + local.get $5 + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $6) + local.set $3 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/typedarray/Uint8Array#reduce (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 16 + 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 - call $~lib/typedarray/Int8Array#__get - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 389 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 + 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 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.set $5 + loop $for-loop|0 + local.get $2 local.get $5 - i32.const 2 - call $~lib/typedarray/Int8Array#__get - i32.const 9 - i32.ne + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 390 - i32.const 3 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $2 + local.get $4 + i32.add + i32.load8_u + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + i32.const 4 + global.set $~argumentsLength + local.get $3 + local.get $6 + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $6) + local.set $3 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - return end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 ) - (func $~lib/typedarray/Uint8Array#__get (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8Array#forEach (param $0 i32) (param $1 i32) (local $2 i32) + (local $3 i32) + (local $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 global.get $~lib/memory/__stack_pointer @@ -14553,26 +17357,83 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 + 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 $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=8 - i32.ge_u + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.set $4 + loop $for-loop|0 + local.get $2 + local.get $4 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $2 + local.get $3 + i32.add + i32.load8_u + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $4) + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint8Array#__uget (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 16320 + i32.lt_s if - i32.const 1360 - i32.const 1632 - i32.const 167 - i32.const 45 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -14580,445 +17441,293 @@ i32.load offset=4 i32.add i32.load8_u - local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8> - (local $0 i32) - (local $1 i32) + (func $~lib/typedarray/Uint64Array#subarray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - i64.const 0 - i64.store offset=8 - local.get $1 - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer + 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 $0 + call $~lib/typedarray/Int64Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $3 + local.get $0 + i32.load + local.tee $4 + i32.store + local.get $3 + local.get $4 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $3 + local.get $0 + i32.load offset=4 + i32.const 4 + local.get $2 + local.get $2 + i32.const 4 + i32.gt_s + select + local.tee $0 + i32.const 3 + i32.shl + i32.add + i32.store offset=4 + local.get $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $2 + i32.add local.tee $1 i32.const 0 - i32.const 20 - memory.fill - local.get $1 - local.get $6 - i32.store - local.get $1 - i32.const 3632 - i32.store offset=4 local.get $1 - local.get $6 - i32.store offset=8 - local.get $6 - call $~lib/typedarray/Int8Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - i32.load offset=4 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.gt_s + select + else local.get $1 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=16 - loop $for-loop|0 - local.get $0 - local.get $1 - i32.lt_s - if - local.get $0 - local.get $3 - i32.add - i32.load8_u - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $0 - local.get $7 - i32.add - local.get $4 - local.get $0 - local.get $6 - i32.const 3632 - i32.load - call_indirect (type $2) - i32.store8 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - local.get $5 - local.get $7 - i32.store - local.get $5 - local.get $7 - call $~lib/rt/itcms/__link - local.get $5 - local.get $7 - i32.store offset=4 - local.get $5 + local.get $2 local.get $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer local.get $2 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - call $~lib/typedarray/Uint8Array#__get + i32.lt_s + select + end + local.tee $1 + local.get $0 + local.get $0 + local.get $1 + i32.lt_s + select + local.get $0 + i32.sub + i32.const 3 + i32.shl + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/typedarray/Uint64Array#sort (param $0 i32) (param $1 i32) (result 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 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 388 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 i32.const 1 - call $~lib/typedarray/Uint8Array#__get - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 389 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 2 - call $~lib/typedarray/Uint8Array#__get - i32.const 9 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 390 - 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 + call $~lib/builtins/abort + unreachable end - i32.const 49120 - i32.const 49168 - 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 offset=4 + local.get $0 + i32.load offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/util/sort/SORT + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8> - (local $0 i32) - (local $1 i32) + (func $~lib/typedarray/Uint64Array#some (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 $5 i64) 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - i64.const 0 - i64.store offset=8 - local.get $1 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - 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.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.const 20 - memory.fill - local.get $1 - local.get $6 - i32.store - local.get $1 - i32.const 3664 - i32.store offset=4 - local.get $1 - local.get $6 - i32.store offset=8 - local.get $6 - call $~lib/typedarray/Int8Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - i32.load offset=4 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=16 + 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 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.set $4 + block $"~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0" (result i32) loop $for-loop|0 - local.get $0 - local.get $1 + local.get $2 + local.get $4 i32.lt_s if - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 + local.get $2 + i32.const 3 + i32.shl i32.add - i32.load8_u - local.set $4 + i64.load + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength + i32.const 1 + local.get $5 + local.get $2 local.get $0 - local.get $7 - i32.add - local.get $4 - local.get $0 - local.get $6 - i32.const 3664 + local.get $1 i32.load - call_indirect (type $2) - i32.store8 - local.get $0 + call_indirect (type $8) + br_if $"~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0" + drop + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|0 end end - local.get $5 - local.get $7 - i32.store - local.get $5 - local.get $7 - call $~lib/rt/itcms/__link - local.get $5 - local.get $7 - i32.store offset=4 - local.get $5 - local.get $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#__get + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint64Array#join (param $0 i32) (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 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 388 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 389 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 9 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 390 - 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 + call $~lib/builtins/abort + unreachable end - i32.const 49120 - i32.const 49168 - 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 offset=4 + local.get $0 + i32.load offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store + call $~lib/util/string/joinIntegerArray + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Int16Array#__get (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint64Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) (local $2 i32) + (local $3 i32) + (local $4 i64) 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 @@ -15033,268 +17742,250 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 + 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 $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=8 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int64Array#get:length i32.const 1 - i32.shr_u - i32.ge_u + i32.sub + local.set $2 + block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0" + loop $for-loop|0 + local.get $2 + i32.const 0 + i32.ge_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $3 + local.get $2 + i32.const 3 + i32.shl + i32.add + i64.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $8) + br_if $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0" + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $for-loop|0 + end + end + i32.const -1 + local.set $2 + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/typedarray/Uint64Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i64) + 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 16320 + i32.lt_s if - i32.const 1360 - i32.const 1632 - i32.const 452 - i32.const 64 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + 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 $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 local.get $0 i32.load offset=4 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $0 - local.get $2 - i32.const 4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.set $4 + block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0" + loop $for-loop|0 + local.get $2 + local.get $4 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $3 + local.get $2 + i32.const 3 + i32.shl + i32.add + i64.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $8) + br_if $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0" + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const -1 + local.set $2 + end + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $2 ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16> - (local $0 i32) - (local $1 i32) + (func $~lib/typedarray/Uint64Array#every (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) + (local $5 i64) 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - i64.const 0 - i64.store offset=8 - local.get $1 - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $8 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.const 20 - memory.fill - local.get $1 - local.get $8 - i32.store - local.get $1 - i32.const 3696 - i32.store offset=4 - local.get $1 - local.get $8 - i32.store offset=8 - local.get $8 - call $~lib/typedarray/Int16Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - i32.load offset=4 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - i32.shl - local.tee $4 i32.const 1 - call $~lib/rt/itcms/__new - local.tee $9 - i32.store offset=16 + 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 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.set $4 + block $"~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0" (result i32) loop $for-loop|0 - local.get $0 - local.get $1 + local.get $2 + local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 - local.get $0 - i32.const 1 + local.get $2 + i32.const 3 i32.shl - local.tee $5 i32.add - i32.load16_s - local.set $6 + i64.load + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength + i32.const 0 local.get $5 - local.get $9 - i32.add - local.get $6 + local.get $2 local.get $0 - local.get $8 - i32.const 3696 + local.get $1 i32.load - call_indirect (type $2) - i32.store16 - local.get $0 + call_indirect (type $8) + i32.eqz + br_if $"~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0" + drop + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|0 end end - local.get $7 - local.get $9 - i32.store - local.get $7 - local.get $9 - call $~lib/rt/itcms/__link - local.get $7 - local.get $9 - i32.store offset=4 - local.get $7 - local.get $4 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - call $~lib/typedarray/Int16Array#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 388 - 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 i32.const 1 - call $~lib/typedarray/Int16Array#__get - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 389 - 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 - i32.const 2 - call $~lib/typedarray/Int16Array#__get - i32.const 9 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 390 - 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 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint16Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/typedarray/Uint64Array#__uget (param $0 i32) (param $1 i32) (result i64) + (local $2 i64) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -15311,279 +18002,269 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - i32.ge_u - if - i32.const 1360 - i32.const 1632 - i32.const 594 - i32.const 64 - call $~lib/builtins/abort - unreachable - end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $0 i32.load offset=4 local.get $1 - i32.const 1 + i32.const 3 i32.shl i32.add - i32.load16_u - local.set $0 - local.get $2 + i64.load + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16> - (local $0 i32) - (local $1 i32) + (func $~lib/typedarray/Uint32Array#subarray (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 16 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - i64.const 0 - i64.store offset=8 - local.get $1 - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $8 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer + 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 $0 + call $~lib/typedarray/Int32Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $3 + local.get $0 + i32.load + local.tee $4 + i32.store + local.get $3 + local.get $4 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $3 + local.get $0 + i32.load offset=4 + i32.const 4 + local.get $2 + local.get $2 + i32.const 4 + i32.gt_s + select + local.tee $0 + i32.const 2 + i32.shl + i32.add + i32.store offset=4 + local.get $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $2 + i32.add local.tee $1 i32.const 0 - i32.const 20 - memory.fill local.get $1 - local.get $8 - i32.store - local.get $1 - i32.const 3728 - i32.store offset=4 + i32.const 0 + i32.gt_s + select + else local.get $1 - local.get $8 - i32.store offset=8 - local.get $8 - call $~lib/typedarray/Int16Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - i32.load offset=4 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 8 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer + local.get $2 local.get $1 + local.get $2 + i32.lt_s + select + end + local.tee $1 + local.get $0 + local.get $0 + local.get $1 + i32.lt_s + select + local.get $0 + i32.sub + i32.const 2 + i32.shl + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/typedarray/Uint32Array#sort (param $0 i32) (param $1 i32) (result 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 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - i32.shl - local.tee $4 i32.const 1 - call $~lib/rt/itcms/__new - local.tee $9 - i32.store offset=16 + 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 offset=4 + local.get $0 + i32.load offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/util/sort/SORT + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/typedarray/Uint32Array#some (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 16 + 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 + 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 $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.set $4 + block $"~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0" (result i32) loop $for-loop|0 - local.get $0 - local.get $1 + local.get $2 + local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 - local.get $0 - i32.const 1 + local.get $2 + i32.const 2 i32.shl - local.tee $5 i32.add - i32.load16_u - local.set $6 + i32.load + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength + i32.const 1 local.get $5 - local.get $9 - i32.add - local.get $6 + local.get $2 local.get $0 - local.get $8 - i32.const 3728 + local.get $1 i32.load - call_indirect (type $2) - i32.store16 - local.get $0 + call_indirect (type $1) + br_if $"~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0" + drop + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|0 end end - local.get $7 - local.get $9 - i32.store - local.get $7 - local.get $9 - call $~lib/rt/itcms/__link - local.get $7 - local.get $9 - i32.store offset=4 - local.get $7 - local.get $4 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 i32.const 0 - call $~lib/typedarray/Uint16Array#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 388 - 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 - i32.const 1 - call $~lib/typedarray/Uint16Array#__get - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 389 - 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 - i32.const 2 - call $~lib/typedarray/Uint16Array#__get - i32.const 9 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 390 - 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 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32> - (local $0 i32) + (func $~lib/typedarray/Uint32Array#join (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -15592,48 +18273,25 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 - i64.const 0 - i64.store offset=8 - local.get $1 - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $8 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=4 - local.get $8 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.set $2 + local.get $0 + i32.load offset=4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 3760 - i32.store offset=8 + i32.const 9584 + i32.store global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -15641,149 +18299,144 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.const 20 - memory.fill - local.get $1 - local.get $8 - i32.store - local.get $1 - i32.const 3760 - i32.store offset=4 - local.get $1 - local.get $8 - i32.store offset=8 - local.get $8 - call $~lib/typedarray/Int32Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - i32.load offset=4 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 9 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 2 - i32.shl - local.tee $4 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $9 - i32.store offset=16 - loop $for-loop|0 + i64.const 0 + i64.store + block $__inlined_func$~lib/util/string/joinIntegerArray$1423 local.get $0 - local.get $1 + i32.const 1 + i32.sub + local.tee $6 + i32.const 0 i32.lt_s if - local.get $3 - local.get $0 - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.load - local.set $6 global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $5 - local.get $9 + i32.const 8 i32.add - local.get $6 - local.get $0 - local.get $8 - i32.const 3760 + global.set $~lib/memory/__stack_pointer + i32.const 7776 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray$1423 + end + local.get $6 + i32.eqz + if + local.get $5 i32.load - call_indirect (type $2) - i32.store - local.get $0 - i32.const 1 - i32.add + call $~lib/util/number/utoa32 local.set $0 - br $for-loop|0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$1423 end - end - local.get $7 - local.get $9 - i32.store - local.get $7 - local.get $9 - call $~lib/rt/itcms/__link - local.get $7 - local.get $9 - i32.store offset=4 - local.get $7 - local.get $4 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - call $~lib/typedarray/Int32Array#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 388 - 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 - i32.const 1 - call $~lib/typedarray/Int32Array#__get - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 389 - 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 - i32.const 2 - call $~lib/typedarray/Int32Array#__get - i32.const 9 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 390 - i32.const 3 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 9580 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 10 + i32.add + local.get $6 + i32.mul + i32.const 10 + i32.add + local.tee $2 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + loop $for-loop|0 + local.get $3 + local.get $6 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.set $1 + local.get $4 + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 9584 + local.get $4 + i32.const 1 + i32.shl + memory.copy + local.get $1 + local.get $4 + i32.add + local.set $1 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $2 + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.tee $1 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $~lib/string/String#substring + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$1423 + end + 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 16 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 return end i32.const 49120 @@ -15793,10 +18446,12 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/typedarray/Uint32Array#__get (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint32Array#findLastIndex (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 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -15811,271 +18466,166 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 + 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 $1 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.ge_u - if - i32.const 1360 - i32.const 1632 - i32.const 878 - i32.const 64 - call $~lib/builtins/abort - unreachable - end + i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 - i32.store + i32.store offset=8 local.get $0 i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - local.get $2 - i32.const 4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + i32.const 1 + i32.sub + local.set $2 + block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0" + loop $for-loop|0 + local.get $2 + i32.const 0 + i32.ge_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $3 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $1) + br_if $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0" + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $for-loop|0 + end + end + i32.const -1 + local.set $2 + end + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $2 ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32> - (local $0 i32) - (local $1 i32) + (func $~lib/typedarray/Uint32Array#findIndex (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 16 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - i64.const 0 - i64.store offset=8 - local.get $1 - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $8 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.const 20 - memory.fill - local.get $1 - local.get $8 - i32.store - local.get $1 - i32.const 3792 - i32.store offset=4 - local.get $1 - local.get $8 - i32.store offset=8 - local.get $8 - call $~lib/typedarray/Int32Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - i32.load offset=4 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 10 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 2 - i32.shl - local.tee $4 i32.const 1 - call $~lib/rt/itcms/__new - local.tee $9 - i32.store offset=16 + 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 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.set $4 + block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0" loop $for-loop|0 - local.get $0 - local.get $1 + local.get $2 + local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 - local.get $0 + local.get $2 i32.const 2 i32.shl - local.tee $5 i32.add i32.load - local.set $6 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $5 - local.get $9 - i32.add - local.get $6 + local.get $2 local.get $0 - local.get $8 - i32.const 3792 + local.get $1 i32.load - call_indirect (type $2) - i32.store - local.get $0 + call_indirect (type $1) + br_if $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0" + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|0 end end - local.get $7 - local.get $9 - i32.store - local.get $7 - local.get $9 - call $~lib/rt/itcms/__link - local.get $7 - local.get $9 - i32.store offset=4 - local.get $7 - local.get $4 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - call $~lib/typedarray/Uint32Array#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 388 - 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 - i32.const 1 - call $~lib/typedarray/Uint32Array#__get - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 389 - 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 - i32.const 2 - call $~lib/typedarray/Uint32Array#__get - i32.const 9 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 390 - 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 + i32.const -1 + local.set $2 end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 ) - (func $~lib/typedarray/Int64Array#__get (param $0 i32) (param $1 i32) (result i64) - (local $2 i64) + (func $~lib/typedarray/Uint32Array#every (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.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -16090,271 +18640,220 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $3 + 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 $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.ge_u + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.set $4 + block $"~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0" (result i32) + loop $for-loop|0 + local.get $2 + local.get $4 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $3 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + local.get $5 + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $1) + i32.eqz + br_if $"~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0" + drop + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 1 + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint32Array#__uget (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 16320 + i32.lt_s if - i32.const 1360 - i32.const 1632 - i32.const 1020 - i32.const 64 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + i32.const 0 + i32.store + 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.const 2 i32.shl i32.add - i64.load - local.set $2 - local.get $3 + i32.load + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64> - (local $0 i32) - (local $1 i32) + (func $~lib/typedarray/Uint16Array#subarray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i64) - (local $7 i32) - (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - i64.const 0 - i64.store offset=8 - local.get $1 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $8 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer + 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 $0 + call $~lib/typedarray/Int16Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $3 + local.get $0 + i32.load + local.tee $4 + i32.store + local.get $3 + local.get $4 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $3 + local.get $0 + i32.load offset=4 + i32.const 4 + local.get $2 + local.get $2 + i32.const 4 + i32.gt_s + select + local.tee $0 + i32.const 1 + i32.shl + i32.add + i32.store offset=4 + local.get $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $2 + i32.add local.tee $1 i32.const 0 - i32.const 20 - memory.fill - local.get $1 - local.get $8 - i32.store local.get $1 - i32.const 3824 - i32.store offset=4 + i32.const 0 + i32.gt_s + select + else local.get $1 - local.get $8 - i32.store offset=8 - local.get $8 - call $~lib/typedarray/Int64Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - i32.load offset=4 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer + local.get $2 local.get $1 - i32.const 3 - i32.shl - local.tee $4 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $9 - i32.store offset=16 - loop $for-loop|0 - local.get $0 - local.get $1 - i32.lt_s - if - local.get $3 - local.get $0 - i32.const 3 - i32.shl - local.tee $5 - i32.add - i64.load - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $5 - local.get $9 - i32.add - local.get $6 - local.get $0 - local.get $8 - i32.const 3824 - i32.load - call_indirect (type $24) - i64.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - local.get $7 - local.get $9 - i32.store - local.get $7 - local.get $9 - call $~lib/rt/itcms/__link - local.get $7 - local.get $9 - i32.store offset=4 - local.get $7 - local.get $4 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer local.get $2 - local.get $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - call $~lib/typedarray/Int64Array#__get - i64.const 1 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 388 - 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 - i32.const 1 - call $~lib/typedarray/Int64Array#__get - i64.const 4 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 389 - 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 - i32.const 2 - call $~lib/typedarray/Int64Array#__get - i64.const 9 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 390 - 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 + i32.lt_s + select end - i32.const 49120 - i32.const 49168 - i32.const 1 + local.tee $1 + local.get $0 + local.get $0 + local.get $1 + i32.lt_s + select + local.get $0 + i32.sub i32.const 1 - call $~lib/builtins/abort - unreachable + i32.shl + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 ) - (func $~lib/typedarray/Uint64Array#__get (param $0 i32) (param $1 i32) (result i64) - (local $2 i64) + (func $~lib/typedarray/Uint16Array#sort (param $0 i32) (param $1 i32) (result 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 @@ -16369,57 +18868,126 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $3 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 local.get $0 + call $~lib/typedarray/Int16Array#get:length + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store local.get $1 + call $~lib/util/sort/SORT + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.ge_u + ) + (func $~lib/typedarray/Uint16Array#some (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 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s if - i32.const 1360 - i32.const 1632 - i32.const 1162 - i32.const 64 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + 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 $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 local.get $0 i32.load offset=4 - local.get $1 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $2 - local.get $3 - i32.const 4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.set $4 + block $"~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0" (result i32) + loop $for-loop|0 + local.get $2 + local.get $4 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $3 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + i32.const 1 + local.get $5 + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $1) + br_if $"~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0" + drop + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 0 + end + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64> - (local $0 i32) + (func $~lib/typedarray/Uint16Array#join (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i64) - (local $7 i32) - (local $8 i32) - (local $9 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -16428,48 +18996,25 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 - i64.const 0 - i64.store offset=8 - local.get $1 - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $8 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=4 - local.get $8 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.set $2 + local.get $0 + i32.load offset=4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 3856 - i32.store offset=8 + i32.const 9584 + i32.store global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -16477,149 +19022,144 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.const 20 - memory.fill - local.get $1 - local.get $8 - i32.store - local.get $1 - i32.const 3856 - i32.store offset=4 - local.get $1 - local.get $8 - i32.store offset=8 - local.get $8 - call $~lib/typedarray/Int64Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - i32.load offset=4 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 12 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 3 - i32.shl - local.tee $4 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $9 - i32.store offset=16 - loop $for-loop|0 + i64.const 0 + i64.store + block $__inlined_func$~lib/util/string/joinIntegerArray$1421 local.get $0 - local.get $1 + i32.const 1 + i32.sub + local.tee $6 + i32.const 0 i32.lt_s if - local.get $3 - local.get $0 - i32.const 3 - i32.shl - local.tee $5 - i32.add - i64.load - local.set $6 global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 7776 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray$1421 + end + local.get $6 + i32.eqz + if local.get $5 - local.get $9 + i32.load16_u + call $~lib/util/number/utoa32 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$1421 + end + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 9580 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 10 + i32.add + local.get $6 + i32.mul + i32.const 10 + i32.add + local.tee $2 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + loop $for-loop|0 + local.get $3 local.get $6 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.load16_u + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.set $1 + local.get $4 + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 9584 + local.get $4 + i32.const 1 + i32.shl + memory.copy + local.get $1 + local.get $4 + i32.add + local.set $1 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $2 + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $6 + i32.const 1 + i32.shl + i32.add + i32.load16_u + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.tee $1 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $8 - i32.const 3856 - i32.load - call_indirect (type $24) - i64.store + i32.store local.get $0 - i32.const 1 - i32.add + local.get $1 + call $~lib/string/String#substring local.set $0 - br $for-loop|0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$1421 end - end - local.get $7 - local.get $9 - i32.store - local.get $7 - local.get $9 - call $~lib/rt/itcms/__link - local.get $7 - local.get $9 - i32.store offset=4 - local.get $7 - local.get $4 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - call $~lib/typedarray/Uint64Array#__get - i64.const 1 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 388 - 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 - i32.const 1 - call $~lib/typedarray/Uint64Array#__get - i64.const 4 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 389 - 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 - i32.const 2 - call $~lib/typedarray/Uint64Array#__get - i64.const 9 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 390 - i32.const 3 - call $~lib/builtins/abort - unreachable + 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 16 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 return end i32.const 49120 @@ -16629,11 +19169,12 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/typedarray/Float32Array#__get (param $0 i32) (param $1 i32) (result f32) - (local $2 f32) + (func $~lib/typedarray/Uint16Array#findLastIndex (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 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -16648,1034 +19189,775 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $3 + 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 $1 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.ge_u - if - i32.const 1360 - i32.const 1632 - i32.const 1304 - i32.const 64 - call $~lib/builtins/abort - unreachable - end + i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 - i32.store + i32.store offset=8 local.get $0 i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - f32.load + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int16Array#get:length + i32.const 1 + i32.sub local.set $2 - local.get $3 - i32.const 4 + block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0" + loop $for-loop|0 + local.get $2 + i32.const 0 + i32.ge_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $3 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.load16_u + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $1) + br_if $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0" + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $for-loop|0 + end + end + i32.const -1 + local.set $2 + end + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $2 ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32> - (local $0 i32) - (local $1 i32) + (func $~lib/typedarray/Uint16Array#findIndex (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 f32) - (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-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - i64.const 0 - i64.store offset=8 - local.get $1 - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $8 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 2 - f32.const 3 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.const 20 - memory.fill - local.get $1 - local.get $8 - i32.store - local.get $1 - i32.const 3888 - i32.store offset=4 - local.get $1 - local.get $8 - i32.store offset=8 - local.get $8 - call $~lib/typedarray/Int32Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - i32.load offset=4 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 13 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 2 - i32.shl - local.tee $4 i32.const 1 - call $~lib/rt/itcms/__new - local.tee $9 - i32.store offset=16 + 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 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.set $4 + block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0" loop $for-loop|0 - local.get $0 - local.get $1 + local.get $2 + local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 - local.get $0 - i32.const 2 + local.get $2 + i32.const 1 i32.shl - local.tee $5 i32.add - f32.load - local.set $6 + i32.load16_u global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $5 - local.get $9 - i32.add - local.get $6 + local.get $2 local.get $0 - local.get $8 - i32.const 3888 + local.get $1 i32.load - call_indirect (type $29) - f32.store - local.get $0 + call_indirect (type $1) + br_if $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0" + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|0 end end - local.get $7 - local.get $9 - i32.store - local.get $7 - local.get $9 - call $~lib/rt/itcms/__link - local.get $7 - local.get $9 - i32.store offset=4 - local.get $7 - local.get $4 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - call $~lib/typedarray/Float32Array#__get - f32.const 1 - f32.ne - if - i32.const 0 - i32.const 1568 - i32.const 388 - 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 - i32.const 1 - call $~lib/typedarray/Float32Array#__get - f32.const 4 - f32.ne - if - i32.const 0 - i32.const 1568 - i32.const 389 - 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 - i32.const 2 - call $~lib/typedarray/Float32Array#__get - f32.const 9 - f32.ne - if - i32.const 0 - i32.const 1568 - i32.const 390 - 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 + i32.const -1 + local.set $2 end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64> - (local $0 i32) - (local $1 i32) + (func $~lib/typedarray/Uint16Array#every (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 f64) - (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-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - i64.const 0 - i64.store offset=8 - local.get $1 - i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $8 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 2 - f64.const 3 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.const 20 - memory.fill - local.get $1 - local.get $8 - i32.store - local.get $1 - i32.const 3920 - i32.store offset=4 - local.get $1 - local.get $8 - i32.store offset=8 - local.get $8 - call $~lib/typedarray/Int64Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - i32.load offset=4 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 14 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 3 - i32.shl - local.tee $4 i32.const 1 - call $~lib/rt/itcms/__new - local.tee $9 - i32.store offset=16 + 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 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.set $4 + block $"~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0" (result i32) loop $for-loop|0 - local.get $0 - local.get $1 + local.get $2 + local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 - local.get $0 - i32.const 3 + local.get $2 + i32.const 1 i32.shl - local.tee $5 i32.add - f64.load - local.set $6 + i32.load16_u + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength + i32.const 0 local.get $5 - local.get $9 - i32.add - local.get $6 + local.get $2 local.get $0 - local.get $8 - i32.const 3920 + local.get $1 i32.load - call_indirect (type $30) - f64.store - local.get $0 + call_indirect (type $1) + i32.eqz + br_if $"~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0" + drop + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|0 end end - local.get $7 - local.get $9 - i32.store - local.get $7 - local.get $9 - call $~lib/rt/itcms/__link - local.get $7 - local.get $9 - i32.store offset=4 - local.get $7 - local.get $4 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - call $~lib/typedarray/Float64Array#__get - f64.const 1 - f64.ne - if - i32.const 0 - i32.const 1568 - i32.const 388 - 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 i32.const 1 - call $~lib/typedarray/Float64Array#__get - f64.const 4 - f64.ne - if - i32.const 0 - i32.const 1568 - i32.const 389 - 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 - i32.const 2 - call $~lib/typedarray/Float64Array#__get - f64.const 9 - f64.ne - if - i32.const 0 - i32.const 1568 - i32.const 390 - 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 49120 - i32.const 49168 - i32.const 1 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint16Array#__uget (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 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 i32.const 1 - call $~lib/builtins/abort - unreachable + i32.shl + i32.add + i32.load16_u + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8> - (local $0 i32) - (local $1 i32) + (func $~lib/typedarray/Int8Array#sort (param $0 i32) (param $1 i32) (result 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 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 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/util/sort/SORT + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/typedarray/Int8Array#some (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 16 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i64.const 0 - i64.store offset=8 - local.get $2 - i32.const 6 - call $~lib/typedarray/Int8Array#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 5 - i32.const 5 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.const 20 - memory.fill - local.get $2 - local.get $6 - i32.store - local.get $2 - i32.const 3952 - i32.store offset=4 - local.get $2 - local.get $6 - i32.store offset=8 - local.get $6 - call $~lib/typedarray/Int8Array#get:length - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - i32.load offset=4 - local.set $5 + 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 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.set $4 + block $"~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0" (result i32) loop $for-loop|0 - local.get $1 - local.get $8 + local.get $2 + local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $5 + i32.store offset=12 + local.get $2 + local.get $3 i32.add i32.load8_s - local.set $3 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $3 + i32.const 1 + local.get $5 + local.get $2 + local.get $0 local.get $1 - local.get $6 - i32.const 3952 i32.load - call_indirect (type $2) - if - local.get $0 - local.get $2 - i32.add - local.get $3 - i32.store8 - local.get $0 - i32.const 1 - i32.add - local.set $0 - end - local.get $1 + call_indirect (type $1) + br_if $"~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0" + drop + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|0 end end - local.get $7 - local.get $2 - local.get $0 - call $~lib/rt/itcms/__renew - local.tee $1 - i32.store - local.get $7 - local.get $1 - call $~lib/rt/itcms/__link - local.get $7 - local.get $0 - i32.store offset=8 - local.get $7 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - if - i32.const 0 - i32.const 1568 - i32.const 413 - 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/typedarray/Int8Array#get:length - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 414 - 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 i32.const 0 - call $~lib/typedarray/Int8Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 415 - 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 + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $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 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - call $~lib/typedarray/Int8Array#__get - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 416 - 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 - i32.const 2 - call $~lib/typedarray/Int8Array#__get + 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 $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int64Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.get $2 + i32.const 6 + i32.add + i32.lt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1902 i32.const 5 - i32.ne + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 6 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $1 + i32.const 0 + local.set $0 + loop $for-loop|0 + local.get $0 + local.get $2 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 417 + local.get $0 + local.get $3 + i32.add + local.get $1 + local.get $0 i32.const 3 - call $~lib/builtins/abort - unreachable + i32.shl + i32.add + i64.load + i64.store8 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - return end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8> - (local $0 i32) - (local $1 i32) + (func $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i64.const 0 - i64.store offset=8 - local.get $2 - i32.const 6 - call $~lib/typedarray/Uint8Array#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 5 + 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 $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int16Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.get $2 + i32.const 4 + i32.add + i32.lt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1902 i32.const 5 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.const 20 - memory.fill - local.get $2 - local.get $6 - i32.store - local.get $2 - i32.const 3984 - i32.store offset=4 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 4 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $1 + i32.const 0 + local.set $0 + loop $for-loop|0 + local.get $0 local.get $2 - local.get $6 - i32.store offset=8 - local.get $6 - call $~lib/typedarray/Int8Array#get:length - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - i32.load offset=4 - local.set $5 - loop $for-loop|0 + i32.lt_s + if + local.get $0 + local.get $3 + i32.add local.get $1 - local.get $8 - i32.lt_s - if - local.get $1 - local.get $5 - i32.add - i32.load8_u - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $3 - local.get $1 - local.get $6 - i32.const 3984 - i32.load - call_indirect (type $2) - if - local.get $0 - local.get $2 - i32.add - local.get $3 - i32.store8 - local.get $0 - i32.const 1 - i32.add - local.set $0 - end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 - end + local.get $0 + i32.const 1 + i32.shl + i32.add + i32.load16_s + i32.store8 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - local.get $7 - local.get $2 - local.get $0 - call $~lib/rt/itcms/__renew - local.tee $1 - i32.store - local.get $7 - local.get $1 - call $~lib/rt/itcms/__link - local.get $7 - local.get $0 - i32.store offset=8 - local.get $7 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - if - i32.const 0 - i32.const 1568 - i32.const 413 - 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/typedarray/Int8Array#get:length - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 414 - 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 - i32.const 0 - call $~lib/typedarray/Uint8Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 415 - 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 + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int8Array#set<~lib/array/Array> (param $0 i32) + (local $1 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 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - call $~lib/typedarray/Uint8Array#__get - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 416 - 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 - i32.const 2 - call $~lib/typedarray/Uint8Array#__get + 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 + i32.const 11264 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=8 + i32.const 11264 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.get $1 + i32.const 7 + i32.add + i32.lt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1902 i32.const 5 - i32.ne + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 7 + i32.add + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=8 + i32.const 11268 + i32.load + local.get $1 + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int8Array#set<~lib/array/Array> (param $0 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 + 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 + 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 + i32.const 11008 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=8 + i32.const 11008 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.get $1 + i32.lt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=8 + i32.const 11012 + i32.load + local.set $3 + i32.const 0 + local.set $0 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 417 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $0 + local.get $2 + i32.add + local.get $3 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + i32.store8 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - return end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8> - (local $0 i32) + (func $~lib/typedarray/Int8Array#join (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) - (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -17684,62 +19966,25 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 - i64.const 0 - i64.store offset=8 - local.get $2 - i32.const 6 - call $~lib/typedarray/Uint8ClampedArray#constructor - 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.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.store offset=4 - local.get $6 - i32.const 5 - i32.const 5 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.set $4 + local.get $0 + i32.load offset=4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 4016 - i32.store offset=8 + i32.const 9584 + i32.store global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -17747,181 +19992,140 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.const 20 - memory.fill - local.get $2 - local.get $6 - i32.store - local.get $2 - i32.const 4016 - i32.store offset=4 - local.get $2 - local.get $6 - i32.store offset=8 - local.get $6 - call $~lib/typedarray/Int8Array#get:length - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - i32.load offset=4 - local.set $5 - loop $for-loop|0 - local.get $1 - local.get $8 + i64.const 0 + i64.store + block $__inlined_func$~lib/util/string/joinIntegerArray$1418 + local.get $0 + i32.const 1 + i32.sub + local.tee $6 + i32.const 0 i32.lt_s if - local.get $1 - local.get $5 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - i32.load8_u - local.set $3 + global.set $~lib/memory/__stack_pointer + i32.const 7776 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray$1418 + end + local.get $6 + i32.eqz + if + local.get $5 + i32.load8_s + call $~lib/util/number/itoa32 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$1418 + end + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 9580 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 11 + i32.add + local.get $6 + i32.mul + i32.const 11 + i32.add + local.tee $2 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + loop $for-loop|0 local.get $3 - local.get $1 local.get $6 - i32.const 4016 - i32.load - call_indirect (type $2) + i32.lt_s if local.get $0 - local.get $2 + local.get $1 + i32.const 1 + i32.shl i32.add local.get $3 - i32.store8 - local.get $0 + local.get $5 + i32.add + i32.load8_s + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.set $1 + local.get $4 + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 9584 + local.get $4 + i32.const 1 + i32.shl + memory.copy + local.get $1 + local.get $4 + i32.add + local.set $1 + end + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 + br $for-loop|0 end + end + local.get $2 + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $6 + i32.add + i32.load8_s + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.tee $1 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 local.get $1 - i32.const 1 + call $~lib/string/String#substring + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.set $1 - br $for-loop|0 + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$1418 end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer end - local.get $7 - local.get $2 - local.get $0 - call $~lib/rt/itcms/__renew - local.tee $1 - i32.store - local.get $7 - local.get $1 - call $~lib/rt/itcms/__link - local.get $7 - local.get $0 - i32.store offset=8 - local.get $7 - local.get $1 - i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - if - i32.const 0 - i32.const 1568 - i32.const 413 - 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/typedarray/Int8Array#get:length - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 414 - 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 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 415 - 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 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 416 - 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 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 5 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 417 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 return end i32.const 49120 @@ -17931,1377 +20135,1318 @@ call $~lib/builtins/abort unreachable ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16> - (local $0 i32) - (local $1 i32) + (func $~lib/typedarray/Int8Array#findLastIndex (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 16 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i64.const 0 - i64.store offset=8 - local.get $2 - i32.const 6 - call $~lib/typedarray/Int16Array#constructor - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 i32.const 1 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 5 - i32.const 5 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.const 20 - memory.fill - local.get $2 - local.get $7 - i32.store - local.get $2 - i32.const 4048 - i32.store offset=4 - local.get $2 - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/typedarray/Int16Array#get:length - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $8 + 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 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + i32.const 1 + i32.sub + local.set $2 + block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0" + loop $for-loop|0 + local.get $2 + i32.const 0 + i32.ge_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $2 + local.get $3 + i32.add + i32.load8_s + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $1) + br_if $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0" + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $for-loop|0 + end + end + i32.const -1 + local.set $2 + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/typedarray/Int8Array#findIndex (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 16 + 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.shl i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - i32.load offset=4 - local.set $5 + 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 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.set $4 + block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0" loop $for-loop|0 - local.get $1 - local.get $8 + local.get $2 + local.get $4 i32.lt_s if - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.const 1 - i32.shl + i32.store offset=12 + local.get $2 + local.get $3 i32.add - i32.load16_s - local.set $3 + i32.load8_s global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $3 + local.get $2 + local.get $0 local.get $1 - local.get $7 - i32.const 4048 i32.load - call_indirect (type $2) - if - local.get $2 - local.get $0 - i32.const 1 - i32.shl - i32.add - local.get $3 - i32.store16 - local.get $0 - i32.const 1 - i32.add - local.set $0 - end - local.get $1 + call_indirect (type $1) + br_if $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0" + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|0 end end - local.get $6 - local.get $2 - local.get $0 - i32.const 1 - i32.shl - local.tee $0 - call $~lib/rt/itcms/__renew - local.tee $1 - i32.store - local.get $6 - local.get $1 - call $~lib/rt/itcms/__link - local.get $6 - local.get $0 - i32.store offset=8 - local.get $6 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - if - i32.const 0 - i32.const 1568 - i32.const 413 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/typedarray/Int16Array#get:length - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 414 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/typedarray/Int16Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 415 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - call $~lib/typedarray/Int16Array#__get - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 416 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - call $~lib/typedarray/Int16Array#__get - i32.const 5 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 417 - 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 + i32.const -1 + local.set $2 end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16> - (local $0 i32) - (local $1 i32) + (func $~lib/typedarray/Int8Array#every (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 16 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i64.const 0 - i64.store offset=8 - local.get $2 - i32.const 6 - call $~lib/typedarray/Uint16Array#constructor - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 5 - i32.const 5 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.const 20 - memory.fill - local.get $2 - local.get $7 - i32.store - local.get $2 - i32.const 4080 - i32.store offset=4 - local.get $2 - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/typedarray/Int16Array#get:length - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 8 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - i32.load offset=4 - local.set $5 + 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 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.set $4 + block $"~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0" (result i32) loop $for-loop|0 - local.get $1 - local.get $8 + local.get $2 + local.get $4 i32.lt_s if - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.const 1 - i32.shl + i32.store offset=12 + local.get $2 + local.get $3 i32.add - i32.load16_u - local.set $3 + i32.load8_s + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $3 + i32.const 0 + local.get $5 + local.get $2 + local.get $0 local.get $1 - local.get $7 - i32.const 4080 i32.load - call_indirect (type $2) - if - local.get $2 - local.get $0 - i32.const 1 - i32.shl - i32.add - local.get $3 - i32.store16 - local.get $0 - i32.const 1 - i32.add - local.set $0 - end - local.get $1 + call_indirect (type $1) + i32.eqz + br_if $"~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0" + drop + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|0 end end - local.get $6 - local.get $2 - local.get $0 i32.const 1 - i32.shl - local.tee $0 - call $~lib/rt/itcms/__renew - local.tee $1 - i32.store - local.get $6 - local.get $1 - call $~lib/rt/itcms/__link - local.get $6 - local.get $0 - i32.store offset=8 - local.get $6 + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int64Array#subarray (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 12 + 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 + 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 $0 + call $~lib/typedarray/Int64Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $3 + local.get $0 + i32.load + local.tee $4 + i32.store + local.get $3 + local.get $4 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $3 + local.get $0 + i32.load offset=4 + i32.const 4 + local.get $2 + local.get $2 + i32.const 4 + i32.gt_s + select + local.tee $0 + i32.const 3 + i32.shl + i32.add + i32.store offset=4 + local.get $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 20 + local.get $2 i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - if - i32.const 0 - i32.const 1568 - i32.const 413 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/typedarray/Int16Array#get:length - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 414 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 + local.tee $1 i32.const 0 - call $~lib/typedarray/Uint16Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 415 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 + local.get $1 + i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $2 + local.get $1 + local.get $2 + i32.lt_s + select + end + local.tee $1 + local.get $0 + local.get $0 + local.get $1 + i32.lt_s + select + local.get $0 + i32.sub + i32.const 3 + i32.shl + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/typedarray/Int64Array#sort (param $0 i32) (param $1 i32) (result 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 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - call $~lib/typedarray/Uint16Array#__get - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 416 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - call $~lib/typedarray/Uint16Array#__get - i32.const 5 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 417 - 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 + i32.const 1 + call $~lib/builtins/abort + unreachable end - i32.const 49120 - i32.const 49168 - 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 offset=4 + local.get $0 + i32.load offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/util/sort/SORT + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32> - (local $0 i32) - (local $1 i32) + (func $~lib/typedarray/Int64Array#some (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 $5 i64) 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i64.const 0 - i64.store offset=8 - local.get $2 - i32.const 6 - call $~lib/typedarray/Int32Array#constructor - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 + 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 + 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 $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.set $4 + block $"~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0" (result i32) + loop $for-loop|0 + local.get $2 + local.get $4 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $3 + local.get $2 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + i32.const 1 + local.get $5 + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $8) + br_if $"~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0" + drop + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end i32.const 0 + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $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 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 5 + 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 $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int8Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.get $2 + i32.lt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1902 i32.const 5 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.const 20 - memory.fill - local.get $2 - local.get $7 - i32.store - local.get $2 - i32.const 4112 - i32.store offset=4 - local.get $2 - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/typedarray/Int32Array#get:length - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 9 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.const 2 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - i32.load offset=4 - local.set $5 - loop $for-loop|0 - local.get $1 - local.get $8 - i32.lt_s - if - local.get $5 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $3 - local.get $1 - local.get $7 - i32.const 4112 - i32.load - call_indirect (type $2) - if - local.get $2 - local.get $0 - i32.const 2 - i32.shl - i32.add - local.get $3 - i32.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 - end - end - local.get $6 - local.get $2 - local.get $0 - i32.const 2 - i32.shl - local.tee $0 - call $~lib/rt/itcms/__renew - local.tee $1 - i32.store - local.get $6 - local.get $1 - call $~lib/rt/itcms/__link - local.get $6 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $1 + i32.const 0 + local.set $0 + loop $for-loop|0 local.get $0 - i32.store offset=8 - local.get $6 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - if - i32.const 0 - i32.const 1568 - i32.const 413 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/typedarray/Int32Array#get:length - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 414 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/typedarray/Int32Array#__get - i32.const 3 - i32.ne + local.get $2 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 415 + local.get $3 + local.get $0 i32.const 3 - call $~lib/builtins/abort - unreachable + i32.shl + i32.add + local.get $0 + local.get $1 + i32.add + i64.load8_u + i64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - call $~lib/typedarray/Int32Array#__get - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 416 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - call $~lib/typedarray/Int32Array#__get + 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 $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int64Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.get $2 + i32.const 6 + i32.add + i32.lt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1902 i32.const 5 - i32.ne + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 48 + i32.add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.get $2 + i32.const 3 + i32.shl + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $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 + 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 + 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 $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int16Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.get $2 + i32.const 4 + i32.add + i32.lt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 32 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $1 + i32.const 0 + local.set $0 + loop $for-loop|0 + local.get $0 + local.get $2 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 417 + local.get $3 + local.get $0 i32.const 3 - call $~lib/builtins/abort - unreachable + i32.shl + i32.add + local.get $1 + local.get $0 + i32.const 1 + i32.shl + i32.add + i64.load16_s + i64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - return end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32> - (local $0 i32) + (func $~lib/typedarray/Int64Array#set<~lib/array/Array> (param $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.const 12 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i64.const 0 - i64.store offset=8 - local.get $2 - i32.const 6 - call $~lib/typedarray/Uint32Array#constructor - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 5 - i32.const 5 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.const 20 - memory.fill - local.get $2 - local.get $7 - i32.store - local.get $2 - i32.const 4144 - i32.store offset=4 - local.get $2 - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/typedarray/Int32Array#get:length - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 10 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.const 2 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - i32.load offset=4 - local.set $5 - loop $for-loop|0 - local.get $1 - local.get $8 - i32.lt_s - if - local.get $5 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $3 - local.get $1 - local.get $7 - i32.const 4144 - i32.load - call_indirect (type $2) - if - local.get $2 - local.get $0 - i32.const 2 - i32.shl - i32.add - local.get $3 - i32.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 - end - end - local.get $6 - local.get $2 - local.get $0 - i32.const 2 - i32.shl - local.tee $0 - call $~lib/rt/itcms/__renew - local.tee $1 - i32.store - local.get $6 - local.get $1 - call $~lib/rt/itcms/__link - local.get $6 + 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 + i32.const 11264 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=8 + i32.const 11264 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.get $1 + i32.const 7 + i32.add + i32.lt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 56 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=8 + i32.const 11268 + i32.load + local.set $3 + i32.const 0 + local.set $0 + loop $for-loop|0 local.get $0 - i32.store offset=8 - local.get $6 local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - if - i32.const 0 - i32.const 1568 - i32.const 413 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/typedarray/Int32Array#get:length - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 414 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/typedarray/Uint32Array#__get - i32.const 3 - i32.ne + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 415 + local.get $2 + local.get $0 i32.const 3 - call $~lib/builtins/abort - unreachable + i32.shl + i32.add + local.get $0 + local.get $3 + i32.add + i64.load8_s + i64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int64Array#set<~lib/array/Array> (param $0 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 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - call $~lib/typedarray/Uint32Array#__get - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 416 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - call $~lib/typedarray/Uint32Array#__get + 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 + i32.const 11008 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=8 + i32.const 11008 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.get $1 + i32.lt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1902 i32.const 5 - i32.ne + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=8 + i32.const 11012 + i32.load + local.set $3 + i32.const 0 + local.set $0 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 417 + local.get $2 + local.get $0 i32.const 3 - call $~lib/builtins/abort - unreachable + i32.shl + i32.add + local.get $3 + local.get $0 + i32.const 2 + i32.shl + i32.add + i64.load32_s + i64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - return end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64> - (local $0 i32) + (func $~lib/typedarray/Int64Array#join (param $0 i32) (result i32) (local $1 i32) - (local $2 i32) - (local $3 i64) + (local $2 i64) + (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.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 + block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 - i64.const 0 - i64.store offset=8 - local.get $2 - i32.const 6 - call $~lib/typedarray/Int64Array#constructor - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 3 - i64.const 4 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $0 i32.store offset=4 - local.get $7 - i32.const 5 - i64.const 5 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.set $4 + local.get $0 + i32.load offset=4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $0 i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 4176 - i32.store offset=8 + i32.const 9584 + i32.store global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.const 20 - memory.fill - local.get $2 - local.get $7 - i32.store - local.get $2 - i32.const 4176 - i32.store offset=4 - local.get $2 - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/typedarray/Int64Array#get:length - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.const 3 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=16 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - i32.load offset=4 - local.set $5 - loop $for-loop|0 - local.get $1 - local.get $8 + i64.const 0 + i64.store + block $__inlined_func$~lib/util/string/joinIntegerArray$5 + local.get $0 + i32.const 1 + i32.sub + local.tee $6 + i32.const 0 i32.lt_s if - local.get $5 - local.get $1 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $3 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $3 - local.get $1 - local.get $7 - i32.const 4176 - i32.load - call_indirect (type $8) - if - local.get $2 - local.get $0 - i32.const 3 - i32.shl - i32.add - local.get $3 - i64.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - end - local.get $1 - i32.const 1 + i32.const 8 i32.add - local.set $1 - br $for-loop|0 - end - end - local.get $6 - local.get $2 - local.get $0 - i32.const 3 - i32.shl - local.tee $0 - call $~lib/rt/itcms/__renew - local.tee $1 - i32.store - local.get $6 - local.get $1 - call $~lib/rt/itcms/__link - local.get $6 - local.get $0 - i32.store offset=8 - local.get $6 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - if - i32.const 0 - i32.const 1568 - i32.const 413 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/typedarray/Int64Array#get:length - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 414 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/typedarray/Int64Array#__get - i64.const 3 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 415 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - call $~lib/typedarray/Int64Array#__get - i64.const 4 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 416 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - call $~lib/typedarray/Int64Array#__get - i64.const 5 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 417 - i32.const 3 - call $~lib/builtins/abort - unreachable + global.set $~lib/memory/__stack_pointer + i32.const 7776 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray$5 + end + block $folding-inner0 + local.get $6 + i32.eqz + if + block $__inlined_func$~lib/util/number/itoa64 (result i32) + local.get $5 + i64.load + i64.extend32_s + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $2 + i64.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 8000 + br $__inlined_func$~lib/util/number/itoa64 + end + i64.const 0 + local.get $2 + i64.sub + local.get $2 + local.get $2 + i64.const 63 + i64.shr_u + i32.wrap_i64 + i32.const 1 + i32.shl + local.tee $0 + select + local.tee $2 + i64.const 4294967295 + i64.le_u + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.wrap_i64 + local.tee $3 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $3 + i32.const 100 + i32.lt_u + if (result i32) + local.get $3 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $3 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $3 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $3 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $3 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $3 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $3 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.tee $4 + i32.const 1 + i32.shl + local.get $0 + i32.add + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $0 + local.get $1 + i32.add + local.get $3 + local.get $4 + call $~lib/util/number/utoa32_dec_lut + else + global.get $~lib/memory/__stack_pointer + local.get $2 + i64.const 1000000000000000 + i64.lt_u + if (result i32) + local.get $2 + i64.const 1000000000000 + i64.lt_u + if (result i32) + local.get $2 + i64.const 100000000000 + i64.ge_u + i32.const 10 + i32.add + local.get $2 + i64.const 10000000000 + i64.ge_u + i32.add + else + local.get $2 + i64.const 100000000000000 + i64.ge_u + i32.const 13 + i32.add + local.get $2 + i64.const 10000000000000 + i64.ge_u + i32.add + end + else + local.get $2 + i64.const 100000000000000000 + i64.lt_u + if (result i32) + local.get $2 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 + i32.add + else + local.get $2 + i64.const -8446744073709551616 + i64.ge_u + i32.const 18 + i32.add + local.get $2 + i64.const 1000000000000000000 + i64.ge_u + i32.add + end + end + local.tee $3 + i32.const 1 + i32.shl + local.get $0 + i32.add + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $0 + local.get $1 + i32.add + local.get $2 + local.get $3 + call $~lib/util/number/utoa64_dec_lut + end + local.get $0 + if + local.get $1 + 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 + end + local.set $0 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 9580 + i32.load + i32.const 1 + i32.shr_u + local.tee $7 + i32.const 21 + i32.add + local.get $6 + i32.mul + i32.const 21 + i32.add + local.tee $4 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + loop $for-loop|0 + local.get $3 + local.get $6 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $3 + i32.const 3 + i32.shl + i32.add + i64.load + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.set $1 + local.get $7 + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 9584 + local.get $7 + i32.const 1 + i32.shl + memory.copy + local.get $1 + local.get $7 + i32.add + local.set $1 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $6 + i32.const 3 + i32.shl + i32.add + i64.load + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.tee $1 + local.get $4 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $~lib/string/String#substring + local.set $0 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$5 + end + 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 16 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 return end i32.const 49120 @@ -19311,843 +21456,188 @@ call $~lib/builtins/abort unreachable ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64> - (local $0 i32) - (local $1 i32) + (func $~lib/typedarray/Int64Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 i64) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) + (local $3 i32) + (local $4 i64) 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i64.const 0 - i64.store offset=8 - local.get $2 - i32.const 6 - call $~lib/typedarray/Uint64Array#constructor - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 3 - i64.const 4 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 5 - i64.const 5 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.const 20 - memory.fill - local.get $2 - local.get $7 - i32.store - local.get $2 - i32.const 4208 - i32.store offset=4 - local.get $2 - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/typedarray/Int64Array#get:length - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 12 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.const 3 - i32.shl i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - i32.load offset=4 - local.set $5 + 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 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + i32.const 1 + i32.sub + local.set $2 + block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0" loop $for-loop|0 - local.get $1 - local.get $8 - i32.lt_s + local.get $2 + i32.const 0 + i32.ge_s if - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $1 + i32.store offset=12 + local.get $3 + local.get $2 i32.const 3 i32.shl i32.add i64.load - local.set $3 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $3 + local.get $2 + local.get $0 local.get $1 - local.get $7 - i32.const 4208 i32.load call_indirect (type $8) - if - local.get $2 - local.get $0 - i32.const 3 - i32.shl - i32.add - local.get $3 - i64.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - end - local.get $1 + br_if $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0" + local.get $2 i32.const 1 - i32.add - local.set $1 + i32.sub + local.set $2 br $for-loop|0 end end - local.get $6 - local.get $2 - local.get $0 - i32.const 3 - i32.shl - local.tee $0 - call $~lib/rt/itcms/__renew - local.tee $1 - i32.store - local.get $6 - local.get $1 - call $~lib/rt/itcms/__link - local.get $6 - local.get $0 - i32.store offset=8 - local.get $6 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - if - i32.const 0 - i32.const 1568 - i32.const 413 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/typedarray/Int64Array#get:length - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 414 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/typedarray/Uint64Array#__get - i64.const 3 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 415 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - call $~lib/typedarray/Uint64Array#__get - i64.const 4 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 416 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - call $~lib/typedarray/Uint64Array#__get - i64.const 5 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 417 - 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 + i32.const -1 + local.set $2 end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32> - (local $0 i32) - (local $1 i32) + (func $~lib/typedarray/Int64Array#findIndex (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 f32) + (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) + (local $5 i64) 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i64.const 0 - i64.store offset=8 - local.get $2 - i32.const 6 - call $~lib/typedarray/Float32Array#constructor - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 2 - f32.const 3 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 3 - f32.const 4 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 5 - f32.const 5 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.const 20 - memory.fill - local.get $2 - local.get $7 - i32.store - local.get $2 - i32.const 4240 - i32.store offset=4 - local.get $2 - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/typedarray/Int32Array#get:length - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 13 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.const 2 - i32.shl i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - i32.load offset=4 - local.set $5 + 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 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.set $4 + block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0" loop $for-loop|0 - local.get $1 - local.get $8 + local.get $2 + local.get $4 i32.lt_s if - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.const 2 + i32.store offset=12 + local.get $3 + local.get $2 + i32.const 3 i32.shl i32.add - f32.load - local.set $3 + i64.load global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $3 + local.get $2 + local.get $0 local.get $1 - local.get $7 - i32.const 4240 i32.load - call_indirect (type $14) - if - local.get $2 - local.get $0 - i32.const 2 - i32.shl - i32.add - local.get $3 - f32.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - end - local.get $1 + call_indirect (type $8) + br_if $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0" + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|0 end end - local.get $6 - local.get $2 - local.get $0 - i32.const 2 - i32.shl - local.tee $0 - call $~lib/rt/itcms/__renew - local.tee $1 - i32.store - local.get $6 - local.get $1 - call $~lib/rt/itcms/__link - local.get $6 - local.get $0 - i32.store offset=8 - local.get $6 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - if - i32.const 0 - i32.const 1568 - i32.const 413 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/typedarray/Int32Array#get:length - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 414 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/typedarray/Float32Array#__get - f32.const 3 - f32.ne - if - i32.const 0 - i32.const 1568 - i32.const 415 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - call $~lib/typedarray/Float32Array#__get - f32.const 4 - f32.ne - if - i32.const 0 - i32.const 1568 - i32.const 416 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - call $~lib/typedarray/Float32Array#__get - f32.const 5 - f32.ne - if - i32.const 0 - i32.const 1568 - i32.const 417 - 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 + i32.const -1 + local.set $2 end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64> - (local $0 i32) - (local $1 i32) + (func $~lib/typedarray/Int64Array#every (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 f64) + (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) + (local $5 i64) 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i64.const 0 - i64.store offset=8 - local.get $2 - i32.const 6 - call $~lib/typedarray/Float64Array#constructor - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 2 - f64.const 3 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 3 - f64.const 4 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 5 - f64.const 5 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.const 20 - memory.fill - local.get $2 - local.get $7 - i32.store - local.get $2 - i32.const 4272 - i32.store offset=4 - local.get $2 - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/typedarray/Int64Array#get:length - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 14 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.const 3 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - i32.load offset=4 - local.set $5 - loop $for-loop|0 - local.get $1 - local.get $8 - i32.lt_s - if - local.get $5 - local.get $1 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $3 - local.get $1 - local.get $7 - i32.const 4272 - i32.load - call_indirect (type $15) - if - local.get $2 - local.get $0 - i32.const 3 - i32.shl - i32.add - local.get $3 - f64.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 - end - end - local.get $6 - local.get $2 - local.get $0 - i32.const 3 - i32.shl - local.tee $0 - call $~lib/rt/itcms/__renew - local.tee $1 - i32.store - local.get $6 - local.get $1 - call $~lib/rt/itcms/__link - local.get $6 - local.get $0 - i32.store offset=8 - local.get $6 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - if - i32.const 0 - i32.const 1568 - i32.const 413 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/typedarray/Int64Array#get:length - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 414 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/typedarray/Float64Array#__get - f64.const 3 - f64.ne - if - i32.const 0 - i32.const 1568 - i32.const 415 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - call $~lib/typedarray/Float64Array#__get - f64.const 4 - f64.ne - if - i32.const 0 - i32.const 1568 - i32.const 416 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - call $~lib/typedarray/Float64Array#__get - f64.const 5 - f64.ne - if - i32.const 0 - i32.const 1568 - i32.const 417 - 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 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/typedarray/Int8Array#some (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 12 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s @@ -20160,54 +21650,59 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 - i32.const 0 + 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 $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=8 - block $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) - local.get $4 - local.get $0 - i32.store - local.get $4 - local.get $1 - i32.store offset=4 - local.get $4 - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $3 - local.get $4 - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.set $4 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.set $4 + block $"~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0" (result i32) loop $for-loop|0 local.get $2 local.get $4 i32.lt_s if - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 + local.get $2 + i32.const 3 + i32.shl i32.add - i32.load8_s + i64.load local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - i32.const 1 + i32.const 0 local.get $5 local.get $2 local.get $0 local.get $1 i32.load - call_indirect (type $2) - br_if $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 + call_indirect (type $8) + i32.eqz + br_if $"~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0" drop local.get $2 i32.const 1 @@ -20216,22 +21711,53 @@ br $for-loop|0 end end - i32.const 0 + i32.const 1 end - local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int64Array#__uget (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 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 + 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 + i64.load + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint8Array#some (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#sort (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 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -20246,78 +21772,36 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) - local.get $4 - local.get $0 - i32.store - local.get $4 - local.get $1 - i32.store offset=4 - local.get $4 - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $3 - local.get $4 - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.set $4 - loop $for-loop|0 - local.get $2 - local.get $4 - i32.lt_s - if - local.get $2 - local.get $3 - i32.add - i32.load8_u - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - i32.const 1 - local.get $5 - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $2) - br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 - drop - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - i32.const 0 - end - local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/util/sort/SORT + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/typedarray/Int16Array#some (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#some (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 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -20332,42 +21816,44 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 - i32.const 0 + 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 $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=8 - block $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) - local.get $4 - local.get $0 - i32.store - local.get $4 - local.get $1 - i32.store offset=4 - local.get $4 - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $3 - local.get $4 - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.set $4 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.set $4 + block $"~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0" (result i32) loop $for-loop|0 local.get $2 local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 local.get $2 - i32.const 1 + i32.const 2 i32.shl i32.add - i32.load16_s + i32.load local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 @@ -20380,8 +21866,8 @@ local.get $0 local.get $1 i32.load - call_indirect (type $2) - br_if $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 + call_indirect (type $1) + br_if $"~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0" drop local.get $2 i32.const 1 @@ -20392,18 +21878,14 @@ end i32.const 0 end - local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/typedarray/Uint16Array#some (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -20420,166 +21902,82 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) - local.get $4 - local.get $0 - i32.store - local.get $4 - local.get $1 - i32.store offset=4 - local.get $4 - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $3 - local.get $4 - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.set $4 - loop $for-loop|0 - local.get $2 - local.get $4 - i32.lt_s - if - local.get $3 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - i32.const 1 - local.get $5 - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $2) - br_if $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 - drop - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - i32.const 0 - end - local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer local.get $0 - ) - (func $~lib/typedarray/Int32Array#some (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) + i32.store global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 16320 + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int8Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.get $2 i32.lt_s if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store - local.get $4 - i32.const 0 + local.get $0 i32.store offset=8 - block $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) - local.get $4 - local.get $0 - i32.store - local.get $4 - local.get $1 - i32.store offset=4 - local.get $4 - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $3 - local.get $4 - local.get $0 - i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $1 + i32.const 0 + local.set $0 + loop $for-loop|0 local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $4 - loop $for-loop|0 - local.get $2 - local.get $4 - i32.lt_s - if - local.get $3 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - i32.const 1 - local.get $5 - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $2) - br_if $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 - drop - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end + local.get $2 + i32.lt_s + if + local.get $3 + local.get $0 + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $1 + i32.add + i32.load8_u + i32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - i32.const 0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/typedarray/Uint32Array#some (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -20596,166 +21994,88 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) - local.get $4 - local.get $0 - i32.store - local.get $4 - local.get $1 - i32.store offset=4 - local.get $4 - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $3 - local.get $4 - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $4 - loop $for-loop|0 - local.get $2 - local.get $4 - i32.lt_s - if - local.get $3 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - i32.const 1 - local.get $5 - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $2) - br_if $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 - drop - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - i32.const 0 - end - local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer local.get $0 - ) - (func $~lib/typedarray/Int64Array#some (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i64) - (local $5 i32) + i32.store global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 16320 + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int64Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.get $2 + i32.const 6 + i32.add i32.lt_s if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 - i64.const 0 - i64.store - local.get $5 - i32.const 0 + local.get $0 i32.store offset=8 - block $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) - local.get $5 - local.get $0 - i32.store - local.get $5 - local.get $1 - i32.store offset=4 - local.get $5 - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $3 - local.get $5 - local.get $0 - i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 24 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $1 + i32.const 0 + local.set $0 + loop $for-loop|0 local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.set $5 - loop $for-loop|0 - local.get $2 - local.get $5 - i32.lt_s - if - local.get $3 - local.get $2 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - i32.const 1 - local.get $4 - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $8) - br_if $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 - drop - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end + local.get $2 + i32.lt_s + if + local.get $3 + local.get $0 + i32.const 2 + i32.shl + i32.add + local.get $1 + local.get $0 + i32.const 3 + i32.shl + i32.add + i64.load + i64.store32 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - i32.const 0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/typedarray/Uint64Array#some (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - (local $4 i64) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -20772,78 +22092,89 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 i64.const 0 i64.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) - local.get $5 - local.get $0 - i32.store - local.get $5 - local.get $1 - i32.store offset=4 - local.get $5 - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $3 - local.get $5 - local.get $0 - i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int16Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.get $2 + i32.const 4 + i32.add + i32.lt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 16 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $1 + i32.const 0 + local.set $0 + loop $for-loop|0 local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.set $5 - loop $for-loop|0 - local.get $2 - local.get $5 - i32.lt_s - if - local.get $3 - local.get $2 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - i32.const 1 - local.get $4 - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $8) - br_if $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0 - drop - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end + local.get $2 + i32.lt_s + if + local.get $3 + local.get $0 + i32.const 2 + i32.shl + i32.add + local.get $1 + local.get $0 + i32.const 1 + i32.shl + i32.add + i32.load16_s + i32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - i32.const 0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/typedarray/Float32Array#some (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#set<~lib/array/Array> (param $0 i32) + (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 f32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -20860,168 +22191,279 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 i64.const 0 i64.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) - local.get $5 - local.get $0 - i32.store - local.get $5 - local.get $1 - i32.store offset=4 - local.get $5 - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $3 - local.get $5 - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $5 - loop $for-loop|0 - local.get $2 - local.get $5 - i32.lt_s - if - local.get $3 - local.get $2 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - i32.const 1 - local.get $4 - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $14) - br_if $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 - drop - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - i32.const 0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=8 + i32.const 11264 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.get $1 + i32.const 7 + i32.add + i32.lt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 28 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=8 + i32.const 11268 + i32.load + local.set $3 + i32.const 0 local.set $0 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $2 + local.get $0 + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $3 + i32.add + i32.load8_s + i32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/typedarray/Float64Array#some (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#join (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 f64) + (local $4 i32) (local $5 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 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 - local.tee $5 - i64.const 0 - i64.store - local.get $5 - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) - local.get $5 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $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 $5 - local.get $1 i32.store offset=4 - local.get $5 - local.get $0 - i32.store offset=8 local.get $0 i32.load offset=4 - local.set $3 - local.get $5 + local.set $5 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.set $5 - loop $for-loop|0 - local.get $2 - local.get $5 + call $~lib/typedarray/Int32Array#get:length + local.set $0 + global.get $~lib/memory/__stack_pointer + 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 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$1422 + local.get $0 + i32.const 1 + i32.sub + local.tee $6 + i32.const 0 i32.lt_s if - local.get $3 - local.get $2 - i32.const 3 - i32.shl + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - f64.load - local.set $4 + global.set $~lib/memory/__stack_pointer + i32.const 7776 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray$1422 + end + local.get $6 + i32.eqz + if + local.get $5 + i32.load + call $~lib/util/number/itoa32 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$1422 + end + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 9580 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 11 + i32.add + local.get $6 + i32.mul + i32.const 11 + i32.add + local.tee $2 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + loop $for-loop|0 + local.get $3 + local.get $6 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.set $1 + local.get $4 + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 9584 + local.get $4 + i32.const 1 + i32.shl + memory.copy + local.get $1 + local.get $4 + i32.add + local.set $1 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $2 + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.tee $1 + i32.gt_s + if global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - i32.const 1 - local.get $4 - local.get $2 + i32.store local.get $0 local.get $1 - i32.load - call_indirect (type $15) - br_if $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 - drop - local.get $2 - i32.const 1 + call $~lib/string/String#substring + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.set $2 - br $for-loop|0 + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$1422 end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer end - i32.const 0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return end - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/typedarray/Int8Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#findLastIndex (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 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -21036,56 +22478,60 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 - i32.const 0 - i32.store offset=8 - local.get $4 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 local.set $3 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.set $4 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 + call $~lib/typedarray/Int32Array#get:length + i32.const 1 + i32.sub + local.set $2 + block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0" loop $for-loop|0 local.get $2 - local.get $4 - i32.lt_s + i32.const 0 + i32.ge_s if - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 + local.get $2 + i32.const 2 + i32.shl i32.add - i32.load8_s - local.set $5 + i32.load global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $5 local.get $2 local.get $0 local.get $1 i32.load - call_indirect (type $2) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 + call_indirect (type $1) + br_if $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0" local.get $2 i32.const 1 - i32.add + i32.sub local.set $2 br $for-loop|0 end @@ -21094,18 +22540,18 @@ local.set $2 end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $2 ) - (func $~lib/typedarray/Uint8Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#findIndex (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 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -21120,53 +22566,55 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 - i32.const 0 - i32.store offset=8 - local.get $4 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 local.set $3 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - call $~lib/typedarray/Int8Array#get:length + call $~lib/typedarray/Int32Array#get:length local.set $4 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 + block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0" loop $for-loop|0 local.get $2 local.get $4 i32.lt_s if - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 + local.get $2 + i32.const 2 + i32.shl i32.add - i32.load8_u - local.set $5 + i32.load global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $5 local.get $2 local.get $0 local.get $1 i32.load - call_indirect (type $2) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 + call_indirect (type $1) + br_if $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0" local.get $2 i32.const 1 i32.add @@ -21178,18 +22626,18 @@ local.set $2 end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $2 ) - (func $~lib/typedarray/Int16Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#every (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 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -21204,55 +22652,60 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 - i32.const 0 - i32.store offset=8 - local.get $4 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 local.set $3 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - call $~lib/typedarray/Int16Array#get:length + call $~lib/typedarray/Int32Array#get:length local.set $4 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 + block $"~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0" (result i32) loop $for-loop|0 local.get $2 local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 local.get $2 - i32.const 1 + i32.const 2 i32.shl i32.add - i32.load16_s + i32.load local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength + i32.const 0 local.get $5 local.get $2 local.get $0 local.get $1 i32.load - call_indirect (type $2) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 + call_indirect (type $1) + i32.eqz + br_if $"~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0" + drop local.get $2 i32.const 1 i32.add @@ -21260,22 +22713,16 @@ br $for-loop|0 end end - i32.const -1 - local.set $2 + i32.const 1 end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) - (func $~lib/typedarray/Uint16Array#findIndex (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) + (func $~lib/typedarray/Int32Array#__uget (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -21290,76 +22737,27 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store - local.get $4 i32.const 0 - i32.store offset=8 - local.get $4 - local.get $0 i32.store - local.get $4 - local.get $1 - i32.store offset=4 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store local.get $0 i32.load offset=4 - local.set $3 - local.get $4 - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.set $4 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 - loop $for-loop|0 - local.get $2 - local.get $4 - i32.lt_s - if - local.get $3 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $5 - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $2) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - i32.const -1 - local.set $2 - end + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) - (func $~lib/typedarray/Int32Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#subarray (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 12 i32.sub @@ -21376,78 +22774,98 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=4 - local.get $4 local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $3 i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=4 - local.set $3 - local.get $4 - local.get $0 - i32.store offset=8 + i32.store offset=4 + local.get $3 local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $4 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 - loop $for-loop|0 - local.get $2 - local.get $4 - i32.lt_s - if - local.get $3 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $5 - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $2) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - i32.const -1 - local.set $2 + i32.load + local.tee $4 + i32.store + local.get $3 + local.get $4 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $3 + local.get $0 + i32.load offset=4 + i32.const 4 + local.get $2 + local.get $2 + i32.const 4 + i32.gt_s + select + local.tee $0 + i32.const 1 + i32.shl + i32.add + i32.store offset=4 + local.get $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $2 + i32.add + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $2 + local.get $1 + local.get $2 + i32.lt_s + select end + local.tee $1 + local.get $0 + local.get $0 + local.get $1 + i32.lt_s + select + local.get $0 + i32.sub + i32.const 1 + i32.shl + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $3 ) - (func $~lib/typedarray/Uint32Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#sort (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 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -21462,78 +22880,36 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 - i32.const 0 - i32.store offset=8 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - local.get $4 - local.get $1 i32.store offset=4 - local.get $4 - local.get $0 - i32.store offset=8 local.get $0 i32.load offset=4 - local.set $3 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $4 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 - loop $for-loop|0 - local.get $2 - local.get $4 - i32.lt_s - if - local.get $3 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $5 - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $2) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - i32.const -1 - local.set $2 - end + call $~lib/typedarray/Int16Array#get:length global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + i32.store + local.get $1 + call $~lib/util/sort/SORT + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $0 ) - (func $~lib/typedarray/Int64Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#some (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 i64) + (local $4 i32) (local $5 i32) 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 @@ -21548,55 +22924,59 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 i64.const 0 i64.store - local.get $5 - i32.const 0 - i32.store offset=8 - local.get $5 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 local.set $3 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.set $5 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 + call $~lib/typedarray/Int16Array#get:length + local.set $4 + block $"~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0" (result i32) loop $for-loop|0 local.get $2 - local.get $5 + local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 local.get $2 - i32.const 3 + i32.const 1 i32.shl i32.add - i64.load - local.set $4 + i32.load16_s + local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $4 + i32.const 1 + local.get $5 local.get $2 local.get $0 local.get $1 i32.load - call_indirect (type $8) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 + call_indirect (type $1) + br_if $"~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0" + drop local.get $2 i32.const 1 i32.add @@ -21604,20 +22984,16 @@ br $for-loop|0 end end - i32.const -1 - local.set $2 + i32.const 0 end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) - (func $~lib/typedarray/Uint64Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - (local $4 i64) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -21634,76 +23010,82 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 i64.const 0 i64.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $5 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int8Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - i32.load offset=4 - local.set $3 - local.get $5 + call $~lib/typedarray/Int16Array#get:length + local.get $2 + i32.lt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.set $5 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 - loop $for-loop|0 - local.get $2 - local.get $5 - i32.lt_s - if - local.get $3 - local.get $2 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $8) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $1 + i32.const 0 + local.set $0 + loop $for-loop|0 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $3 + local.get $0 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $1 + i32.add + i32.load8_u + i32.store16 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - i32.const -1 - local.set $2 end global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) - (func $~lib/typedarray/Float32Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - (local $4 f32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -21720,76 +23102,87 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 i64.const 0 i64.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $5 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int64Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - i32.load offset=4 - local.set $3 - local.get $5 + call $~lib/typedarray/Int16Array#get:length + local.get $2 + i32.const 6 + i32.add + i32.lt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $5 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 - loop $for-loop|0 - local.get $2 - local.get $5 - i32.lt_s - if - local.get $3 - local.get $2 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $14) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end + i32.load offset=4 + i32.const 12 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $1 + i32.const 0 + local.set $0 + loop $for-loop|0 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $3 + local.get $0 + i32.const 1 + i32.shl + i32.add + local.get $1 + local.get $0 + i32.const 3 + i32.shl + i32.add + i64.load + i64.store16 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - i32.const -1 - local.set $2 end global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) - (func $~lib/typedarray/Float64Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i32) - (local $4 f64) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -21806,75 +23199,65 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 i64.const 0 i64.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $5 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int16Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - i32.load offset=4 - local.set $3 - local.get $5 + call $~lib/typedarray/Int16Array#get:length + local.get $2 + i32.const 4 + i32.add + i32.lt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.set $5 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 - loop $for-loop|0 - local.get $2 - local.get $5 - i32.lt_s - if - local.get $3 - local.get $2 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $15) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - i32.const -1 - local.set $2 - end + i32.load offset=4 + i32.const 8 + i32.add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.get $2 + i32.const 1 + i32.shl + memory.copy global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) - (func $~lib/typedarray/Int8Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#set<~lib/array/Array> (param $0 i32) + (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -21891,75 +23274,87 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 - local.get $1 + global.get $~lib/memory/__stack_pointer + i32.const 11264 i32.store offset=4 - local.get $2 - local.get $0 + global.get $~lib/memory/__stack_pointer + i32.const 11264 i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $3 - local.get $2 + i32.const 11264 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - call $~lib/typedarray/Int8Array#get:length - i32.const 1 - i32.sub + call $~lib/typedarray/Int16Array#get:length + local.get $1 + i32.const 7 + i32.add + i32.lt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 14 + i32.add local.set $2 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 - loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=8 + i32.const 11268 + i32.load + local.set $3 + i32.const 0 + local.set $0 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.lt_s + if local.get $2 - i32.const 0 - i32.ge_s - if - local.get $2 - local.get $3 - i32.add - i32.load8_s - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $2) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $for-loop|0 - end + local.get $0 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $3 + i32.add + i32.load8_s + i32.store16 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - i32.const -1 - local.set $2 end global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) - (func $~lib/typedarray/Uint8Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#set<~lib/array/Array> (param $0 i32) + (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -21976,77 +23371,277 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 - local.get $1 + global.get $~lib/memory/__stack_pointer + i32.const 11008 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=8 + i32.const 11008 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - i32.load offset=4 - local.set $3 - local.get $2 + call $~lib/typedarray/Int16Array#get:length + local.get $1 + i32.lt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - call $~lib/typedarray/Int8Array#get:length - i32.const 1 - i32.sub + i32.load offset=4 local.set $2 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 - loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=8 + i32.const 11012 + i32.load + local.set $3 + i32.const 0 + local.set $0 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.lt_s + if local.get $2 + local.get $0 + i32.const 1 + i32.shl + i32.add + local.get $3 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + i32.store16 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int16Array#join (param $0 i32) (result i32) + (local $1 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 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $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 offset=4 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.set $0 + global.get $~lib/memory/__stack_pointer + 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 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 + local.get $0 + i32.const 1 + i32.sub + local.tee $6 i32.const 0 - i32.ge_s + i32.lt_s if - local.get $2 - local.get $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - i32.load8_u - local.set $4 + global.set $~lib/memory/__stack_pointer + i32.const 7776 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray$1420 + end + local.get $6 + i32.eqz + if + local.get $5 + i32.load16_s + call $~lib/util/number/itoa32 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$1420 + end + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 9580 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 11 + i32.add + local.get $6 + i32.mul + i32.const 11 + i32.add + local.tee $2 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + loop $for-loop|0 + local.get $3 + local.get $6 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.load16_s + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.set $1 + local.get $4 + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 9584 + local.get $4 + i32.const 1 + i32.shl + memory.copy + local.get $1 + local.get $4 + i32.add + local.set $1 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $2 + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $6 + i32.const 1 + i32.shl + i32.add + i32.load16_s + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.tee $1 + i32.gt_s + if global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $2 + i32.store local.get $0 local.get $1 - i32.load - call_indirect (type $2) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $for-loop|0 + call $~lib/string/String#substring + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$1420 end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer end - i32.const -1 - local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) (func $~lib/typedarray/Int16Array#findLastIndex (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 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -22061,25 +23656,24 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 - i32.const 0 - i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 local.set $3 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -22087,31 +23681,32 @@ i32.const 1 i32.sub local.set $2 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 + block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0" loop $for-loop|0 local.get $2 i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 local.get $2 i32.const 1 i32.shl i32.add i32.load16_s - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $4 local.get $2 local.get $0 local.get $1 i32.load - call_indirect (type $2) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 + call_indirect (type $1) + br_if $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0" local.get $2 i32.const 1 i32.sub @@ -22123,17 +23718,18 @@ local.set $2 end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $2 ) - (func $~lib/typedarray/Uint16Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#findIndex (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 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -22148,60 +23744,58 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 - i32.const 0 - i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 local.set $3 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 call $~lib/typedarray/Int16Array#get:length - i32.const 1 - i32.sub - local.set $2 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 + local.set $4 + block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0" loop $for-loop|0 local.get $2 - i32.const 0 - i32.ge_s + local.get $4 + i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 local.get $2 i32.const 1 i32.shl i32.add - i32.load16_u - local.set $4 + i32.load16_s global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $4 local.get $2 local.get $0 local.get $1 i32.load - call_indirect (type $2) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 + call_indirect (type $1) + br_if $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0" local.get $2 i32.const 1 - i32.sub + i32.add local.set $2 br $for-loop|0 end @@ -22210,17 +23804,18 @@ local.set $2 end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $2 ) - (func $~lib/typedarray/Int32Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#every (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 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -22235,79 +23830,77 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 - i32.const 0 - i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 local.set $3 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - call $~lib/typedarray/Int32Array#get:length - i32.const 1 - i32.sub - local.set $2 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 + call $~lib/typedarray/Int16Array#get:length + local.set $4 + block $"~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0" (result i32) loop $for-loop|0 local.get $2 - i32.const 0 - i32.ge_s + local.get $4 + i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 local.get $2 - i32.const 2 + i32.const 1 i32.shl i32.add - i32.load - local.set $4 + i32.load16_s + local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $4 + i32.const 0 + local.get $5 local.get $2 local.get $0 local.get $1 i32.load - call_indirect (type $2) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 + call_indirect (type $1) + i32.eqz + br_if $"~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0" + drop local.get $2 i32.const 1 - i32.sub + i32.add local.set $2 br $for-loop|0 end end - i32.const -1 - local.set $2 + i32.const 1 end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) - (func $~lib/typedarray/Uint32Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + (func $~lib/typedarray/Int16Array#__uget (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -22322,79 +23915,79 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 i32.const 0 - i32.store offset=8 - local.get $2 - local.get $0 i32.store - local.get $2 - local.get $1 - i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store local.get $0 i32.load offset=4 - local.set $3 - local.get $2 - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int32Array#get:length + local.get $1 i32.const 1 + i32.shl + i32.add + i32.load16_s + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Float64Array#sort@varargs (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.sub - local.set $2 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 - loop $for-loop|0 - local.get $2 - i32.const 0 - i32.ge_s - if - local.get $3 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $2) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $for-loop|0 + 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 + 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 + br_table $0of1 $1of1 $outOfRange end + unreachable end - i32.const -1 - local.set $2 + i32.const 1696 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 1696 + 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 $~lib/typedarray/Float64Array#sort + global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) - (func $~lib/typedarray/Int64Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float64Array#sort (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 i64) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -22409,79 +24002,126 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 - i32.const 0 - i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 local.get $0 + i32.load offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $2 + local.get $1 + call $~lib/util/sort/SORT + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/typedarray/Float64Array#some (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 f64) + 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 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 + 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 $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 local.set $3 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 call $~lib/typedarray/Int64Array#get:length - i32.const 1 - i32.sub - local.set $2 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 + local.set $4 + block $"~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0" (result i32) loop $for-loop|0 local.get $2 - i32.const 0 - i32.ge_s + local.get $4 + i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 local.get $2 i32.const 3 i32.shl i32.add - i64.load - local.set $4 + f64.load + local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $4 + i32.const 1 + local.get $5 local.get $2 local.get $0 local.get $1 i32.load - call_indirect (type $8) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 + call_indirect (type $12) + br_if $"~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0" + drop local.get $2 i32.const 1 - i32.sub + i32.add local.set $2 br $for-loop|0 end end - i32.const -1 - local.set $2 + i32.const 0 end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) - (func $~lib/typedarray/Uint64Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float64Array#reverse (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i64) + (local $4 f64) + (local $5 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -22496,79 +24136,117 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 i32.const 0 - i32.store offset=8 - local.get $2 - local.get $0 i32.store - local.get $2 - local.get $1 - i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store local.get $0 i32.load offset=4 - local.set $3 - local.get $2 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store local.get $0 call $~lib/typedarray/Int64Array#get:length + local.tee $5 i32.const 1 - i32.sub - local.set $2 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 - loop $for-loop|0 - local.get $2 - i32.const 0 - i32.ge_s + i32.gt_u + if + local.get $5 + i32.const 1 + i32.shr_u + local.set $3 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + loop $while-continue|0 + local.get $1 + local.get $3 + i32.lt_u if - local.get $3 local.get $2 + local.get $1 i32.const 3 i32.shl i32.add - i64.load + local.tee $6 + f64.load local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 + local.get $6 + local.get $2 + local.get $5 + local.get $1 + i32.sub i32.const 3 - global.set $~argumentsLength + i32.shl + i32.add + local.tee $6 + f64.load + f64.store + local.get $6 local.get $4 - local.get $2 - local.get $0 + f64.store local.get $1 - i32.load - call_indirect (type $8) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 - local.get $2 i32.const 1 - i32.sub - local.set $2 - br $for-loop|0 + i32.add + local.set $1 + br $while-continue|0 end end - i32.const -1 - local.set $2 end 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 $0 ) - (func $~lib/typedarray/Float32Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float64Array#join (param $0 i32) (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 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 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store + call $~lib/util/string/joinFloatArray + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Float64Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 f32) + (local $4 f64) 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 @@ -22583,57 +24261,57 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 - i32.const 0 - i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 local.set $3 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - call $~lib/typedarray/Int32Array#get:length + call $~lib/typedarray/Int64Array#get:length i32.const 1 i32.sub local.set $2 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 + block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0" loop $for-loop|0 local.get $2 i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 local.get $2 - i32.const 2 + i32.const 3 i32.shl i32.add - f32.load - local.set $4 + f64.load global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $4 local.get $2 local.get $0 local.get $1 i32.load - call_indirect (type $14) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 + call_indirect (type $12) + br_if $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0" local.get $2 i32.const 1 i32.sub @@ -22645,17 +24323,18 @@ local.set $2 end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $2 ) - (func $~lib/typedarray/Float64Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float64Array#findIndex (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 f64) + (local $4 i32) + (local $5 f64) 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 @@ -22670,60 +24349,58 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 - i32.const 0 - i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 local.set $3 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 call $~lib/typedarray/Int64Array#get:length - i32.const 1 - i32.sub - local.set $2 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 + local.set $4 + block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0" loop $for-loop|0 local.get $2 - i32.const 0 - i32.ge_s + local.get $4 + i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 local.get $2 i32.const 3 i32.shl i32.add f64.load - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $4 local.get $2 local.get $0 local.get $1 i32.load - call_indirect (type $15) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 + call_indirect (type $12) + br_if $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0" local.get $2 i32.const 1 - i32.sub + i32.add local.set $2 br $for-loop|0 end @@ -22732,18 +24409,18 @@ local.set $2 end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $2 ) - (func $~lib/typedarray/Int8Array#every (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float64Array#every (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) + (local $5 f64) 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 @@ -22758,40 +24435,44 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 - i32.const 0 + 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 $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=8 - block $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) - local.get $4 - local.get $0 - i32.store - local.get $4 - local.get $1 - i32.store offset=4 - local.get $4 - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $3 - local.get $4 - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.set $4 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.set $4 + block $"~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0" (result i32) loop $for-loop|0 local.get $2 local.get $4 i32.lt_s if - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 + local.get $2 + i32.const 3 + i32.shl i32.add - i32.load8_s + f64.load local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 @@ -22804,9 +24485,9 @@ local.get $0 local.get $1 i32.load - call_indirect (type $2) + call_indirect (type $12) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 + br_if $"~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0" drop local.get $2 i32.const 1 @@ -22817,20 +24498,15 @@ end i32.const 1 end - local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/typedarray/Uint8Array#every (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) + (func $~lib/typedarray/Float64Array#__uget (param $0 i32) (param $1 i32) (result f64) + (local $2 f64) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -22845,77 +24521,27 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store - local.get $4 i32.const 0 - i32.store offset=8 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) - local.get $4 - local.get $0 - i32.store - local.get $4 - local.get $1 - i32.store offset=4 - local.get $4 - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $3 - local.get $4 - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.set $4 - loop $for-loop|0 - local.get $2 - local.get $4 - i32.lt_s - if - local.get $2 - local.get $3 - i32.add - i32.load8_u - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - i32.const 0 - local.get $5 - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $2) - i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 - drop - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - i32.const 1 - end - local.set $0 + i32.store global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + 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 - local.get $0 ) - (func $~lib/typedarray/Int16Array#every (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float32Array#subarray (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 12 i32.sub @@ -22932,81 +24558,142 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) - local.get $4 - local.get $0 - i32.store - local.get $4 - local.get $1 - i32.store offset=4 - local.get $4 - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $3 - local.get $4 - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.set $4 - loop $for-loop|0 - local.get $2 - local.get $4 - i32.lt_s - if - local.get $3 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - i32.const 0 - local.get $5 - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $2) - i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 - drop - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - i32.const 1 + 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 + call $~lib/typedarray/Int32Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $3 + local.get $0 + i32.load + local.tee $4 + i32.store + local.get $3 + local.get $4 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $3 + local.get $0 + i32.load offset=4 + i32.const 4 + local.get $2 + local.get $2 + i32.const 4 + i32.gt_s + select + local.tee $0 + i32.const 2 + i32.shl + i32.add + i32.store offset=4 + local.get $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $2 + i32.add + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $2 + local.get $1 + local.get $2 + i32.lt_s + select end - local.set $0 + local.tee $1 + local.get $0 + local.get $0 + local.get $1 + i32.lt_s + select + local.get $0 + i32.sub + i32.const 2 + i32.shl + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/typedarray/Float32Array#sort (param $0 i32) (param $1 i32) (result 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 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 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/util/sort/SORT + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/typedarray/Uint16Array#every (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float32Array#some (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) + (local $5 f32) 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 @@ -23021,57 +24708,58 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 - i32.const 0 + 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 $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=8 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) - local.get $4 - local.get $0 - i32.store - local.get $4 - local.get $1 - i32.store offset=4 - local.get $4 - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $3 - local.get $4 - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.set $4 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.set $4 + block $"~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0" (result i32) loop $for-loop|0 local.get $2 local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 local.get $2 - i32.const 1 + i32.const 2 i32.shl i32.add - i32.load16_u + f32.load local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - i32.const 0 + i32.const 1 local.get $5 local.get $2 local.get $0 local.get $1 i32.load - call_indirect (type $2) - i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 + call_indirect (type $13) + br_if $"~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0" drop local.get $2 i32.const 1 @@ -23080,22 +24768,22 @@ br $for-loop|0 end end - i32.const 1 + i32.const 0 end - local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/typedarray/Int32Array#every (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float32Array#reverse (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) + (local $4 f32) (local $5 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -23110,81 +24798,117 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store - local.get $4 i32.const 0 - i32.store offset=8 - block $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) - local.get $4 - local.get $0 - i32.store - local.get $4 - local.get $1 - i32.store offset=4 - local.get $4 - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 + 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 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.tee $5 + i32.const 1 + i32.gt_u + if + local.get $5 + i32.const 1 + i32.shr_u local.set $3 - local.get $4 - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $4 - loop $for-loop|0 - local.get $2 - local.get $4 - i32.lt_s + local.get $5 + i32.const 1 + i32.sub + local.set $5 + loop $while-continue|0 + local.get $1 + local.get $3 + i32.lt_u if - local.get $3 local.get $2 + local.get $1 i32.const 2 i32.shl i32.add - i32.load - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - i32.const 0 - local.get $5 + local.tee $6 + f32.load + local.set $4 + local.get $6 local.get $2 - local.get $0 + local.get $5 + local.get $1 + i32.sub + i32.const 2 + i32.shl + i32.add + local.tee $6 + f32.load + f32.store + local.get $6 + local.get $4 + f32.store local.get $1 - i32.load - call_indirect (type $2) - i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 - drop - local.get $2 i32.const 1 i32.add - local.set $2 - br $for-loop|0 + local.set $1 + br $while-continue|0 end end - i32.const 1 end - local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/typedarray/Uint32Array#every (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float32Array#join (param $0 i32) (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 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 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store + call $~lib/util/string/joinFloatArray + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Float32Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) + (local $4 f32) 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 @@ -23199,81 +24923,80 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 - i32.const 0 + 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 $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=8 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) - local.get $4 - local.get $0 - i32.store - local.get $4 - local.get $1 - i32.store offset=4 - local.get $4 - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $3 - local.get $4 - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $4 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + i32.const 1 + i32.sub + local.set $2 + block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0" loop $for-loop|0 local.get $2 - local.get $4 - i32.lt_s + i32.const 0 + i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 local.get $2 i32.const 2 i32.shl i32.add - i32.load - local.set $5 + f32.load global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - i32.const 0 - local.get $5 local.get $2 local.get $0 local.get $1 i32.load - call_indirect (type $2) - i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 - drop + call_indirect (type $13) + br_if $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0" local.get $2 i32.const 1 - i32.add + i32.sub local.set $2 br $for-loop|0 end end - i32.const 1 + i32.const -1 + local.set $2 end - local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $2 ) - (func $~lib/typedarray/Int64Array#every (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float32Array#findIndex (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 i64) - (local $5 i32) + (local $4 i32) + (local $5 f32) 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 @@ -23288,58 +25011,55 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 i64.const 0 i64.store - local.get $5 - i32.const 0 + 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 $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=8 - block $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) - local.get $5 - local.get $0 - i32.store - local.get $5 - local.get $1 - i32.store offset=4 - local.get $5 - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $3 - local.get $5 - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.set $5 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.set $4 + block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0" loop $for-loop|0 local.get $2 - local.get $5 + local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 local.get $2 - i32.const 3 + i32.const 2 i32.shl i32.add - i64.load - local.set $4 + f32.load global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - i32.const 0 - local.get $4 local.get $2 local.get $0 local.get $1 i32.load - call_indirect (type $8) - i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 - drop + call_indirect (type $13) + br_if $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0" local.get $2 i32.const 1 i32.add @@ -23347,22 +25067,22 @@ br $for-loop|0 end end - i32.const 1 + i32.const -1 + local.set $2 end - local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $2 ) - (func $~lib/typedarray/Uint64Array#every (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float32Array#every (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 i64) - (local $5 i32) + (local $4 i32) + (local $5 f32) 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 @@ -23377,235 +25097,59 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 i64.const 0 i64.store - local.get $5 - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) - local.get $5 - local.get $0 - i32.store - local.get $5 - local.get $1 - i32.store offset=4 - local.get $5 - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $3 - local.get $5 - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.set $5 - loop $for-loop|0 - local.get $2 - local.get $5 - i32.lt_s - if - local.get $3 - local.get $2 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - i32.const 0 - local.get $4 - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $8) - i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0 - drop - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - i32.const 1 - end - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/typedarray/Float32Array#every (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 f32) - (local $5 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 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 - local.tee $5 i64.const 0 - i64.store - local.get $5 - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) - local.get $5 - local.get $0 - i32.store - local.get $5 - local.get $1 - i32.store offset=4 - local.get $5 - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $3 - local.get $5 - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $5 - loop $for-loop|0 - local.get $2 - local.get $5 - i32.lt_s - if - local.get $3 - local.get $2 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - i32.const 0 - local.get $4 - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $14) - i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 - drop - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - i32.const 1 - end - local.set $0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer local.get $0 - ) - (func $~lib/typedarray/Float64Array#every (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 f64) - (local $5 i32) + i32.store global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 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 + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.tee $5 - i64.const 0 - i64.store - local.get $5 - i32.const 0 + local.get $0 i32.store offset=8 - block $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) - local.get $5 - local.get $0 - i32.store - local.get $5 - local.get $1 - i32.store offset=4 - local.get $5 - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $3 - local.get $5 - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.set $5 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.set $4 + block $"~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0" (result i32) loop $for-loop|0 local.get $2 - local.get $5 + local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 local.get $2 - i32.const 3 + i32.const 2 i32.shl i32.add - f64.load - local.set $4 + f32.load + local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $4 + local.get $5 local.get $2 local.get $0 local.get $1 i32.load - call_indirect (type $15) + call_indirect (type $13) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 + br_if $"~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0" drop local.get $2 i32.const 1 @@ -23616,15 +25160,13 @@ end i32.const 1 end - local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $~lib/typedarray/Float32Array#__uget (param $0 i32) (param $1 i32) (result f32) + (local $2 f32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -23641,212 +25183,333 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 - i32.const 7152 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store local.get $0 - i32.const 255 - i32.and - i32.const 7152 - local.get $1 - call $~lib/array/Array#__get - i32.const 255 - i32.and - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 536 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $std/typedarray/forEachCallCount + i32.load offset=4 local.get $1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 537 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - global.get $std/typedarray/forEachSelf - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 538 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $std/typedarray/forEachCallCount - i32.const 1 + i32.const 2 + i32.shl i32.add - global.set $std/typedarray/forEachCallCount + f32.load global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint8Array#forEach (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - 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 16320 - i32.lt_s + local.get $1 + i32.const 256 + i32.lt_u if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + 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 - global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store - local.get $4 - i32.const 0 - i32.store offset=8 - local.get $4 - local.get $0 - i32.store - local.get $4 - local.get $1 - i32.store offset=4 - local.get $4 - local.get $0 - i32.store offset=8 local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add i32.load offset=4 - local.set $3 - local.get $4 - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.set $4 - loop $for-loop|0 + 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 - local.get $4 - i32.lt_s - if - local.get $2 - local.get $3 + 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.load8_u - local.set $5 - global.get $~lib/memory/__stack_pointer + 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 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $5 local.get $2 - local.get $0 + i32.ctz local.get $1 - i32.load - call_indirect (type $4) - local.get $2 - i32.const 1 + i32.const 4 + i32.shl i32.add - local.set $2 - br $for-loop|0 + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + i32.const 0 end end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/rt/tlsf/addMemory (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 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 - local.tee $3 - i32.const 0 - i32.store - local.get $3 - i32.const 7152 - i32.store - local.get $0 - i32.const 65535 - i32.and - i32.const 7152 + (local $4 i32) + (local $5 i32) + local.get $2 local.get $1 - call $~lib/array/Array#__get - i32.const 65535 - i32.and - i32.ne + i64.extend_i32_u + i64.lt_u if i32.const 0 - i32.const 1568 - i32.const 536 - i32.const 5 + i32.const 1504 + i32.const 382 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $std/typedarray/forEachCallCount local.get $1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 537 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - global.get $std/typedarray/forEachSelf - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 538 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $std/typedarray/forEachCallCount - i32.const 1 + i32.const 19 i32.add - global.set $std/typedarray/forEachCallCount - global.get $~lib/memory/__stack_pointer + i32.const -16 + i32.and i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + 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/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 7152 + call $~lib/rt/itcms/__visit + i32.const 7616 + call $~lib/rt/itcms/__visit + i32.const 7728 + call $~lib/rt/itcms/__visit + i32.const 10928 + call $~lib/rt/itcms/__visit + i32.const 11008 + call $~lib/rt/itcms/__visit + i32.const 11088 + call $~lib/rt/itcms/__visit + i32.const 11184 + call $~lib/rt/itcms/__visit + i32.const 11264 + call $~lib/rt/itcms/__visit + i32.const 1360 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + i32.const 1168 + call $~lib/rt/itcms/__visit + i32.const 8432 + call $~lib/rt/itcms/__visit + i32.const 9488 + 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/arraybuffer/ArrayBuffer#constructor (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -23863,60 +25526,45 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 - i32.const 7152 - i32.store - i32.const 7152 - local.get $1 - call $~lib/array/Array#__get local.get $0 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 536 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $std/typedarray/forEachCallCount - local.get $1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 537 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - global.get $std/typedarray/forEachSelf - i32.ne + i32.const 1073741820 + i32.gt_u if - i32.const 0 - i32.const 1568 - i32.const 538 - i32.const 5 + i32.const 1056 + i32.const 1104 + i32.const 52 + i32.const 43 call $~lib/builtins/abort unreachable end - global.get $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 1 - i32.add - global.set $std/typedarray/forEachCallCount + call $~lib/rt/itcms/__new + local.tee $0 + i32.store global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $"std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0" (param $0 f64) (param $1 f64) (param $2 i32) (param $3 i32) (result f64) + local.get $0 + local.get $1 + f64.add + ) + (func $"std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0" (param $0 f32) (param $1 f32) (param $2 i32) (param $3 i32) (result f32) + local.get $0 + local.get $1 + f32.add + ) + (func $std/typedarray/testInstantiate (param $0 i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 48 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -23931,1020 +25579,595 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 + i32.const 48 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/typedarray/Int8Array#constructor + local.tee $1 i32.store - local.get $3 - i32.const 7152 - i32.store - i32.const 7152 + global.get $~lib/memory/__stack_pointer local.get $1 - call $~lib/array/Array#__get - i64.extend_i32_s - local.get $0 - i64.ne + i32.store offset=4 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if i32.const 0 i32.const 1568 - i32.const 536 - i32.const 5 + i32.const 32 + i32.const 3 call $~lib/builtins/abort unreachable end - global.get $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + i32.load offset=8 i32.ne if i32.const 0 i32.const 1568 - i32.const 537 - i32.const 5 + i32.const 33 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $2 - global.get $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/typedarray/Int8Array#get:length + local.get $0 i32.ne if i32.const 0 i32.const 1568 - i32.const 538 - i32.const 5 + i32.const 34 + i32.const 3 call $~lib/builtins/abort unreachable end - global.get $std/typedarray/forEachCallCount - i32.const 1 - i32.add - global.set $std/typedarray/forEachCallCount global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (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 + local.get $0 + call $~lib/typedarray/Uint8Array#constructor + local.tee $1 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 37 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $3 - i32.const 7152 - i32.store - i32.const 7152 local.get $1 - call $~lib/array/Array#__get - f32.convert_i32_s + i32.store offset=4 local.get $0 - f32.ne + local.get $1 + i32.load offset=8 + i32.ne if i32.const 0 i32.const 1568 - i32.const 536 - i32.const 5 + i32.const 38 + i32.const 3 call $~lib/builtins/abort unreachable end - global.get $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 local.get $1 + call $~lib/typedarray/Int8Array#get:length + local.get $0 i32.ne if i32.const 0 i32.const 1568 - i32.const 537 - i32.const 5 + i32.const 39 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $2 - global.get $std/typedarray/forEachSelf - i32.ne + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if i32.const 0 i32.const 1568 - i32.const 538 - i32.const 5 + i32.const 42 + i32.const 3 call $~lib/builtins/abort unreachable end - global.get $std/typedarray/forEachCallCount - i32.const 1 - i32.add - global.set $std/typedarray/forEachCallCount - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (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 16320 - i32.lt_s + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + i32.load offset=8 + i32.ne if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 43 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $3 - i32.const 7152 - i32.store - i32.const 7152 local.get $1 - call $~lib/array/Array#__get - f64.convert_i32_s + i32.store offset=4 + local.get $1 + call $~lib/typedarray/Int8Array#get:length local.get $0 - f64.ne + i32.ne if i32.const 0 i32.const 1568 - i32.const 536 - i32.const 5 + i32.const 44 + i32.const 3 call $~lib/builtins/abort unreachable end - global.get $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/typedarray/Int16Array#constructor + local.tee $1 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.ne + i32.store offset=4 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if i32.const 0 i32.const 1568 - i32.const 537 - i32.const 5 + i32.const 47 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $2 - global.get $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.load offset=8 + local.get $0 + i32.const 1 + i32.shl i32.ne if i32.const 0 i32.const 1568 - i32.const 538 - i32.const 5 + i32.const 48 + i32.const 3 call $~lib/builtins/abort unreachable end - global.get $std/typedarray/forEachCallCount - i32.const 1 - i32.add - global.set $std/typedarray/forEachCallCount global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int8Array#reverse (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i64) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i64) + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/typedarray/Int16Array#get:length + local.get $0 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 49 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer + local.get $0 + call $~lib/typedarray/Uint16Array#constructor + local.tee $1 + i32.store offset=20 global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 52 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 - i32.const 0 - i32.store - local.get $4 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $2 - local.get $4 - local.get $0 - i32.store + local.get $1 + i32.store offset=4 + local.get $1 + i32.load offset=8 local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.tee $4 i32.const 1 - i32.gt_u + i32.shl + i32.ne if - local.get $4 - i32.const 1 - i32.shr_u - local.set $5 - local.get $4 - i32.const 8 - i32.sub - local.set $6 - loop $while-continue|0 - local.get $1 - i32.const 7 - i32.add - local.get $5 - i32.lt_u - if - local.get $1 - local.get $2 - i32.add - local.tee $7 - i64.load - local.tee $3 - i64.const 8 - i64.shr_u - i64.const 71777214294589695 - i64.and - local.get $3 - i64.const 71777214294589695 - i64.and - i64.const 8 - i64.shl - i64.or - local.set $3 - local.get $7 - local.get $2 - local.get $6 - i32.add - local.get $1 - i32.sub - local.tee $7 - i64.load - local.tee $8 - i64.const 8 - i64.shr_u - i64.const 71777214294589695 - i64.and - local.get $8 - i64.const 71777214294589695 - i64.and - i64.const 8 - i64.shl - i64.or - local.tee $8 - i64.const 16 - i64.shr_u - i64.const 281470681808895 - i64.and - local.get $8 - i64.const 281470681808895 - i64.and - i64.const 16 - i64.shl - i64.or - i64.const 32 - i64.rotr - i64.store - local.get $7 - local.get $3 - i64.const 16 - i64.shr_u - i64.const 281470681808895 - i64.and - local.get $3 - i64.const 281470681808895 - i64.and - i64.const 16 - i64.shl - i64.or - i64.const 32 - i64.rotr - i64.store - local.get $1 - i32.const 8 - i32.add - local.set $1 - br $while-continue|0 - end - end - local.get $4 - i32.const 1 - i32.sub - local.set $4 - loop $while-continue|1 - local.get $1 - local.get $5 - i32.lt_u - if - local.get $1 - local.get $2 - i32.add - local.tee $6 - i32.load8_u - local.set $7 - local.get $6 - local.get $2 - local.get $4 - local.get $1 - i32.sub - i32.add - local.tee $6 - i32.load8_u - i32.store8 - local.get $6 - local.get $7 - i32.store8 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $while-continue|1 - end - end + i32.const 0 + i32.const 1568 + i32.const 53 + 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 + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/typedarray/Int16Array#get:length local.get $0 - ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int8Array,i8> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - 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 16320 - i32.lt_s + i32.ne if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 54 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/typedarray/Int32Array#constructor local.tee $1 - i32.const 0 - i32.const 24 - memory.fill - local.get $1 - i32.const 7616 - i32.store - local.get $1 - i32.const 7616 - i32.store offset=4 - i32.const 7616 - call $~lib/array/Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - call $~lib/typedarray/Int8Array#constructor - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - call $~lib/typedarray/Int8Array#constructor - local.tee $1 - i32.store offset=12 - loop $for-loop|0 - local.get $0 - local.get $3 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $2 - i32.store offset=4 - local.get $4 - i32.const 7616 - i32.store offset=16 - local.get $2 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - i32.extend8_s - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=16 - local.get $1 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - i32.extend8_s - call $~lib/typedarray/Int8Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end + i32.store offset=24 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 - local.get $2 - call $~lib/typedarray/Int8Array#reverse - drop - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $3 - 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/typedarray/Int8Array#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=4 - local.get $4 - i32.const 7616 - local.get $3 - i32.const 1 - i32.sub - local.get $0 - i32.sub - call $~lib/array/Array#__get - i32.extend8_s - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 570 - 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 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + 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.tee $0 local.get $1 - i32.store offset=16 + i32.store offset=4 local.get $1 - i32.const 4 - i32.const 8 - call $~lib/typedarray/Int8Array#subarray - local.set $1 + i32.load offset=8 + local.get $0 + i32.const 2 + i32.shl + 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 local.get $1 i32.store offset=4 - local.get $0 local.get $1 - call $~lib/typedarray/Int8Array#reverse - local.tee $0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + call $~lib/typedarray/Int32Array#get:length local.get $0 - i32.const 0 - call $~lib/typedarray/Int8Array#__get - i32.const 8 i32.ne if i32.const 0 i32.const 1568 - i32.const 575 + i32.const 59 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer local.get $0 + call $~lib/typedarray/Uint32Array#constructor + local.tee $1 + i32.store offset=28 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/typedarray/Int8Array#__get - i32.const 7 - i32.ne + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if i32.const 0 i32.const 1568 - i32.const 576 + i32.const 62 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 + local.get $1 + i32.load offset=8 local.get $0 i32.const 2 - call $~lib/typedarray/Int8Array#__get - i32.const 6 + i32.shl i32.ne if i32.const 0 i32.const 1568 - i32.const 577 + i32.const 63 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 + local.get $1 + call $~lib/typedarray/Int32Array#get:length local.get $0 - i32.const 3 - call $~lib/typedarray/Int8Array#__get - i32.const 5 i32.ne if i32.const 0 i32.const 1568 - i32.const 578 + i32.const 64 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Uint8Array#subarray (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 12 - i32.sub - global.set $~lib/memory/__stack_pointer + local.get $0 + call $~lib/typedarray/Int64Array#constructor + local.tee $1 + i32.store offset=32 global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 67 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i32.const 0 - i32.store offset=8 - local.get $2 - local.get $0 - i32.store - local.get $2 - local.get $0 + local.get $1 i32.store offset=4 + local.get $1 + i32.load offset=8 local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=8 + i32.const 3 + i32.shl + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 68 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $2 + local.get $1 + call $~lib/typedarray/Int64Array#get:length local.get $0 - i32.load - local.tee $3 - i32.store - local.get $2 - local.get $3 - call $~lib/rt/itcms/__link + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 69 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $0 + call $~lib/typedarray/Uint64Array#constructor + local.tee $1 + i32.store offset=36 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $2 - local.get $0 - i32.load offset=4 - i32.const 4 - local.get $4 - local.get $4 - i32.const 4 - i32.gt_s - select - local.tee $0 - i32.add - i32.store offset=4 - local.get $2 local.get $1 - i32.const 0 - i32.lt_s - if (result i32) - local.get $1 - local.get $4 - i32.add - local.tee $1 - i32.const 0 - local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + if i32.const 0 - i32.gt_s - select - else - local.get $1 - local.get $4 - local.get $1 - local.get $4 - i32.lt_s - select + i32.const 1568 + i32.const 72 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.tee $1 - local.get $0 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.lt_s - select + i32.store offset=4 + local.get $1 + i32.load offset=8 local.get $0 - i32.sub - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint8Array,u8> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.sub - global.set $~lib/memory/__stack_pointer + i32.const 3 + i32.shl + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 73 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/typedarray/Int64Array#get:length + local.get $0 + i32.ne if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 74 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/typedarray/Float32Array#constructor local.tee $1 - i32.const 0 - i32.const 24 - memory.fill - local.get $1 - i32.const 7616 - i32.store + i32.store offset=40 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.const 7616 i32.store offset=4 - i32.const 7616 - call $~lib/array/Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $1 - i32.store offset=12 - loop $for-loop|0 - local.get $0 - local.get $3 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $2 - i32.store offset=4 - local.get $4 - i32.const 7616 - i32.store offset=16 - local.get $2 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=16 - local.get $1 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__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 $2 - i32.store offset=4 - local.get $2 - call $~lib/typedarray/Int8Array#reverse - drop - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $3 - 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/typedarray/Uint8Array#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=4 - local.get $4 - i32.const 7616 - local.get $3 - i32.const 1 - i32.sub - local.get $0 - i32.sub - call $~lib/array/Array#__get - i32.const 255 - i32.and - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 570 - 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.tee $0 - local.get $1 - i32.store offset=16 local.get $1 - i32.const 8 - call $~lib/typedarray/Uint8Array#subarray - local.set $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + 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 $1 i32.store offset=4 - local.get $0 local.get $1 - call $~lib/typedarray/Int8Array#reverse - local.tee $0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + i32.load offset=8 local.get $0 - i32.const 0 - call $~lib/typedarray/Uint8Array#__get - i32.const 8 + i32.const 2 + i32.shl i32.ne if i32.const 0 i32.const 1568 - i32.const 575 + i32.const 78 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 + local.get $1 + call $~lib/typedarray/Int32Array#get:length local.get $0 - i32.const 1 - call $~lib/typedarray/Uint8Array#__get - i32.const 7 i32.ne if i32.const 0 i32.const 1568 - i32.const 576 + i32.const 79 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer local.get $0 + call $~lib/typedarray/Float64Array#constructor + local.tee $1 + i32.store offset=44 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $0 - i32.const 2 - call $~lib/typedarray/Uint8Array#__get - i32.const 6 - i32.ne + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if i32.const 0 i32.const 1568 - i32.const 577 + i32.const 82 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 + local.get $1 + i32.load offset=8 local.get $0 i32.const 3 - call $~lib/typedarray/Uint8Array#__get - i32.const 5 + i32.shl i32.ne if i32.const 0 i32.const 1568 - i32.const 578 + i32.const 83 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Uint8ClampedArray#subarray (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 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/typedarray/Int64Array#get:length + local.get $0 + i32.ne if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 84 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i32.const 0 - i32.store offset=8 - local.get $2 - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $2 - local.get $0 - i32.load - local.tee $3 - i32.store - local.get $2 - local.get $3 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $2 - local.get $0 - i32.load offset=4 - i32.const 4 - local.get $4 - local.get $4 - i32.const 4 - i32.gt_s - select - local.tee $0 + i32.const 48 i32.add - i32.store offset=4 - local.get $2 + global.set $~lib/memory/__stack_pointer + ) + (func $"std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8>~anonymous|0" (param $0 i32) (param $1 i32) (result i32) local.get $1 - i32.const 0 - i32.lt_s - if (result i32) - local.get $1 - local.get $4 - i32.add - local.tee $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - else - local.get $1 - local.get $4 - local.get $1 - local.get $4 - i32.lt_s - select - end + i32.const 255 + i32.and local.tee $1 local.get $0 + i32.const 255 + i32.and + local.tee $0 + i32.gt_u local.get $0 local.get $1 - i32.lt_s - select - local.get $0 + i32.gt_u i32.sub - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint8ClampedArray,u8> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|1" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 255 + i32.and + i32.eqz + ) + (func $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1" (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i64.eqz + ) + (func $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.eqz + ) + (func $"std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0" (param $0 i64) (param $1 i32) (param $2 i32) (result i64) + local.get $0 + local.get $0 + i64.mul + ) + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -24959,212 +26182,60 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 - i32.const 24 - memory.fill - local.get $1 - i32.const 7616 i32.store - local.get $1 - i32.const 7616 - i32.store offset=4 - i32.const 7616 - call $~lib/array/Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $1 - i32.store offset=12 - loop $for-loop|0 - local.get $0 - local.get $3 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $2 - i32.store offset=4 - local.get $4 - i32.const 7616 - i32.store offset=16 - local.get $2 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=16 - local.get $1 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__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 $2 - i32.store offset=4 - local.get $2 - call $~lib/typedarray/Int8Array#reverse - drop - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $3 - 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/typedarray/Uint8ClampedArray#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=4 - local.get $4 - i32.const 7616 - local.get $3 - i32.const 1 - i32.sub - local.get $0 - i32.sub - call $~lib/array/Array#__get - i32.const 255 - i32.and - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 570 - 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.tee $0 - local.get $1 - i32.store offset=16 - local.get $1 - i32.const 8 - call $~lib/typedarray/Uint8ClampedArray#subarray - local.set $1 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + i32.const 7152 + i32.store local.get $0 + i32.const 255 + i32.and + i32.const 7152 local.get $1 - call $~lib/typedarray/Int8Array#reverse - local.tee $0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 8 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 575 - 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 1 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 7 + call $~lib/array/Array#__get + i32.const 255 + i32.and i32.ne if i32.const 0 i32.const 1568 - i32.const 576 - i32.const 3 + i32.const 536 + 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 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 6 + global.get $std/typedarray/forEachCallCount + local.get $1 i32.ne if i32.const 0 i32.const 1568 - i32.const 577 - i32.const 3 + i32.const 537 + 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 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 5 + local.get $2 + global.get $std/typedarray/forEachSelf i32.ne if i32.const 0 i32.const 1568 - i32.const 578 - i32.const 3 + i32.const 538 + i32.const 5 call $~lib/builtins/abort unreachable end + global.get $std/typedarray/forEachCallCount + i32.const 1 + i32.add + global.set $std/typedarray/forEachCallCount global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Int16Array#reverse (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0" (param $0 i64) (param $1 i32) (param $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -25181,233 +26252,59 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 - local.get $0 + global.get $~lib/memory/__stack_pointer + i32.const 7152 i32.store + i32.const 7152 + local.get $1 + call $~lib/array/Array#__get + i64.extend_i32_s local.get $0 - i32.load offset=4 - local.set $2 - local.get $3 - local.get $0 - i32.store - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.tee $3 - i32.const 1 - i32.gt_u + i64.ne if - local.get $3 - i32.const 1 - i32.shr_u - local.set $4 - local.get $3 - i32.const 2 - i32.sub - local.set $5 - loop $while-continue|0 - local.get $1 - i32.const 1 - i32.add - local.get $4 - i32.lt_u - if - local.get $2 - local.get $5 - local.get $1 - i32.sub - i32.const 1 - i32.shl - i32.add - local.tee $6 - i32.load - i32.const 16 - i32.rotr - local.set $7 - local.get $6 - local.get $2 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.tee $6 - i32.load - i32.const 16 - i32.rotr - i32.store - local.get $6 - local.get $7 - i32.store - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|0 - end - end - local.get $3 - i32.const 1 - i32.sub - local.set $3 - loop $while-continue|1 - local.get $1 - local.get $4 - i32.lt_u - if - local.get $2 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.tee $5 - i32.load16_u - local.set $6 - local.get $5 - local.get $2 - local.get $3 - local.get $1 - i32.sub - i32.const 1 - i32.shl - i32.add - local.tee $5 - i32.load16_u - i32.store16 - local.get $5 - local.get $6 - i32.store16 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $while-continue|1 - end - end + i32.const 0 + i32.const 1568 + i32.const 536 + i32.const 5 + call $~lib/builtins/abort + unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/typedarray/Int16Array#subarray (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 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + global.get $std/typedarray/forEachCallCount + local.get $1 + i32.ne if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 537 + i32.const 5 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i32.const 0 - i32.store offset=8 - local.get $2 - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $2 - local.get $0 - i32.load - local.tee $3 - i32.store local.get $2 - local.get $3 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $2 - local.get $0 - i32.load offset=4 - i32.const 4 - local.get $4 - local.get $4 - i32.const 4 - i32.gt_s - select - local.tee $0 - i32.const 1 - i32.shl - i32.add - i32.store offset=4 - local.get $2 - local.get $1 - i32.const 0 - i32.lt_s - if (result i32) - local.get $1 - local.get $4 - i32.add - local.tee $1 - i32.const 0 - local.get $1 + global.get $std/typedarray/forEachSelf + i32.ne + if i32.const 0 - i32.gt_s - select - else - local.get $1 - local.get $4 - local.get $1 - local.get $4 - i32.lt_s - select + i32.const 1568 + i32.const 538 + i32.const 5 + call $~lib/builtins/abort + unreachable end - local.tee $1 - local.get $0 - local.get $0 - local.get $1 - i32.lt_s - select - local.get $0 - i32.sub + global.get $std/typedarray/forEachCallCount i32.const 1 - i32.shl - i32.store offset=8 + i32.add + global.set $std/typedarray/forEachCallCount global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int16Array,i16> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -25422,544 +26319,601 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 - i32.const 24 - memory.fill - local.get $1 - i32.const 7616 i32.store - local.get $1 - i32.const 7616 - i32.store offset=4 - i32.const 7616 - call $~lib/array/Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - call $~lib/typedarray/Int16Array#constructor - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - call $~lib/typedarray/Int16Array#constructor - local.tee $1 - i32.store offset=12 - loop $for-loop|0 - local.get $0 - local.get $3 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $2 - i32.store offset=4 - local.get $4 - i32.const 7616 - i32.store offset=16 - local.get $2 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - i32.extend16_s - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=16 - local.get $1 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - i32.extend16_s - call $~lib/typedarray/Int16Array#__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 $2 - i32.store offset=4 - local.get $2 - call $~lib/typedarray/Int16Array#reverse - drop - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $3 - 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/typedarray/Int16Array#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=4 - local.get $4 - i32.const 7616 - local.get $3 - i32.const 1 - i32.sub - local.get $0 - i32.sub - call $~lib/array/Array#__get - i32.extend16_s - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 570 - 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.tee $0 - local.get $1 - i32.store offset=16 - local.get $1 - i32.const 8 - call $~lib/typedarray/Int16Array#subarray - local.set $1 global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store + i32.const 7152 local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - call $~lib/typedarray/Int16Array#reverse - local.tee $0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Int16Array#__get - i32.const 8 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 575 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + call $~lib/array/Array#__get local.get $0 - i32.const 1 - call $~lib/typedarray/Int16Array#__get - i32.const 7 i32.ne if i32.const 0 i32.const 1568 - i32.const 576 - i32.const 3 + i32.const 536 + 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 - i32.const 2 - call $~lib/typedarray/Int16Array#__get - i32.const 6 + global.get $std/typedarray/forEachCallCount + local.get $1 i32.ne if i32.const 0 i32.const 1568 - i32.const 577 - i32.const 3 + i32.const 537 + 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 - i32.const 3 - call $~lib/typedarray/Int16Array#__get - i32.const 5 + local.get $2 + global.get $std/typedarray/forEachSelf i32.ne if i32.const 0 i32.const 1568 - i32.const 578 - i32.const 3 + i32.const 538 + i32.const 5 call $~lib/builtins/abort unreachable end + global.get $std/typedarray/forEachCallCount + i32.const 1 + i32.add + global.set $std/typedarray/forEachCallCount global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint16Array#subarray (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 12 - 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 - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i32.const 0 - i32.store offset=8 - local.get $2 - local.get $0 - i32.store - local.get $2 + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|1" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 8 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer + i32.const 65535 + i32.and + i32.const 4 + i32.eq + ) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1" (param $0 f64) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i32.store offset=4 - local.get $2 + f64.const 4 + f64.eq + ) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1" (param $0 f32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i32.load - local.tee $3 - i32.store - local.get $2 - local.get $3 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer + f32.const 4 + f32.eq + ) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i32.store offset=4 - local.get $2 + i32.const 255 + i32.and + i32.const 2 + i32.gt_u + ) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i32.load offset=4 - i32.const 4 - local.get $4 - local.get $4 - i32.const 4 - i32.gt_s - select - local.tee $0 i32.const 1 - i32.shl - i32.add - i32.store offset=4 - local.get $2 - local.get $1 - i32.const 0 - i32.lt_s - if (result i32) - local.get $1 - local.get $4 - i32.add - local.tee $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - else - local.get $1 - local.get $4 - local.get $1 - local.get $4 - i32.lt_s - select - end - local.tee $1 - local.get $0 - local.get $0 - local.get $1 - i32.lt_s - select - local.get $0 - i32.sub - i32.const 1 - i32.shl - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 + i32.and + i32.eqz ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint16Array,u16> - (local $0 i32) - (local $1 i32) + (func $~start + call $start:std/typedarray + ) + (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 i32) + (local $3 i64) (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 8 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 - local.tee $1 - i32.const 0 - i32.const 24 - memory.fill - local.get $1 - i32.const 7616 - i32.store - local.get $1 - i32.const 7616 - i32.store offset=4 - i32.const 7616 - call $~lib/array/Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $1 - i32.store offset=12 - loop $for-loop|0 - local.get $0 - local.get $3 - i32.lt_s - if + block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $2 - i32.store offset=4 - local.get $4 - i32.const 7616 - i32.store offset=16 - local.get $2 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set + i32.const 16320 + i32.lt_s + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store local.get $1 - i32.store offset=4 + i32.const 1 + i32.sub + local.tee $7 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 7776 + return + end + local.get $7 + i32.eqz + if + local.get $0 + i64.load + local.set $3 + global.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 + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/utoa64$749 + local.get $3 + i64.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 8000 + local.set $1 + br $__inlined_func$~lib/util/number/utoa64$749 + end + local.get $3 + i64.const 4294967295 + i64.le_u + if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.wrap_i64 + local.tee $0 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 100 + i32.lt_u + if (result i32) + local.get $0 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $0 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $0 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.tee $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 + else + global.get $~lib/memory/__stack_pointer + local.get $3 + i64.const 1000000000000000 + i64.lt_u + if (result i32) + local.get $3 + i64.const 1000000000000 + i64.lt_u + if (result i32) + local.get $3 + i64.const 100000000000 + i64.ge_u + i32.const 10 + i32.add + local.get $3 + i64.const 10000000000 + i64.ge_u + i32.add + else + local.get $3 + i64.const 100000000000000 + i64.ge_u + i32.const 13 + i32.add + local.get $3 + i64.const 10000000000000 + i64.ge_u + i32.add + end + else + local.get $3 + i64.const 100000000000000000 + i64.lt_u + if (result i32) + local.get $3 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 + i32.add + else + local.get $3 + i64.const -8446744073709551616 + i64.ge_u + i32.const 18 + i32.add + local.get $3 + i64.const 1000000000000000000 + i64.ge_u + i32.add + end + end + local.tee $0 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $1 + local.get $3 + local.get $0 + call $~lib/util/number/utoa64_dec_lut + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + end + br $folding-inner1 + end global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=16 - local.get $1 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set - local.get $0 + i32.const 9584 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 9580 + i32.load i32.const 1 + i32.shr_u + local.tee $1 + i32.const 20 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/typedarray/Int16Array#reverse - drop - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $3 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $7 + i32.mul + i32.const 20 + i32.add + local.tee $5 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $6 i32.store offset=4 + loop $for-loop|0 + local.get $4 + local.get $7 + i32.lt_s + if + local.get $6 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + i64.load + call $~lib/util/number/itoa_buffered + local.get $2 + i32.add + local.set $2 + local.get $1 + if + local.get $6 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 9584 + local.get $1 + i32.const 1 + i32.shl + memory.copy + local.get $1 + local.get $2 + i32.add + local.set $2 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $5 + local.get $6 local.get $2 - local.get $0 - call $~lib/typedarray/Uint16Array#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=4 - local.get $4 - i32.const 7616 - local.get $3 i32.const 1 - i32.sub + i32.shl + i32.add local.get $0 - i32.sub - call $~lib/array/Array#__get - i32.const 65535 - i32.and - i32.ne + local.get $7 + i32.const 3 + i32.shl + i32.add + i64.load + call $~lib/util/number/itoa_buffered + local.get $2 + i32.add + local.tee $0 + i32.gt_s if - i32.const 0 - i32.const 1568 - i32.const 570 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $0 + call $~lib/string/String#substring + local.set $1 + br $folding-inner1 end - local.get $0 - i32.const 1 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.set $0 - br $for-loop|1 + global.set $~lib/memory/__stack_pointer + local.get $6 + return end - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=16 - local.get $1 - i32.const 8 - call $~lib/typedarray/Uint16Array#subarray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - call $~lib/typedarray/Int16Array#reverse - local.tee $0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Uint16Array#__get - i32.const 8 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 575 - 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 1 - call $~lib/typedarray/Uint16Array#__get - i32.const 7 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 576 - 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 2 - call $~lib/typedarray/Uint16Array#__get - i32.const 6 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 577 - 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 3 - call $~lib/typedarray/Uint16Array#__get - i32.const 5 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 578 - i32.const 3 + 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 24 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 ) - (func $~lib/typedarray/Int32Array#reverse (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/util/string/joinFloatArray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 i32) + (local $3 f64) (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 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 16320 - i32.lt_s - if + block $folding-inner1 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $1 + i32.const 1 + i32.sub + local.tee $7 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 7776 + return + end + local.get $7 + i32.eqz + if + local.get $0 + f64.load + local.set $3 + global.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 + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 9664 + local.set $0 + block $~lib/util/number/dtoa_impl|inlined.1 + local.get $3 + f64.const 0 + f64.eq + br_if $~lib/util/number/dtoa_impl|inlined.1 + local.get $3 + local.get $3 + f64.sub + f64.const 0 + f64.ne + if + 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 9728 + i32.const 9776 + local.get $3 + f64.const 0 + f64.lt + select + local.set $0 + br $~lib/util/number/dtoa_impl|inlined.1 + end + global.get $~lib/memory/__stack_pointer + i32.const 9808 + local.get $3 + i32.const 0 + call $~lib/util/number/dtoa_core + i32.const 1 + i32.shl + local.tee $1 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + i32.const 9808 + local.get $1 + memory.copy + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $folding-inner1 + end + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 9580 + i32.load + i32.const 1 + i32.shr_u + local.tee $1 + i32.const 28 + i32.add + local.get $7 + i32.mul + i32.const 28 + i32.add + local.tee $5 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store offset=4 + loop $for-loop|0 + local.get $4 + local.get $7 + i32.lt_s + if + local.get $6 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + f64.load + call $~lib/util/number/dtoa_buffered + local.get $2 + i32.add + local.set $2 + local.get $1 + if + local.get $6 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 9584 + local.get $1 + i32.const 1 + i32.shl + memory.copy + local.get $1 + local.get $2 + i32.add + local.set $2 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $5 + local.get $6 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $7 + i32.const 3 + i32.shl + i32.add + f64.load + call $~lib/util/number/dtoa_buffered + local.get $2 + i32.add + local.tee $0 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $0 + call $~lib/string/String#substring + local.set $0 + br $folding-inner1 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return + end i32.const 49120 i32.const 49168 i32.const 1 @@ -25968,81 +26922,245 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $2 - local.get $3 - local.get $0 - i32.store + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.tee $3 - i32.const 1 - i32.gt_u - if - local.get $3 - i32.const 1 - i32.shr_u - local.set $4 - local.get $3 - i32.const 1 - i32.sub - local.set $5 - loop $while-continue|0 + ) + (func $~lib/util/string/joinFloatArray (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 f64) + (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 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store local.get $1 - local.get $4 - i32.lt_u + i32.const 1 + i32.sub + local.tee $8 + i32.const 0 + i32.lt_s if - local.get $2 - local.get $1 - i32.const 2 - i32.shl + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.tee $6 - i32.load - local.set $3 - local.get $6 - local.get $2 - local.get $5 - local.get $1 + global.set $~lib/memory/__stack_pointer + i32.const 7776 + return + end + local.get $8 + i32.eqz + if + local.get $0 + f32.load + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - i32.const 2 - i32.shl - i32.add - local.tee $6 - i32.load - i32.store - local.get $6 - local.get $3 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store - local.get $1 - i32.const 1 + i32.const 9664 + local.set $0 + block $~lib/util/number/dtoa_impl|inlined.0 + local.get $5 + f64.promote_f32 + local.tee $3 + f64.const 0 + f64.eq + br_if $~lib/util/number/dtoa_impl|inlined.0 + local.get $3 + local.get $3 + f64.sub + f64.const 0 + f64.ne + if + 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 9728 + i32.const 9776 + local.get $3 + f64.const 0 + f64.lt + select + local.set $0 + br $~lib/util/number/dtoa_impl|inlined.0 + end + global.get $~lib/memory/__stack_pointer + i32.const 9808 + local.get $3 + i32.const 1 + call $~lib/util/number/dtoa_core + i32.const 1 + i32.shl + local.tee $1 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + i32.const 9808 + local.get $1 + memory.copy + end + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.set $1 - br $while-continue|0 + global.set $~lib/memory/__stack_pointer + br $folding-inner1 + end + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 9580 + i32.load + i32.const 1 + i32.shr_u + local.tee $1 + i32.const 28 + i32.add + local.get $8 + i32.mul + i32.const 28 + i32.add + local.tee $6 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store offset=4 + loop $for-loop|0 + local.get $4 + local.get $8 + i32.lt_s + if + local.get $7 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + f32.load + call $~lib/util/number/dtoa_buffered + local.get $2 + i32.add + local.set $2 + local.get $1 + if + local.get $7 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 9584 + local.get $1 + i32.const 1 + i32.shl + memory.copy + local.get $1 + local.get $2 + i32.add + local.set $2 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $6 + local.get $7 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $8 + i32.const 2 + i32.shl + i32.add + f32.load + call $~lib/util/number/dtoa_buffered + local.get $2 + i32.add + local.tee $0 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $0 + call $~lib/string/String#substring + local.set $0 + br $folding-inner1 end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + return end + 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 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int32Array,i32> - (local $0 i32) - (local $1 i32) - (local $2 i32) + (func $~lib/util/sort/SORT (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) + (local $12 i32) + (local $13 i64) + (local $14 i32) + (local $15 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -26057,205 +27175,425 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 - i32.const 24 - memory.fill - local.get $1 - i32.const 7616 i32.store - local.get $1 - i32.const 7616 - i32.store offset=4 - i32.const 7616 - call $~lib/array/Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - call $~lib/typedarray/Int32Array#constructor - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - call $~lib/typedarray/Int32Array#constructor - local.tee $1 - i32.store offset=12 - loop $for-loop|0 - local.get $0 - local.get $3 - i32.lt_s + block $folding-inner0 + local.get $1 + i32.const 48 + i32.le_s if - global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $2 - i32.store offset=4 - local.get $4 - i32.const 7616 - i32.store offset=16 - local.get $2 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=16 local.get $1 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__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 $2 - i32.store offset=4 - local.get $2 - call $~lib/typedarray/Int32Array#reverse - drop - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $3 - 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/typedarray/Int32Array#__get - local.set $4 + i32.le_s + br_if $folding-inner0 + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load8_u + local.set $1 + local.get $0 + i32.load8_u offset=1 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $1 + local.get $1 + local.get $3 + local.get $2 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.tee $4 + select + i32.store8 + local.get $0 + i32.load8_u offset=2 + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $5 + local.get $1 + local.get $3 + local.get $4 + select + local.tee $1 + local.get $1 + local.get $5 + local.get $2 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.tee $3 + select + i32.store8 offset=1 + local.get $0 + local.get $1 + local.get $5 + local.get $3 + select + i32.store8 offset=2 + end + local.get $0 + i32.load8_u + local.set $1 + local.get $0 + i32.load8_u offset=1 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $1 + local.get $1 + local.get $3 + local.get $2 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.tee $2 + select + i32.store8 + local.get $0 + local.get $1 + local.get $3 + local.get $2 + select + i32.store8 offset=1 + br $folding-inner0 + end global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=4 - i32.const 7616 - local.get $3 - i32.const 1 - i32.sub + local.get $2 + i32.store local.get $0 + i32.const 0 + local.get $1 + i32.const 1 i32.sub - call $~lib/array/Array#__get + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + br $folding-inner0 + end + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $4 + i32.const 2 + i32.shl + local.tee $5 + i32.const 1 + i32.shl + local.set $6 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + local.get $5 + global.get $~lib/rt/tlsf/ROOT + local.get $6 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $10 + i32.add + local.set $11 + loop $for-loop|1 + local.get $3 local.get $4 - i32.ne + i32.lt_u if - i32.const 0 - i32.const 1568 - i32.const 570 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $10 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 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.tee $0 - local.get $1 - i32.store offset=16 - local.get $1 - i32.const 4 - i32.const 8 - call $~lib/typedarray/Int32Array#subarray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - call $~lib/typedarray/Int32Array#reverse - local.tee $0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Int32Array#__get - i32.const 8 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 575 - 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 1 - call $~lib/typedarray/Int32Array#__get - i32.const 7 - i32.ne - if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $1 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 i32.const 0 - i32.const 1568 - i32.const 576 - 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 2 - call $~lib/typedarray/Int32Array#__get - i32.const 6 - i32.ne - if + local.get $1 + i32.const 1 + i32.sub + local.tee $9 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $4 + i32.const 1 + i32.add + local.tee $1 + i32.const 32 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + i32.const 0 + i32.const 31 + local.get $9 + local.get $9 + i32.const 31 + i32.ge_s + select + local.tee $4 + local.get $1 + local.get $2 + call $~lib/util/sort/insertionSort + end i32.const 0 - i32.const 1568 - i32.const 577 - 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 3 - call $~lib/typedarray/Int32Array#__get - i32.const 5 - i32.ne - if + local.set $1 i32.const 0 - i32.const 1568 - i32.const 578 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.set $3 + loop $while-continue|2 + local.get $4 + local.get $9 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $6 + local.get $9 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $5 + local.get $6 + i32.sub + i32.const 1 + i32.add + local.tee $7 + i32.const 32 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $6 + local.get $9 + local.get $6 + i32.const 31 + i32.add + local.tee $5 + local.get $5 + local.get $9 + i32.gt_s + select + local.tee $5 + local.get $7 + local.get $2 + call $~lib/util/sort/insertionSort + end + local.get $3 + local.get $6 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $9 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $13 + i64.div_u + local.get $5 + local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $13 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $7 + loop $for-loop|3 + local.get $1 + local.get $7 + i32.gt_u + if + local.get $1 + i32.const 2 + i32.shl + local.tee $14 + local.get $10 + i32.add + local.tee $15 + i32.load + local.tee $8 + i32.const -1 + i32.ne + if + local.get $11 + local.get $14 + i32.add + i32.load + i32.const 1 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $8 + local.get $3 + local.get $4 + local.get $12 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $15 + i32.const -1 + i32.store + local.get $8 + local.set $3 + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|3 + end + end + local.get $7 + i32.const 2 + i32.shl + local.tee $1 + local.get $10 + i32.add + local.get $3 + i32.store + local.get $1 + local.get $11 + i32.add + local.get $4 + i32.store + local.get $6 + local.set $3 + local.get $5 + local.set $4 + local.get $7 + local.set $1 + br $while-continue|2 + end + end + loop $for-loop|4 + local.get $1 + if + local.get $1 + i32.const 2 + i32.shl + local.tee $3 + local.get $10 + i32.add + i32.load + local.tee $4 + i32.const -1 + i32.ne + if + local.get $3 + local.get $11 + i32.add + i32.load + i32.const 1 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $4 + local.get $3 + local.get $9 + local.get $12 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|4 + end + end + local.get $12 + call $~lib/rt/tlsf/__free + local.get $10 + call $~lib/rt/tlsf/__free + 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 24 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint32Array#subarray (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/util/sort/SORT (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 i64) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i64) + (local $17 i64) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -26270,102 +27608,425 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 i32.const 0 - i32.store offset=8 - local.get $2 - local.get $0 i32.store - local.get $2 - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 10 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $2 - local.get $0 - i32.load - local.tee $3 - i32.store - local.get $2 - local.get $3 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $2 - local.get $0 - i32.load offset=4 - i32.const 4 - local.get $4 - local.get $4 - i32.const 4 - i32.gt_s - select - local.tee $0 - i32.const 2 - i32.shl - i32.add - i32.store offset=4 - local.get $2 - local.get $1 - i32.const 0 - i32.lt_s - if (result i32) + block $folding-inner0 local.get $1 - local.get $4 + i32.const 48 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + br_if $folding-inner0 + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i64.load + local.set $9 + local.get $0 + i64.load offset=8 + local.set $16 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $16 + local.get $9 + local.get $9 + local.get $16 + local.get $2 + i32.load + call_indirect (type $7) + i32.const 0 + i32.gt_s + local.tee $1 + select + i64.store + local.get $0 + i64.load offset=16 + local.set $17 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $17 + local.get $9 + local.get $16 + local.get $1 + select + local.tee $9 + local.get $9 + local.get $17 + local.get $2 + i32.load + call_indirect (type $7) + i32.const 0 + i32.gt_s + local.tee $1 + select + i64.store offset=8 + local.get $0 + local.get $9 + local.get $17 + local.get $1 + select + i64.store offset=16 + end + local.get $0 + i64.load + local.set $9 + local.get $0 + i64.load offset=8 + local.set $16 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $16 + local.get $9 + local.get $9 + local.get $16 + local.get $2 + i32.load + call_indirect (type $7) + i32.const 0 + i32.gt_s + local.tee $1 + select + i64.store + local.get $0 + local.get $9 + local.get $16 + local.get $1 + select + i64.store offset=8 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + br $folding-inner0 + end + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $4 + i32.const 2 + i32.shl + local.tee $5 + i32.const 1 + i32.shl + local.set $6 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + local.get $5 + global.get $~lib/rt/tlsf/ROOT + local.get $6 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 i32.add - local.tee $1 - i32.const 0 + local.tee $11 + i32.add + local.set $12 + loop $for-loop|1 + local.get $3 + local.get $4 + i32.lt_u + if + local.get $11 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 + 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 $1 + i32.const 3 + i32.shl + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 i32.const 0 - i32.gt_s - select - else - local.get $1 - local.get $4 local.get $1 - local.get $4 + i32.const 1 + i32.sub + local.tee $10 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $4 + i32.const 1 + i32.add + local.tee $1 + i32.const 32 i32.lt_s - select + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + i32.const 0 + i32.const 31 + local.get $10 + local.get $10 + i32.const 31 + i32.ge_s + select + local.tee $4 + local.get $1 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.set $1 + i32.const 0 + local.set $3 + loop $while-continue|2 + local.get $4 + local.get $10 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $6 + local.get $10 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $5 + local.get $6 + i32.sub + i32.const 1 + i32.add + local.tee $7 + i32.const 32 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $6 + local.get $10 + local.get $6 + i32.const 31 + i32.add + local.tee $5 + local.get $5 + local.get $10 + i32.gt_s + select + local.tee $5 + local.get $7 + local.get $2 + call $~lib/util/sort/insertionSort + end + local.get $3 + local.get $6 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $10 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $9 + i64.div_u + local.get $5 + local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $9 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $7 + loop $for-loop|3 + local.get $1 + local.get $7 + i32.gt_u + if + local.get $1 + i32.const 2 + i32.shl + local.tee $14 + local.get $11 + i32.add + local.tee $15 + i32.load + local.tee $8 + i32.const -1 + i32.ne + if + local.get $12 + local.get $14 + i32.add + i32.load + i32.const 1 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $8 + local.get $3 + local.get $4 + local.get $13 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $15 + i32.const -1 + i32.store + local.get $8 + local.set $3 + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|3 + end + end + local.get $7 + i32.const 2 + i32.shl + local.tee $1 + local.get $11 + i32.add + local.get $3 + i32.store + local.get $1 + local.get $12 + i32.add + local.get $4 + i32.store + local.get $6 + local.set $3 + local.get $5 + local.set $4 + local.get $7 + local.set $1 + br $while-continue|2 + end + end + loop $for-loop|4 + local.get $1 + if + local.get $1 + i32.const 2 + i32.shl + local.tee $3 + local.get $11 + i32.add + i32.load + local.tee $4 + i32.const -1 + i32.ne + if + local.get $3 + local.get $12 + i32.add + i32.load + i32.const 1 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $4 + local.get $3 + local.get $10 + local.get $13 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|4 + end + end + local.get $13 + call $~lib/rt/tlsf/__free + local.get $11 + call $~lib/rt/tlsf/__free + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return end - local.tee $1 - local.get $0 - local.get $0 - local.get $1 - i32.lt_s - select - local.get $0 - i32.sub - i32.const 2 - i32.shl - i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint32Array,u32> - (local $0 i32) - (local $1 i32) - (local $2 i32) + (func $~lib/util/sort/SORT (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) + (local $12 i32) + (local $13 i64) + (local $14 i32) + (local $15 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -26380,405 +28041,425 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 - i32.const 24 - memory.fill - local.get $1 - i32.const 7616 i32.store - local.get $1 - i32.const 7616 - i32.store offset=4 - i32.const 7616 - call $~lib/array/Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $1 - i32.store offset=12 - loop $for-loop|0 - local.get $0 - local.get $3 - i32.lt_s + block $folding-inner0 + local.get $1 + i32.const 48 + i32.le_s if - global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $2 - i32.store offset=4 - local.get $4 - i32.const 7616 - i32.store offset=16 - local.get $2 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=16 local.get $1 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__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 $2 - i32.store offset=4 - local.get $2 - call $~lib/typedarray/Int32Array#reverse - drop - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $3 - i32.lt_s - if + i32.le_s + br_if $folding-inner0 + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load + local.set $1 + local.get $0 + i32.load offset=4 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $1 + local.get $1 + local.get $3 + local.get $2 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.tee $4 + select + i32.store + local.get $0 + i32.load offset=8 + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $5 + local.get $1 + local.get $3 + local.get $4 + select + local.tee $1 + local.get $1 + local.get $5 + local.get $2 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.tee $3 + select + i32.store offset=4 + local.get $0 + local.get $1 + local.get $5 + local.get $3 + select + i32.store offset=8 + end + local.get $0 + i32.load + local.set $1 + local.get $0 + i32.load offset=4 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $1 + local.get $1 + local.get $3 + local.get $2 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.tee $2 + select + i32.store + local.get $0 + local.get $1 + local.get $3 + local.get $2 + select + i32.store offset=4 + br $folding-inner0 + end global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=4 - local.get $2 + i32.store local.get $0 - call $~lib/typedarray/Uint32Array#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=4 - i32.const 7616 - local.get $3 + i32.const 0 + local.get $1 i32.const 1 i32.sub - local.get $0 - i32.sub - call $~lib/array/Array#__get + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + br $folding-inner0 + end + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $4 + i32.const 2 + i32.shl + local.tee $5 + i32.const 1 + i32.shl + local.set $6 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + local.get $5 + global.get $~lib/rt/tlsf/ROOT + local.get $6 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $10 + i32.add + local.set $11 + loop $for-loop|1 + local.get $3 local.get $4 - i32.ne + i32.lt_u if - i32.const 0 - i32.const 1568 - i32.const 570 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $10 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 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.tee $0 - local.get $1 - i32.store offset=16 - local.get $1 - i32.const 8 - call $~lib/typedarray/Uint32Array#subarray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - call $~lib/typedarray/Int32Array#reverse - local.tee $0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Uint32Array#__get - i32.const 8 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 575 - 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 1 - call $~lib/typedarray/Uint32Array#__get - i32.const 7 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 576 - 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 2 - call $~lib/typedarray/Uint32Array#__get - i32.const 6 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 577 - 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 3 - call $~lib/typedarray/Uint32Array#__get - i32.const 5 - i32.ne - if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $1 + i32.const 2 + i32.shl + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 i32.const 0 - i32.const 1568 - i32.const 578 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int64Array#reverse (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i64) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 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 - local.tee $4 - i32.const 0 - i32.store - local.get $4 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $2 - local.get $4 - local.get $0 - i32.store - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.tee $4 - i32.const 1 - i32.gt_u - if - local.get $4 - i32.const 1 - i32.shr_u - local.set $5 - local.get $4 + local.get $1 i32.const 1 i32.sub - local.set $4 - loop $while-continue|0 + local.tee $9 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $4 + i32.const 1 + i32.add + local.tee $1 + i32.const 32 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + i32.const 0 + i32.const 31 + local.get $9 + local.get $9 + i32.const 31 + i32.ge_s + select + local.tee $4 local.get $1 - local.get $5 - i32.lt_u + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.set $1 + i32.const 0 + local.set $3 + loop $while-continue|2 + local.get $4 + local.get $9 + i32.lt_s if + global.get $~lib/memory/__stack_pointer local.get $2 - local.get $1 - i32.const 3 - i32.shl + i32.store + local.get $0 + local.get $4 + i32.const 1 i32.add local.tee $6 - i64.load - local.set $3 - local.get $6 + local.get $9 local.get $2 - local.get $4 - local.get $1 + call $~lib/util/sort/extendRunRight + local.tee $5 + local.get $6 i32.sub - i32.const 3 - i32.shl + i32.const 1 i32.add - local.tee $6 - i64.load - i64.store + local.tee $7 + i32.const 32 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $6 + local.get $9 + local.get $6 + i32.const 31 + i32.add + local.tee $5 + local.get $5 + local.get $9 + i32.gt_s + select + local.tee $5 + local.get $7 + local.get $2 + call $~lib/util/sort/insertionSort + end + local.get $3 + local.get $6 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $9 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $13 + i64.div_u + local.get $5 local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $13 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $7 + loop $for-loop|3 + local.get $1 + local.get $7 + i32.gt_u + if + local.get $1 + i32.const 2 + i32.shl + local.tee $14 + local.get $10 + i32.add + local.tee $15 + i32.load + local.tee $8 + i32.const -1 + i32.ne + if + local.get $11 + local.get $14 + i32.add + i32.load + i32.const 1 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $8 + local.get $3 + local.get $4 + local.get $12 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $15 + i32.const -1 + i32.store + local.get $8 + local.set $3 + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|3 + end + end + local.get $7 + i32.const 2 + i32.shl + local.tee $1 + local.get $10 + i32.add local.get $3 - i64.store + i32.store local.get $1 - i32.const 1 + local.get $11 i32.add + local.get $4 + i32.store + local.get $6 + local.set $3 + local.get $5 + local.set $4 + local.get $7 local.set $1 - br $while-continue|0 + br $while-continue|2 end end + loop $for-loop|4 + local.get $1 + if + local.get $1 + i32.const 2 + i32.shl + local.tee $3 + local.get $10 + i32.add + i32.load + local.tee $4 + i32.const -1 + i32.ne + if + local.get $3 + local.get $11 + i32.add + i32.load + i32.const 1 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $4 + local.get $3 + local.get $9 + local.get $12 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|4 + end + end + local.get $12 + call $~lib/rt/tlsf/__free + local.get $10 + call $~lib/rt/tlsf/__free + 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.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/typedarray/Int64Array#subarray (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $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 - 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 - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i32.const 0 - i32.store offset=8 - local.get $2 - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $2 - local.get $0 - i32.load - local.tee $3 - i32.store - local.get $2 - local.get $3 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $2 - local.get $0 - i32.load offset=4 - i32.const 4 - local.get $4 - local.get $4 - i32.const 4 - i32.gt_s - select - local.tee $0 - i32.const 3 - i32.shl - i32.add - i32.store offset=4 - local.get $2 - local.get $1 - i32.const 0 - i32.lt_s - if (result i32) - local.get $1 - local.get $4 - i32.add - local.tee $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - else - local.get $1 - local.get $4 - local.get $1 - local.get $4 - i32.lt_s - select - end - local.tee $1 - local.get $0 - local.get $0 - local.get $1 - i32.lt_s - select - local.get $0 - i32.sub - i32.const 3 - i32.shl - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64> - (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) + (local $11 i32) + (local $12 i32) + (local $13 i64) + (local $14 i32) + (local $15 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -26793,318 +28474,425 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 - i32.const 24 - memory.fill - local.get $1 - i32.const 7616 i32.store - local.get $1 - i32.const 7616 - i32.store offset=4 - i32.const 7616 - call $~lib/array/Array#get:length - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - call $~lib/typedarray/Int64Array#constructor - local.tee $4 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - call $~lib/typedarray/Int64Array#constructor - local.tee $1 - i32.store offset=12 - loop $for-loop|0 - local.get $0 - local.get $5 - i32.lt_s + block $folding-inner0 + local.get $1 + i32.const 48 + i32.le_s if + local.get $1 + i32.const 1 + i32.le_s + br_if $folding-inner0 + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load16_u + local.set $1 + local.get $0 + i32.load16_u offset=2 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $1 + local.get $1 + local.get $3 + local.get $2 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.tee $4 + select + i32.store16 + local.get $0 + i32.load16_u offset=4 + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $5 + local.get $1 + local.get $3 + local.get $4 + select + local.tee $1 + local.get $1 + local.get $5 + local.get $2 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.tee $3 + select + i32.store16 offset=2 + local.get $0 + local.get $1 + local.get $5 + local.get $3 + select + i32.store16 offset=4 + end + local.get $0 + i32.load16_u + local.set $1 + local.get $0 + i32.load16_u offset=2 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $1 + local.get $1 + local.get $3 + local.get $2 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.tee $2 + select + i32.store16 + local.get $0 + local.get $1 + local.get $3 + local.get $2 + select + i32.store16 offset=2 + br $folding-inner0 + end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $4 - i32.store offset=4 local.get $2 - i32.const 7616 - i32.store offset=16 - local.get $4 - local.get $0 - i32.const 7616 + i32.store local.get $0 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=16 + i32.const 0 local.get $1 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set - local.get $0 i32.const 1 - i32.add - local.set $0 - br $for-loop|0 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + br $folding-inner0 end - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/typedarray/Int64Array#reverse - drop - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $5 - i32.lt_s + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $4 + i32.const 2 + i32.shl + local.tee $5 + i32.const 1 + i32.shl + local.set $6 + global.get $~lib/rt/tlsf/ROOT + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $0 - call $~lib/typedarray/Int64Array#__get - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=4 + call $~lib/rt/tlsf/initialize + end + local.get $5 + global.get $~lib/rt/tlsf/ROOT + local.get $6 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $10 + i32.add + local.set $11 + loop $for-loop|1 local.get $3 - i32.const 7616 - local.get $5 - i32.const 1 - i32.sub - local.get $0 - i32.sub - call $~lib/array/Array#__get - i64.extend_i32_s - i64.ne + local.get $4 + i32.lt_u if - i32.const 0 - i32.const 1568 - i32.const 570 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $10 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 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 $1 + i32.const 1 + i32.shl + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + local.tee $9 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $4 + i32.const 1 + i32.add + local.tee $1 + i32.const 32 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|1 + i32.const 0 + i32.const 31 + local.get $9 + local.get $9 + i32.const 31 + i32.ge_s + select + local.tee $4 + local.get $1 + local.get $2 + call $~lib/util/sort/insertionSort end - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=16 - local.get $1 - i32.const 8 - call $~lib/typedarray/Int64Array#subarray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - call $~lib/typedarray/Int64Array#reverse - local.tee $0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Int64Array#__get - i64.const 8 - i64.ne - if i32.const 0 - i32.const 1568 - i32.const 575 - 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 1 - call $~lib/typedarray/Int64Array#__get - i64.const 7 - i64.ne - if + local.set $1 i32.const 0 - i32.const 1568 - i32.const 576 - 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 2 - call $~lib/typedarray/Int64Array#__get - i64.const 6 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 577 - 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 3 - call $~lib/typedarray/Int64Array#__get - i64.const 5 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 578 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Uint64Array#subarray (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 12 - 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 - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i32.const 0 - i32.store offset=8 - local.get $2 - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 12 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $2 - local.get $0 - i32.load - local.tee $3 - i32.store - local.get $2 - local.get $3 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $2 - local.get $0 - i32.load offset=4 - i32.const 4 - local.get $4 - local.get $4 - i32.const 4 - i32.gt_s - select - local.tee $0 - i32.const 3 - i32.shl - i32.add - i32.store offset=4 - local.get $2 - local.get $1 - i32.const 0 - i32.lt_s - if (result i32) - local.get $1 - local.get $4 + local.set $3 + loop $while-continue|2 + local.get $4 + local.get $9 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $6 + local.get $9 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $5 + local.get $6 + i32.sub + i32.const 1 + i32.add + local.tee $7 + i32.const 32 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $6 + local.get $9 + local.get $6 + i32.const 31 + i32.add + local.tee $5 + local.get $5 + local.get $9 + i32.gt_s + select + local.tee $5 + local.get $7 + local.get $2 + call $~lib/util/sort/insertionSort + end + local.get $3 + local.get $6 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $9 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $13 + i64.div_u + local.get $5 + local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $13 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $7 + loop $for-loop|3 + local.get $1 + local.get $7 + i32.gt_u + if + local.get $1 + i32.const 2 + i32.shl + local.tee $14 + local.get $10 + i32.add + local.tee $15 + i32.load + local.tee $8 + i32.const -1 + i32.ne + if + local.get $11 + local.get $14 + i32.add + i32.load + i32.const 1 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $8 + local.get $3 + local.get $4 + local.get $12 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $15 + i32.const -1 + i32.store + local.get $8 + local.set $3 + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|3 + end + end + local.get $7 + i32.const 2 + i32.shl + local.tee $1 + local.get $10 + i32.add + local.get $3 + i32.store + local.get $1 + local.get $11 + i32.add + local.get $4 + i32.store + local.get $6 + local.set $3 + local.get $5 + local.set $4 + local.get $7 + local.set $1 + br $while-continue|2 + end + end + loop $for-loop|4 + local.get $1 + if + local.get $1 + i32.const 2 + i32.shl + local.tee $3 + local.get $10 + i32.add + i32.load + local.tee $4 + i32.const -1 + i32.ne + if + local.get $3 + local.get $11 + i32.add + i32.load + i32.const 1 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $4 + local.get $3 + local.get $9 + local.get $12 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|4 + end + end + local.get $12 + call $~lib/rt/tlsf/__free + local.get $10 + call $~lib/rt/tlsf/__free + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.tee $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - else - local.get $1 - local.get $4 - local.get $1 - local.get $4 - i32.lt_s - select + global.set $~lib/memory/__stack_pointer + return end - local.tee $1 - local.get $0 - local.get $0 - local.get $1 - i32.lt_s - select - local.get $0 - i32.sub - i32.const 3 - i32.shl - i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i64) + (func $~lib/util/sort/SORT (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) + (local $12 i32) + (local $13 i64) + (local $14 i32) + (local $15 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -27119,297 +28907,425 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 - i32.const 24 - memory.fill - local.get $1 - i32.const 7616 i32.store - local.get $1 - i32.const 7616 - i32.store offset=4 - i32.const 7616 - call $~lib/array/Array#get:length - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - call $~lib/typedarray/Uint64Array#constructor - local.tee $4 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - call $~lib/typedarray/Uint64Array#constructor - local.tee $1 - i32.store offset=12 - loop $for-loop|0 - local.get $0 - local.get $5 - i32.lt_s + block $folding-inner0 + local.get $1 + i32.const 48 + i32.le_s if + local.get $1 + i32.const 1 + i32.le_s + br_if $folding-inner0 + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load8_s + local.set $1 + local.get $0 + i32.load8_s offset=1 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $1 + local.get $1 + local.get $3 + local.get $2 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.tee $4 + select + i32.store8 + local.get $0 + i32.load8_s offset=2 + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $5 + local.get $1 + local.get $3 + local.get $4 + select + local.tee $1 + local.get $1 + local.get $5 + local.get $2 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.tee $3 + select + i32.store8 offset=1 + local.get $0 + local.get $1 + local.get $5 + local.get $3 + select + i32.store8 offset=2 + end + local.get $0 + i32.load8_s + local.set $1 + local.get $0 + i32.load8_s offset=1 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $1 + local.get $1 + local.get $3 + local.get $2 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.tee $2 + select + i32.store8 + local.get $0 + local.get $1 + local.get $3 + local.get $2 + select + i32.store8 offset=1 + br $folding-inner0 + end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $4 - i32.store offset=4 local.get $2 - i32.const 7616 - i32.store offset=16 - local.get $4 - local.get $0 - i32.const 7616 + i32.store local.get $0 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=16 + i32.const 0 local.get $1 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - local.get $0 i32.const 1 - i32.add - local.set $0 - br $for-loop|0 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + br $folding-inner0 end - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/typedarray/Int64Array#reverse - drop - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $5 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $0 - call $~lib/typedarray/Uint64Array#__get - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=4 + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $4 + i32.const 2 + i32.shl + local.tee $5 + i32.const 1 + i32.shl + local.set $6 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + local.get $5 + global.get $~lib/rt/tlsf/ROOT + local.get $6 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $10 + i32.add + local.set $11 + loop $for-loop|1 local.get $3 - i32.const 7616 - local.get $5 - i32.const 1 - i32.sub - local.get $0 - i32.sub - call $~lib/array/Array#__get - i64.extend_i32_s - i64.ne + local.get $4 + i32.lt_u if - i32.const 0 - i32.const 1568 - i32.const 570 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $10 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 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.tee $0 - local.get $1 - i32.store offset=16 - local.get $1 - i32.const 8 - call $~lib/typedarray/Uint64Array#subarray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - call $~lib/typedarray/Int64Array#reverse - local.tee $0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Uint64Array#__get - i64.const 8 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 575 - 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 1 - call $~lib/typedarray/Uint64Array#__get - i64.const 7 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 576 - 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 2 - call $~lib/typedarray/Uint64Array#__get - i64.const 6 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 577 - 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 3 - call $~lib/typedarray/Uint64Array#__get - i64.const 5 - i64.ne - if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $1 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 i32.const 0 - i32.const 1568 - i32.const 578 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Float32Array#reverse (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 f32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 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 - local.tee $4 - i32.const 0 - i32.store - local.get $4 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $2 - local.get $4 - local.get $0 - i32.store - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.tee $4 - i32.const 1 - i32.gt_u - if - local.get $4 - i32.const 1 - i32.shr_u - local.set $5 - local.get $4 + local.get $1 i32.const 1 i32.sub - local.set $4 - loop $while-continue|0 + local.tee $9 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $4 + i32.const 1 + i32.add + local.tee $1 + i32.const 32 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + i32.const 0 + i32.const 31 + local.get $9 + local.get $9 + i32.const 31 + i32.ge_s + select + local.tee $4 local.get $1 - local.get $5 - i32.lt_u + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.set $1 + i32.const 0 + local.set $3 + loop $while-continue|2 + local.get $4 + local.get $9 + i32.lt_s if + global.get $~lib/memory/__stack_pointer local.get $2 - local.get $1 - i32.const 2 - i32.shl + i32.store + local.get $0 + local.get $4 + i32.const 1 i32.add local.tee $6 - f32.load - local.set $3 - local.get $6 + local.get $9 local.get $2 - local.get $4 - local.get $1 + call $~lib/util/sort/extendRunRight + local.tee $5 + local.get $6 i32.sub + i32.const 1 + i32.add + local.tee $7 + i32.const 32 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $6 + local.get $9 + local.get $6 + i32.const 31 + i32.add + local.tee $5 + local.get $5 + local.get $9 + i32.gt_s + select + local.tee $5 + local.get $7 + local.get $2 + call $~lib/util/sort/insertionSort + end + local.get $3 + local.get $6 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $9 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $13 + i64.div_u + local.get $5 + local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $13 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $7 + loop $for-loop|3 + local.get $1 + local.get $7 + i32.gt_u + if + local.get $1 + i32.const 2 + i32.shl + local.tee $14 + local.get $10 + i32.add + local.tee $15 + i32.load + local.tee $8 + i32.const -1 + i32.ne + if + local.get $11 + local.get $14 + i32.add + i32.load + i32.const 1 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $8 + local.get $3 + local.get $4 + local.get $12 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $15 + i32.const -1 + i32.store + local.get $8 + local.set $3 + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|3 + end + end + local.get $7 i32.const 2 i32.shl + local.tee $1 + local.get $10 i32.add - local.tee $6 - f32.load - f32.store - local.get $6 local.get $3 - f32.store + i32.store local.get $1 - i32.const 1 + local.get $11 + i32.add + local.get $4 + i32.store + local.get $6 + local.set $3 + local.get $5 + local.set $4 + local.get $7 + local.set $1 + br $while-continue|2 + end + end + loop $for-loop|4 + local.get $1 + if + local.get $1 + i32.const 2 + i32.shl + local.tee $3 + local.get $10 i32.add + i32.load + local.tee $4 + i32.const -1 + i32.ne + if + local.get $3 + local.get $11 + i32.add + i32.load + i32.const 1 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $4 + local.get $3 + local.get $9 + local.get $12 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $1 + i32.const 1 + i32.sub local.set $1 - br $while-continue|0 + br $for-loop|4 end end + local.get $12 + call $~lib/rt/tlsf/__free + local.get $10 + call $~lib/rt/tlsf/__free + 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.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/typedarray/Float32Array#subarray (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/util/sort/SORT (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 i64) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i64) + (local $17 i64) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -27424,103 +29340,425 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 i32.const 0 - i32.store offset=8 - local.get $2 - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 13 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $2 - local.get $0 - i32.load - local.tee $3 i32.store - local.get $2 - local.get $3 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $2 - local.get $0 - i32.load offset=4 - i32.const 4 - local.get $4 - local.get $4 - i32.const 4 - i32.gt_s - select - local.tee $0 - i32.const 2 - i32.shl - i32.add - i32.store offset=4 - local.get $2 - local.get $1 - i32.const 0 - i32.lt_s - if (result i32) + block $folding-inner0 local.get $1 - local.get $4 - i32.add - local.tee $1 - i32.const 0 + i32.const 48 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + br_if $folding-inner0 + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i64.load + local.set $9 + local.get $0 + i64.load offset=8 + local.set $16 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $16 + local.get $9 + local.get $9 + local.get $16 + local.get $2 + i32.load + call_indirect (type $7) + i32.const 0 + i32.gt_s + local.tee $1 + select + i64.store + local.get $0 + i64.load offset=16 + local.set $17 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $17 + local.get $9 + local.get $16 + local.get $1 + select + local.tee $9 + local.get $9 + local.get $17 + local.get $2 + i32.load + call_indirect (type $7) + i32.const 0 + i32.gt_s + local.tee $1 + select + i64.store offset=8 + local.get $0 + local.get $9 + local.get $17 + local.get $1 + select + i64.store offset=16 + end + local.get $0 + i64.load + local.set $9 + local.get $0 + i64.load offset=8 + local.set $16 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $16 + local.get $9 + local.get $9 + local.get $16 + local.get $2 + i32.load + call_indirect (type $7) + i32.const 0 + i32.gt_s + local.tee $1 + select + i64.store + local.get $0 + local.get $9 + local.get $16 + local.get $1 + select + i64.store offset=8 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + br $folding-inner0 + end + i32.const 33 local.get $1 - i32.const 0 - i32.gt_s - select - else + i32.clz + i32.sub + local.tee $4 + i32.const 2 + i32.shl + local.tee $5 + i32.const 1 + i32.shl + local.set $6 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + local.get $5 + global.get $~lib/rt/tlsf/ROOT + local.get $6 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $11 + i32.add + local.set $12 + loop $for-loop|1 + local.get $3 + local.get $4 + i32.lt_u + if + local.get $11 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 + 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 $1 - local.get $4 + i32.const 3 + i32.shl + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + i32.const 0 local.get $1 - local.get $4 + i32.const 1 + i32.sub + local.tee $10 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $4 + i32.const 1 + i32.add + local.tee $1 + i32.const 32 i32.lt_s - select + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + i32.const 0 + i32.const 31 + local.get $10 + local.get $10 + i32.const 31 + i32.ge_s + select + local.tee $4 + local.get $1 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.set $1 + i32.const 0 + local.set $3 + loop $while-continue|2 + local.get $4 + local.get $10 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $6 + local.get $10 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $5 + local.get $6 + i32.sub + i32.const 1 + i32.add + local.tee $7 + i32.const 32 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $6 + local.get $10 + local.get $6 + i32.const 31 + i32.add + local.tee $5 + local.get $5 + local.get $10 + i32.gt_s + select + local.tee $5 + local.get $7 + local.get $2 + call $~lib/util/sort/insertionSort + end + local.get $3 + local.get $6 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $10 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $9 + i64.div_u + local.get $5 + local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $9 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $7 + loop $for-loop|3 + local.get $1 + local.get $7 + i32.gt_u + if + local.get $1 + i32.const 2 + i32.shl + local.tee $14 + local.get $11 + i32.add + local.tee $15 + i32.load + local.tee $8 + i32.const -1 + i32.ne + if + local.get $12 + local.get $14 + i32.add + i32.load + i32.const 1 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $8 + local.get $3 + local.get $4 + local.get $13 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $15 + i32.const -1 + i32.store + local.get $8 + local.set $3 + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|3 + end + end + local.get $7 + i32.const 2 + i32.shl + local.tee $1 + local.get $11 + i32.add + local.get $3 + i32.store + local.get $1 + local.get $12 + i32.add + local.get $4 + i32.store + local.get $6 + local.set $3 + local.get $5 + local.set $4 + local.get $7 + local.set $1 + br $while-continue|2 + end + end + loop $for-loop|4 + local.get $1 + if + local.get $1 + i32.const 2 + i32.shl + local.tee $3 + local.get $11 + i32.add + i32.load + local.tee $4 + i32.const -1 + i32.ne + if + local.get $3 + local.get $12 + i32.add + i32.load + i32.const 1 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $4 + local.get $3 + local.get $10 + local.get $13 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|4 + end + end + local.get $13 + call $~lib/rt/tlsf/__free + local.get $11 + call $~lib/rt/tlsf/__free + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return end - local.tee $1 - local.get $0 - local.get $0 - local.get $1 - i32.lt_s - select - local.get $0 - i32.sub - i32.const 2 - i32.shl - i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 f32) + (func $~lib/util/sort/SORT (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) + (local $12 i32) + (local $13 i64) + (local $14 i32) + (local $15 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -27535,208 +29773,423 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 - i32.const 24 - memory.fill - local.get $1 - i32.const 7616 i32.store - local.get $1 - i32.const 7616 - i32.store offset=4 - i32.const 7616 - call $~lib/array/Array#get:length - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - call $~lib/typedarray/Float32Array#constructor - local.tee $4 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - call $~lib/typedarray/Float32Array#constructor - local.tee $1 - i32.store offset=12 - loop $for-loop|0 - local.get $0 - local.get $5 - i32.lt_s + block $folding-inner0 + local.get $1 + i32.const 48 + i32.le_s if - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $4 - i32.store offset=4 - local.get $2 - i32.const 7616 - i32.store offset=16 - local.get $4 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=16 - local.get $1 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__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 $4 - i32.store offset=4 - local.get $4 - call $~lib/typedarray/Float32Array#reverse - drop - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $5 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $0 - call $~lib/typedarray/Float32Array#__get - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=4 - local.get $3 - i32.const 7616 - local.get $5 - i32.const 1 - i32.sub - local.get $0 - i32.sub - call $~lib/array/Array#__get - f32.convert_i32_s - f32.ne - if + i32.le_s + br_if $folding-inner0 + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load + local.set $1 + local.get $0 + i32.load offset=4 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $1 + local.get $1 + local.get $3 + local.get $2 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.tee $4 + select + i32.store + local.get $0 + i32.load offset=8 + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $5 + local.get $1 + local.get $3 + local.get $4 + select + local.tee $1 + local.get $1 + local.get $5 + local.get $2 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.tee $3 + select + i32.store offset=4 + local.get $0 + local.get $1 + local.get $5 + local.get $3 + select + i32.store offset=8 + end + local.get $0 + i32.load + local.set $1 + local.get $0 + i32.load offset=4 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $1 + local.get $1 + local.get $3 + local.get $2 + i32.load + call_indirect (type $0) i32.const 0 - i32.const 1568 - i32.const 570 - i32.const 5 - call $~lib/builtins/abort - unreachable + i32.gt_s + local.tee $2 + select + i32.store + local.get $0 + local.get $1 + local.get $3 + local.get $2 + select + i32.store offset=4 + br $folding-inner0 end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store local.get $0 + i32.const 0 + local.get $1 i32.const 1 - i32.add - local.set $0 - br $for-loop|1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + br $folding-inner0 end - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=16 - local.get $1 - i32.const 8 - call $~lib/typedarray/Float32Array#subarray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - call $~lib/typedarray/Float32Array#reverse - local.tee $0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Float32Array#__get - f32.const 8 - f32.ne - if - i32.const 0 - i32.const 1568 - i32.const 575 - 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 1 - call $~lib/typedarray/Float32Array#__get - f32.const 7 - f32.ne - if + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $4 + i32.const 2 + i32.shl + local.tee $5 + i32.const 1 + i32.shl + local.set $6 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + local.get $5 + global.get $~lib/rt/tlsf/ROOT + local.get $6 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $10 + i32.add + local.set $11 + loop $for-loop|1 + local.get $3 + local.get $4 + i32.lt_u + if + local.get $10 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 + 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 $1 + i32.const 2 + i32.shl + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 i32.const 0 - i32.const 1568 - i32.const 576 - 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 2 - call $~lib/typedarray/Float32Array#__get - f32.const 6 - f32.ne - if + local.get $1 + i32.const 1 + i32.sub + local.tee $9 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $4 + i32.const 1 + i32.add + local.tee $1 + i32.const 32 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + i32.const 0 + i32.const 31 + local.get $9 + local.get $9 + i32.const 31 + i32.ge_s + select + local.tee $4 + local.get $1 + local.get $2 + call $~lib/util/sort/insertionSort + end i32.const 0 - i32.const 1568 - i32.const 577 - 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 3 - call $~lib/typedarray/Float32Array#__get - f32.const 5 - f32.ne - if + local.set $1 i32.const 0 - i32.const 1568 - i32.const 578 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.set $3 + loop $while-continue|2 + local.get $4 + local.get $9 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $6 + local.get $9 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $5 + local.get $6 + i32.sub + i32.const 1 + i32.add + local.tee $7 + i32.const 32 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $6 + local.get $9 + local.get $6 + i32.const 31 + i32.add + local.tee $5 + local.get $5 + local.get $9 + i32.gt_s + select + local.tee $5 + local.get $7 + local.get $2 + call $~lib/util/sort/insertionSort + end + local.get $3 + local.get $6 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $9 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $13 + i64.div_u + local.get $5 + local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $13 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $7 + loop $for-loop|3 + local.get $1 + local.get $7 + i32.gt_u + if + local.get $1 + i32.const 2 + i32.shl + local.tee $14 + local.get $10 + i32.add + local.tee $15 + i32.load + local.tee $8 + i32.const -1 + i32.ne + if + local.get $11 + local.get $14 + i32.add + i32.load + i32.const 1 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $8 + local.get $3 + local.get $4 + local.get $12 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $15 + i32.const -1 + i32.store + local.get $8 + local.set $3 + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|3 + end + end + local.get $7 + i32.const 2 + i32.shl + local.tee $1 + local.get $10 + i32.add + local.get $3 + i32.store + local.get $1 + local.get $11 + i32.add + local.get $4 + i32.store + local.get $6 + local.set $3 + local.get $5 + local.set $4 + local.get $7 + local.set $1 + br $while-continue|2 + end + end + loop $for-loop|4 + local.get $1 + if + local.get $1 + i32.const 2 + i32.shl + local.tee $3 + local.get $10 + i32.add + i32.load + local.tee $4 + i32.const -1 + i32.ne + if + local.get $3 + local.get $11 + i32.add + i32.load + i32.const 1 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $4 + local.get $3 + local.get $9 + local.get $12 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|4 + end + end + local.get $12 + call $~lib/rt/tlsf/__free + local.get $10 + call $~lib/rt/tlsf/__free + 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 24 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Float64Array#reverse (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 f64) + (func $~lib/util/sort/SORT (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) + (local $12 i32) + (local $13 i64) + (local $14 i32) + (local $15 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -27753,82 +30206,428 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i32.const 0 i32.store - local.get $4 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $2 - local.get $4 - local.get $0 - i32.store - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.tee $4 - i32.const 1 - i32.gt_u - if - local.get $4 - i32.const 1 - i32.shr_u - local.set $5 - local.get $4 - i32.const 1 - i32.sub - local.set $4 - loop $while-continue|0 + block $folding-inner0 + local.get $1 + i32.const 48 + i32.le_s + if local.get $1 - local.get $5 - i32.lt_u - if + i32.const 1 + i32.le_s + br_if $folding-inner0 + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load16_s + local.set $1 + local.get $0 + i32.load16_s offset=2 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $1 + local.get $1 + local.get $3 + local.get $2 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.tee $4 + select + i32.store16 + local.get $0 + i32.load16_s offset=4 + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $5 + local.get $1 + local.get $3 + local.get $4 + select + local.tee $1 + local.get $1 + local.get $5 + local.get $2 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.tee $3 + select + i32.store16 offset=2 + local.get $0 + local.get $1 + local.get $5 + local.get $3 + select + i32.store16 offset=4 + end + local.get $0 + i32.load16_s + local.set $1 + local.get $0 + i32.load16_s offset=2 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $1 + local.get $1 + local.get $3 local.get $2 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.tee $2 + select + i32.store16 + local.get $0 local.get $1 - i32.const 3 + local.get $3 + local.get $2 + select + i32.store16 offset=2 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + br $folding-inner0 + end + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $4 + i32.const 2 + i32.shl + local.tee $5 + i32.const 1 + i32.shl + local.set $6 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + local.get $5 + global.get $~lib/rt/tlsf/ROOT + local.get $6 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $10 + i32.add + local.set $11 + loop $for-loop|1 + local.get $3 + local.get $4 + i32.lt_u + if + local.get $10 + local.get $3 + i32.const 2 i32.shl i32.add - local.tee $6 - f64.load + i32.const -1 + i32.store + local.get $3 + i32.const 1 + i32.add local.set $3 - local.get $6 + br $for-loop|1 + 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 $1 + i32.const 1 + i32.shl + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + local.tee $9 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $4 + i32.const 1 + i32.add + local.tee $1 + i32.const 32 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + i32.const 0 + i32.const 31 + local.get $9 + local.get $9 + i32.const 31 + i32.ge_s + select + local.tee $4 + local.get $1 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.set $1 + i32.const 0 + local.set $3 + loop $while-continue|2 + local.get $4 + local.get $9 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer local.get $2 + i32.store + local.get $0 local.get $4 - local.get $1 - i32.sub - i32.const 3 - i32.shl + i32.const 1 i32.add local.tee $6 - f64.load - f64.store + local.get $9 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $5 + local.get $6 + i32.sub + i32.const 1 + i32.add + local.tee $7 + i32.const 32 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $6 + local.get $9 + local.get $6 + i32.const 31 + i32.add + local.tee $5 + local.get $5 + local.get $9 + i32.gt_s + select + local.tee $5 + local.get $7 + local.get $2 + call $~lib/util/sort/insertionSort + end + local.get $3 + local.get $6 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $9 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $13 + i64.div_u + local.get $5 local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $13 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $7 + loop $for-loop|3 + local.get $1 + local.get $7 + i32.gt_u + if + local.get $1 + i32.const 2 + i32.shl + local.tee $14 + local.get $10 + i32.add + local.tee $15 + i32.load + local.tee $8 + i32.const -1 + i32.ne + if + local.get $11 + local.get $14 + i32.add + i32.load + i32.const 1 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $8 + local.get $3 + local.get $4 + local.get $12 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $15 + i32.const -1 + i32.store + local.get $8 + local.set $3 + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|3 + end + end + local.get $7 + i32.const 2 + i32.shl + local.tee $1 + local.get $10 + i32.add local.get $3 - f64.store + i32.store local.get $1 - i32.const 1 + local.get $11 i32.add + local.get $4 + i32.store + local.get $6 + local.set $3 + local.get $5 + local.set $4 + local.get $7 local.set $1 - br $while-continue|0 + br $while-continue|2 + end + end + loop $for-loop|4 + local.get $1 + if + local.get $1 + i32.const 2 + i32.shl + local.tee $3 + local.get $10 + i32.add + i32.load + local.tee $4 + i32.const -1 + i32.ne + if + local.get $3 + local.get $11 + i32.add + i32.load + i32.const 1 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $4 + local.get $3 + local.get $9 + local.get $12 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|4 end end + local.get $12 + call $~lib/rt/tlsf/__free + local.get $10 + call $~lib/rt/tlsf/__free + 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.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 f64) + (func $~lib/util/sort/SORT (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 f64) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i64) + (local $15 i32) + (local $16 i32) + (local $17 f64) + (local $18 f64) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -27843,2243 +30642,2764 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 - i32.const 24 - memory.fill - local.get $1 - i32.const 7616 i32.store - local.get $1 - i32.const 7616 - i32.store offset=4 - i32.const 7616 - call $~lib/array/Array#get:length - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - call $~lib/typedarray/Float64Array#constructor - local.tee $4 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - call $~lib/typedarray/Float64Array#constructor - local.tee $1 - i32.store offset=12 - loop $for-loop|0 - local.get $0 - local.get $5 - i32.lt_s + block $folding-inner0 + local.get $1 + i32.const 48 + i32.le_s if - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $4 - i32.store offset=4 - local.get $2 - i32.const 7616 - i32.store offset=16 - local.get $4 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=16 local.get $1 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__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 $4 - i32.store offset=4 - local.get $4 - call $~lib/typedarray/Float64Array#reverse - drop - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $5 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $0 - call $~lib/typedarray/Float64Array#__get - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=4 - local.get $3 - i32.const 7616 - local.get $5 i32.const 1 - i32.sub - local.get $0 - i32.sub - call $~lib/array/Array#__get - f64.convert_i32_s - f64.ne - if + i32.le_s + br_if $folding-inner0 + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + f64.load + local.set $9 + local.get $0 + f64.load offset=8 + local.set $17 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $17 + local.get $9 + local.get $9 + local.get $17 + local.get $2 + i32.load + call_indirect (type $10) + i32.const 0 + i32.gt_s + local.tee $1 + select + f64.store + local.get $0 + f64.load offset=16 + local.set $18 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $18 + local.get $9 + local.get $17 + local.get $1 + select + local.tee $9 + local.get $9 + local.get $18 + local.get $2 + i32.load + call_indirect (type $10) + i32.const 0 + i32.gt_s + local.tee $1 + select + f64.store offset=8 + local.get $0 + local.get $9 + local.get $18 + local.get $1 + select + f64.store offset=16 + end + local.get $0 + f64.load + local.set $9 + local.get $0 + f64.load offset=8 + local.set $17 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $17 + local.get $9 + local.get $9 + local.get $17 + local.get $2 + i32.load + call_indirect (type $10) i32.const 0 - i32.const 1568 - i32.const 570 - i32.const 5 - call $~lib/builtins/abort - unreachable + i32.gt_s + local.tee $1 + select + f64.store + local.get $0 + local.get $9 + local.get $17 + local.get $1 + select + f64.store offset=8 + br $folding-inner0 end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store local.get $0 + i32.const 0 + local.get $1 i32.const 1 - i32.add - local.set $0 - br $for-loop|1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + br $folding-inner0 end - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=16 - local.get $1 - i32.const 4 - i32.const 8 - call $~lib/typedarray/Float64Array#subarray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - call $~lib/typedarray/Float64Array#reverse - local.tee $0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Float64Array#__get - f64.const 8 - f64.ne - if - i32.const 0 - i32.const 1568 - i32.const 575 - 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 1 - call $~lib/typedarray/Float64Array#__get - f64.const 7 - f64.ne - if - i32.const 0 - i32.const 1568 - i32.const 576 - 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 2 - call $~lib/typedarray/Float64Array#__get - f64.const 6 - f64.ne - if - i32.const 0 - i32.const 1568 - i32.const 577 - 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 3 - call $~lib/typedarray/Float64Array#__get - f64.const 5 - f64.ne - if - i32.const 0 - i32.const 1568 - i32.const 578 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int8Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result 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 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $4 + i32.const 2 + i32.shl + local.tee $5 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.store offset=4 - i32.const -1 - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.tee $3 + i32.shl + local.set $6 + global.get $~lib/rt/tlsf/ROOT i32.eqz - local.get $2 - local.get $3 - i32.ge_s - i32.or - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 - drop - 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 + call $~lib/rt/tlsf/initialize end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $0 - loop $while-continue|0 - local.get $2 + local.get $5 + global.get $~lib/rt/tlsf/ROOT + local.get $6 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $11 + i32.add + local.set $12 + loop $for-loop|1 local.get $3 - i32.lt_s + local.get $4 + i32.lt_u if - local.get $2 - local.get $0 - local.get $2 + local.get $11 + local.get $3 + i32.const 2 + i32.shl i32.add - i32.load8_u - local.get $1 - i32.const 255 - i32.and - i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 - drop - local.get $2 + i32.const -1 + i32.store + local.get $3 i32.const 1 i32.add - local.set $2 - br $while-continue|0 + local.set $3 + br $for-loop|1 end end - i32.const -1 - end - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/typedarray/Int8Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result 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 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 - local.tee $3 - i64.const 0 - i64.store - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.store offset=4 - i32.const -1 - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.tee $3 + global.get $~lib/rt/tlsf/ROOT i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 - drop - local.get $2 - local.get $3 + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $1 + i32.const 3 + i32.shl + call $~lib/rt/tlsf/allocateBlock + i32.const 4 i32.add - local.get $3 + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + i32.const 0 + local.get $1 i32.const 1 i32.sub + local.tee $10 local.get $2 - local.get $2 - local.get $3 - i32.ge_s - select - local.get $2 - i32.const 0 + call $~lib/util/sort/extendRunRight + local.tee $4 + i32.const 1 + i32.add + local.tee $1 + i32.const 32 i32.lt_s - select - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $0 - loop $while-continue|0 + if + global.get $~lib/memory/__stack_pointer local.get $2 + i32.store + local.get $0 i32.const 0 + i32.const 31 + local.get $10 + local.get $10 + i32.const 31 i32.ge_s + select + local.tee $4 + local.get $1 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.set $1 + i32.const 0 + local.set $3 + loop $while-continue|2 + local.get $4 + local.get $10 + i32.lt_s if + global.get $~lib/memory/__stack_pointer local.get $2 + i32.store local.get $0 - local.get $2 + local.get $4 + i32.const 1 i32.add - i32.load8_u - local.get $1 - i32.const 255 - i32.and - i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 - drop + local.tee $6 + local.get $10 local.get $2 - i32.const 1 + call $~lib/util/sort/extendRunRight + local.tee $5 + local.get $6 i32.sub - local.set $2 - br $while-continue|0 - end - end - i32.const -1 - end - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/typedarray/Int8Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - 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 $0 - i32.store - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.set $2 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Int8Array#lastIndexOf - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int8Array,i8> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - 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 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 - local.tee $1 - i32.const 0 - i32.const 20 - memory.fill - local.get $1 - i32.const 7728 - i32.store - local.get $1 - i32.const 7728 - i32.store offset=4 - i32.const 7728 - call $~lib/array/Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - call $~lib/typedarray/Int8Array#constructor - local.tee $1 - i32.store offset=8 - loop $for-loop|0 - local.get $0 - local.get $3 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 - i32.store offset=4 - local.get $2 - i32.const 7728 - i32.store offset=12 + i32.add + local.tee $7 + i32.const 32 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $6 + local.get $10 + local.get $6 + i32.const 31 + i32.add + local.tee $5 + local.get $5 + local.get $10 + i32.gt_s + select + local.tee $5 + local.get $7 + local.get $2 + call $~lib/util/sort/insertionSort + end + local.get $3 + local.get $6 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $10 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $14 + i64.div_u + local.get $5 + local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $14 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $7 + loop $for-loop|3 + local.get $1 + local.get $7 + i32.gt_u + if + local.get $1 + i32.const 2 + i32.shl + local.tee $15 + local.get $11 + i32.add + local.tee $16 + i32.load + local.tee $8 + i32.const -1 + i32.ne + if + local.get $12 + local.get $15 + i32.add + i32.load + i32.const 1 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $8 + local.get $3 + local.get $4 + local.get $13 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $16 + i32.const -1 + i32.store + local.get $8 + local.set $3 + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|3 + end + end + local.get $7 + i32.const 2 + i32.shl + local.tee $1 + local.get $11 + i32.add + local.get $3 + i32.store + local.get $1 + local.get $12 + i32.add + local.get $4 + i32.store + local.get $6 + local.set $3 + local.get $5 + local.set $4 + local.get $7 + local.set $1 + br $while-continue|2 + end + end + loop $for-loop|4 local.get $1 - local.get $0 - i32.const 7728 - local.get $0 - call $~lib/array/Array#__get - i32.extend8_s - call $~lib/typedarray/Int8Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 + if + local.get $1 + i32.const 2 + i32.shl + local.tee $3 + local.get $11 + i32.add + i32.load + local.tee $4 + i32.const -1 + i32.ne + if + local.get $3 + local.get $12 + i32.add + i32.load + i32.const 1 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $4 + local.get $3 + local.get $10 + local.get $13 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|4 + end end + local.get $13 + call $~lib/rt/tlsf/__free + local.get $11 + call $~lib/rt/tlsf/__free + 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 - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - if - i32.const 0 - i32.const 1568 - i32.const 603 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/sort/SORT (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 f32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i64) + (local $15 i32) + (local $16 i32) + (local $17 f32) + (local $18 f32) global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 11 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 604 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const -1 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne + i32.const 16320 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 605 - i32.const 3 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 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 i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const 3 - i32.ne - if + i32.store + block $folding-inner0 + local.get $1 + i32.const 48 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + br_if $folding-inner0 + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + f32.load + local.set $9 + local.get $0 + f32.load offset=4 + local.set $17 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $17 + local.get $9 + local.get $9 + local.get $17 + local.get $2 + i32.load + call_indirect (type $11) + i32.const 0 + i32.gt_s + local.tee $1 + select + f32.store + local.get $0 + f32.load offset=8 + local.set $18 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $18 + local.get $9 + local.get $17 + local.get $1 + select + local.tee $9 + local.get $9 + local.get $18 + local.get $2 + i32.load + call_indirect (type $11) + i32.const 0 + i32.gt_s + local.tee $1 + select + f32.store offset=4 + local.get $0 + local.get $9 + local.get $18 + local.get $1 + select + f32.store offset=8 + end + local.get $0 + f32.load + local.set $9 + local.get $0 + f32.load offset=4 + local.set $17 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $17 + local.get $9 + local.get $9 + local.get $17 + local.get $2 + i32.load + call_indirect (type $11) + i32.const 0 + i32.gt_s + local.tee $1 + select + f32.store + local.get $0 + local.get $9 + local.get $17 + local.get $1 + select + f32.store offset=4 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + br $folding-inner0 + end + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $4 + i32.const 2 + i32.shl + local.tee $5 + i32.const 1 + i32.shl + local.set $6 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + local.get $5 + global.get $~lib/rt/tlsf/ROOT + local.get $6 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $11 + i32.add + local.set $12 + loop $for-loop|1 + local.get $3 + local.get $4 + i32.lt_u + if + local.get $11 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 + 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 $1 + i32.const 2 + i32.shl + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 i32.const 0 - i32.const 1568 - i32.const 606 - 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 - i32.const 2 - call $~lib/typedarray/Int8Array#indexOf - i32.const 3 - i32.ne - if + local.get $1 + i32.const 1 + i32.sub + local.tee $10 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $4 + i32.const 1 + i32.add + local.tee $1 + i32.const 32 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + i32.const 0 + i32.const 31 + local.get $10 + local.get $10 + i32.const 31 + i32.ge_s + select + local.tee $4 + local.get $1 + local.get $2 + call $~lib/util/sort/insertionSort + end i32.const 0 - i32.const 1568 - i32.const 607 - 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 - i32.const 3 - call $~lib/typedarray/Int8Array#indexOf - i32.const 3 - i32.ne - if + local.set $1 i32.const 0 - i32.const 1568 - i32.const 608 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.set $3 + loop $while-continue|2 + local.get $4 + local.get $10 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $6 + local.get $10 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $5 + local.get $6 + i32.sub + i32.const 1 + i32.add + local.tee $7 + i32.const 32 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $6 + local.get $10 + local.get $6 + i32.const 31 + i32.add + local.tee $5 + local.get $5 + local.get $10 + i32.gt_s + select + local.tee $5 + local.get $7 + local.get $2 + call $~lib/util/sort/insertionSort + end + local.get $3 + local.get $6 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $10 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $14 + i64.div_u + local.get $5 + local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $14 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $7 + loop $for-loop|3 + local.get $1 + local.get $7 + i32.gt_u + if + local.get $1 + i32.const 2 + i32.shl + local.tee $15 + local.get $11 + i32.add + local.tee $16 + i32.load + local.tee $8 + i32.const -1 + i32.ne + if + local.get $12 + local.get $15 + i32.add + i32.load + i32.const 1 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $8 + local.get $3 + local.get $4 + local.get $13 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $16 + i32.const -1 + i32.store + local.get $8 + local.set $3 + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|3 + end + end + local.get $7 + i32.const 2 + i32.shl + local.tee $1 + local.get $11 + i32.add + local.get $3 + i32.store + local.get $1 + local.get $12 + i32.add + local.get $4 + i32.store + local.get $6 + local.set $3 + local.get $5 + local.set $4 + local.get $7 + local.set $1 + br $while-continue|2 + end + end + loop $for-loop|4 + local.get $1 + if + local.get $1 + i32.const 2 + i32.shl + local.tee $3 + local.get $11 + i32.add + i32.load + local.tee $4 + i32.const -1 + i32.ne + if + local.get $3 + local.get $12 + i32.add + i32.load + i32.const 1 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $4 + local.get $3 + local.get $10 + local.get $13 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|4 + end + end + local.get $13 + call $~lib/rt/tlsf/__free + local.get $11 + call $~lib/rt/tlsf/__free + 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 - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 3 i32.const 4 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 609 - 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 10 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 610 - 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 -100 - call $~lib/typedarray/Int8Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 611 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $1 - i32.const 0 - call $~lib/typedarray/Int8Array#lastIndexOf@varargs - if - i32.const 0 - i32.const 1568 - i32.const 613 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $1 - i32.const 11 - call $~lib/typedarray/Int8Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 614 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i64) (param $1 i64) (result i32) + local.get $0 local.get $1 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength + i64.gt_u + local.get $0 local.get $1 - i32.const -1 - call $~lib/typedarray/Int8Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 615 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + i64.lt_u + i32.sub + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 local.get $1 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength + i32.gt_u + local.get $0 local.get $1 - i32.const 3 - call $~lib/typedarray/Int8Array#lastIndexOf@varargs - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 616 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + i32.lt_u + i32.sub + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.const 65535 + i32.and + local.tee $0 local.get $1 - i32.store offset=4 + i32.const 65535 + i32.and + local.tee $1 + i32.gt_u + local.get $0 local.get $1 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 617 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + i32.lt_u + i32.sub + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.extend8_s local.get $1 - i32.store offset=4 + i32.extend8_s + i32.sub + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i64) (param $1 i64) (result i32) + local.get $0 local.get $1 - i32.const 3 - i32.const 3 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 618 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + i64.gt_s + local.get $0 local.get $1 - i32.store offset=4 + i64.lt_s + i32.sub + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 local.get $1 - i32.const 3 - i32.const 2 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 619 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + i32.sub + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.extend16_s local.get $1 - i32.store offset=4 + i32.extend16_s + i32.sub + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f64) (param $1 f64) (result i32) + (local $2 i64) + (local $3 i64) + local.get $0 + i64.reinterpret_f64 + local.tee $2 + i64.const 63 + i64.shr_s + i64.const 1 + i64.shr_u + local.get $2 + i64.xor + local.tee $2 local.get $1 + i64.reinterpret_f64 + local.tee $3 + i64.const 63 + i64.shr_s + i64.const 1 + i64.shr_u + local.get $3 + i64.xor + local.tee $3 + i64.gt_s + local.get $2 + local.get $3 + i64.lt_s + i32.sub + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f32) (param $1 f32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.reinterpret_f32 + local.tee $2 + i32.const 31 + i32.shr_s i32.const 1 - i32.const 100 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 620 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + i32.shr_u + local.get $2 + i32.xor + local.tee $2 local.get $1 + i32.reinterpret_f32 + local.tee $3 + i32.const 31 + i32.shr_s i32.const 1 - i32.const -10 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const 1 - i32.ne + i32.shr_u + local.get $3 + i32.xor + local.tee $3 + i32.gt_s + local.get $2 + local.get $3 + i32.lt_s + i32.sub + ) + (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + local.get $2 + i32.eqz if - i32.const 0 - i32.const 1568 - i32.const 621 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 3145774 + i32.store + local.get $1 + i32.const 2 + i32.add + return end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 local.get $1 - i32.const 1 - i32.const -11 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 622 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 + local.get $2 + i32.add + local.tee $3 + i32.const 21 + i32.le_s local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - i32.const 4 - i32.const 9 - call $~lib/typedarray/Int8Array#subarray - local.tee $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 626 - 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 4 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - if - i32.const 0 - i32.const 1568 - i32.const 627 - 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 5 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 628 - 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 9 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 629 - 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 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 630 - 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 11 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 631 - 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 5 - i32.const 1 - call $~lib/typedarray/Int8Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 632 - 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 5 - i32.const 2 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 633 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8Array,u8> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - 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 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 - local.tee $1 - i32.const 0 - i32.const 20 - memory.fill - local.get $1 - i32.const 7728 - i32.store - local.get $1 - i32.const 7728 - i32.store offset=4 - i32.const 7728 - call $~lib/array/Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer local.get $3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $1 - i32.store offset=8 - loop $for-loop|0 + i32.le_s + i32.and + if (result i32) + loop $for-loop|0 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 48 + i32.store16 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end local.get $0 local.get $3 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 - i32.store offset=4 - local.get $2 - i32.const 7728 - i32.store offset=12 - local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 3145774 + i32.store + local.get $3 + i32.const 2 + i32.add + else + local.get $3 + i32.const 21 + i32.le_s + local.get $3 + i32.const 0 + i32.gt_s + i32.and + if (result i32) local.get $0 - i32.const 7728 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.tee $0 + i32.const 2 + i32.add local.get $0 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set + i32.const 0 + local.get $2 + i32.sub + i32.const 1 + i32.shl + memory.copy local.get $0 + i32.const 46 + i32.store16 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0 + else + local.get $3 + i32.const 0 + i32.le_s + local.get $3 + i32.const -6 + i32.gt_s + i32.and + if (result i32) + local.get $0 + i32.const 2 + local.get $3 + i32.sub + local.tee $3 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $1 + i32.const 1 + i32.shl + memory.copy + local.get $0 + i32.const 3014704 + i32.store + i32.const 2 + local.set $2 + loop $for-loop|1 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 48 + i32.store16 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 + end + end + local.get $1 + local.get $3 + i32.add + else + local.get $1 + i32.const 1 + i32.eq + if + local.get $0 + i32.const 101 + i32.store16 offset=2 + local.get $0 + i32.const 4 + i32.add + local.tee $2 + local.get $3 + i32.const 1 + i32.sub + local.tee $0 + i32.const 0 + i32.lt_s + local.tee $3 + if + i32.const 0 + local.get $0 + i32.sub + local.set $0 + end + local.get $0 + local.get $0 + 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 + i32.const 1 + i32.add + local.tee $1 + call $~lib/util/number/utoa32_dec_lut + local.get $2 + i32.const 45 + i32.const 43 + local.get $3 + select + i32.store16 + else + local.get $0 + i32.const 4 + i32.add + local.get $0 + i32.const 2 + i32.add + local.get $1 + i32.const 1 + i32.shl + local.tee $2 + i32.const 2 + i32.sub + memory.copy + local.get $0 + i32.const 46 + i32.store16 offset=2 + local.get $0 + local.get $2 + i32.add + local.tee $0 + i32.const 101 + i32.store16 offset=2 + local.get $0 + i32.const 4 + i32.add + local.tee $4 + local.get $3 + i32.const 1 + i32.sub + local.tee $0 + i32.const 0 + i32.lt_s + local.tee $2 + if + i32.const 0 + local.get $0 + i32.sub + local.set $0 + end + local.get $0 + local.get $0 + 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 + i32.const 1 + i32.add + local.tee $0 + call $~lib/util/number/utoa32_dec_lut + local.get $4 + i32.const 45 + i32.const 43 + local.get $2 + select + i32.store16 + local.get $0 + local.get $1 + i32.add + local.set $1 + end + local.get $1 + i32.const 2 + i32.add + end end end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + ) + (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) + (local $6 i32) + (local $7 i32) + (local $8 i64) + (local $9 i64) + (local $10 i32) + (local $11 i64) + (local $12 i64) + local.get $2 local.get $1 + i64.sub + local.set $9 + i64.const 1 i32.const 0 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - if - i32.const 0 - i32.const 1568 - i32.const 603 - 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 11 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 604 - 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/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 605 - 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 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 606 - 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 - i32.const 2 - call $~lib/typedarray/Int8Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 607 - 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 - i32.const 3 - call $~lib/typedarray/Int8Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 608 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + local.get $3 + i32.sub + local.tee $10 + i64.extend_i32_s + local.tee $1 + i64.shl + local.tee $12 + i64.const 1 + i64.sub + local.tee $11 + local.get $2 + i64.and + local.set $8 + local.get $2 local.get $1 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 609 - i32.const 3 - call $~lib/builtins/abort - unreachable + i64.shr_u + i32.wrap_i64 + local.tee $3 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $3 + i32.const 100 + i32.lt_u + if (result i32) + local.get $3 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $3 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $3 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $3 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $3 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $3 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $3 + i32.const 100000000 + i32.ge_u + i32.add + end end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - i32.const 10 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if + local.set $7 + loop $while-continue|0 + local.get $7 i32.const 0 - i32.const 1568 - i32.const 610 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.gt_s + if + block $break|1 + block $case10|1 + block $case9|1 + block $case8|1 + block $case7|1 + block $case6|1 + block $case5|1 + block $case4|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + local.get $7 + i32.const 1 + i32.sub + br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $case0|1 $case10|1 + end + local.get $3 + i32.const 1000000000 + i32.div_u + local.set $6 + local.get $3 + i32.const 1000000000 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 100000000 + i32.div_u + local.set $6 + local.get $3 + i32.const 100000000 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 10000000 + i32.div_u + local.set $6 + local.get $3 + i32.const 10000000 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 1000000 + i32.div_u + local.set $6 + local.get $3 + i32.const 1000000 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 100000 + i32.div_u + local.set $6 + local.get $3 + i32.const 100000 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 10000 + i32.div_u + local.set $6 + local.get $3 + i32.const 10000 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 1000 + i32.div_u + local.set $6 + local.get $3 + i32.const 1000 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 100 + i32.div_u + local.set $6 + local.get $3 + i32.const 100 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 10 + i32.div_u + local.set $6 + local.get $3 + i32.const 10 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + local.set $6 + i32.const 0 + local.set $3 + br $break|1 + end + i32.const 0 + local.set $6 + end + local.get $5 + local.get $6 + i32.or + if + local.get $0 + local.get $5 + i32.const 1 + i32.shl + i32.add + local.get $6 + i32.const 65535 + i32.and + i32.const 48 + i32.add + i32.store16 + local.get $5 + i32.const 1 + i32.add + local.set $5 + end + local.get $7 + i32.const 1 + i32.sub + local.set $7 + local.get $4 + local.get $3 + i64.extend_i32_u + local.get $10 + i64.extend_i32_s + local.tee $2 + i64.shl + local.get $8 + i64.add + local.tee $1 + i64.ge_u + if + global.get $~lib/util/number/_K + local.get $7 + i32.add + global.set $~lib/util/number/_K + local.get $7 + i32.const 2 + i32.shl + i32.const 10736 + i32.add + i64.load32_u + local.get $2 + i64.shl + local.set $2 + local.get $0 + local.get $5 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.tee $0 + i32.load16_u + local.set $7 + loop $while-continue|3 + local.get $1 + local.get $9 + i64.lt_u + local.get $4 + local.get $1 + i64.sub + local.get $2 + i64.ge_u + i32.and + if (result i32) + local.get $9 + local.get $1 + local.get $2 + i64.add + local.tee $8 + i64.gt_u + local.get $9 + local.get $1 + i64.sub + local.get $8 + local.get $9 + i64.sub + i64.gt_u + i32.or + else + i32.const 0 + end + if + local.get $7 + i32.const 1 + i32.sub + local.set $7 + local.get $1 + local.get $2 + i64.add + local.set $1 + br $while-continue|3 + end + end + local.get $0 + local.get $7 + i32.store16 + local.get $5 + return + end + br $while-continue|0 + end end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - i32.const -100 - call $~lib/typedarray/Int8Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 611 - i32.const 3 - call $~lib/builtins/abort - unreachable + loop $while-continue|4 + local.get $4 + i64.const 10 + i64.mul + local.set $4 + local.get $8 + i64.const 10 + i64.mul + local.tee $1 + local.get $10 + i64.extend_i32_s + i64.shr_u + local.tee $2 + local.get $5 + i64.extend_i32_s + i64.or + i64.const 0 + i64.ne + if + local.get $0 + local.get $5 + i32.const 1 + i32.shl + i32.add + local.get $2 + i32.wrap_i64 + i32.const 65535 + i32.and + i32.const 48 + i32.add + i32.store16 + local.get $5 + i32.const 1 + i32.add + local.set $5 + end + local.get $7 + i32.const 1 + i32.sub + local.set $7 + local.get $1 + local.get $11 + i64.and + local.tee $8 + local.get $4 + i64.ge_u + br_if $while-continue|4 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $1 + global.get $~lib/util/number/_K + local.get $7 + i32.add + global.set $~lib/util/number/_K + local.get $9 i32.const 0 - call $~lib/typedarray/Int8Array#lastIndexOf@varargs - if - i32.const 0 - i32.const 1568 - i32.const 613 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + local.get $7 + i32.sub + i32.const 2 + i32.shl + i32.const 10736 + i32.add + i64.load32_u + i64.mul + local.set $1 + local.get $0 + local.get $5 i32.const 1 - global.set $~argumentsLength - local.get $1 - i32.const 11 - call $~lib/typedarray/Int8Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 614 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + i32.sub i32.const 1 - global.set $~argumentsLength - local.get $1 - i32.const -1 - call $~lib/typedarray/Int8Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 615 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $1 - i32.const 3 - call $~lib/typedarray/Int8Array#lastIndexOf@varargs - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 616 - 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 - i32.const 4 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 617 - 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 - i32.const 3 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 618 - 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 - i32.const 2 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 619 - 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 100 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 620 - 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 -10 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 621 - 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 -11 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 622 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - i32.const 9 - call $~lib/typedarray/Uint8Array#subarray + i32.shl + i32.add local.tee $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 626 - 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 4 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - if - i32.const 0 - i32.const 1568 - i32.const 627 - 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 5 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 628 - 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 9 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 629 - 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 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 630 - 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 11 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 631 - 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 5 - i32.const 1 - call $~lib/typedarray/Int8Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 632 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.load16_u + local.set $7 + loop $while-continue|6 + local.get $1 + local.get $8 + i64.gt_u + local.get $4 + local.get $8 + i64.sub + local.get $12 + i64.ge_u + i32.and + if (result i32) + local.get $1 + local.get $8 + local.get $12 + i64.add + local.tee $2 + i64.gt_u + local.get $1 + local.get $8 + i64.sub + local.get $2 + local.get $1 + i64.sub + i64.gt_u + i32.or + else + i32.const 0 + end + if + local.get $7 + i32.const 1 + i32.sub + local.set $7 + local.get $8 + local.get $12 + i64.add + local.set $8 + br $while-continue|6 + end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 - i32.const 5 - i32.const 2 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 633 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $7 + i32.store16 + local.get $5 ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8ClampedArray,u8> + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8ClampedArray> (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) + (local $2 f32) + (local $3 f64) + (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 20 + i32.const 24 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 - local.tee $1 - i32.const 0 - i32.const 20 - memory.fill - local.get $1 - i32.const 7728 - i32.store - local.get $1 - i32.const 7728 - i32.store offset=4 - i32.const 7728 - call $~lib/array/Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $1 - i32.store offset=8 - loop $for-loop|0 - local.get $0 - local.get $3 - i32.lt_s - if + block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $5 i32.store offset=4 - local.get $2 - i32.const 7728 + local.get $5 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $6 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $7 i32.store offset=12 - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 7728 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + 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 16320 + 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 local.get $0 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=8 + i32.const 11008 + call $~lib/array/Array#get:length + local.set $8 + global.get $~lib/memory/__stack_pointer 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 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - if - i32.const 0 - i32.const 1568 - i32.const 603 - 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 11 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 604 - 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/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 605 - i32.const 3 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.get $8 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=8 + i32.const 11012 + i32.load + local.set $10 + loop $for-loop|0 + local.get $1 + local.get $8 + i32.lt_s + if + local.get $1 + local.get $9 + i32.add + i32.const 255 + local.get $10 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $4 + i32.sub + i32.const 31 + i32.shr_s + local.get $4 + i32.or + local.get $4 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i32.and + i32.store8 + 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 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 0 + i32.const 64 + i32.const 11728 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + 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 16320 + 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 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=8 + i32.const 11088 + call $~lib/array/Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.get $4 + i32.const 3 + i32.add + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.add + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=8 + i32.const 11092 + i32.load + local.set $9 + i32.const 0 + local.set $1 + loop $for-loop|00 + local.get $1 + local.get $4 + i32.lt_s + if + local.get $1 + local.get $8 + i32.add + local.get $9 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + local.tee $2 + local.get $2 + f32.sub + f32.const 0 + f32.eq + if (result i32) + local.get $2 + f32.const 255 + f32.min + f32.const 0 + f32.max + i32.trunc_sat_f32_u + else + i32.const 0 + end + i32.store8 + 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 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 0 + i32.const 64 + i32.const 11824 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=20 + local.get $0 + local.get $5 + i32.const 6 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 0 + i32.const 64 + i32.const 11856 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + 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 16320 + 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 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=8 + i32.const 11184 + call $~lib/array/Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.get $4 + i32.const 2 + i32.add + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 2 + i32.add + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=8 + i32.const 11188 + i32.load + local.set $8 + i32.const 0 + local.set $1 + loop $for-loop|01 + local.get $1 + local.get $4 + i32.lt_s + if + local.get $1 + local.get $5 + i32.add + local.get $8 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + local.tee $3 + local.get $3 + f64.sub + f64.const 0 + f64.eq + if (result i32) + local.get $3 + f64.const 255 + f64.min + f64.const 0 + f64.max + i32.trunc_sat_f64_u + else + i32.const 0 + end + i32.store8 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|01 + 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 + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 0 + i32.const 64 + i32.const 11888 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=20 + local.get $0 + local.get $6 + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=20 + local.get $0 + local.get $7 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + 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 16320 + 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 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=8 + i32.const 11264 + call $~lib/array/Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.get $4 + i32.const 7 + i32.add + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 7 + i32.add + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=8 + i32.const 11268 + i32.load + local.set $6 + i32.const 0 + local.set $1 + loop $for-loop|02 + local.get $1 + local.get $4 + i32.lt_s + if + local.get $1 + local.get $5 + i32.add + i32.const 255 + local.get $1 + local.get $6 + i32.add + i32.load8_s + local.tee $7 + i32.sub + i32.const 31 + i32.shr_s + local.get $7 + i32.or + local.get $7 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i32.and + i32.store8 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|02 + 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 + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 0 + i32.const 64 + i32.const 11920 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8Array> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 f32) + (local $4 f64) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 606 - 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 - i32.const 2 - call $~lib/typedarray/Int8Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 607 - 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 - i32.const 3 - call $~lib/typedarray/Int8Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 608 - 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 - i32.const 4 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 609 - 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 10 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 610 - 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 -100 - call $~lib/typedarray/Int8Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 611 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $1 - i32.const 0 - call $~lib/typedarray/Int8Array#lastIndexOf@varargs - if - i32.const 0 - i32.const 1568 - i32.const 613 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $1 - i32.const 11 - call $~lib/typedarray/Int8Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 614 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $1 - i32.const -1 - call $~lib/typedarray/Int8Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 615 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $1 - i32.const 3 - call $~lib/typedarray/Int8Array#lastIndexOf@varargs - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 616 - 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 - i32.const 4 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 617 - 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 - i32.const 3 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 618 - 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 - i32.const 2 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 619 - 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 100 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 620 - 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 -10 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 621 - 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 -11 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 622 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - i32.const 9 - call $~lib/typedarray/Uint8ClampedArray#subarray - local.tee $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 626 - 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 4 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - if - i32.const 0 - i32.const 1568 - i32.const 627 - 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 5 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 628 - 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 9 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 629 - 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 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 630 - 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 11 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 631 - 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 5 - i32.const 1 - call $~lib/typedarray/Int8Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 632 - 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 5 - i32.const 2 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 633 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int16Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 24 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 - local.tee $3 - i64.const 0 - i64.store - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.store offset=4 - i32.const -1 - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.tee $3 - i32.eqz - local.get $2 - local.get $3 - i32.ge_s - i32.or - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 - drop - local.get $2 - i32.const 0 - i32.lt_s - if - local.get $2 - local.get $3 - i32.add - local.tee $2 + block $folding-inner1 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer i32.const 0 - local.get $2 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + 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.gt_s - select - local.set $2 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $0 - loop $while-continue|0 - local.get $2 - local.get $3 - i32.lt_s - if - local.get $2 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.get $1 - i32.const 65535 - i32.and - i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 - drop - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $while-continue|0 - end - end - i32.const -1 - end - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/typedarray/Int16Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result 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 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 - local.tee $3 - i64.const 0 - i64.store - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.store offset=4 - i32.const -1 - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.tee $3 - i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 - drop - local.get $2 - local.get $3 - i32.add - local.get $3 - i32.const 1 - i32.sub - local.get $2 - local.get $2 - local.get $3 - i32.ge_s - select - local.get $2 - i32.const 0 - i32.lt_s - select - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $0 - loop $while-continue|0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $5 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $2 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 local.get $2 i32.const 0 - i32.ge_s - if - local.get $2 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.load16_u + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=20 + local.get $0 + call $~lib/typedarray/Int8Array#set<~lib/array/Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 0 + i32.const 64 + i32.const 11520 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=20 + local.get $0 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + 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 16320 + 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 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=8 + i32.const 11088 + call $~lib/array/Array#get:length + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.get $8 + i32.const 3 + i32.add + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.add + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=8 + i32.const 11092 + i32.load + local.set $9 + loop $for-loop|0 local.get $1 - i32.const 65535 - i32.and - i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 - drop - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 + local.get $8 + i32.lt_s + if + local.get $1 + local.get $6 + i32.add + local.get $9 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + local.tee $3 + i32.trunc_sat_f32_u + i32.const 0 + local.get $3 + local.get $3 + f32.sub + f32.const 0 + f32.eq + select + i32.store8 + 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 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 0 + i32.const 64 + i32.const 11600 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=20 + local.get $0 + local.get $7 + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 0 + i32.const 64 + i32.const 11632 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + 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 16320 + 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 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=8 + i32.const 11184 + call $~lib/array/Array#get:length + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.get $6 + i32.const 2 + i32.add + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 2 + i32.add + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=8 + i32.const 11188 + i32.load + local.set $8 + i32.const 0 + local.set $1 + loop $for-loop|00 + local.get $1 + local.get $6 + i32.lt_s + if + local.get $1 + local.get $7 + i32.add + local.get $8 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + local.tee $4 + i32.trunc_sat_f64_u + i32.const 0 + local.get $4 + local.get $4 + f64.sub + f64.const 0 + f64.eq + select + i32.store8 + 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 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 0 + i32.const 64 + i32.const 11664 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=20 + local.get $0 + local.get $5 + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=20 + local.get $0 + local.get $2 + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=20 + local.get $0 + call $~lib/typedarray/Int8Array#set<~lib/array/Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 0 + i32.const 64 + i32.const 11696 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + return end - i32.const -1 - end - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/typedarray/Int16Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if i32.const 49120 i32.const 49168 i32.const 1 @@ -30087,1306 +33407,1325 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - 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 $0 - i32.store - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.set $2 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Int16Array#lastIndexOf - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int16Array,i16> + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint64Array> (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) + (local $3 f64) + (local $4 f32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 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 - local.tee $1 - i32.const 0 - i32.const 20 - memory.fill - local.get $1 - i32.const 7728 - i32.store - local.get $1 - i32.const 7728 - i32.store offset=4 - i32.const 7728 - call $~lib/array/Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - call $~lib/typedarray/Int16Array#constructor - local.tee $1 - i32.store offset=8 - loop $for-loop|0 - local.get $0 - local.get $3 - i32.lt_s - if + block $folding-inner1 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $5 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor local.tee $2 - local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $2 i32.store offset=4 local.get $2 - i32.const 7728 - i32.store offset=12 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=20 + local.get $0 + call $~lib/typedarray/Int64Array#set<~lib/array/Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 3 + i32.const 69 + i32.const 13872 + call $~lib/rt/__newArray + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=20 + local.get $0 + local.get $7 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + 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 16320 + 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 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=8 + i32.const 11088 + call $~lib/array/Array#get:length + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.get $7 + i32.const 3 + i32.add + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 24 + i32.add + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=8 + i32.const 11092 + i32.load + local.set $9 + loop $for-loop|0 + local.get $1 + local.get $7 + i32.lt_s + if + local.get $8 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $9 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + local.tee $4 + i64.trunc_sat_f32_u + i64.const 0 + local.get $4 + local.get $4 + f32.sub + f32.const 0 + f32.eq + select + 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 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 3 + i32.const 69 + i32.const 14032 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $1 + i32.store offset=20 local.get $0 - i32.const 7728 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> + global.get $~lib/memory/__stack_pointer local.get $0 - call $~lib/array/Array#__get - i32.extend16_s - call $~lib/typedarray/Int16Array#__set + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=20 local.get $0 - i32.const 1 + local.get $6 + call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 3 + i32.const 69 + i32.const 14144 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + 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 16320 + 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 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=8 + i32.const 11184 + call $~lib/array/Array#get:length + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.get $6 + i32.const 2 i32.add - local.set $0 - br $for-loop|0 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 16 + i32.add + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=8 + i32.const 11188 + i32.load + local.set $8 + i32.const 0 + local.set $1 + loop $for-loop|00 + local.get $1 + local.get $6 + i32.lt_s + if + local.get $8 + local.get $1 + i32.const 3 + i32.shl + local.tee $9 + i32.add + f64.load + local.set $3 + local.get $7 + local.get $9 + i32.add + local.get $3 + i64.trunc_sat_f64_u + i64.const 0 + local.get $3 + local.get $3 + f64.sub + f64.const 0 + f64.eq + select + i64.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 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 3 + i32.const 69 + i32.const 14256 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=20 + local.get $0 + local.get $5 + call $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=20 + local.get $0 + local.get $2 + call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=20 + local.get $0 + call $~lib/typedarray/Int64Array#set<~lib/array/Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 3 + i32.const 69 + i32.const 14368 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + return end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - if - i32.const 0 - i32.const 1568 - i32.const 603 - 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 11 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 604 - i32.const 3 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint32Array> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 f32) + (local $4 f64) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const -1 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 605 - 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 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 606 - 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 - i32.const 2 - call $~lib/typedarray/Int16Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 607 - 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 - i32.const 3 - call $~lib/typedarray/Int16Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 608 - 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 - i32.const 4 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 609 - 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 10 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 610 - 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 -100 - call $~lib/typedarray/Int16Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 611 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $1 - i32.const 0 - call $~lib/typedarray/Int16Array#lastIndexOf@varargs - if - i32.const 0 - i32.const 1568 - i32.const 613 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $1 - i32.const 11 - call $~lib/typedarray/Int16Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 614 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $1 - i32.const -1 - call $~lib/typedarray/Int16Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 615 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $1 - i32.const 3 - call $~lib/typedarray/Int16Array#lastIndexOf@varargs - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 616 - 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 - i32.const 4 - call $~lib/typedarray/Int16Array#lastIndexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 617 - 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 - i32.const 3 - call $~lib/typedarray/Int16Array#lastIndexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 618 - 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 - i32.const 2 - call $~lib/typedarray/Int16Array#lastIndexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 619 - 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 100 - call $~lib/typedarray/Int16Array#lastIndexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 620 - 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 -10 - call $~lib/typedarray/Int16Array#lastIndexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 621 - 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 -11 - call $~lib/typedarray/Int16Array#lastIndexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 622 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - i32.const 9 - call $~lib/typedarray/Int16Array#subarray - local.tee $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 626 - 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 4 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - if - i32.const 0 - i32.const 1568 - i32.const 627 - 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 5 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 628 - 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 9 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 629 - 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 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 630 - 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 11 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 631 - 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 5 - i32.const 1 - call $~lib/typedarray/Int16Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 632 - 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 5 - i32.const 2 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 633 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint16Array,u16> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 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 - local.tee $1 - i32.const 0 - i32.const 20 - memory.fill - local.get $1 - i32.const 7728 - i32.store - local.get $1 - i32.const 7728 - i32.store offset=4 - i32.const 7728 - call $~lib/array/Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $1 - i32.store offset=8 - loop $for-loop|0 - local.get $0 - local.get $3 - i32.lt_s - if + block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $8 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $8 i32.store offset=4 - local.get $2 - i32.const 7728 - i32.store offset=12 - local.get $1 - local.get $0 - i32.const 7728 - local.get $0 - call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set - local.get $0 + local.get $8 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 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 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - if - i32.const 0 - i32.const 1568 - i32.const 603 - 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 11 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 604 - 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/typedarray/Int16Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 605 - 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 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 606 - 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 - i32.const 2 - call $~lib/typedarray/Int16Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 607 - 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 - i32.const 3 - call $~lib/typedarray/Int16Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 608 - 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 - i32.const 4 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 609 - 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 10 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 610 - i32.const 3 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $5 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $2 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=20 + local.get $0 + i32.const 11008 + i32.const 0 + call $~lib/typedarray/Int32Array#set<~lib/array/Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 2 + i32.const 67 + i32.const 12896 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=20 + local.get $0 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + 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 16320 + 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 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=8 + i32.const 11088 + call $~lib/array/Array#get:length + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.get $6 + i32.const 3 + i32.add + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 12 + i32.add + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=8 + i32.const 11092 + i32.load + local.set $10 + loop $for-loop|0 + local.get $1 + local.get $6 + i32.lt_s + if + local.get $10 + local.get $1 + i32.const 2 + i32.shl + local.tee $7 + i32.add + f32.load + local.set $3 + local.get $7 + local.get $9 + i32.add + local.get $3 + i32.trunc_sat_f32_u + i32.const 0 + local.get $3 + local.get $3 + f32.sub + f32.const 0 + f32.eq + select + 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 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 2 + i32.const 67 + i32.const 13008 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=20 + local.get $0 + local.get $8 + call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int64Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 2 + i32.const 67 + i32.const 13072 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + 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 16320 + 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 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=8 + i32.const 11184 + call $~lib/array/Array#get:length + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.get $6 + i32.const 2 + i32.add + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 8 + i32.add + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=8 + i32.const 11188 + i32.load + local.set $8 + i32.const 0 + local.set $1 + loop $for-loop|00 + local.get $1 + local.get $6 + i32.lt_s + if + local.get $7 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $8 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + local.tee $4 + i32.trunc_sat_f64_u + i32.const 0 + local.get $4 + local.get $4 + f64.sub + f64.const 0 + f64.eq + select + i32.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 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 2 + i32.const 67 + i32.const 13136 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=20 + local.get $0 + local.get $5 + call $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=20 + local.get $0 + local.get $2 + call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=20 + local.get $0 + call $~lib/typedarray/Int32Array#set<~lib/array/Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 2 + i32.const 67 + i32.const 13200 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint16Array> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 f32) + (local $4 f64) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - i32.const -100 - call $~lib/typedarray/Int16Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 611 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $1 - i32.const 0 - call $~lib/typedarray/Int16Array#lastIndexOf@varargs - if - i32.const 0 - i32.const 1568 - i32.const 613 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $1 - i32.const 11 - call $~lib/typedarray/Int16Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 614 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $1 - i32.const -1 - call $~lib/typedarray/Int16Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 615 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $1 - i32.const 3 - call $~lib/typedarray/Int16Array#lastIndexOf@varargs - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 616 - 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 - i32.const 4 - call $~lib/typedarray/Int16Array#lastIndexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 617 - 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 - i32.const 3 - call $~lib/typedarray/Int16Array#lastIndexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 618 - 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 - i32.const 2 - call $~lib/typedarray/Int16Array#lastIndexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 619 - 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 100 - call $~lib/typedarray/Int16Array#lastIndexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 620 - 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 -10 - call $~lib/typedarray/Int16Array#lastIndexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 621 - 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 -11 - call $~lib/typedarray/Int16Array#lastIndexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 622 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - i32.const 9 - call $~lib/typedarray/Uint16Array#subarray - local.tee $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 626 - 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 4 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - if - i32.const 0 - i32.const 1568 - i32.const 627 - 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 5 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 628 - 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 9 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 629 - 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 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 630 - 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 11 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 631 - 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 5 - i32.const 1 - call $~lib/typedarray/Int16Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 632 - 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 5 - i32.const 2 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 633 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int32Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 24 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 - local.tee $3 - i64.const 0 - i64.store - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.store offset=4 - i32.const -1 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.tee $3 - i32.eqz - local.get $2 - local.get $3 - i32.ge_s - i32.or - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 - drop - local.get $2 - i32.const 0 - i32.lt_s - if - local.get $2 - local.get $3 - i32.add - local.tee $2 + block $folding-inner1 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $5 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $2 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 local.get $2 i32.const 0 - i32.gt_s - select - local.set $2 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $0 - loop $while-continue|0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer local.get $2 - local.get $3 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=20 + local.get $0 + call $~lib/typedarray/Int16Array#set<~lib/array/Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 1 + i32.const 66 + i32.const 12240 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=20 + local.get $0 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + 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 16320 i32.lt_s - if - local.get $2 - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $1 - i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 - drop - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $while-continue|0 + 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 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=8 + i32.const 11088 + call $~lib/array/Array#get:length + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.get $8 + i32.const 3 + i32.add + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 6 + i32.add + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=8 + i32.const 11092 + i32.load + local.set $9 + loop $for-loop|0 + local.get $1 + local.get $8 + i32.lt_s + if + local.get $6 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $9 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + local.tee $3 + i32.trunc_sat_f32_u + i32.const 0 + local.get $3 + local.get $3 + f32.sub + f32.const 0 + f32.eq + select + i32.store16 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end end - end - i32.const -1 - end - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/typedarray/Int32Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result 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 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 - local.tee $3 - i64.const 0 - i64.store - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.store offset=4 - i32.const -1 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.tee $3 - i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 - drop - local.get $2 - local.get $3 - i32.add - local.get $3 - i32.const 1 - i32.sub - local.get $2 - local.get $2 - local.get $3 - i32.ge_s - select - local.get $2 - i32.const 0 - i32.lt_s - select - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $0 - loop $while-continue|0 - local.get $2 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 1 + i32.const 66 + i32.const 12336 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=20 + local.get $0 + local.get $7 + call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 1 + i32.const 66 + i32.const 12384 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + 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 16320 + 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.ge_s - if - local.get $2 - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=8 + i32.const 11184 + call $~lib/array/Array#get:length + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.get $6 + i32.const 2 + i32.add + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 4 + i32.add + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=8 + i32.const 11188 + i32.load + local.set $8 + i32.const 0 + local.set $1 + loop $for-loop|00 local.get $1 - i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 - drop - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 + local.get $6 + i32.lt_s + if + local.get $7 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $8 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + local.tee $4 + i32.trunc_sat_f64_u + i32.const 0 + local.get $4 + local.get $4 + f64.sub + f64.const 0 + f64.eq + select + i32.store16 + 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 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 1 + i32.const 66 + i32.const 12432 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=20 + local.get $0 + local.get $5 + call $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=20 + local.get $0 + local.get $2 + call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=20 + local.get $0 + call $~lib/typedarray/Int16Array#set<~lib/array/Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 1 + i32.const 66 + i32.const 12480 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + return end - i32.const -1 - end - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/typedarray/Int32Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if i32.const 49120 i32.const 49168 i32.const 1 @@ -31394,768 +34733,877 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - 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 $0 - i32.store - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $2 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Int32Array#lastIndexOf - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int32Array,i32> + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int8Array> (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) + (local $3 f32) + (local $4 f64) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 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 - local.tee $1 - i32.const 0 - i32.const 20 - memory.fill - local.get $1 - i32.const 7728 - i32.store - local.get $1 - i32.const 7728 - i32.store offset=4 - i32.const 7728 - call $~lib/array/Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - call $~lib/typedarray/Int32Array#constructor - local.tee $1 - i32.store offset=8 - loop $for-loop|0 - local.get $0 - local.get $3 - i32.lt_s - if + block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $7 i32.store offset=4 - local.get $2 - i32.const 7728 - i32.store offset=12 - local.get $1 - local.get $0 - i32.const 7728 - local.get $0 - call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set - local.get $0 + local.get $7 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 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 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Int32Array#indexOf - if - i32.const 0 - i32.const 1568 - i32.const 603 - 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 11 - i32.const 0 - call $~lib/typedarray/Int32Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 604 - 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/typedarray/Int32Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 605 - 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 - i32.const 0 - call $~lib/typedarray/Int32Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 606 - 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 - i32.const 2 - call $~lib/typedarray/Int32Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 607 - 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 - i32.const 3 - call $~lib/typedarray/Int32Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 608 - 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 - i32.const 4 - call $~lib/typedarray/Int32Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 609 - i32.const 3 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $5 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $2 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=20 + local.get $0 + call $~lib/typedarray/Int8Array#set<~lib/array/Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 0 + i32.const 16 + i32.const 11312 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=20 + local.get $0 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + 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 16320 + 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 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=8 + i32.const 11088 + call $~lib/array/Array#get:length + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.get $8 + i32.const 3 + i32.add + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.add + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=8 + i32.const 11092 + i32.load + local.set $9 + loop $for-loop|0 + local.get $1 + local.get $8 + i32.lt_s + if + local.get $1 + local.get $6 + i32.add + local.get $9 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + local.tee $3 + i32.trunc_sat_f32_s + i32.const 0 + local.get $3 + local.get $3 + f32.sub + f32.const 0 + f32.eq + select + i32.store8 + 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 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 0 + i32.const 16 + i32.const 11392 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=20 + local.get $0 + local.get $7 + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 0 + i32.const 16 + i32.const 11424 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + 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 16320 + 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 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=8 + i32.const 11184 + call $~lib/array/Array#get:length + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.get $6 + i32.const 2 + i32.add + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 2 + i32.add + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=8 + i32.const 11188 + i32.load + local.set $8 + i32.const 0 + local.set $1 + loop $for-loop|00 + local.get $1 + local.get $6 + i32.lt_s + if + local.get $1 + local.get $7 + i32.add + local.get $8 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + local.tee $4 + i32.trunc_sat_f64_s + i32.const 0 + local.get $4 + local.get $4 + f64.sub + f64.const 0 + f64.eq + select + i32.store8 + 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 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 0 + i32.const 16 + i32.const 11456 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=20 + local.get $0 + local.get $5 + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=20 + local.get $0 + local.get $2 + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=20 + local.get $0 + call $~lib/typedarray/Int8Array#set<~lib/array/Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 0 + i32.const 16 + i32.const 11488 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int64Array> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 f64) + (local $4 f32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - i32.const 10 - call $~lib/typedarray/Int32Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 610 - 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 -100 - call $~lib/typedarray/Int32Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 611 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $1 - i32.const 0 - call $~lib/typedarray/Int32Array#lastIndexOf@varargs - if - i32.const 0 - i32.const 1568 - i32.const 613 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $1 - i32.const 11 - call $~lib/typedarray/Int32Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 614 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $1 - i32.const -1 - call $~lib/typedarray/Int32Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 615 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $1 - i32.const 3 - call $~lib/typedarray/Int32Array#lastIndexOf@varargs - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 616 - 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 - i32.const 4 - call $~lib/typedarray/Int32Array#lastIndexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 617 - 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 - i32.const 3 - call $~lib/typedarray/Int32Array#lastIndexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 618 - 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 - i32.const 2 - call $~lib/typedarray/Int32Array#lastIndexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 619 - 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 100 - call $~lib/typedarray/Int32Array#lastIndexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 620 - 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 -10 - call $~lib/typedarray/Int32Array#lastIndexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 621 - 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 -11 - call $~lib/typedarray/Int32Array#lastIndexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 622 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - i32.const 4 - i32.const 9 - call $~lib/typedarray/Int32Array#subarray - local.tee $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Int32Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 626 - 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 4 - i32.const 0 - call $~lib/typedarray/Int32Array#indexOf - if - i32.const 0 - i32.const 1568 - i32.const 627 - 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 5 - i32.const 0 - call $~lib/typedarray/Int32Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 628 - 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 9 - i32.const 0 - call $~lib/typedarray/Int32Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 629 - 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 - i32.const 0 - call $~lib/typedarray/Int32Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 630 - 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 11 - i32.const 0 - call $~lib/typedarray/Int32Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 631 - 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 5 - i32.const 1 - call $~lib/typedarray/Int32Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 632 - 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 5 - i32.const 2 - call $~lib/typedarray/Int32Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 633 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Uint32Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 24 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 - local.tee $3 - i64.const 0 - i64.store - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.store offset=4 - i32.const -1 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.tee $3 - i32.eqz - local.get $2 - local.get $3 - i32.ge_s - i32.or - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 - drop - local.get $2 - i32.const 0 - i32.lt_s - if - local.get $2 - local.get $3 - i32.add - local.tee $2 + block $folding-inner1 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $5 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $2 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 local.get $2 i32.const 0 - i32.gt_s - select - local.set $2 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $0 - loop $while-continue|0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer local.get $2 - local.get $3 - i32.lt_s - if - local.get $2 - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $1 - i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 - drop - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $while-continue|0 - end - end - i32.const -1 - end - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/typedarray/Uint32Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result 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 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 - local.tee $3 - i64.const 0 - i64.store - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.store offset=4 - i32.const -1 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.tee $3 - i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 - drop - local.get $2 - local.get $3 - i32.add - local.get $3 - i32.const 1 - i32.sub - local.get $2 - local.get $2 - local.get $3 - i32.ge_s - select - local.get $2 - i32.const 0 - i32.lt_s - select - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $0 - loop $while-continue|0 + i32.store offset=4 local.get $2 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=20 + local.get $0 + call $~lib/typedarray/Int64Array#set<~lib/array/Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 3 + i32.const 68 + i32.const 13264 + call $~lib/rt/__newArray + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=20 + local.get $0 + local.get $7 + call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + 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 16320 + 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.ge_s - if - local.get $2 - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=8 + i32.const 11088 + call $~lib/array/Array#get:length + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.get $7 + i32.const 3 + i32.add + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 24 + i32.add + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=8 + i32.const 11092 + i32.load + local.set $9 + loop $for-loop|0 local.get $1 - i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 - drop - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 + local.get $7 + i32.lt_s + if + local.get $8 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $9 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + local.tee $4 + i64.trunc_sat_f32_s + i64.const 0 + local.get $4 + local.get $4 + f32.sub + f32.const 0 + f32.eq + select + 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 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 3 + i32.const 68 + i32.const 13424 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=20 + local.get $0 + local.get $6 + call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 3 + i32.const 68 + i32.const 13536 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + 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 16320 + 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 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=8 + i32.const 11184 + call $~lib/array/Array#get:length + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.get $6 + i32.const 2 + i32.add + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 16 + i32.add + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=8 + i32.const 11188 + i32.load + local.set $8 + i32.const 0 + local.set $1 + loop $for-loop|00 + local.get $1 + local.get $6 + i32.lt_s + if + local.get $8 + local.get $1 + i32.const 3 + i32.shl + local.tee $9 + i32.add + f64.load + local.set $3 + local.get $7 + local.get $9 + i32.add + local.get $3 + i64.trunc_sat_f64_s + i64.const 0 + local.get $3 + local.get $3 + f64.sub + f64.const 0 + f64.eq + select + i64.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 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 3 + i32.const 68 + i32.const 13648 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=20 + local.get $0 + local.get $5 + call $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=20 + local.get $0 + local.get $2 + call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=20 + local.get $0 + call $~lib/typedarray/Int64Array#set<~lib/array/Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 3 + i32.const 68 + i32.const 13760 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + return end - i32.const -1 - end - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/typedarray/Uint32Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if i32.const 49120 i32.const 49168 i32.const 1 @@ -32163,767 +35611,884 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - 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 $0 - i32.store - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $2 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Uint32Array#lastIndexOf - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint32Array,u32> + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int32Array> (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) + (local $3 f32) + (local $4 f64) + (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 20 + i32.const 24 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 - local.tee $1 - i32.const 0 - i32.const 20 - memory.fill - local.get $1 - i32.const 7728 - i32.store - local.get $1 - i32.const 7728 - i32.store offset=4 - i32.const 7728 - call $~lib/array/Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $1 - i32.store offset=8 - loop $for-loop|0 - local.get $0 - local.get $3 - i32.lt_s - if + block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 - i32.store offset=4 - local.get $2 - i32.const 7728 - i32.store offset=12 - local.get $1 - local.get $0 - i32.const 7728 - local.get $0 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set - local.get $0 + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $8 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $5 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $2 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=20 + local.get $0 + i32.const 11008 + i32.const 0 + call $~lib/typedarray/Int32Array#set<~lib/array/Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 2 + i32.const 17 + i32.const 12528 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=20 + local.get $0 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + 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 16320 + 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 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=8 + i32.const 11088 + call $~lib/array/Array#get:length + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.get $6 + i32.const 3 i32.add - local.set $0 - br $for-loop|0 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 12 + i32.add + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=8 + i32.const 11092 + i32.load + local.set $10 + loop $for-loop|0 + local.get $1 + local.get $6 + i32.lt_s + if + local.get $10 + local.get $1 + i32.const 2 + i32.shl + local.tee $7 + i32.add + f32.load + local.set $3 + local.get $7 + local.get $9 + i32.add + local.get $3 + i32.trunc_sat_f32_s + i32.const 0 + local.get $3 + local.get $3 + f32.sub + f32.const 0 + f32.eq + select + 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 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 2 + i32.const 17 + i32.const 12640 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=20 + local.get $0 + local.get $8 + call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int64Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 2 + i32.const 17 + i32.const 12704 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + 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 16320 + 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 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=8 + i32.const 11184 + call $~lib/array/Array#get:length + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.get $6 + i32.const 2 + i32.add + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 8 + i32.add + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=8 + i32.const 11188 + i32.load + local.set $8 + i32.const 0 + local.set $1 + loop $for-loop|00 + local.get $1 + local.get $6 + i32.lt_s + if + local.get $7 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $8 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + local.tee $4 + i32.trunc_sat_f64_s + i32.const 0 + local.get $4 + local.get $4 + f64.sub + f64.const 0 + f64.eq + select + i32.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 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 2 + i32.const 17 + i32.const 12768 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=20 + local.get $0 + local.get $5 + call $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=20 + local.get $0 + local.get $2 + call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=20 + local.get $0 + call $~lib/typedarray/Int32Array#set<~lib/array/Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 2 + i32.const 17 + i32.const 12832 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + return end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Uint32Array#indexOf - if - i32.const 0 - i32.const 1568 - i32.const 603 - 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 11 - i32.const 0 - call $~lib/typedarray/Uint32Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 604 - 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/typedarray/Uint32Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 605 - 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 - i32.const 0 - call $~lib/typedarray/Uint32Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 606 - i32.const 3 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int16Array> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 f32) + (local $4 f64) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 3 - i32.const 2 - call $~lib/typedarray/Uint32Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 607 - 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 - i32.const 3 - call $~lib/typedarray/Uint32Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 608 - 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 - i32.const 4 - call $~lib/typedarray/Uint32Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 609 - 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 10 - call $~lib/typedarray/Uint32Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 610 - 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 -100 - call $~lib/typedarray/Uint32Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 611 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $1 - i32.const 0 - call $~lib/typedarray/Uint32Array#lastIndexOf@varargs - if - i32.const 0 - i32.const 1568 - i32.const 613 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $1 - i32.const 11 - call $~lib/typedarray/Uint32Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 614 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $1 - i32.const -1 - call $~lib/typedarray/Uint32Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 615 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $1 - i32.const 3 - call $~lib/typedarray/Uint32Array#lastIndexOf@varargs - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 616 - 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 - i32.const 4 - call $~lib/typedarray/Uint32Array#lastIndexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 617 - 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 - i32.const 3 - call $~lib/typedarray/Uint32Array#lastIndexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 618 - 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 - i32.const 2 - call $~lib/typedarray/Uint32Array#lastIndexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 619 - 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 100 - call $~lib/typedarray/Uint32Array#lastIndexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 620 - 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 -10 - call $~lib/typedarray/Uint32Array#lastIndexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 621 - 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 -11 - call $~lib/typedarray/Uint32Array#lastIndexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 622 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - i32.const 9 - call $~lib/typedarray/Uint32Array#subarray - local.tee $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Uint32Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 626 - 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 4 - i32.const 0 - call $~lib/typedarray/Uint32Array#indexOf - if - i32.const 0 - i32.const 1568 - i32.const 627 - 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 5 - i32.const 0 - call $~lib/typedarray/Uint32Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 628 - 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 9 - i32.const 0 - call $~lib/typedarray/Uint32Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 629 - 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 - i32.const 0 - call $~lib/typedarray/Uint32Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 630 - 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 11 - i32.const 0 - call $~lib/typedarray/Uint32Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 631 - 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 5 - i32.const 1 - call $~lib/typedarray/Uint32Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 632 - 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 5 - i32.const 2 - call $~lib/typedarray/Uint32Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 633 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int64Array#indexOf (param $0 i32) (param $1 i64) (param $2 i32) (result i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 24 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 - local.tee $3 - i64.const 0 - i64.store - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.store offset=4 - i32.const -1 - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.tee $3 - i32.eqz - local.get $2 - local.get $3 - i32.ge_s - i32.or - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 - drop - local.get $2 - i32.const 0 - i32.lt_s - if - local.get $2 - local.get $3 - i32.add - local.tee $2 + block $folding-inner1 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $5 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $2 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 local.get $2 i32.const 0 - i32.gt_s - select - local.set $2 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $0 - loop $while-continue|0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer local.get $2 - local.get $3 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=20 + local.get $0 + call $~lib/typedarray/Int16Array#set<~lib/array/Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 1 + i32.const 65 + i32.const 11952 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=20 + local.get $0 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + 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 16320 i32.lt_s - if - local.get $2 - local.get $0 - local.get $2 - i32.const 3 - i32.shl - i32.add - i64.load + 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 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=8 + i32.const 11088 + call $~lib/array/Array#get:length + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.get $8 + i32.const 3 + i32.add + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 6 + i32.add + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=8 + i32.const 11092 + i32.load + local.set $9 + loop $for-loop|0 local.get $1 - i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 - drop - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $while-continue|0 + local.get $8 + i32.lt_s + if + local.get $6 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $9 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + local.tee $3 + i32.trunc_sat_f32_s + i32.const 0 + local.get $3 + local.get $3 + f32.sub + f32.const 0 + f32.eq + select + i32.store16 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end end - end - i32.const -1 - end - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/typedarray/Int64Array#lastIndexOf (param $0 i32) (param $1 i64) (param $2 i32) (result 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 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 - local.tee $3 - i64.const 0 - i64.store - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.store offset=4 - i32.const -1 - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.tee $3 - i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 - drop - local.get $2 - local.get $3 - i32.add - local.get $3 - i32.const 1 - i32.sub - local.get $2 - local.get $2 - local.get $3 - i32.ge_s - select - local.get $2 - i32.const 0 - i32.lt_s - select - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $0 - loop $while-continue|0 - local.get $2 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 1 + i32.const 65 + i32.const 12048 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=20 + local.get $0 + local.get $7 + call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 1 + i32.const 65 + i32.const 12096 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + 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 16320 + 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.ge_s - if - local.get $2 - local.get $0 - local.get $2 - i32.const 3 - i32.shl - i32.add - i64.load + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=8 + i32.const 11184 + call $~lib/array/Array#get:length + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.get $6 + i32.const 2 + i32.add + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 4 + i32.add + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=8 + i32.const 11188 + i32.load + local.set $8 + i32.const 0 + local.set $1 + loop $for-loop|00 local.get $1 - i64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 - drop - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 + local.get $6 + i32.lt_s + if + local.get $7 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $8 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + local.tee $4 + i32.trunc_sat_f64_s + i32.const 0 + local.get $4 + local.get $4 + f64.sub + f64.const 0 + f64.eq + select + i32.store16 + 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 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 1 + i32.const 65 + i32.const 12144 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=20 + local.get $0 + local.get $5 + call $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=20 + local.get $0 + local.get $2 + call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=20 + local.get $0 + call $~lib/typedarray/Int16Array#set<~lib/array/Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 1 + i32.const 65 + i32.const 12192 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + return end - i32.const -1 - end - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/typedarray/Int64Array#lastIndexOf@varargs (param $0 i32) (param $1 i64) (result 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 @@ -32931,768 +36496,699 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - 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 $0 - i32.store - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.set $2 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Int64Array#lastIndexOf - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int64Array,i64> + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Float64Array> (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 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 - local.tee $1 - i32.const 0 - i32.const 20 - memory.fill - local.get $1 - i32.const 7728 - i32.store - local.get $1 - i32.const 7728 - i32.store offset=4 - i32.const 7728 - call $~lib/array/Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - call $~lib/typedarray/Int64Array#constructor - local.tee $1 - i32.store offset=8 - loop $for-loop|0 - local.get $0 - local.get $3 - i32.lt_s - if + block $folding-inner1 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int64Array#constructor local.tee $2 - local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 i32.store offset=4 local.get $2 - i32.const 7728 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $4 i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + 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 16320 + 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 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=8 + i32.const 11008 + call $~lib/array/Array#get:length + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.get $5 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=8 + i32.const 11012 + i32.load + local.set $7 + loop $for-loop|0 + local.get $1 + local.get $5 + i32.lt_s + if + local.get $6 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $7 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + f64.convert_i32_s + f64.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 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 3 + i32.const 63 + i32.const 14784 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $1 + i32.store offset=20 local.get $0 - i32.const 7728 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> + global.get $~lib/memory/__stack_pointer local.get $0 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + 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 16320 + 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 local.get $0 - i32.const 1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=8 + i32.const 11088 + call $~lib/array/Array#get:length + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.get $5 + i32.const 3 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 - i64.const 0 - i32.const 0 - call $~lib/typedarray/Int64Array#indexOf - if - i32.const 0 - i32.const 1568 - i32.const 603 - 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 11 - i32.const 0 - call $~lib/typedarray/Int64Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 604 - 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 - i32.const 0 - call $~lib/typedarray/Int64Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 605 - 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 3 - i32.const 0 - call $~lib/typedarray/Int64Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 606 - 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 3 - i32.const 2 - call $~lib/typedarray/Int64Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 607 - 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 3 - i32.const 3 - call $~lib/typedarray/Int64Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 608 - 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 3 - i32.const 4 - call $~lib/typedarray/Int64Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 609 - 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 - i32.const 10 - call $~lib/typedarray/Int64Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 610 - 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 - i32.const -100 - call $~lib/typedarray/Int64Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 611 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $1 - i64.const 0 - call $~lib/typedarray/Int64Array#lastIndexOf@varargs - if - i32.const 0 - i32.const 1568 - i32.const 613 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $1 - i64.const 11 - call $~lib/typedarray/Int64Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 614 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $1 - i64.const -1 - call $~lib/typedarray/Int64Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 615 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $1 - i64.const 3 - call $~lib/typedarray/Int64Array#lastIndexOf@varargs - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 616 - 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 3 - i32.const 4 - call $~lib/typedarray/Int64Array#lastIndexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 617 - 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 3 - i32.const 3 - call $~lib/typedarray/Int64Array#lastIndexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 618 - 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 3 - i32.const 2 - call $~lib/typedarray/Int64Array#lastIndexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 619 - 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 - i32.const 100 - call $~lib/typedarray/Int64Array#lastIndexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 620 - 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 - i32.const -10 - call $~lib/typedarray/Int64Array#lastIndexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 621 - 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 - i32.const -11 - call $~lib/typedarray/Int64Array#lastIndexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 622 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - i32.const 9 - call $~lib/typedarray/Int64Array#subarray - local.tee $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i64.const 3 - i32.const 0 - call $~lib/typedarray/Int64Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 626 - 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 4 - i32.const 0 - call $~lib/typedarray/Int64Array#indexOf - if - i32.const 0 - i32.const 1568 - i32.const 627 - 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 5 - i32.const 0 - call $~lib/typedarray/Int64Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 628 - 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 9 - i32.const 0 - call $~lib/typedarray/Int64Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 629 - 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 10 - i32.const 0 - call $~lib/typedarray/Int64Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 630 - 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 11 - i32.const 0 - call $~lib/typedarray/Int64Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 631 - 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 5 - i32.const 1 - call $~lib/typedarray/Int64Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 632 - 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 5 - i32.const 2 - call $~lib/typedarray/Int64Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 633 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Uint64Array#indexOf (param $0 i32) (param $1 i64) (param $2 i32) (result 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 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 - local.tee $3 - i64.const 0 - i64.store - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.store offset=4 - i32.const -1 - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.tee $3 - i32.eqz - local.get $2 - local.get $3 - i32.ge_s - i32.or - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 - drop - local.get $2 - i32.const 0 - i32.lt_s - if - local.get $2 - local.get $3 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 24 i32.add - local.tee $2 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=8 + i32.const 11092 + i32.load + local.set $7 i32.const 0 + local.set $1 + loop $for-loop|00 + local.get $1 + local.get $5 + i32.lt_s + if + local.get $6 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $7 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + f64.promote_f32 + 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 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 3 + i32.const 63 + i32.const 14944 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $2 + 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 16320 + 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.gt_s - select - local.set $2 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $0 - loop $while-continue|0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $2 - local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $2 + call $~lib/typedarray/Int64Array#get:length + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.get $5 + i32.const 6 + i32.add i32.lt_s - if - local.get $2 - local.get $0 - local.get $2 - i32.const 3 - i32.shl - i32.add - i64.load - local.get $1 - i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 - drop - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $while-continue|0 - end - end - i32.const -1 - end - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/typedarray/Uint64Array#lastIndexOf (param $0 i32) (param $1 i64) (param $2 i32) (result 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 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 - local.tee $3 - i64.const 0 - i64.store - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.store offset=4 - i32.const -1 - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.tee $3 - i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 - drop - local.get $2 - local.get $3 - i32.add - local.get $3 - i32.const 1 - i32.sub - local.get $2 - local.get $2 - local.get $3 - i32.ge_s - select - local.get $2 - i32.const 0 - i32.lt_s - select - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $0 - loop $while-continue|0 + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 48 + i32.add + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 local.get $2 + i32.load offset=4 + local.set $2 i32.const 0 - i32.ge_s - if - local.get $2 - local.get $0 - local.get $2 - i32.const 3 - i32.shl - i32.add - i64.load + local.set $1 + loop $for-loop|01 local.get $1 - i64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 - drop - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 + local.get $5 + i32.lt_s + if + local.get $6 + local.get $1 + i32.const 3 + i32.shl + local.tee $7 + i32.add + local.get $2 + local.get $7 + i32.add + i64.load + f64.convert_i64_s + f64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|01 + end end - end - i32.const -1 - end - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/typedarray/Uint64Array#lastIndexOf@varargs (param $0 i32) (param $1 i64) (result 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 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 3 + i32.const 63 + i32.const 15056 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + 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 16320 + 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 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + call $~lib/typedarray/Int8Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.get $2 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + i32.load offset=4 + local.set $3 + i32.const 0 + local.set $1 + loop $for-loop|02 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $5 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $1 + local.get $3 + i32.add + i32.load8_u + f64.convert_i32_u + f64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|02 + 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 + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + 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 16320 + 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 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.get $2 + i32.const 4 + i32.add + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 32 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $1 + loop $for-loop|03 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $3 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $4 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_s + f64.convert_i32_s + f64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|03 + 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 + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + 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 16320 + 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 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=8 + i32.const 11264 + call $~lib/array/Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.get $2 + i32.const 7 + i32.add + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 56 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=8 + i32.const 11268 + i32.load + local.set $4 + i32.const 0 + local.set $1 + loop $for-loop|04 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $3 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $1 + local.get $4 + i32.add + i32.load8_s + f64.convert_i32_s + f64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|04 + 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 + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 3 + i32.const 63 + i32.const 15168 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + return + end i32.const 49120 i32.const 49168 i32.const 1 @@ -33700,1990 +37196,3355 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - 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 $0 - i32.store - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.set $2 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Uint64Array#lastIndexOf - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint64Array,u64> + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Float32Array> (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 20 + i32.const 24 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 - local.tee $1 - i32.const 0 - i32.const 20 - memory.fill - local.get $1 - i32.const 7728 - i32.store - local.get $1 - i32.const 7728 - i32.store offset=4 - i32.const 7728 - call $~lib/array/Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $1 - i32.store offset=8 - loop $for-loop|0 - local.get $0 - local.get $3 - i32.lt_s - if + block $folding-inner1 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor local.tee $2 - local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $2 i32.store offset=4 local.get $2 - i32.const 7728 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $3 i32.store offset=12 - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 7728 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + 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 16320 + 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 local.get $0 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=8 + i32.const 11008 + call $~lib/array/Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.get $4 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=8 + i32.const 11012 + i32.load + local.set $8 + loop $for-loop|0 + local.get $1 + local.get $4 + i32.lt_s + if + local.get $7 + local.get $1 + i32.const 2 + i32.shl + local.tee $5 + i32.add + local.get $5 + local.get $8 + i32.add + i32.load + f32.convert_i32_s + f32.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 12 i32.add - local.set $0 - br $for-loop|0 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 2 + i32.const 62 + i32.const 14480 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=20 + local.get $0 + i32.const 11088 + i32.const 3 + call $~lib/typedarray/Int32Array#set<~lib/array/Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 2 + i32.const 62 + i32.const 14592 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + 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 16320 + 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 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + local.get $6 + call $~lib/typedarray/Int64Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.get $4 + i32.const 6 + i32.add + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 24 + i32.add + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + local.get $6 + i32.load offset=4 + local.set $6 + i32.const 0 + local.set $1 + loop $for-loop|00 + local.get $1 + local.get $4 + i32.lt_s + if + local.get $5 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $6 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load + f32.convert_i64_s + 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 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 2 + i32.const 62 + i32.const 14656 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + 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 16320 + 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 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $2 + call $~lib/typedarray/Int8Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.get $4 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $2 + i32.load offset=4 + local.set $2 + i32.const 0 + local.set $1 + loop $for-loop|01 + local.get $1 + local.get $4 + i32.lt_s + if + local.get $5 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $1 + local.get $2 + i32.add + i32.load8_u + f32.convert_i32_u + f32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|01 + 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 + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + 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 16320 + 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 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + call $~lib/typedarray/Int16Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.get $2 + i32.const 4 + i32.add + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 16 + i32.add + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + i32.load offset=4 + local.set $3 + i32.const 0 + local.set $1 + loop $for-loop|02 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $3 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_s + f32.convert_i32_s + f32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|02 + 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 + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + 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 16320 + 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 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=8 + i32.const 11264 + call $~lib/array/Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.get $2 + i32.const 7 + i32.add + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 28 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=8 + i32.const 11268 + i32.load + local.set $4 + i32.const 0 + local.set $1 + loop $for-loop|03 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $3 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $1 + local.get $4 + i32.add + i32.load8_s + f32.convert_i32_s + f32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|03 + 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 + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 2 + i32.const 62 + i32.const 14720 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + return end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i64.const 0 - i32.const 0 - call $~lib/typedarray/Uint64Array#indexOf - if - i32.const 0 - i32.const 1568 - i32.const 603 - i32.const 3 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + ) + (func $"std/typedarray/testArrayWrap<~lib/typedarray/Uint8ClampedArray,u8>" + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i64.const 11 - i32.const 0 - call $~lib/typedarray/Uint64Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 604 - 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 - i32.const 0 - call $~lib/typedarray/Uint64Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 605 - 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 3 - i32.const 0 - call $~lib/typedarray/Uint64Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 606 - 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 3 - i32.const 2 - call $~lib/typedarray/Uint64Array#indexOf - i32.const 3 - i32.ne - if + i32.const 24 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1568 - i32.const 607 - 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 3 - i32.const 3 - call $~lib/typedarray/Uint64Array#indexOf - i32.const 3 - i32.ne - if + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 10928 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 10928 + i32.store offset=4 + i32.const 10928 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $2 + i32.store offset=8 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 10928 + i32.store offset=12 + local.get $2 + local.get $0 + i32.const 10928 + local.get $0 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__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 $2 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.load + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=12 + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=12 + local.get $0 + local.get $4 + local.get $5 + local.get $2 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + global.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 + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1568 - i32.const 608 - 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 3 - i32.const 4 - call $~lib/typedarray/Uint64Array#indexOf - i32.const -1 - i32.ne - if + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + 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 16320 + 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 1568 - i32.const 609 - 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 - i32.const 10 - call $~lib/typedarray/Uint64Array#indexOf - i32.const -1 - i32.ne - if + 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 + i32.const 20 + i32.sub + i32.load offset=16 + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=8 + local.get $5 + local.get $0 + i32.store + local.get $5 + local.get $0 + call $~lib/rt/itcms/__link + local.get $5 + local.get $4 + i32.store offset=8 + local.get $5 + local.get $0 + i32.store offset=4 + 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 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=20 i32.const 0 - i32.const 1568 - i32.const 610 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $1 + 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/typedarray/Uint8ClampedArray#__get + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $0 + call $~lib/typedarray/Uint8ClampedArray#__get + local.get $3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 730 + 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 24 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i64.const 1 - i32.const -100 - call $~lib/typedarray/Uint64Array#indexOf + i32.const 49120 + i32.const 49168 i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 611 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 i32.const 1 - global.set $~argumentsLength - local.get $1 - i64.const 0 - call $~lib/typedarray/Uint64Array#lastIndexOf@varargs - if - i32.const 0 - i32.const 1568 - i32.const 613 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + call $~lib/builtins/abort + unreachable + ) + (func $"std/typedarray/testArrayWrap<~lib/typedarray/Uint64Array,u64>" + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i64) + (local $4 i32) + (local $5 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $1 - i64.const 11 - call $~lib/typedarray/Uint64Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if + i32.const 24 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1568 - i32.const 614 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $1 - i64.const -1 - call $~lib/typedarray/Uint64Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 10928 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 10928 + i32.store offset=4 + i32.const 10928 + call $~lib/array/Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + call $~lib/typedarray/Uint64Array#constructor + local.tee $1 + i32.store offset=8 + loop $for-loop|0 + local.get $0 + local.get $2 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 10928 + i32.store offset=12 + local.get $1 + local.get $0 + i32.const 10928 + local.get $0 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__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=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $0 + local.get $5 + local.get $6 + local.get $1 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + global.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 + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1568 - i32.const 615 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $1 - i64.const 3 - call $~lib/typedarray/Uint64Array#lastIndexOf@varargs - i32.const 3 - i32.ne - if + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + 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 16320 + 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 1568 - i32.const 616 - 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 3 - i32.const 4 - call $~lib/typedarray/Uint64Array#lastIndexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 617 - 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 3 - i32.const 3 - call $~lib/typedarray/Uint64Array#lastIndexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 618 - 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 3 - i32.const 2 - call $~lib/typedarray/Uint64Array#lastIndexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 619 - 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 - i32.const 100 - call $~lib/typedarray/Uint64Array#lastIndexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 620 - 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 - i32.const -10 - call $~lib/typedarray/Uint64Array#lastIndexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 621 - 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 - i32.const -11 - call $~lib/typedarray/Uint64Array#lastIndexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 622 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - i32.const 9 - call $~lib/typedarray/Uint64Array#subarray - local.tee $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i64.const 3 - i32.const 0 - call $~lib/typedarray/Uint64Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 626 - 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 4 - i32.const 0 - call $~lib/typedarray/Uint64Array#indexOf - if - i32.const 0 - i32.const 1568 - i32.const 627 - 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 5 - i32.const 0 - call $~lib/typedarray/Uint64Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 628 - 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 9 - i32.const 0 - call $~lib/typedarray/Uint64Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 629 - 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 10 - i32.const 0 - call $~lib/typedarray/Uint64Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 630 - 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 11 - i32.const 0 - call $~lib/typedarray/Uint64Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 631 - 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 5 - i32.const 1 - call $~lib/typedarray/Uint64Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 632 - 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 5 - i32.const 2 - call $~lib/typedarray/Uint64Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 633 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Float32Array#indexOf (param $0 i32) (param $1 f32) (param $2 i32) (result 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 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 - local.tee $3 - i64.const 0 - i64.store - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) - local.get $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - i32.const -1 local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.tee $3 - i32.eqz - local.get $2 - local.get $3 - i32.ge_s - i32.or - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - drop - local.get $2 - i32.const 0 - i32.lt_s + i32.const 20 + i32.sub + i32.load offset=16 + local.tee $5 + i32.const 7 + i32.and 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 + i32.const 1056 + i32.const 1632 + i32.const 1865 + i32.const 9 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store offset=8 + local.get $6 local.get $0 - i32.store offset=4 + i32.store + local.get $6 local.get $0 - i32.load offset=4 + call $~lib/rt/itcms/__link + local.get $6 + local.get $5 + i32.store offset=8 + local.get $6 + local.get $0 + i32.store offset=4 + 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 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=20 + i32.const 0 local.set $0 - loop $while-continue|0 + loop $for-loop|1 + local.get $0 local.get $2 - local.get $3 i32.lt_s if - local.get $2 - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - f32.load + global.get $~lib/memory/__stack_pointer local.get $1 - f32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - drop - local.get $2 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/typedarray/Uint64Array#__get + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $0 + call $~lib/typedarray/Uint64Array#__get + local.get $3 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 730 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 i32.const 1 i32.add - local.set $2 - br $while-continue|0 + local.set $0 + br $for-loop|1 end end - i32.const -1 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + return end - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/typedarray/Float32Array#lastIndexOf (param $0 i32) (param $1 f32) (param $2 i32) (result i32) + (func $"std/typedarray/testArrayWrap<~lib/typedarray/Uint32Array,u32>" + (local $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.const 24 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 - local.tee $3 - i64.const 0 - i64.store - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) - local.get $3 - local.get $0 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 10928 i32.store - local.get $3 - local.get $0 + global.get $~lib/memory/__stack_pointer + i32.const 10928 i32.store offset=4 - i32.const -1 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.tee $3 - i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - drop - local.get $2 - local.get $3 - i32.add - local.get $3 - i32.const 1 - i32.sub - local.get $2 - local.get $2 - local.get $3 - i32.ge_s - select - local.get $2 - i32.const 0 - i32.lt_s - select + i32.const 10928 + call $~lib/array/Array#get:length local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $0 - loop $while-continue|0 + local.get $2 + call $~lib/typedarray/Uint32Array#constructor + local.tee $1 + i32.store offset=8 + loop $for-loop|0 + local.get $0 local.get $2 - i32.const 0 - i32.ge_s + i32.lt_s if - local.get $2 - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - f32.load + global.get $~lib/memory/__stack_pointer local.get $1 - f32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - drop - local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 10928 + i32.store offset=12 + local.get $1 + local.get $0 + i32.const 10928 + local.get $0 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + local.get $0 i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 + i32.add + local.set $0 + br $for-loop|0 end end - i32.const -1 - end - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/typedarray/Float32Array#lastIndexOf@varargs (param $0 i32) (param $1 f32) (result 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 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $0 + local.get $4 + local.get $5 + local.get $1 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange - end + global.set $~argumentsLength + global.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 + 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 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + 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 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + local.tee $4 + i32.const 3 + i32.and + if + i32.const 1056 + i32.const 1632 + i32.const 1865 + i32.const 9 + call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=8 + local.get $5 local.get $0 i32.store + local.get $5 local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $2 + call $~lib/rt/itcms/__link + local.get $5 + local.get $4 + i32.store offset=8 + local.get $5 + local.get $0 + i32.store offset=4 + 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 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=20 + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $2 + 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/typedarray/Uint32Array#__get + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $0 + call $~lib/typedarray/Uint32Array#__get + local.get $3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 730 + 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 24 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Float32Array#lastIndexOf - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float32Array,f32> + (func $"std/typedarray/testArrayWrap<~lib/typedarray/Uint16Array,u16>" (local $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 20 + i32.const 24 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 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 10928 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 10928 + i32.store offset=4 + i32.const 10928 + call $~lib/array/Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + call $~lib/typedarray/Uint16Array#constructor + local.tee $1 + i32.store offset=8 + loop $for-loop|0 + local.get $0 + local.get $2 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 10928 + i32.store offset=12 + local.get $1 + local.get $0 + i32.const 10928 + local.get $0 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__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=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $0 + local.get $4 + local.get $5 + local.get $1 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.const 20 - memory.fill - local.get $1 - i32.const 7728 - i32.store - local.get $1 - i32.const 7728 - i32.store offset=4 - i32.const 7728 - call $~lib/array/Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - call $~lib/typedarray/Float32Array#constructor - local.tee $1 - i32.store offset=8 - loop $for-loop|0 + global.set $~argumentsLength + global.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 + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $3 + 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 16320 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 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.and if - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 - i32.store offset=4 - local.get $2 - i32.const 7728 - i32.store offset=12 - local.get $1 - local.get $0 - i32.const 7728 - local.get $0 - call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 + i32.const 1056 + i32.const 1632 + i32.const 1865 + i32.const 9 + call $~lib/builtins/abort + unreachable end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - f32.const 0 - i32.const 0 - call $~lib/typedarray/Float32Array#indexOf - if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=8 + local.get $5 + local.get $0 + i32.store + local.get $5 + local.get $0 + call $~lib/rt/itcms/__link + local.get $5 + local.get $4 + i32.store offset=8 + local.get $5 + local.get $0 + i32.store offset=4 + 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 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=20 i32.const 0 - i32.const 1568 - i32.const 603 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $2 + 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/typedarray/Uint16Array#__get + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $0 + call $~lib/typedarray/Uint16Array#__get + local.get $3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 730 + 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 24 + i32.add + global.set $~lib/memory/__stack_pointer + return end + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"std/typedarray/testArrayWrap<~lib/typedarray/Int8Array,i8>" + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - f32.const 11 - i32.const 0 - call $~lib/typedarray/Float32Array#indexOf - i32.const -1 - i32.ne - if + i32.const 24 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1568 - i32.const 604 - 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 - i32.const 0 - call $~lib/typedarray/Float32Array#indexOf - i32.const -1 - i32.ne - if + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 10928 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 10928 + i32.store offset=4 + i32.const 10928 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $~lib/typedarray/Int8Array#constructor + local.tee $2 + i32.store offset=8 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 10928 + i32.store offset=12 + local.get $2 + local.get $0 + i32.const 10928 + local.get $0 + call $~lib/array/Array#__get + i32.extend8_s + call $~lib/typedarray/Int8Array#__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 $2 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.load + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=12 + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=12 + local.get $0 + local.get $4 + local.get $5 + local.get $2 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + global.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 + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1568 - i32.const 605 - 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 3 - i32.const 0 - call $~lib/typedarray/Float32Array#indexOf - i32.const 3 - i32.ne - if + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + 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 16320 + 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 1568 - i32.const 606 - 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 3 - i32.const 2 - call $~lib/typedarray/Float32Array#indexOf - i32.const 3 - i32.ne - if + 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 + i32.const 20 + i32.sub + i32.load offset=16 + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=8 + local.get $5 + local.get $0 + i32.store + local.get $5 + local.get $0 + call $~lib/rt/itcms/__link + local.get $5 + local.get $4 + i32.store offset=8 + local.get $5 + local.get $0 + i32.store offset=4 + 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 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=20 i32.const 0 - i32.const 1568 - i32.const 607 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $1 + 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/typedarray/Int8Array#__get + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $0 + call $~lib/typedarray/Int8Array#__get + local.get $3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 730 + 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 24 + i32.add + global.set $~lib/memory/__stack_pointer + return end + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"std/typedarray/testArrayWrap<~lib/typedarray/Int64Array,i64>" + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i64) + (local $4 i32) + (local $5 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - f32.const 3 - i32.const 3 - call $~lib/typedarray/Float32Array#indexOf - i32.const 3 - i32.ne - if + i32.const 24 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1568 - i32.const 608 - 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 3 - i32.const 4 - call $~lib/typedarray/Float32Array#indexOf - i32.const -1 - i32.ne - if + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 10928 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 10928 + i32.store offset=4 + i32.const 10928 + call $~lib/array/Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + call $~lib/typedarray/Int64Array#constructor + local.tee $1 + i32.store offset=8 + loop $for-loop|0 + local.get $0 + local.get $2 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 10928 + i32.store offset=12 + local.get $1 + local.get $0 + i32.const 10928 + local.get $0 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__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=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $0 + local.get $5 + local.get $6 + local.get $1 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + global.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 + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1568 - i32.const 609 - 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 - i32.const 10 - call $~lib/typedarray/Float32Array#indexOf - i32.const -1 - i32.ne - if + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + 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 16320 + 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 1568 - i32.const 610 - 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 - i32.const -100 - call $~lib/typedarray/Float32Array#indexOf - i32.const 1 - i32.ne - if + 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 + i32.const 20 + i32.sub + i32.load offset=16 + local.tee $5 + i32.const 7 + i32.and + if + i32.const 1056 + i32.const 1632 + i32.const 1865 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store offset=8 + local.get $6 + local.get $0 + i32.store + local.get $6 + local.get $0 + call $~lib/rt/itcms/__link + local.get $6 + local.get $5 + i32.store offset=8 + local.get $6 + local.get $0 + i32.store offset=4 + 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 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=20 i32.const 0 - i32.const 1568 - i32.const 611 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $2 + 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/typedarray/Int64Array#__get + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $0 + call $~lib/typedarray/Int64Array#__get + local.get $3 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 730 + 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 24 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + i32.const 49120 + i32.const 49168 i32.const 1 - global.set $~argumentsLength - local.get $1 - f32.const 0 - call $~lib/typedarray/Float32Array#lastIndexOf@varargs - if - i32.const 0 - i32.const 1568 - i32.const 613 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $1 - f32.const 11 - call $~lib/typedarray/Float32Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 614 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $1 - f32.const -1 - call $~lib/typedarray/Float32Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 615 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $1 - f32.const 3 - call $~lib/typedarray/Float32Array#lastIndexOf@varargs - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 616 - 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 3 - i32.const 4 - call $~lib/typedarray/Float32Array#lastIndexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 617 - 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 3 - i32.const 3 - call $~lib/typedarray/Float32Array#lastIndexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 618 - 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 3 - i32.const 2 - call $~lib/typedarray/Float32Array#lastIndexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 619 - 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 - i32.const 100 - call $~lib/typedarray/Float32Array#lastIndexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 620 - 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 - i32.const -10 - call $~lib/typedarray/Float32Array#lastIndexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 621 - 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 - i32.const -11 - call $~lib/typedarray/Float32Array#lastIndexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 622 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - i32.const 9 - call $~lib/typedarray/Float32Array#subarray - local.tee $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - f32.const 3 - i32.const 0 - call $~lib/typedarray/Float32Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 626 - 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 4 - i32.const 0 - call $~lib/typedarray/Float32Array#indexOf - if - i32.const 0 - i32.const 1568 - i32.const 627 - 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 5 - i32.const 0 - call $~lib/typedarray/Float32Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 628 - 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 9 - i32.const 0 - call $~lib/typedarray/Float32Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 629 - 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 10 - i32.const 0 - call $~lib/typedarray/Float32Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 630 - 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 11 - i32.const 0 - call $~lib/typedarray/Float32Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 631 - 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 5 - i32.const 1 - call $~lib/typedarray/Float32Array#indexOf i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 632 - 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 5 - i32.const 2 - call $~lib/typedarray/Float32Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 633 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer + call $~lib/builtins/abort + unreachable ) - (func $~lib/typedarray/Float64Array#indexOf (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + (func $"std/typedarray/testArrayWrap<~lib/typedarray/Int32Array,i32>" + (local $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.const 24 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 - local.tee $3 - i64.const 0 - i64.store - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.store offset=4 - i32.const -1 - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.tee $3 - i32.eqz - local.get $2 - local.get $3 - i32.ge_s - i32.or - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - drop - local.get $2 - i32.const 0 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 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 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 10928 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 10928 i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $0 - loop $while-continue|0 + i32.const 10928 + call $~lib/array/Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + call $~lib/typedarray/Int32Array#constructor + local.tee $1 + i32.store offset=8 + loop $for-loop|0 + local.get $0 local.get $2 - local.get $3 i32.lt_s if - local.get $2 - local.get $0 - local.get $2 - i32.const 3 - i32.shl - i32.add - f64.load + global.get $~lib/memory/__stack_pointer local.get $1 - f64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - drop - local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 10928 + i32.store offset=12 + local.get $1 + local.get $0 + i32.const 10928 + local.get $0 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + local.get $0 i32.const 1 i32.add - local.set $2 - br $while-continue|0 + local.set $0 + br $for-loop|0 end end - i32.const -1 - end - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/typedarray/Float64Array#lastIndexOf (param $0 i32) (param $1 f64) (param $2 i32) (result 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 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 - local.tee $3 - i64.const 0 - i64.store - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load + local.tee $0 i32.store offset=4 - i32.const -1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.tee $3 - i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - drop - local.get $2 - local.get $3 + local.get $4 + local.get $5 + local.get $1 + i32.load offset=8 i32.add - local.get $3 - i32.const 1 - i32.sub - local.get $2 - local.get $2 - local.get $3 - i32.ge_s - select - local.get $2 - i32.const 0 - i32.lt_s - select - local.set $2 + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $0 - loop $while-continue|0 + i32.const 1 + global.set $~argumentsLength + global.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 + 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 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + 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 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + local.tee $4 + i32.const 3 + i32.and + if + i32.const 1056 + i32.const 1632 + i32.const 1865 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=8 + local.get $5 + local.get $0 + i32.store + local.get $5 + local.get $0 + call $~lib/rt/itcms/__link + local.get $5 + local.get $4 + i32.store offset=8 + local.get $5 + local.get $0 + i32.store offset=4 + 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 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=20 + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 local.get $2 - i32.const 0 - i32.ge_s + i32.lt_s if - local.get $2 - local.get $0 - local.get $2 - i32.const 3 - i32.shl - i32.add - f64.load + global.get $~lib/memory/__stack_pointer local.get $1 - f64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - drop - local.get $2 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/typedarray/Int32Array#__get + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $0 + call $~lib/typedarray/Int32Array#__get + local.get $3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 730 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 + i32.add + local.set $0 + br $for-loop|1 end end - i32.const -1 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + return end - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/typedarray/Float64Array#lastIndexOf@varargs (param $0 i32) (param $1 f64) (result i32) + (func $"std/typedarray/testArrayWrap<~lib/typedarray/Int16Array,i16>" + (local $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 4 + i32.const 24 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 - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 10928 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 10928 + i32.store offset=4 + i32.const 10928 + call $~lib/array/Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + call $~lib/typedarray/Int16Array#constructor + local.tee $1 + i32.store offset=8 + loop $for-loop|0 + local.get $0 + local.get $2 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 10928 + i32.store offset=12 + local.get $1 + local.get $0 + i32.const 10928 + local.get $0 + call $~lib/array/Array#__get + i32.extend16_s + call $~lib/typedarray/Int16Array#__set + local.get $0 i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange + i32.add + local.set $0 + br $for-loop|0 end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $0 + local.get $4 + local.get $5 + local.get $1 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + global.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 + 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 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + 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 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.and + if + i32.const 1056 + i32.const 1632 + i32.const 1865 + i32.const 9 + call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=8 + local.get $5 local.get $0 i32.store + local.get $5 local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.set $2 + call $~lib/rt/itcms/__link + local.get $5 + local.get $4 + i32.store offset=8 + local.get $5 + local.get $0 + i32.store offset=4 + 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 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=20 + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $2 + 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/typedarray/Int16Array#__get + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $0 + call $~lib/typedarray/Int16Array#__get + local.get $3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 730 + 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 24 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Float64Array#lastIndexOf - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float64Array,f64> + (func $"std/typedarray/testArrayWrap<~lib/typedarray/Float64Array,f64>" (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) + (local $3 f64) + (local $4 i32) + (local $5 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 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 - local.tee $1 - i32.const 0 - i32.const 20 - memory.fill - local.get $1 - i32.const 7728 - i32.store - local.get $1 - i32.const 7728 - i32.store offset=4 - i32.const 7728 - call $~lib/array/Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - call $~lib/typedarray/Float64Array#constructor - local.tee $1 - i32.store offset=8 - loop $for-loop|0 - local.get $0 - local.get $3 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 - i32.store offset=4 - local.get $2 - i32.const 7728 - i32.store offset=12 - local.get $1 - local.get $0 - i32.const 7728 - local.get $0 - call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 10928 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 10928 + i32.store offset=4 + i32.const 10928 + call $~lib/array/Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + call $~lib/typedarray/Float64Array#constructor + local.tee $1 + i32.store offset=8 + loop $for-loop|0 local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 + local.get $2 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 10928 + i32.store offset=12 + local.get $1 + local.get $0 + i32.const 10928 + local.get $0 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - f64.const 0 - i32.const 0 - call $~lib/typedarray/Float64Array#indexOf - if - i32.const 0 - i32.const 1568 - i32.const 603 - 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 11 - i32.const 0 - call $~lib/typedarray/Float64Array#indexOf - i32.const -1 - i32.ne - if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $0 + local.get $5 + local.get $6 + local.get $1 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + global.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 + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1568 - i32.const 604 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + 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 16320 + 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 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + local.tee $5 + i32.const 7 + i32.and + if + i32.const 1056 + i32.const 1632 + i32.const 1865 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 14 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store offset=8 + local.get $6 + local.get $0 + i32.store + local.get $6 + local.get $0 + call $~lib/rt/itcms/__link + local.get $6 + local.get $5 + i32.store offset=8 + local.get $6 + local.get $0 + i32.store offset=4 + 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 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=20 + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $2 + 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/typedarray/Float64Array#__get + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $0 + call $~lib/typedarray/Float64Array#__get + local.get $3 + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 730 + 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 24 + i32.add + global.set $~lib/memory/__stack_pointer + return end + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"std/typedarray/testArrayWrap<~lib/typedarray/Float32Array,f32>" + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 f32) + (local $4 i32) + (local $5 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - f64.const -1 - i32.const 0 - call $~lib/typedarray/Float64Array#indexOf - i32.const -1 - i32.ne - if + i32.const 24 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1568 - i32.const 605 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 10928 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 10928 + i32.store offset=4 + i32.const 10928 + call $~lib/array/Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + call $~lib/typedarray/Float32Array#constructor + local.tee $1 + i32.store offset=8 + loop $for-loop|0 + local.get $0 + local.get $2 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 10928 + i32.store offset=12 + local.get $1 + local.get $0 + i32.const 10928 + local.get $0 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__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=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $0 + local.get $5 + local.get $6 + local.get $1 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + global.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 + 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 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + 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 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + local.tee $5 i32.const 3 - call $~lib/builtins/abort - unreachable + i32.and + if + i32.const 1056 + i32.const 1632 + i32.const 1865 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store offset=8 + local.get $6 + local.get $0 + i32.store + local.get $6 + local.get $0 + call $~lib/rt/itcms/__link + local.get $6 + local.get $5 + i32.store offset=8 + local.get $6 + local.get $0 + i32.store offset=4 + 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 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=20 + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $2 + 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/typedarray/Float32Array#__get + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $0 + call $~lib/typedarray/Float32Array#__get + local.get $3 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 730 + 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 24 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"std/typedarray/testArraySort<~lib/typedarray/Uint64Array,u64>~anonymous|0" (param $0 i64) (param $1 i64) (result i32) + local.get $0 local.get $1 - i32.store offset=4 + i64.lt_u + local.get $0 local.get $1 - f64.const 3 - i32.const 0 - call $~lib/typedarray/Float64Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 606 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + i64.gt_u + i32.sub + ) + (func $"std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32>~anonymous|0" (param $0 i32) (param $1 i32) (result i32) + local.get $0 local.get $1 - i32.store offset=4 + i32.lt_u + local.get $0 local.get $1 - f64.const 3 - i32.const 2 - call $~lib/typedarray/Float64Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 607 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + i32.gt_u + i32.sub + ) + (func $"std/typedarray/testArraySort<~lib/typedarray/Uint16Array,u16>~anonymous|0" (param $0 i32) (param $1 i32) (result i32) local.get $1 - i32.store offset=4 + i32.const 65535 + i32.and + local.tee $1 + local.get $0 + i32.const 65535 + i32.and + local.tee $0 + i32.gt_u + local.get $0 local.get $1 - f64.const 3 - i32.const 3 - call $~lib/typedarray/Float64Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 608 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + i32.gt_u + i32.sub + ) + (func $"std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8>~anonymous|0" (param $0 i32) (param $1 i32) (result i32) local.get $1 - i32.store offset=4 + i32.extend8_s + local.tee $1 + local.get $0 + i32.extend8_s + local.tee $0 + i32.gt_s + local.get $0 local.get $1 - f64.const 3 - i32.const 4 - call $~lib/typedarray/Float64Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 609 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + i32.gt_s + i32.sub + ) + (func $"std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64>~anonymous|0" (param $0 i64) (param $1 i64) (result i32) + local.get $0 local.get $1 - i32.store offset=4 + i64.lt_s + local.get $0 local.get $1 - f64.const 1 - i32.const 10 - call $~lib/typedarray/Float64Array#indexOf - i32.const -1 - i32.ne + i64.gt_s + i32.sub + ) + (func $"std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32>~anonymous|0" (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.lt_s + local.get $0 + local.get $1 + i32.gt_s + i32.sub + ) + (func $"std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16>~anonymous|0" (param $0 i32) (param $1 i32) (result i32) + local.get $1 + i32.extend16_s + local.tee $1 + local.get $0 + i32.extend16_s + local.tee $0 + i32.gt_s + local.get $0 + local.get $1 + i32.gt_s + i32.sub + ) + (func $"std/typedarray/testArraySort<~lib/typedarray/Float64Array,f64>~anonymous|0" (param $0 f64) (param $1 f64) (result i32) + local.get $0 + local.get $1 + f64.lt + local.get $0 + local.get $1 + f64.gt + i32.sub + ) + (func $"std/typedarray/testArraySort<~lib/typedarray/Float32Array,f32>~anonymous|0" (param $0 f32) (param $1 f32) (result i32) + local.get $0 + local.get $1 + f32.lt + local.get $0 + local.get $1 + f32.gt + i32.sub + ) + (func $"std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|1" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 65535 + i32.and + i32.eqz + ) + (func $"std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|1" (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + f64.const 0 + f64.eq + ) + (func $"std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|1" (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + f32.const 0 + f32.eq + ) + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Uint8ClampedArray,u8>" + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + 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 16320 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 610 - i32.const 3 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7616 i32.store offset=4 - local.get $1 - f64.const 1 - i32.const -100 - call $~lib/typedarray/Float64Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 611 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.const 7616 + call $~lib/array/Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $1 + i32.store offset=12 + loop $for-loop|0 + local.get $0 + local.get $4 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=16 + local.get $3 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=16 + local.get $1 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__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 + local.get $3 i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $1 - f64.const 0 - call $~lib/typedarray/Float64Array#lastIndexOf@varargs - if - i32.const 0 - i32.const 1568 - i32.const 613 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $3 + call $~lib/typedarray/Int8Array#reverse + drop + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $4 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $0 + call $~lib/typedarray/Uint8ClampedArray#__get + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=4 + i32.const 7616 + local.get $4 + i32.const 1 + i32.sub + local.get $0 + i32.sub + call $~lib/array/Array#__get + i32.const 255 + i32.and + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 570 + 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 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength + i32.store offset=16 local.get $1 - f64.const 11 - call $~lib/typedarray/Float64Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 614 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 8 + call $~lib/typedarray/Uint8ClampedArray#subarray + local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - i32.const 1 - global.set $~argumentsLength local.get $1 - f64.const -1 - call $~lib/typedarray/Float64Array#lastIndexOf@varargs - i32.const -1 + call $~lib/typedarray/Int8Array#reverse + local.tee $0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 8 i32.ne if i32.const 0 i32.const 1568 - i32.const 615 + i32.const 575 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 + local.get $0 i32.const 1 - global.set $~argumentsLength - local.get $1 - f64.const 3 - call $~lib/typedarray/Float64Array#lastIndexOf@varargs - i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 7 i32.ne if i32.const 0 i32.const 1568 - i32.const 616 + i32.const 576 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 - f64.const 3 - i32.const 4 - call $~lib/typedarray/Float64Array#lastIndexOf - i32.const 3 + local.get $0 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 6 i32.ne if i32.const 0 i32.const 1568 - i32.const 617 + i32.const 577 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 - f64.const 3 - i32.const 3 - call $~lib/typedarray/Float64Array#lastIndexOf + local.get $0 i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 5 i32.ne if i32.const 0 i32.const 1568 - i32.const 618 + i32.const 578 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 3 - i32.const 2 - call $~lib/typedarray/Float64Array#lastIndexOf - i32.const -1 - i32.ne + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Uint8Array,u8>" + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + 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 16320 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 619 - i32.const 3 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7616 i32.store offset=4 - local.get $1 - f64.const 1 - i32.const 100 - call $~lib/typedarray/Float64Array#lastIndexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 620 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.const 7616 + call $~lib/array/Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $1 + i32.store offset=12 + loop $for-loop|0 + local.get $0 + local.get $4 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=16 + local.get $3 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=16 + local.get $1 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__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 + local.get $3 i32.store offset=4 - local.get $1 - f64.const 1 - i32.const -10 - call $~lib/typedarray/Float64Array#lastIndexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 621 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $3 + call $~lib/typedarray/Int8Array#reverse + drop + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $4 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $0 + call $~lib/typedarray/Uint8Array#__get + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=4 + i32.const 7616 + local.get $4 + i32.const 1 + i32.sub + local.get $0 + i32.sub + call $~lib/array/Array#__get + i32.const 255 + i32.and + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 570 + 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 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store offset=16 local.get $1 - f64.const 1 - i32.const -11 - call $~lib/typedarray/Float64Array#lastIndexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 622 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 8 + call $~lib/typedarray/Uint8Array#subarray + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store offset=4 - local.get $0 local.get $1 - i32.const 4 - i32.const 9 - call $~lib/typedarray/Float64Array#subarray + call $~lib/typedarray/Int8Array#reverse local.tee $0 - i32.store offset=16 + i32.store offset=20 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - f64.const 3 i32.const 0 - call $~lib/typedarray/Float64Array#indexOf - i32.const -1 + call $~lib/typedarray/Uint8Array#__get + i32.const 8 i32.ne if i32.const 0 i32.const 1568 - i32.const 626 + i32.const 575 i32.const 3 call $~lib/builtins/abort unreachable @@ -35692,13 +40553,14 @@ local.get $0 i32.store offset=4 local.get $0 - f64.const 4 - i32.const 0 - call $~lib/typedarray/Float64Array#indexOf + i32.const 1 + call $~lib/typedarray/Uint8Array#__get + i32.const 7 + i32.ne if i32.const 0 i32.const 1568 - i32.const 627 + i32.const 576 i32.const 3 call $~lib/builtins/abort unreachable @@ -35707,15 +40569,14 @@ local.get $0 i32.store offset=4 local.get $0 - f64.const 5 - i32.const 0 - call $~lib/typedarray/Float64Array#indexOf - i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__get + i32.const 6 i32.ne if i32.const 0 i32.const 1568 - i32.const 628 + i32.const 577 i32.const 3 call $~lib/builtins/abort unreachable @@ -35724,49 +40585,178 @@ local.get $0 i32.store offset=4 local.get $0 - f64.const 9 - i32.const 0 - call $~lib/typedarray/Float64Array#indexOf - i32.const -1 + i32.const 3 + call $~lib/typedarray/Uint8Array#__get + i32.const 5 i32.ne if i32.const 0 i32.const 1568 - i32.const 629 + i32.const 578 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 10 - i32.const 0 - call $~lib/typedarray/Float64Array#indexOf - i32.const -1 - i32.ne + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64>" + (local $0 i32) + (local $1 i32) + (local $2 i64) + (local $3 i32) + (local $4 i32) + 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 16320 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 630 - i32.const 3 + 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 24 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=4 + i32.const 7616 + call $~lib/array/Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Uint64Array#constructor + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Uint64Array#constructor + local.tee $1 + i32.store offset=12 + loop $for-loop|0 + local.get $0 + local.get $4 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=16 + local.get $3 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=16 + local.get $1 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__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 $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int64Array#reverse + drop + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $4 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $0 + call $~lib/typedarray/Uint64Array#__get + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=4 + i32.const 7616 + local.get $4 + i32.const 1 + i32.sub + local.get $0 + i32.sub + call $~lib/array/Array#__get + i64.extend_i32_s + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 570 + 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 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=16 + local.get $1 + i32.const 8 + call $~lib/typedarray/Uint64Array#subarray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/typedarray/Int64Array#reverse + local.tee $0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - f64.const 11 i32.const 0 - call $~lib/typedarray/Float64Array#indexOf - i32.const -1 - i32.ne + call $~lib/typedarray/Uint64Array#__get + i64.const 8 + i64.ne if i32.const 0 i32.const 1568 - i32.const 631 + i32.const 575 i32.const 3 call $~lib/builtins/abort unreachable @@ -35775,15 +40765,14 @@ local.get $0 i32.store offset=4 local.get $0 - f64.const 5 - i32.const 1 - call $~lib/typedarray/Float64Array#indexOf i32.const 1 - i32.ne + call $~lib/typedarray/Uint64Array#__get + i64.const 7 + i64.ne if i32.const 0 i32.const 1568 - i32.const 632 + i32.const 576 i32.const 3 call $~lib/builtins/abort unreachable @@ -35792,31 +40781,47 @@ local.get $0 i32.store offset=4 local.get $0 - f64.const 5 i32.const 2 - call $~lib/typedarray/Float64Array#indexOf - i32.const -1 - i32.ne + call $~lib/typedarray/Uint64Array#__get + i64.const 6 + i64.ne if i32.const 0 i32.const 1568 - i32.const 633 + i32.const 577 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 20 + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint64Array#__get + i64.const 5 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 578 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/string/String#substring (param $0 i32) (param $1 i32) (result i32) + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Uint32Array,u32>" + (local $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.const 24 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -35831,291 +40836,418 @@ unreachable end global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=4 + i32.const 7616 + call $~lib/array/Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Uint32Array#constructor local.tee $3 - i64.const 0 - i64.store + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Uint32Array#constructor + local.tee $1 + i32.store offset=12 + loop $for-loop|0 + local.get $0 + local.get $4 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=16 + local.get $3 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=16 + local.get $1 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__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 $3 - local.get $0 - i32.store - local.get $1 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int32Array#reverse + drop i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $4 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $0 + call $~lib/typedarray/Uint32Array#__get + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=4 + i32.const 7616 + local.get $4 + i32.const 1 + i32.sub + local.get $0 + i32.sub + call $~lib/array/Array#__get + local.get $2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 570 + 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 + global.get $~lib/memory/__stack_pointer 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 + i32.store offset=16 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 $4 - local.get $2 - i32.const 0 - local.get $2 + i32.const 8 + call $~lib/typedarray/Uint32Array#subarray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/typedarray/Int32Array#reverse + local.tee $0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 0 - i32.ge_s - select - i32.const 1 - i32.shl - local.tee $5 - local.get $4 - i32.sub - local.tee $2 - i32.eqz + call $~lib/typedarray/Uint32Array#__get + i32.const 8 + i32.ne if - local.get $3 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 7776 - return + i32.const 0 + i32.const 1568 + i32.const 575 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $4 - i32.eqz - local.get $5 - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 1 - i32.shl - i32.eq - i32.and + call $~lib/typedarray/Uint32Array#__get + i32.const 7 + i32.ne if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return + i32.const 0 + i32.const 1568 + i32.const 576 + i32.const 3 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 + i32.store offset=4 + local.get $0 i32.const 2 - call $~lib/rt/itcms/__new - local.tee $1 + call $~lib/typedarray/Uint32Array#__get + i32.const 6 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 577 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=4 - local.get $1 local.get $0 - local.get $4 - i32.add - local.get $2 - memory.copy + i32.const 3 + call $~lib/typedarray/Uint32Array#__get + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 578 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 ) - (func $~lib/typedarray/Int8Array#join (param $0 i32) (result i32) + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Uint16Array,u16>" + (local $0 i32) (local $1 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.const 24 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store - local.get $4 - local.get $0 - i32.store offset=4 + 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.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=4 + i32.const 7616 + call $~lib/array/Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Uint16Array#constructor + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Uint16Array#constructor + local.tee $1 + i32.store offset=12 + loop $for-loop|0 local.get $0 - i32.load offset=4 - local.set $3 local.get $4 - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray$6 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer + i32.lt_s + if global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner1 + local.get $3 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store + i32.const 7616 + i32.store offset=16 + local.get $3 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=16 + local.get $1 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__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 $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int16Array#reverse + drop + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $4 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 local.get $0 + call $~lib/typedarray/Uint16Array#__get + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=4 + i32.const 7616 + local.get $4 i32.const 1 i32.sub - local.tee $5 - i32.const 0 - i32.lt_s + local.get $0 + i32.sub + call $~lib/array/Array#__get + i32.const 65535 + i32.and + i32.ne if - local.get $4 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 7776 - br $__inlined_func$~lib/util/string/joinIntegerArray$6 - end - block $folding-inner0 - local.get $5 - i32.eqz - if - local.get $3 - i32.load8_s - call $~lib/util/number/itoa32 - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 9584 - i32.store - local.get $0 - i32.const 9580 - i32.load - i32.const 1 - i32.shr_u - local.tee $0 - i32.const 11 - i32.add - local.get $5 - i32.mul - i32.const 11 - i32.add - local.tee $6 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store offset=4 - loop $for-loop|0 - local.get $2 - local.get $5 - i32.lt_s - if - local.get $4 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $3 - i32.add - i32.load8_s - call $~lib/util/number/itoa_buffered - local.get $1 - i32.add - local.set $1 - local.get $0 - if - local.get $4 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 9584 - local.get $0 - i32.const 1 - i32.shl - memory.copy - local.get $0 - local.get $1 - i32.add - local.set $1 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - local.get $6 - local.get $4 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $3 - local.get $5 - i32.add - i32.load8_s - call $~lib/util/number/itoa_buffered - local.get $1 - i32.add - local.tee $0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - local.get $0 - call $~lib/string/String#substring - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - br $__inlined_func$~lib/util/string/joinIntegerArray$6 + i32.const 0 + i32.const 1568 + i32.const 570 + i32.const 5 + 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 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 end - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return end - i32.const 49120 - i32.const 49168 - i32.const 1 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=16 + local.get $1 + i32.const 8 + call $~lib/typedarray/Uint16Array#subarray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/typedarray/Int16Array#reverse + local.tee $0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint16Array#__get + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 575 + 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 1 - call $~lib/builtins/abort - unreachable + call $~lib/typedarray/Uint16Array#__get + i32.const 7 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 576 + 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 2 + call $~lib/typedarray/Uint16Array#__get + i32.const 6 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 577 + 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 3 + call $~lib/typedarray/Uint16Array#__get + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 578 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Int8Array,i8>" + (local $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.const 24 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -36130,344 +41262,205 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $0 - local.get $1 - i32.eq - if - local.get $2 - 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.tee $4 - local.tee $2 - 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 - local.get $2 - 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 - local.get $4 - local.get $0 - i32.store + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=4 + i32.const 7616 + call $~lib/array/Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Int8Array#constructor + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Int8Array#constructor + local.tee $1 + i32.store offset=12 + loop $for-loop|0 local.get $0 - local.set $2 local.get $4 - 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 - i32.and + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=16 + local.get $3 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + i32.extend8_s + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer local.get $1 - i32.const 7 - i32.and - i32.or - else + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=16 + local.get $1 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + i32.extend8_s + call $~lib/typedarray/Int8Array#__set + local.get $0 i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - i32.eqz - if - loop $do-loop|0 - local.get $2 - i64.load - local.get $1 - i64.load - i64.eq - if - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end - end - end - block $__inlined_func$~lib/util/string/compareImpl$714 - loop $while-continue|1 - local.get $0 - local.tee $3 - i32.const 1 - i32.sub - local.set $0 - local.get $3 - if - local.get $2 - i32.load16_u - local.tee $5 - local.get $1 - i32.load16_u - local.tee $4 - i32.sub - local.set $3 - local.get $4 - local.get $5 - i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$714 - local.get $2 - i32.const 2 - i32.add - local.set $2 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 - end - end - i32.const 0 - local.set $3 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - i32.eqz - return end global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int8Array#reverse + drop i32.const 0 - ) - (func $~lib/typedarray/Uint8Array#join (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - 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 16320 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store - local.get $4 - local.get $0 - i32.store offset=4 + local.set $0 + loop $for-loop|1 local.get $0 - i32.load offset=4 - local.set $3 local.get $4 - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray$7 (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 16320 - i32.lt_s - br_if $folding-inner1 + i32.lt_s + if global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store + local.get $3 + i32.store offset=4 + local.get $3 local.get $0 + call $~lib/typedarray/Int8Array#__get + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=4 + i32.const 7616 + local.get $4 i32.const 1 i32.sub - local.tee $5 - i32.const 0 - i32.lt_s + local.get $0 + i32.sub + call $~lib/array/Array#__get + i32.extend8_s + i32.ne if - local.get $4 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 7776 - br $__inlined_func$~lib/util/string/joinIntegerArray$7 - end - block $folding-inner0 - local.get $5 - i32.eqz - if - local.get $3 - i32.load8_u - call $~lib/util/number/utoa32 - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 9584 - i32.store - local.get $0 - i32.const 9580 - i32.load - i32.const 1 - i32.shr_u - local.tee $0 - i32.const 10 - i32.add - local.get $5 - i32.mul - i32.const 10 - i32.add - local.tee $6 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store offset=4 - loop $for-loop|0 - local.get $2 - local.get $5 - i32.lt_s - if - local.get $4 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $3 - i32.add - i32.load8_u - call $~lib/util/number/itoa_buffered - local.get $1 - i32.add - local.set $1 - local.get $0 - if - local.get $4 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 9584 - local.get $0 - i32.const 1 - i32.shl - memory.copy - local.get $0 - local.get $1 - i32.add - local.set $1 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - local.get $6 - local.get $4 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $3 - local.get $5 - i32.add - i32.load8_u - call $~lib/util/number/itoa_buffered - local.get $1 - i32.add - local.tee $0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - local.get $0 - call $~lib/string/String#substring - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - br $__inlined_func$~lib/util/string/joinIntegerArray$7 + i32.const 0 + i32.const 1568 + i32.const 570 + i32.const 5 + 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 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 end - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return end - i32.const 49120 - i32.const 49168 - i32.const 1 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=16 + local.get $1 + i32.const 4 + i32.const 8 + call $~lib/typedarray/Int8Array#subarray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/typedarray/Int8Array#reverse + local.tee $0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 575 + 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 1 - call $~lib/builtins/abort - unreachable + call $~lib/typedarray/Int8Array#__get + i32.const 7 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 576 + 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 2 + call $~lib/typedarray/Int8Array#__get + i32.const 6 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 577 + 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 3 + call $~lib/typedarray/Int8Array#__get + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 578 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint8Array#toString (param $0 i32) (result i32) + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64>" + (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.const 24 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -36482,1168 +41475,1249 @@ unreachable end global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=4 + i32.const 7616 + call $~lib/array/Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Int64Array#constructor + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Int64Array#constructor local.tee $1 - i64.const 0 - i64.store + i32.store offset=12 + loop $for-loop|0 + local.get $0 + local.get $4 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=16 + local.get $3 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=16 + local.get $1 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__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 $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int64Array#reverse + drop + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $4 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $0 + call $~lib/typedarray/Int64Array#__get + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=4 + i32.const 7616 + local.get $4 + i32.const 1 + i32.sub + local.get $0 + i32.sub + call $~lib/array/Array#__get + i64.extend_i32_s + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 570 + 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 + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $0 - i32.store + i32.store offset=16 local.get $1 - i32.const 9584 + i32.const 8 + call $~lib/typedarray/Int64Array#subarray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/typedarray/Int64Array#reverse + local.tee $0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=4 local.get $0 - call $~lib/typedarray/Uint8Array#join - local.set $0 + i32.const 0 + call $~lib/typedarray/Int64Array#__get + i64.const 8 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 575 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + call $~lib/typedarray/Int64Array#__get + i64.const 7 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 576 + 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 2 + call $~lib/typedarray/Int64Array#__get + i64.const 6 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 577 + 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 3 + call $~lib/typedarray/Int64Array#__get + i64.const 5 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 578 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/typedarray/Int16Array#join (param $0 i32) (result i32) + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Int32Array,i32>" + (local $0 i32) (local $1 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.const 24 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store - local.get $4 - local.get $0 - i32.store offset=4 + 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.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=4 + i32.const 7616 + call $~lib/array/Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Int32Array#constructor + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Int32Array#constructor + local.tee $1 + i32.store offset=12 + loop $for-loop|0 local.get $0 - i32.load offset=4 - local.set $3 local.get $4 - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray$8 (result i32) + i32.lt_s + if global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner1 + i32.const 7616 + i32.store offset=16 + local.get $3 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=16 + local.get $1 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set local.get $0 i32.const 1 - i32.sub - local.tee $5 - i32.const 0 - i32.lt_s - if - local.get $4 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 7776 - br $__inlined_func$~lib/util/string/joinIntegerArray$8 - end - block $folding-inner0 - local.get $5 - i32.eqz - if - local.get $3 - i32.load16_s - call $~lib/util/number/itoa32 - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 9584 - i32.store - local.get $0 - i32.const 9580 - i32.load - i32.const 1 - i32.shr_u - local.tee $0 - i32.const 11 - i32.add - local.get $5 - i32.mul - i32.const 11 - i32.add - local.tee $6 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store offset=4 - loop $for-loop|0 - local.get $2 - local.get $5 - i32.lt_s - if - local.get $4 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $3 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.load16_s - call $~lib/util/number/itoa_buffered - local.get $1 - i32.add - local.set $1 - local.get $0 - if - local.get $4 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 9584 - local.get $0 - i32.const 1 - i32.shl - memory.copy - local.get $0 - local.get $1 - i32.add - local.set $1 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - local.get $6 - local.get $4 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $3 - local.get $5 - i32.const 1 - i32.shl - i32.add - i32.load16_s - call $~lib/util/number/itoa_buffered - local.get $1 - i32.add - local.tee $0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - local.get $0 - call $~lib/string/String#substring - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - br $__inlined_func$~lib/util/string/joinIntegerArray$8 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + local.set $0 + br $for-loop|0 end - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/typedarray/Uint16Array#join (param $0 i32) (result i32) - (local $1 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 16320 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store - local.get $4 - local.get $0 - i32.store offset=4 + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int32Array#reverse + drop + i32.const 0 + local.set $0 + loop $for-loop|1 local.get $0 - i32.load offset=4 - local.set $3 local.get $4 - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray$9 (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 16320 - i32.lt_s - br_if $folding-inner1 + i32.lt_s + if global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store + local.get $3 + i32.store offset=4 + local.get $3 local.get $0 + call $~lib/typedarray/Int32Array#__get + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=4 + i32.const 7616 + local.get $4 i32.const 1 i32.sub - local.tee $5 - i32.const 0 - i32.lt_s + local.get $0 + i32.sub + call $~lib/array/Array#__get + local.get $2 + i32.ne if - local.get $4 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 7776 - br $__inlined_func$~lib/util/string/joinIntegerArray$9 - end - block $folding-inner0 - local.get $5 - i32.eqz - if - local.get $3 - i32.load16_u - call $~lib/util/number/utoa32 - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 9584 - i32.store - local.get $0 - i32.const 9580 - i32.load - i32.const 1 - i32.shr_u - local.tee $0 - i32.const 10 - i32.add - local.get $5 - i32.mul - i32.const 10 - i32.add - local.tee $6 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store offset=4 - loop $for-loop|0 - local.get $2 - local.get $5 - i32.lt_s - if - local.get $4 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $3 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.load16_u - call $~lib/util/number/itoa_buffered - local.get $1 - i32.add - local.set $1 - local.get $0 - if - local.get $4 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 9584 - local.get $0 - i32.const 1 - i32.shl - memory.copy - local.get $0 - local.get $1 - i32.add - local.set $1 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - local.get $6 - local.get $4 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $3 - local.get $5 - i32.const 1 - i32.shl - i32.add - i32.load16_u - call $~lib/util/number/itoa_buffered - local.get $1 - i32.add - local.tee $0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - local.get $0 - call $~lib/string/String#substring - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - br $__inlined_func$~lib/util/string/joinIntegerArray$9 + i32.const 0 + i32.const 1568 + i32.const 570 + i32.const 5 + 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 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 end - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return end - i32.const 49120 - i32.const 49168 - i32.const 1 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=16 + local.get $1 + i32.const 4 + i32.const 8 + call $~lib/typedarray/Int32Array#subarray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/typedarray/Int32Array#reverse + local.tee $0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 575 + 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 1 - call $~lib/builtins/abort - unreachable + call $~lib/typedarray/Int32Array#__get + i32.const 7 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 576 + 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 2 + call $~lib/typedarray/Int32Array#__get + i32.const 6 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 577 + 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 3 + call $~lib/typedarray/Int32Array#__get + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 578 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Int32Array#join (param $0 i32) (result i32) + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Int16Array,i16>" + (local $0 i32) (local $1 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.const 24 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store - local.get $4 - local.get $0 - i32.store offset=4 + 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.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=4 + i32.const 7616 + call $~lib/array/Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Int16Array#constructor + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Int16Array#constructor + local.tee $1 + i32.store offset=12 + loop $for-loop|0 local.get $0 - i32.load offset=4 - local.set $3 local.get $4 - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray$10 (result i32) + i32.lt_s + if global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner1 + i32.const 7616 + i32.store offset=16 + local.get $3 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + i32.extend16_s + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=16 + local.get $1 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + i32.extend16_s + call $~lib/typedarray/Int16Array#__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 $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int16Array#reverse + drop + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $4 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 local.get $0 + call $~lib/typedarray/Int16Array#__get + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=4 + i32.const 7616 + local.get $4 i32.const 1 i32.sub - local.tee $5 - i32.const 0 - i32.lt_s + local.get $0 + i32.sub + call $~lib/array/Array#__get + i32.extend16_s + i32.ne if - local.get $4 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 7776 - br $__inlined_func$~lib/util/string/joinIntegerArray$10 - end - block $folding-inner0 - local.get $5 - i32.eqz - if - local.get $3 - i32.load - call $~lib/util/number/itoa32 - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 9584 - i32.store - local.get $0 - i32.const 9580 - i32.load - i32.const 1 - i32.shr_u - local.tee $0 - i32.const 11 - i32.add - local.get $5 - i32.mul - i32.const 11 - i32.add - local.tee $6 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store offset=4 - loop $for-loop|0 - local.get $2 - local.get $5 - i32.lt_s - if - local.get $4 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $3 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - call $~lib/util/number/itoa_buffered - local.get $1 - i32.add - local.set $1 - local.get $0 - if - local.get $4 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 9584 - local.get $0 - i32.const 1 - i32.shl - memory.copy - local.get $0 - local.get $1 - i32.add - local.set $1 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - local.get $6 - local.get $4 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $3 - local.get $5 - i32.const 2 - i32.shl - i32.add - i32.load - call $~lib/util/number/itoa_buffered - local.get $1 - i32.add - local.tee $0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - local.get $0 - call $~lib/string/String#substring - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - br $__inlined_func$~lib/util/string/joinIntegerArray$10 + i32.const 0 + i32.const 1568 + i32.const 570 + i32.const 5 + 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 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 end - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return end - i32.const 49120 - i32.const 49168 - i32.const 1 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=16 + local.get $1 + i32.const 8 + call $~lib/typedarray/Int16Array#subarray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/typedarray/Int16Array#reverse + local.tee $0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/typedarray/Int16Array#__get + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 575 + 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 1 - call $~lib/builtins/abort - unreachable + call $~lib/typedarray/Int16Array#__get + i32.const 7 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 576 + 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 2 + call $~lib/typedarray/Int16Array#__get + i32.const 6 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 577 + 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 3 + call $~lib/typedarray/Int16Array#__get + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 578 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint32Array#join (param $0 i32) (result i32) + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64>" + (local $0 i32) (local $1 i32) - (local $2 i32) + (local $2 f64) (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store - local.get $4 - local.get $0 - i32.store offset=4 + 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.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=4 + i32.const 7616 + call $~lib/array/Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Float64Array#constructor + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Float64Array#constructor + local.tee $1 + i32.store offset=12 + loop $for-loop|0 local.get $0 - i32.load offset=4 - local.set $3 local.get $4 - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray$11 (result i32) + i32.lt_s + if global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner1 + i32.const 7616 + i32.store offset=16 + local.get $3 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=16 + local.get $1 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__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 $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Float64Array#reverse + drop + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $4 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 local.get $0 + call $~lib/typedarray/Float64Array#__get + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=4 + i32.const 7616 + local.get $4 i32.const 1 i32.sub - local.tee $5 - i32.const 0 - i32.lt_s + local.get $0 + i32.sub + call $~lib/array/Array#__get + f64.convert_i32_s + f64.ne if - local.get $4 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 7776 - br $__inlined_func$~lib/util/string/joinIntegerArray$11 + i32.const 0 + i32.const 1568 + i32.const 570 + i32.const 5 + call $~lib/builtins/abort + unreachable end - block $folding-inner0 - local.get $5 - i32.eqz - if - local.get $3 - i32.load - call $~lib/util/number/utoa32 - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 9584 - i32.store - local.get $0 - i32.const 9580 - i32.load - i32.const 1 - i32.shr_u - local.tee $0 - i32.const 10 - i32.add - local.get $5 - i32.mul - i32.const 10 - i32.add - local.tee $6 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store offset=4 - loop $for-loop|0 - local.get $2 - local.get $5 - i32.lt_s - if - local.get $4 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $3 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - call $~lib/util/number/itoa_buffered - local.get $1 - i32.add - local.set $1 - local.get $0 - if - local.get $4 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 9584 - local.get $0 - i32.const 1 - i32.shl - memory.copy - local.get $0 - local.get $1 - i32.add - local.set $1 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - local.get $6 - local.get $4 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $3 - local.get $5 - i32.const 2 - i32.shl - i32.add - i32.load - call $~lib/util/number/itoa_buffered - local.get $1 - i32.add - local.tee $0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - local.get $0 - call $~lib/string/String#substring - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - br $__inlined_func$~lib/util/string/joinIntegerArray$11 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $0 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer + local.set $0 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=16 + local.get $1 + i32.const 4 + i32.const 8 + call $~lib/typedarray/Float64Array#subarray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/typedarray/Float64Array#reverse + local.tee $0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/typedarray/Float64Array#__get + f64.const 8 + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 575 + 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 1 + call $~lib/typedarray/Float64Array#__get + f64.const 7 + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 576 + 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 2 + call $~lib/typedarray/Float64Array#__get + f64.const 6 + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 577 + 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 3 + call $~lib/typedarray/Float64Array#__get + f64.const 5 + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 578 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32>" + (local $0 i32) + (local $1 i32) + (local $2 f32) + (local $3 i32) + (local $4 i32) + 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 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.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=4 + i32.const 7616 + call $~lib/array/Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Float32Array#constructor + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Float32Array#constructor + local.tee $1 + i32.store offset=12 + loop $for-loop|0 + local.get $0 + local.get $4 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=16 + local.get $3 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=16 + local.get $1 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - local.set $0 - 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 $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Float32Array#reverse + drop + i32.const 0 + local.set $0 + loop $for-loop|1 local.get $0 - return + local.get $4 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $0 + call $~lib/typedarray/Float32Array#__get + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=4 + i32.const 7616 + local.get $4 + i32.const 1 + i32.sub + local.get $0 + i32.sub + call $~lib/array/Array#__get + f32.convert_i32_s + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 570 + 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 - i32.const 49120 - i32.const 49168 - i32.const 1 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=16 + local.get $1 + i32.const 8 + call $~lib/typedarray/Float32Array#subarray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/typedarray/Float32Array#reverse + local.tee $0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/typedarray/Float32Array#__get + f32.const 8 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 575 + 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 1 - call $~lib/builtins/abort - unreachable + call $~lib/typedarray/Float32Array#__get + f32.const 7 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 576 + 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 2 + call $~lib/typedarray/Float32Array#__get + f32.const 6 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 577 + 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 3 + call $~lib/typedarray/Float32Array#__get + f32.const 5 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 578 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Int64Array#join (param $0 i32) (result i32) + (func $"std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8>" + (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i64) + (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + 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 - local.set $6 - local.get $2 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.set $2 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - i32.const 8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3664 + i32.store offset=8 + 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 16320 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$12 + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3664 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=16 + loop $for-loop|0 local.get $2 - i32.const 1 - i32.sub - local.tee $5 - i32.const 0 + local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + i32.const 3664 + i32.store offset=20 + local.get $2 + local.get $6 + i32.add + i32.load8_u + local.set $7 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 8 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $3 i32.add - global.set $~lib/memory/__stack_pointer - i32.const 7776 - local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$12 + local.get $7 + local.get $2 + local.get $0 + i32.const 3664 + i32.load + call_indirect (type $1) + i32.store8 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 end - block $folding-inner0 - local.get $5 - i32.eqz - if - block $__inlined_func$~lib/util/number/itoa64 (result i32) - local.get $6 - i64.load - i64.extend32_s - local.set $3 - global.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 - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $3 - i64.eqz - if - local.get $0 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 8000 - br $__inlined_func$~lib/util/number/itoa64 - end - i64.const 0 - local.get $3 - i64.sub - local.get $3 - local.get $3 - i64.const 63 - i64.shr_u - i32.wrap_i64 - i32.const 1 - i32.shl - local.tee $4 - select - local.tee $3 - i64.const 4294967295 - i64.le_u - if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.wrap_i64 - local.tee $2 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $2 - i32.const 100 - i32.lt_u - if (result i32) - local.get $2 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $2 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $2 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $2 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $2 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $2 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $2 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.tee $0 - i32.const 1 - i32.shl - local.get $4 - i32.add - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - local.get $1 - local.get $4 - i32.add - local.get $2 - local.get $0 - call $~lib/util/number/utoa32_dec_lut - else - global.get $~lib/memory/__stack_pointer - local.get $3 - i64.const 1000000000000000 - i64.lt_u - if (result i32) - local.get $3 - i64.const 1000000000000 - i64.lt_u - if (result i32) - local.get $3 - i64.const 100000000000 - i64.ge_u - i32.const 10 - i32.add - local.get $3 - i64.const 10000000000 - i64.ge_u - i32.add - else - local.get $3 - i64.const 100000000000000 - i64.ge_u - i32.const 13 - i32.add - local.get $3 - i64.const 10000000000000 - i64.ge_u - i32.add - end - else - local.get $3 - i64.const 100000000000000000 - i64.lt_u - if (result i32) - local.get $3 - i64.const 10000000000000000 - i64.ge_u - i32.const 16 - i32.add - else - local.get $3 - i64.const -8446744073709551616 - i64.ge_u - i32.const 18 - i32.add - local.get $3 - i64.const 1000000000000000000 - i64.ge_u - i32.add - end - end - local.tee $0 - i32.const 1 - i32.shl - local.get $4 - i32.add - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - local.get $1 - local.get $4 - i32.add - local.get $3 - local.get $0 - call $~lib/util/number/utoa64_dec_lut - end - local.get $4 - if - local.get $1 - 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 - end - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 9584 - i32.store - local.get $0 - i32.const 9580 - i32.load - i32.const 1 - i32.shr_u - local.tee $4 - i32.const 21 - i32.add - local.get $5 - i32.mul - i32.const 21 - i32.add - local.tee $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - loop $for-loop|0 - local.get $5 - local.get $7 - i32.gt_s - if - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $6 - local.get $7 - i32.const 3 - i32.shl - i32.add - i64.load - call $~lib/util/number/itoa_buffered - local.get $1 - i32.add - local.set $1 - local.get $4 - if - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 9584 - local.get $4 - i32.const 1 - i32.shl - memory.copy - local.get $1 - local.get $4 - i32.add - local.set $1 - end - local.get $7 - i32.const 1 - i32.add - local.set $7 - br $for-loop|0 - end - end - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $6 - local.get $5 - i32.const 3 - i32.shl - i32.add - i64.load - call $~lib/util/number/itoa_buffered - local.get $1 - i32.add - local.tee $1 - local.get $2 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - call $~lib/string/String#substring - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$12 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + end + local.get $1 + local.get $3 + i32.store + local.get $1 + local.get $3 + 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 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 388 + i32.const 3 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 389 + 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/typedarray/Uint8ClampedArray#__get + i32.const 9 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 390 + 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 - local.get $0 return end i32.const 49120 @@ -37653,376 +42727,232 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (result i32) + (func $"std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8>" + (local $0 i32) + (local $1 i32) (local $2 i32) - (local $3 i64) + (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $5 - i64.const 0 - i64.store - local.get $1 - i32.const 1 - i32.sub - local.tee $6 - i32.const 0 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + 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 3 + call $~lib/typedarray/Uint8Array#constructor + 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.const 1 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + 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 3632 + i32.store offset=8 + 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 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3632 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=16 + loop $for-loop|0 + local.get $2 + local.get $4 i32.lt_s if - local.get $5 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 7776 - return - end - local.get $6 - i32.eqz - if - local.get $0 - i64.load - local.set $3 global.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 - br_if $folding-inner0 + i32.const 3632 + i32.store offset=20 + local.get $2 + local.get $6 + i32.add + i32.load8_u + local.set $7 global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa64$749 - local.get $3 - i64.eqz - if - local.get $0 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 8000 - local.set $1 - br $__inlined_func$~lib/util/number/utoa64$749 - end - local.get $3 - i64.const 4294967295 - i64.le_u - if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.wrap_i64 - local.tee $0 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 100 - i32.lt_u - if (result i32) - local.get $0 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $0 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $0 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $0 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $0 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $0 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.tee $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 - else - global.get $~lib/memory/__stack_pointer - local.get $3 - i64.const 1000000000000000 - i64.lt_u - if (result i32) - local.get $3 - i64.const 1000000000000 - i64.lt_u - if (result i32) - local.get $3 - i64.const 100000000000 - i64.ge_u - i32.const 10 - i32.add - local.get $3 - i64.const 10000000000 - i64.ge_u - i32.add - else - local.get $3 - i64.const 100000000000000 - i64.ge_u - i32.const 13 - i32.add - local.get $3 - i64.const 10000000000000 - i64.ge_u - i32.add - end - else - local.get $3 - i64.const 100000000000000000 - i64.lt_u - if (result i32) - local.get $3 - i64.const 10000000000000000 - i64.ge_u - i32.const 16 - i32.add - else - local.get $3 - i64.const -8446744073709551616 - i64.ge_u - i32.const 18 - i32.add - local.get $3 - i64.const 1000000000000000000 - i64.ge_u - i32.add - end - end - local.tee $0 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - local.get $1 - local.get $3 - local.get $0 - call $~lib/util/number/utoa64_dec_lut - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - br $folding-inner1 - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 9584 - i32.store - local.get $1 - i32.const 9580 - i32.load - i32.const 1 - i32.shr_u - local.tee $1 - i32.const 20 - i32.add - local.get $6 - i32.mul - i32.const 20 - i32.add - local.tee $7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=4 - loop $for-loop|0 - local.get $4 - local.get $6 - i32.lt_s - if - local.get $5 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $4 - i32.const 3 - i32.shl - i32.add - i64.load - call $~lib/util/number/itoa_buffered - local.get $2 - i32.add - local.set $2 - local.get $1 - if - local.get $5 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 9584 - local.get $1 - i32.const 1 - i32.shl - memory.copy - local.get $1 - local.get $2 - i32.add - local.set $2 - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - local.get $7 - local.get $5 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $6 - i32.const 3 - i32.shl - i32.add - i64.load - call $~lib/util/number/itoa_buffered - local.get $2 - i32.add - local.tee $0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 local.get $0 - call $~lib/string/String#substring - local.set $1 - br $folding-inner1 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $3 + i32.add + local.get $7 + local.get $2 + local.get $0 + i32.const 3632 + i32.load + call_indirect (type $1) + i32.store8 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return end - 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 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $~lib/typedarray/Uint64Array#join (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 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 + local.get $1 + local.get $3 + i32.store + local.get $1 + local.get $3 + 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 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint8Array#__get i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 388 + 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 - call $~lib/builtins/abort - unreachable + call $~lib/typedarray/Uint8Array#__get + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 389 + 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/typedarray/Uint8Array#__get + i32.const 9 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 390 + 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 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $2 - local.get $1 - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store - local.get $2 - local.get $0 - call $~lib/util/string/joinIntegerArray - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/typedarray/Float32Array#join (param $0 i32) (result i32) + (func $"std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64>" + (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 i64) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -38031,26 +42961,46 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + 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 - local.set $6 - local.get $2 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $2 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3856 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -38058,149 +43008,150 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - block $__inlined_func$~lib/util/string/joinFloatArray$1393 - local.get $2 - i32.const 1 - i32.sub - local.tee $3 - i32.const 0 - i32.lt_s - if - local.get $0 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 7776 - local.set $0 - br $__inlined_func$~lib/util/string/joinFloatArray$1393 - end + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3856 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 3 + i32.shl + local.tee $7 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=16 + loop $for-loop|0 local.get $3 - i32.eqz + local.get $4 + i32.lt_s if + global.get $~lib/memory/__stack_pointer + i32.const 3856 + i32.store offset=20 local.get $6 - f32.load - f64.promote_f32 - call $~lib/util/number/dtoa - local.set $0 + local.get $3 + i32.const 3 + i32.shl + local.tee $8 + i32.add + i64.load + local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $0 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $8 i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinFloatArray$1393 - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 9584 - i32.store - local.get $0 - i32.const 9580 - i32.load - i32.const 1 - i32.shr_u - local.tee $2 - i32.const 28 - i32.add - local.get $3 - i32.mul - i32.const 28 - i32.add - local.tee $4 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - loop $for-loop|0 + local.get $9 local.get $3 - local.get $5 - i32.gt_s - if - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $6 - local.get $5 - i32.const 2 - i32.shl - i32.add - f32.load - f64.promote_f32 - call $~lib/util/number/dtoa_buffered - local.get $1 - i32.add - local.set $1 - local.get $2 - if - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 9584 - local.get $2 - i32.const 1 - i32.shl - memory.copy - local.get $1 - local.get $2 - i32.add - local.set $1 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $4 - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $6 - local.get $3 - i32.const 2 - i32.shl - i32.add - f32.load - f64.promote_f32 - call $~lib/util/number/dtoa_buffered - local.get $1 - i32.add - local.tee $1 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 - local.get $1 - call $~lib/string/String#substring - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 3856 + i32.load + call_indirect (type $27) + i64.store + local.get $3 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinFloatArray$1393 + local.set $3 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer end + local.get $1 + local.get $2 + i32.store + local.get $1 + local.get $2 + call $~lib/rt/itcms/__link + local.get $1 + local.get $2 + i32.store offset=4 + local.get $1 + local.get $7 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint64Array#__get + i64.const 1 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 388 + 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 + call $~lib/typedarray/Uint64Array#__get + i64.const 4 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 389 + 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/typedarray/Uint64Array#__get + i64.const 9 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 390 + 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 - local.get $0 return end i32.const 49120 @@ -38210,15 +43161,19 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/typedarray/Float64Array#join (param $0 i32) (result i32) + (func $"std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32>" + (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) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -38227,26 +43182,46 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + 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 - local.set $6 - local.get $2 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.set $2 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3792 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -38254,146 +43229,150 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - block $__inlined_func$~lib/util/string/joinFloatArray$1394 - local.get $2 - i32.const 1 - i32.sub - local.tee $3 - i32.const 0 - i32.lt_s - if - local.get $0 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 7776 - local.set $0 - br $__inlined_func$~lib/util/string/joinFloatArray$1394 - end + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3792 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 2 + i32.shl + local.tee $7 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=16 + loop $for-loop|0 local.get $3 - i32.eqz + local.get $4 + i32.lt_s if + global.get $~lib/memory/__stack_pointer + i32.const 3792 + i32.store offset=20 local.get $6 - f64.load - call $~lib/util/number/dtoa - local.set $0 + local.get $3 + i32.const 2 + i32.shl + local.tee $8 + i32.add + i32.load + local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $0 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $8 i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinFloatArray$1394 - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 9584 - i32.store - local.get $0 - i32.const 9580 - i32.load - i32.const 1 - i32.shr_u - local.tee $2 - i32.const 28 - i32.add - local.get $3 - i32.mul - i32.const 28 - i32.add - local.tee $4 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - loop $for-loop|0 + local.get $9 local.get $3 - local.get $5 - i32.gt_s - if - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $6 - local.get $5 - i32.const 3 - i32.shl - i32.add - f64.load - call $~lib/util/number/dtoa_buffered - local.get $1 - i32.add - local.set $1 - local.get $2 - if - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 9584 - local.get $2 - i32.const 1 - i32.shl - memory.copy - local.get $1 - local.get $2 - i32.add - local.set $1 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $4 - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $6 - local.get $3 - i32.const 3 - i32.shl - i32.add - f64.load - call $~lib/util/number/dtoa_buffered - local.get $1 - i32.add - local.tee $1 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer local.get $0 + i32.const 3792 + i32.load + call_indirect (type $1) i32.store - local.get $0 - local.get $1 - call $~lib/string/String#substring - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $3 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinFloatArray$1394 + local.set $3 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer end + local.get $1 + local.get $2 + i32.store + local.get $1 + local.get $2 + call $~lib/rt/itcms/__link + local.get $1 + local.get $2 + i32.store offset=4 + local.get $1 + local.get $7 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint32Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 388 + 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 + call $~lib/typedarray/Uint32Array#__get + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 389 + 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/typedarray/Uint32Array#__get + i32.const 9 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 390 + 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 - local.get $0 return end i32.const 49120 @@ -38403,11 +43382,19 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/typedarray/Uint8Array.wrap@varargs (param $0 i32) (param $1 i32) (result i32) + (func $"std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16>" + (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) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -38416,31 +43403,46 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 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 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 i32.store - block $2of2 - block $1of2 - block $0of2 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of2 $1of2 $2of2 $outOfRange - end - unreachable - end - i32.const 0 - local.set $1 - end - i32.const -1 - local.set $2 - end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 - i32.store - local.get $3 - i32.const 12 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + 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 3728 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -38448,97 +43450,150 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 i32.const 0 - i32.store offset=8 - local.get $3 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 - local.get $0 + global.get $~lib/memory/__stack_pointer + i32.const 3728 i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - local.tee $3 - local.get $1 - i32.lt_u - if - i32.const 1360 - i32.const 1632 - i32.const 1860 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 0 - i32.lt_s - if - local.get $2 - i32.const -1 - i32.eq - if (result i32) - local.get $3 - local.get $1 - i32.sub - else - i32.const 1056 - i32.const 1632 - i32.const 1869 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - local.set $2 - else - local.get $1 - local.get $2 - i32.add + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.shl + local.tee $7 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=16 + loop $for-loop|0 local.get $3 - i32.gt_s + local.get $4 + i32.lt_s if - i32.const 1056 - i32.const 1632 - i32.const 1874 - i32.const 7 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 3728 + i32.store offset=20 + local.get $6 + local.get $3 + i32.const 1 + i32.shl + local.tee $8 + i32.add + i32.load16_u + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $8 + i32.add + local.get $9 + local.get $3 + local.get $0 + i32.const 3728 + i32.load + call_indirect (type $1) + i32.store16 + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 end end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=8 - local.get $3 - local.get $0 + local.get $1 + local.get $2 i32.store - local.get $3 - local.get $0 - call $~lib/rt/itcms/__link - local.get $3 + local.get $1 local.get $2 - i32.store offset=8 - local.get $3 - local.get $0 + call $~lib/rt/itcms/__link local.get $1 - i32.add + local.get $2 i32.store offset=4 + local.get $1 + local.get $7 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint16Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 388 + 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 + call $~lib/typedarray/Uint16Array#__get i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 389 + 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/typedarray/Uint16Array#__get + i32.const 9 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 390 + 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 - local.get $3 return end i32.const 49120 @@ -38548,113 +43603,17 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/arraybuffer/ArrayBuffer#slice (param $0 i32) (param $1 i32) (param $2 i32) (result 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 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 - local.tee $3 - i64.const 0 - i64.store - local.get $3 - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - local.set $3 - local.get $1 - i32.const 0 - i32.lt_s - if (result i32) - local.get $1 - local.get $3 - i32.add - local.tee $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - else - local.get $1 - local.get $3 - local.get $1 - local.get $3 - i32.lt_s - select - end - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 0 - i32.lt_s - if (result i32) - local.get $2 - local.get $3 - i32.add - local.tee $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - else - local.get $2 - local.get $3 - local.get $2 - local.get $3 - i32.lt_s - select - end - local.get $1 - i32.sub - local.tee $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - local.tee $2 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=4 - local.get $3 - local.get $0 - local.get $1 - i32.add - local.get $2 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Int8Array,i8> + (func $"std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>" (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -38663,93 +43622,46 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.const 24 - memory.fill - local.get $1 - i32.const 10928 - i32.store - local.get $1 - i32.const 10928 - i32.store offset=4 - i32.const 10928 - call $~lib/array/Array#get:length - local.set $1 + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $1 - call $~lib/typedarray/Int8Array#constructor - local.tee $2 - i32.store offset=8 - loop $for-loop|0 - local.get $0 - local.get $1 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $2 - i32.store offset=4 - local.get $3 - i32.const 10928 - i32.store offset=12 - local.get $2 - local.get $0 - i32.const 10928 - local.get $0 - call $~lib/array/Array#__get - i32.extend8_s - call $~lib/typedarray/Int8Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int8Array#constructor local.tee $0 - local.get $2 - i32.store offset=12 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $2 - i32.load - local.tee $3 i32.store offset=4 local.get $0 - local.get $2 - i32.store offset=12 - local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.set $4 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 - local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.set $5 + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 local.get $0 - local.get $3 - local.get $4 - local.get $5 - local.get $2 - i32.load offset=8 - i32.add - call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $0 - i32.store offset=16 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - i32.const 1 - global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 3600 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -38758,125 +43670,165 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store + i32.const 24 + memory.fill global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 + i32.const 3600 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store - local.get $4 - i32.const 0 - i32.store offset=8 - local.get $4 - local.get $0 - i32.store - local.get $4 local.get $0 - i32.store offset=4 + i32.store offset=8 local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 + call $~lib/typedarray/Int8Array#get:length local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=8 - local.get $5 local.get $0 - i32.store - local.get $5 - local.get $0 - call $~lib/rt/itcms/__link - local.get $5 - local.get $4 i32.store offset=8 - local.get $5 local.get $0 - i32.store offset=4 + i32.load offset=4 + local.set $6 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 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $5 - i32.store offset=20 - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=16 + loop $for-loop|0 + local.get $2 + local.get $4 i32.lt_s if global.get $~lib/memory/__stack_pointer + i32.const 3600 + i32.store offset=20 local.get $2 - i32.store offset=4 - local.get $2 - local.get $0 - call $~lib/typedarray/Int8Array#__get - local.set $3 + local.get $6 + i32.add + i32.load8_s + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 local.get $0 - call $~lib/typedarray/Int8Array#__get + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $2 local.get $3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 730 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + i32.add + local.get $7 + local.get $2 local.get $0 + i32.const 3600 + i32.load + call_indirect (type $1) + i32.store8 + local.get $2 i32.const 1 i32.add - local.set $0 - br $for-loop|1 + local.set $2 + br $for-loop|0 end end + local.get $1 + local.get $3 + i32.store + local.get $1 + local.get $3 + 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 global.get $~lib/memory/__stack_pointer i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - return - end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint8ClampedArray,u8> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 388 + 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 + call $~lib/typedarray/Int8Array#__get + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 389 + 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/typedarray/Int8Array#__get + i32.const 9 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 390 + 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 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>" + (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 i64) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -38885,94 +43837,46 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.const 24 - memory.fill - local.get $1 - i32.const 10928 - i32.store - local.get $1 - i32.const 10928 - i32.store offset=4 - i32.const 10928 - call $~lib/array/Array#get:length - local.set $1 + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $1 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $2 - i32.store offset=8 - loop $for-loop|0 - local.get $0 - local.get $1 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $2 - i32.store offset=4 - local.get $3 - i32.const 10928 - i32.store offset=12 - local.get $2 - local.get $0 - i32.const 10928 - local.get $0 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int64Array#constructor local.tee $0 - local.get $2 - i32.store offset=12 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $2 - i32.load - local.tee $3 i32.store offset=4 local.get $0 - local.get $2 - i32.store offset=12 - local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.set $4 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 - local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.set $5 + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 local.get $0 - local.get $3 - local.get $4 - local.get $5 - local.get $2 - i32.load offset=8 - i32.add - call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $0 - i32.store offset=16 + i32.store offset=4 + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - i32.const 1 - global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 3824 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -38981,107 +43885,149 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store + i32.const 24 + memory.fill global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 + i32.const 3824 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store - local.get $4 - i32.const 0 - i32.store offset=8 - local.get $4 - local.get $0 - i32.store - local.get $4 local.get $0 - i32.store offset=4 + i32.store offset=8 local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 + call $~lib/typedarray/Int64Array#get:length local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=8 - local.get $5 - local.get $0 - i32.store - local.get $5 local.get $0 - call $~lib/rt/itcms/__link - local.get $5 - local.get $4 i32.store offset=8 - local.get $5 local.get $0 - i32.store offset=4 + i32.load offset=4 + local.set $6 global.get $~lib/memory/__stack_pointer i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=12 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $5 - i32.store offset=20 - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $1 + local.get $4 + i32.const 3 + i32.shl + local.tee $7 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=16 + loop $for-loop|0 + local.get $3 + local.get $4 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/typedarray/Uint8ClampedArray#__get - local.set $3 + i32.const 3824 + i32.store offset=20 + local.get $6 + local.get $3 + i32.const 3 + i32.shl + local.tee $8 + i32.add + i64.load + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 local.get $0 - call $~lib/typedarray/Uint8ClampedArray#__get + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $8 + i32.add + local.get $9 local.get $3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 730 - i32.const 5 - call $~lib/builtins/abort - unreachable - end local.get $0 + i32.const 3824 + i32.load + call_indirect (type $27) + i64.store + local.get $3 i32.const 1 i32.add - local.set $0 - br $for-loop|1 + local.set $3 + br $for-loop|0 end end + local.get $1 + local.get $2 + i32.store + local.get $1 + local.get $2 + call $~lib/rt/itcms/__link + local.get $1 + local.get $2 + i32.store offset=4 + local.get $1 + local.get $7 + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 24 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int64Array#__get + i64.const 1 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 388 + 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 + call $~lib/typedarray/Int64Array#__get + i64.const 4 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 389 + 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/typedarray/Int64Array#__get + i64.const 9 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 390 + 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 49120 @@ -39091,15 +44037,19 @@ call $~lib/builtins/abort unreachable ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Int16Array,i16> + (func $"std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32>" (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -39108,93 +44058,46 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.const 24 - memory.fill - local.get $1 - i32.const 10928 - i32.store - local.get $1 - i32.const 10928 - i32.store offset=4 - i32.const 10928 - call $~lib/array/Array#get:length - local.set $1 + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $1 - call $~lib/typedarray/Int16Array#constructor - local.tee $2 - i32.store offset=8 - loop $for-loop|0 - local.get $0 - local.get $1 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $2 - i32.store offset=4 - local.get $3 - i32.const 10928 - i32.store offset=12 - local.get $2 - local.get $0 - i32.const 10928 - local.get $0 - call $~lib/array/Array#__get - i32.extend16_s - call $~lib/typedarray/Int16Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int32Array#constructor local.tee $0 - local.get $2 - i32.store offset=12 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $2 - i32.load - local.tee $3 i32.store offset=4 local.get $0 - local.get $2 - i32.store offset=12 - local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.set $4 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 - local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.set $5 + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 local.get $0 - local.get $3 - local.get $4 - local.get $5 - local.get $2 - i32.load offset=8 - i32.add - call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $0 - i32.store offset=16 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - i32.const 1 - global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 3760 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -39203,117 +44106,149 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store + i32.const 24 + memory.fill global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 + i32.const 3760 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store - local.get $4 - i32.const 0 + local.get $0 i32.store offset=8 - local.get $4 local.get $0 - i32.store - local.get $4 + call $~lib/typedarray/Int32Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store offset=8 local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - local.tee $4 - i32.const 1 - i32.and - if - i32.const 1056 - i32.const 1632 - i32.const 1865 - i32.const 9 - call $~lib/builtins/abort - unreachable - end + i32.load offset=4 + local.set $6 global.get $~lib/memory/__stack_pointer i32.const 12 - i32.const 7 + i32.const 9 call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=8 - local.get $5 - local.get $0 - i32.store - local.get $5 - local.get $0 - call $~lib/rt/itcms/__link - local.get $5 - local.get $4 - i32.store offset=8 - local.get $5 - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + local.tee $1 + i32.store offset=12 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $5 - i32.store offset=20 - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.shl + local.tee $7 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=16 + loop $for-loop|0 + local.get $3 + local.get $4 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/typedarray/Int16Array#__get - local.set $3 + i32.const 3760 + i32.store offset=20 + local.get $6 + local.get $3 + i32.const 2 + i32.shl + local.tee $8 + i32.add + i32.load + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 local.get $0 - call $~lib/typedarray/Int16Array#__get + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $8 + i32.add + local.get $9 local.get $3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 730 - i32.const 5 - call $~lib/builtins/abort - unreachable - end local.get $0 + i32.const 3760 + i32.load + call_indirect (type $1) + i32.store + local.get $3 i32.const 1 i32.add - local.set $0 - br $for-loop|1 + local.set $3 + br $for-loop|0 end end + local.get $1 + local.get $2 + i32.store + local.get $1 + local.get $2 + call $~lib/rt/itcms/__link + local.get $1 + local.get $2 + i32.store offset=4 + local.get $1 + local.get $7 + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 24 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 388 + 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 + call $~lib/typedarray/Int32Array#__get + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 389 + 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/typedarray/Int32Array#__get + i32.const 9 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 390 + 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 49120 @@ -39323,15 +44258,19 @@ call $~lib/builtins/abort unreachable ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint16Array,u16> + (func $"std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16>" (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) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -39340,94 +44279,46 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.const 24 - memory.fill - local.get $1 - i32.const 10928 - i32.store - local.get $1 - i32.const 10928 - i32.store offset=4 - i32.const 10928 - call $~lib/array/Array#get:length - local.set $1 + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $1 - call $~lib/typedarray/Uint16Array#constructor - local.tee $2 - i32.store offset=8 - loop $for-loop|0 - local.get $0 - local.get $1 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $2 - i32.store offset=4 - local.get $3 - i32.const 10928 - i32.store offset=12 - local.get $2 - local.get $0 - i32.const 10928 - local.get $0 - call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor local.tee $0 - local.get $2 - i32.store offset=12 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $2 - i32.load - local.tee $3 i32.store offset=4 local.get $0 - local.get $2 - i32.store offset=12 - local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.set $4 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 - local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.set $5 + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 local.get $0 - local.get $3 - local.get $4 - local.get $5 - local.get $2 - i32.load offset=8 - i32.add - call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $0 - i32.store offset=16 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - i32.const 1 - global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 3696 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -39436,117 +44327,149 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store + i32.const 24 + memory.fill global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store - local.get $4 - i32.const 0 - i32.store offset=8 - local.get $4 - local.get $0 - i32.store - local.get $4 - local.get $0 + i32.const 3696 i32.store offset=4 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - local.tee $4 - i32.const 1 - i32.and - if - i32.const 1056 - i32.const 1632 - i32.const 1865 - i32.const 9 - call $~lib/builtins/abort - unreachable - end global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 8 - call $~lib/rt/itcms/__new - local.tee $5 + local.get $0 i32.store offset=8 - local.get $5 local.get $0 - i32.store - local.get $5 + call $~lib/typedarray/Int16Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $0 - call $~lib/rt/itcms/__link - local.get $5 - local.get $4 i32.store offset=8 - local.get $5 local.get $0 - i32.store offset=4 + i32.load offset=4 + local.set $6 global.get $~lib/memory/__stack_pointer i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=12 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $5 - i32.store offset=20 - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $1 + local.get $4 + i32.const 1 + i32.shl + local.tee $7 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=16 + loop $for-loop|0 + local.get $3 + local.get $4 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/typedarray/Uint16Array#__get - local.set $3 + i32.const 3696 + i32.store offset=20 + local.get $6 + local.get $3 + i32.const 1 + i32.shl + local.tee $8 + i32.add + i32.load16_s + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 local.get $0 - call $~lib/typedarray/Uint16Array#__get + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $8 + i32.add + local.get $9 local.get $3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 730 - i32.const 5 - call $~lib/builtins/abort - unreachable - end local.get $0 + i32.const 3696 + i32.load + call_indirect (type $1) + i32.store16 + local.get $3 i32.const 1 i32.add - local.set $0 - br $for-loop|1 + local.set $3 + br $for-loop|0 end end + local.get $1 + local.get $2 + i32.store + local.get $1 + local.get $2 + call $~lib/rt/itcms/__link + local.get $1 + local.get $2 + i32.store offset=4 + local.get $1 + local.get $7 + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 24 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int16Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 388 + 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 + call $~lib/typedarray/Int16Array#__get + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 389 + 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/typedarray/Int16Array#__get + i32.const 9 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 390 + 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 49120 @@ -39556,15 +44479,24 @@ call $~lib/builtins/abort unreachable ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Int32Array,i32> + (func $"std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>~anonymous|0" (param $0 f64) (param $1 i32) (param $2 i32) (result f64) + local.get $0 + local.get $0 + f64.mul + ) + (func $"std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>" (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 f64) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -39573,92 +44505,46 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.const 24 - memory.fill - local.get $1 - i32.const 10928 - i32.store - local.get $1 - i32.const 10928 - i32.store offset=4 - i32.const 10928 - call $~lib/array/Array#get:length - local.set $1 + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $1 - call $~lib/typedarray/Int32Array#constructor - local.tee $2 - i32.store offset=8 - loop $for-loop|0 - local.get $0 - local.get $1 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $2 - i32.store offset=4 - local.get $3 - i32.const 10928 - i32.store offset=12 - local.get $2 - local.get $0 - i32.const 10928 - local.get $0 - call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Float64Array#constructor local.tee $0 - local.get $2 - i32.store offset=12 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $2 - i32.load - local.tee $3 i32.store offset=4 local.get $0 - local.get $2 - i32.store offset=12 - local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.set $4 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 - local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.set $5 + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 local.get $0 - local.get $3 - local.get $4 - local.get $5 - local.get $2 - i32.load offset=8 - i32.add - call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $0 - i32.store offset=16 + i32.store offset=4 + local.get $0 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - i32.const 1 - global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 3920 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -39667,117 +44553,149 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store + i32.const 24 + memory.fill global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store - local.get $4 - i32.const 0 - i32.store offset=8 - local.get $4 - local.get $0 - i32.store - local.get $4 - local.get $0 + i32.const 3920 i32.store offset=4 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - local.tee $4 - i32.const 3 - i32.and - if - i32.const 1056 - i32.const 1632 - i32.const 1865 - i32.const 9 - call $~lib/builtins/abort - unreachable - end global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 9 - call $~lib/rt/itcms/__new - local.tee $5 + local.get $0 i32.store offset=8 - local.get $5 local.get $0 - i32.store - local.get $5 + call $~lib/typedarray/Int64Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $0 - call $~lib/rt/itcms/__link - local.get $5 - local.get $4 i32.store offset=8 - local.get $5 local.get $0 - i32.store offset=4 + i32.load offset=4 + local.set $6 global.get $~lib/memory/__stack_pointer i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 14 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=12 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $5 - i32.store offset=20 - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $1 + local.get $4 + i32.const 3 + i32.shl + local.tee $7 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=16 + loop $for-loop|0 + local.get $3 + local.get $4 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/typedarray/Int32Array#__get - local.set $3 + i32.const 3920 + i32.store offset=20 + local.get $6 + local.get $3 + i32.const 3 + i32.shl + local.tee $8 + i32.add + f64.load + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 local.get $0 - call $~lib/typedarray/Int32Array#__get + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $8 + i32.add + local.get $9 local.get $3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 730 - i32.const 5 - call $~lib/builtins/abort - unreachable - end local.get $0 + i32.const 3920 + i32.load + call_indirect (type $32) + f64.store + local.get $3 i32.const 1 i32.add - local.set $0 - br $for-loop|1 + local.set $3 + br $for-loop|0 end end + local.get $1 + local.get $2 + i32.store + local.get $1 + local.get $2 + call $~lib/rt/itcms/__link + local.get $1 + local.get $2 + i32.store offset=4 + local.get $1 + local.get $7 + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 24 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Float64Array#__get + f64.const 1 + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 388 + 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 + call $~lib/typedarray/Float64Array#__get + f64.const 4 + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 389 + 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/typedarray/Float64Array#__get + f64.const 9 + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 390 + 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 49120 @@ -39787,15 +44705,24 @@ call $~lib/builtins/abort unreachable ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint32Array,u32> + (func $"std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>~anonymous|0" (param $0 f32) (param $1 i32) (param $2 i32) (result f32) + local.get $0 + local.get $0 + f32.mul + ) + (func $"std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>" (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 f32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -39804,92 +44731,46 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.const 24 - memory.fill - local.get $1 - i32.const 10928 - i32.store - local.get $1 - i32.const 10928 - i32.store offset=4 - i32.const 10928 - call $~lib/array/Array#get:length - local.set $1 + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $1 - call $~lib/typedarray/Uint32Array#constructor - local.tee $2 - i32.store offset=8 - loop $for-loop|0 - local.get $0 - local.get $1 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $2 - i32.store offset=4 - local.get $3 - i32.const 10928 - i32.store offset=12 - local.get $2 - local.get $0 - i32.const 10928 - local.get $0 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Float32Array#constructor local.tee $0 - local.get $2 - i32.store offset=12 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $2 - i32.load - local.tee $3 i32.store offset=4 local.get $0 - local.get $2 - i32.store offset=12 - local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.set $4 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 - local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.set $5 + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 local.get $0 - local.get $3 - local.get $4 - local.get $5 - local.get $2 - i32.load offset=8 - i32.add - call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $0 - i32.store offset=16 + i32.store offset=4 + local.get $0 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - i32.const 1 - global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 3888 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -39898,348 +44779,147 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store + i32.const 24 + memory.fill global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store - local.get $4 - i32.const 0 - i32.store offset=8 - local.get $4 - local.get $0 - i32.store - local.get $4 - local.get $0 + i32.const 3888 i32.store offset=4 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - local.tee $4 - i32.const 3 - i32.and - if - i32.const 1056 - i32.const 1632 - i32.const 1865 - i32.const 9 - call $~lib/builtins/abort - unreachable - end global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 10 - call $~lib/rt/itcms/__new - local.tee $5 + local.get $0 i32.store offset=8 - local.get $5 local.get $0 - i32.store - local.get $5 + call $~lib/typedarray/Int32Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $0 - call $~lib/rt/itcms/__link - local.get $5 - local.get $4 i32.store offset=8 - local.get $5 local.get $0 - i32.store offset=4 + i32.load offset=4 + local.set $6 global.get $~lib/memory/__stack_pointer i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=12 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $5 - i32.store offset=20 - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.shl + local.tee $7 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=16 + loop $for-loop|0 + local.get $3 + local.get $4 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/typedarray/Uint32Array#__get - local.set $3 + i32.const 3888 + i32.store offset=20 + local.get $6 + local.get $3 + i32.const 2 + i32.shl + local.tee $8 + i32.add + f32.load + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 local.get $0 - call $~lib/typedarray/Uint32Array#__get + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $8 + i32.add + local.get $9 local.get $3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 730 - i32.const 5 - call $~lib/builtins/abort - unreachable - end local.get $0 + i32.const 3888 + i32.load + call_indirect (type $33) + f32.store + local.get $3 i32.const 1 i32.add - local.set $0 - br $for-loop|1 + local.set $3 + br $for-loop|0 end end + local.get $1 + local.get $2 + i32.store + local.get $1 + local.get $2 + call $~lib/rt/itcms/__link + local.get $1 + local.get $2 + i32.store offset=4 + local.get $1 + local.get $7 + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - return - end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Int64Array,i64> - (local $0 i32) - (local $1 i32) - (local $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 + local.get $1 + i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.const 24 - memory.fill - local.get $1 - i32.const 10928 - i32.store local.get $1 - i32.const 10928 i32.store offset=4 - i32.const 10928 - call $~lib/array/Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer local.get $1 - call $~lib/typedarray/Int64Array#constructor - local.tee $3 - i32.store offset=8 - loop $for-loop|0 - local.get $0 - local.get $1 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $3 - i32.store offset=4 - local.get $4 - i32.const 10928 - i32.store offset=12 - local.get $3 - local.get $0 - i32.const 10928 - local.get $0 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end + i32.const 0 + call $~lib/typedarray/Float32Array#__get + f32.const 1 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 388 + i32.const 3 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $3 - i32.store offset=12 - local.get $0 - local.get $3 - i32.load - local.tee $4 - i32.store offset=4 - local.get $0 - local.get $3 - i32.store offset=12 - local.get $3 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $3 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $0 - local.get $4 - local.get $5 - local.get $6 - local.get $3 - i32.load offset=8 - i32.add - call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 + local.get $1 i32.const 1 - global.set $~argumentsLength - global.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 - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $0 - i32.store - local.get $5 - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $5 - i64.const 0 - i64.store - local.get $5 - i32.const 0 - i32.store offset=8 - local.get $5 - local.get $0 - i32.store - local.get $5 - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - local.tee $5 - i32.const 7 - i32.and + call $~lib/typedarray/Float32Array#__get + f32.const 4 + f32.ne if - i32.const 1056 - i32.const 1632 - i32.const 1865 - i32.const 9 + i32.const 0 + i32.const 1568 + i32.const 389 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store offset=8 - local.get $6 - local.get $0 - i32.store - local.get $6 - local.get $0 - call $~lib/rt/itcms/__link - local.get $6 - local.get $5 - i32.store offset=8 - local.get $6 - local.get $0 + local.get $1 i32.store offset=4 - 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 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $6 - i32.store offset=20 - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $1 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/typedarray/Int64Array#__get - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $0 - call $~lib/typedarray/Int64Array#__get - local.get $2 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 730 - 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 + local.get $1 + i32.const 2 + call $~lib/typedarray/Float32Array#__get + f32.const 9 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 390 + i32.const 3 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer return @@ -40251,1222 +44931,546 @@ call $~lib/builtins/abort unreachable ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint64Array,u64> + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8ClampedArray,u8>" (local $0 i32) (local $1 i32) - (local $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.const 24 - memory.fill - local.get $1 - i32.const 10928 - i32.store - local.get $1 - i32.const 10928 - i32.store offset=4 - i32.const 10928 - call $~lib/array/Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - call $~lib/typedarray/Uint64Array#constructor - local.tee $3 - i32.store offset=8 - loop $for-loop|0 - local.get $0 - local.get $1 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $3 - i32.store offset=4 - local.get $4 - i32.const 10928 - i32.store offset=12 - local.get $3 - local.get $0 - i32.const 10928 - local.get $0 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__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.tee $0 - local.get $3 - i32.store offset=12 - local.get $0 - local.get $3 - i32.load - local.tee $4 - i32.store offset=4 - local.get $0 - local.get $3 - i32.store offset=12 - local.get $3 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $3 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $0 - local.get $4 - local.get $5 - local.get $6 - local.get $3 - i32.load offset=8 - i32.add - call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - global.set $~argumentsLength - global.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 - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $5 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 7728 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7728 + i32.store offset=4 + i32.const 7728 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $2 + i32.store offset=8 + loop $for-loop|0 local.get $0 - i32.store - local.get $5 - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 + local.get $1 i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $5 - i64.const 0 - i64.store - local.get $5 - i32.const 0 - i32.store offset=8 - local.get $5 - local.get $0 - i32.store - local.get $5 - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - local.tee $5 - i32.const 7 - i32.and if - i32.const 1056 - i32.const 1632 - i32.const 1865 - i32.const 9 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 12 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store offset=8 - local.get $6 - local.get $0 - i32.store - local.get $6 - local.get $0 - call $~lib/rt/itcms/__link - local.get $6 - local.get $5 - i32.store offset=8 - local.get $6 - local.get $0 - i32.store offset=4 - 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 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $6 - i32.store offset=20 - i32.const 0 - local.set $0 - loop $for-loop|1 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7728 + i32.store offset=12 + local.get $2 local.get $0 - local.get $1 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/typedarray/Uint64Array#__get - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $0 - call $~lib/typedarray/Uint64Array#__get - local.get $2 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 730 - 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 + i32.const 7728 + local.get $0 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - return end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Float32Array,f32> - (local $0 i32) - (local $1 i32) - (local $2 f32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.const 24 - memory.fill - local.get $1 - i32.const 10928 - i32.store - local.get $1 - i32.const 10928 - i32.store offset=4 - i32.const 10928 - call $~lib/array/Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - call $~lib/typedarray/Float32Array#constructor - local.tee $3 - i32.store offset=8 - loop $for-loop|0 - local.get $0 - local.get $1 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $3 - i32.store offset=4 - local.get $4 - i32.const 10928 - i32.store offset=12 - local.get $3 - local.get $0 - i32.const 10928 - local.get $0 - call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__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.tee $0 - local.get $3 - i32.store offset=12 - local.get $0 - local.get $3 - i32.load - local.tee $4 - i32.store offset=4 - local.get $0 - local.get $3 - i32.store offset=12 - local.get $3 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $3 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $0 - local.get $4 - local.get $5 - local.get $6 - local.get $3 - i32.load offset=8 - i32.add - call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - global.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 - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $0 - i32.store - local.get $5 - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $5 - i64.const 0 - i64.store - local.get $5 + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + if i32.const 0 - i32.store offset=8 - local.get $5 - local.get $0 - i32.store - local.get $5 - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - local.tee $5 + i32.const 1568 + i32.const 603 i32.const 3 - i32.and - if - i32.const 1056 - i32.const 1632 - i32.const 1865 - i32.const 9 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 13 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store offset=8 - local.get $6 - local.get $0 - i32.store - local.get $6 - local.get $0 - call $~lib/rt/itcms/__link - local.get $6 - local.get $5 - i32.store offset=8 - local.get $6 - local.get $0 - i32.store offset=4 - 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 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $6 - i32.store offset=20 - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $1 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/typedarray/Float32Array#__get - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $0 - call $~lib/typedarray/Float32Array#__get - local.get $2 - f32.ne - if - i32.const 0 - i32.const 1568 - i32.const 730 - 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 24 - i32.add - global.set $~lib/memory/__stack_pointer - return + call $~lib/builtins/abort + unreachable end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Float64Array,f64> - (local $0 i32) - (local $1 i32) - (local $2 f64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.const 24 - memory.fill - local.get $1 - i32.const 10928 - i32.store - local.get $1 - i32.const 10928 - i32.store offset=4 - i32.const 10928 - call $~lib/array/Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - call $~lib/typedarray/Float64Array#constructor - local.tee $3 - i32.store offset=8 - loop $for-loop|0 - local.get $0 - local.get $1 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $3 - i32.store offset=4 - local.get $4 - i32.const 10928 - i32.store offset=12 - local.get $3 - local.get $0 - i32.const 10928 - local.get $0 - call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__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.tee $0 - local.get $3 - i32.store offset=12 - local.get $0 - local.get $3 - i32.load - local.tee $4 - i32.store offset=4 - local.get $0 - local.get $3 - i32.store offset=12 - local.get $3 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $3 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $0 - local.get $4 - local.get $5 - local.get $6 - local.get $3 - i32.load offset=8 - i32.add - call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - global.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 - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $0 - i32.store - local.get $5 - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $5 - i64.const 0 - i64.store - local.get $5 - i32.const 0 - i32.store offset=8 - local.get $5 - local.get $0 - i32.store - local.get $5 - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - local.tee $5 - i32.const 7 - i32.and - if - i32.const 1056 - i32.const 1632 - i32.const 1865 - i32.const 9 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 14 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store offset=8 - local.get $6 - local.get $0 - i32.store - local.get $6 - local.get $0 - call $~lib/rt/itcms/__link - local.get $6 - local.get $5 - i32.store offset=8 - local.get $6 - local.get $0 - i32.store offset=4 - 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 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $6 - i32.store offset=20 + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.ne + if i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $1 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/typedarray/Float64Array#__get - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $0 - call $~lib/typedarray/Float64Array#__get - local.get $2 - f64.ne - if - i32.const 0 - i32.const 1568 - i32.const 730 - 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 24 - i32.add - global.set $~lib/memory/__stack_pointer - return + i32.const 1568 + i32.const 604 + i32.const 3 + call $~lib/builtins/abort + unreachable end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/typedarray/Int8Array#set<~lib/array/Array> (param $0 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 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + local.get $2 + i32.store offset=4 + local.get $2 + i32.const -1 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.ne if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 605 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 i32.const 0 - i32.store offset=8 - local.get $1 - local.get $0 - i32.store - local.get $1 - i32.const 11008 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 606 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 i32.store offset=4 - local.get $1 - i32.const 11008 - i32.store offset=8 - i32.const 11008 - call $~lib/array/Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.get $1 - i32.lt_s + local.get $2 + i32.const 3 + i32.const 2 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 3 + i32.ne if - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 + i32.const 0 + i32.const 1568 + i32.const 607 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $3 local.get $2 - i32.const 11008 - i32.store offset=8 - i32.const 11012 - i32.load - local.set $2 - i32.const 0 - local.set $0 - loop $for-loop|0 - local.get $0 - local.get $1 - i32.lt_s - if - local.get $0 - local.get $3 - i32.add - local.get $2 - local.get $0 - i32.const 2 - i32.shl - i32.add - i32.load - i32.store8 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end + i32.store offset=4 + local.get $2 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 608 + 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 $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $3 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.ne + if i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/array/Array#get:length - local.get $5 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 758 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - loop $for-loop|0 - local.get $2 - local.get $5 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store - local.get $3 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $4 - i32.const 0 - i32.store - local.get $4 - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.load offset=4 - i32.add - i32.load8_s - local.set $3 - local.get $4 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $4 - i32.const 0 - i32.store - local.get $4 - local.get $1 - i32.store - local.get $2 - local.get $1 - i32.load offset=4 - i32.add - i32.load8_s - local.set $6 - local.get $4 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $6 - i32.ne - if - global.get $~lib/memory/__stack_pointer - i32.const 11344 - i32.store - i32.const 11344 - i32.const 3 - local.get $2 - f64.convert_i32_s - local.get $3 - f64.convert_i32_s - local.get $6 - f64.convert_i32_s - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - i32.const 0 - i32.const 1568 - i32.const 764 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return + i32.const 1568 + i32.const 609 + i32.const 3 + call $~lib/builtins/abort + unreachable end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const 10 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.ne if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 610 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i32.const 0 - i32.store offset=8 - local.get $2 - local.get $0 - i32.store local.get $2 - local.get $1 i32.store offset=4 local.get $2 - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int64Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.get $3 - i32.const 6 - i32.add - i32.lt_s + i32.const 1 + i32.const -100 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 1 + i32.ne if - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 + i32.const 0 + i32.const 1568 + i32.const 611 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - i32.const 6 - i32.add - local.set $2 - local.get $4 - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $1 + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 i32.const 0 - local.set $0 - loop $for-loop|0 - local.get $0 - local.get $3 - i32.lt_s - if - local.get $0 - local.get $2 - i32.add - local.get $1 - local.get $0 - i32.const 3 - i32.shl - i32.add - i64.load - i64.store8 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $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 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + call $~lib/typedarray/Uint8Array#lastIndexOf@varargs if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 613 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store local.get $2 - i32.const 0 - i32.store offset=8 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength local.get $2 - local.get $0 - i32.store + i32.const 11 + call $~lib/typedarray/Uint8Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 614 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.get $2 - local.get $1 i32.store offset=4 + i32.const 1 + global.set $~argumentsLength local.get $2 - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int8Array#get:length - local.set $2 + i32.const -1 + call $~lib/typedarray/Uint8Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 615 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int8Array#get:length local.get $2 - i32.lt_s + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i32.const 3 + call $~lib/typedarray/Uint8Array#lastIndexOf@varargs + i32.const 3 + i32.ne if - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 + i32.const 0 + i32.const 1568 + i32.const 616 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $0 - local.get $3 - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.load offset=4 local.get $2 - memory.copy - local.get $3 - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + i32.store offset=4 + local.get $2 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint8Array#lastIndexOf + i32.const 3 + i32.ne if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 617 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store local.get $2 - i32.const 0 - i32.store offset=8 + i32.store offset=4 local.get $2 - local.get $0 - i32.store + i32.const 3 + i32.const 3 + call $~lib/typedarray/Uint8Array#lastIndexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 618 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.get $2 - local.get $1 i32.store offset=4 local.get $2 - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int16Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.get $3 - i32.const 4 - i32.add - i32.lt_s + i32.const 3 + i32.const 2 + call $~lib/typedarray/Uint8Array#lastIndexOf + i32.const -1 + i32.ne if - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 + i32.const 0 + i32.const 1568 + i32.const 619 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $0 - i32.store offset=8 + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const 100 + call $~lib/typedarray/Uint8Array#lastIndexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 620 + 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 -10 + call $~lib/typedarray/Uint8Array#lastIndexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 621 + 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 -11 + call $~lib/typedarray/Uint8Array#lastIndexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 622 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 9 + call $~lib/typedarray/Uint8ClampedArray#subarray + local.tee $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 626 + 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.load offset=4 i32.const 4 - i32.add - local.set $2 - local.get $4 - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $1 i32.const 0 - local.set $0 - loop $for-loop|0 - local.get $0 - local.get $3 - i32.lt_s - if - local.get $0 - local.get $2 - i32.add - local.get $1 - local.get $0 - i32.const 1 - i32.shl - i32.add - i32.load16_s - i32.store8 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end + call $~lib/typedarray/Uint8Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 627 + i32.const 3 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 5 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 628 + 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 9 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 629 + 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 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 630 + 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 11 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 631 + 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 5 + i32.const 1 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 632 + 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 5 + i32.const 2 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 633 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Int8Array#set<~lib/array/Array> (param $0 i32) + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8Array,u8>" + (local $0 i32) (local $1 i32) (local $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -41481,1311 +45485,526 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 i32.const 0 - i32.store offset=8 - local.get $1 - local.get $0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 7728 i32.store - local.get $1 - i32.const 11264 + global.get $~lib/memory/__stack_pointer + i32.const 7728 i32.store offset=4 - local.get $1 - i32.const 11264 - i32.store offset=8 - i32.const 11264 + i32.const 7728 call $~lib/array/Array#get:length local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int8Array#get:length local.get $1 - i32.const 7 - i32.add - i32.lt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + call $~lib/typedarray/Uint8Array#constructor local.tee $2 - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - i32.const 7 - i32.add - local.set $0 - local.get $2 - i32.const 11264 i32.store offset=8 - local.get $0 - i32.const 11268 - i32.load - local.get $1 - memory.copy - local.get $2 - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int8Array> - (local $0 i32) - (local $1 f32) - (local $2 f64) - (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 24 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.const 24 - memory.fill - local.get $3 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set + loop $for-loop|0 + local.get $0 + local.get $1 + i32.lt_s + if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=4 - local.get $3 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $7 + i32.const 7728 i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 + local.get $2 + local.get $0 + i32.const 7728 + local.get $0 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + local.get $0 i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 10 - call $~lib/typedarray/Int8Array#constructor - local.tee $4 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=20 - local.get $4 - call $~lib/typedarray/Int8Array#set<~lib/array/Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 10 - i32.const 0 - i32.const 16 - i32.const 11312 - call $~lib/rt/__newArray - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $4 - local.get $5 - call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $5 - i64.const 0 - i64.store - local.get $5 - i32.const 0 - i32.store offset=8 - local.get $5 - local.get $4 - i32.store - local.get $5 - i32.const 11088 - i32.store offset=4 - local.get $5 - i32.const 11088 - i32.store offset=8 - i32.const 11088 - call $~lib/array/Array#get:length - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - call $~lib/typedarray/Int8Array#get:length - local.get $8 - i32.const 3 - i32.add - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $9 - local.get $4 - i32.store offset=8 - local.get $4 - i32.load offset=4 - i32.const 3 - i32.add - local.set $5 - local.get $9 - i32.const 11088 - i32.store offset=8 - i32.const 11092 - i32.load - local.set $9 - loop $for-loop|0 - local.get $0 - local.get $8 - i32.lt_s - if - local.get $0 - local.get $5 - i32.add - local.get $9 - local.get $0 - i32.const 2 - i32.shl - i32.add - f32.load - local.tee $1 - i32.trunc_sat_f32_s - i32.const 0 - local.get $1 - local.get $1 - f32.sub - f32.const 0 - f32.eq - select - i32.store8 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - 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 - local.get $4 - i32.store offset=4 - i32.const 10 - i32.const 0 - i32.const 16 - i32.const 11392 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $4 - local.get $6 - call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 10 - i32.const 0 - i32.const 16 - i32.const 11424 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - local.get $4 - i32.store - local.get $0 - i32.const 11184 - i32.store offset=4 - local.get $0 - i32.const 11184 - i32.store offset=8 - i32.const 11184 - call $~lib/array/Array#get:length - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - call $~lib/typedarray/Int8Array#get:length - local.get $5 - i32.const 2 - i32.add - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $4 - i32.store offset=8 - local.get $4 - i32.load offset=4 - i32.const 2 - i32.add - local.set $6 - local.get $0 - i32.const 11184 - i32.store offset=8 - i32.const 11188 - i32.load - local.set $8 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $0 - local.get $5 - i32.lt_s - if - local.get $0 - local.get $6 - i32.add - local.get $8 - local.get $0 - i32.const 3 - i32.shl - i32.add - f64.load - local.tee $2 - i32.trunc_sat_f64_s - i32.const 0 - local.get $2 - local.get $2 - f64.sub - f64.const 0 - f64.eq - select - i32.store8 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|00 - 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 - local.get $4 - i32.store offset=4 - i32.const 10 - i32.const 0 - i32.const 16 - i32.const 11456 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=20 - local.get $4 - local.get $3 - call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=20 - local.get $4 - local.get $7 - call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11264 - i32.store offset=20 - local.get $4 - call $~lib/typedarray/Int8Array#set<~lib/array/Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 10 - i32.const 0 - i32.const 16 - i32.const 11488 - call $~lib/rt/__newArray local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - return + br $for-loop|0 end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 603 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/typedarray/Uint8Array#__uget (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 604 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + local.get $2 + i32.store offset=4 + local.get $2 + i32.const -1 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.ne if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 605 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 i32.const 0 - i32.store + call $~lib/typedarray/Uint8Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 606 + 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 $1 - local.get $0 - i32.load offset=4 - i32.add - i32.load8_u - local.set $0 + i32.store offset=4 local.get $2 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) + i32.const 3 + i32.const 2 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 607 + 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 3 + i32.const 3 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 608 + 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 3 i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 609 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const 10 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.ne if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 610 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const -100 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 611 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.set $4 + call $~lib/typedarray/Uint8Array#lastIndexOf@varargs + if + i32.const 0 + i32.const 1568 + i32.const 613 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/array/Array#get:length - local.get $4 + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i32.const 11 + call $~lib/typedarray/Uint8Array#lastIndexOf@varargs + i32.const -1 i32.ne if i32.const 0 i32.const 1568 - i32.const 758 + i32.const 614 i32.const 3 call $~lib/builtins/abort unreachable end - loop $for-loop|0 - local.get $2 - local.get $4 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $2 - call $~lib/typedarray/Uint8Array#__uget - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - local.get $2 - call $~lib/typedarray/Uint8Array#__uget - local.tee $3 - local.get $5 - i32.ne - if - global.get $~lib/memory/__stack_pointer - i32.const 11552 - i32.store - i32.const 11552 - i32.const 3 - local.get $2 - f64.convert_i32_s - local.get $5 - f64.convert_i32_u - local.get $3 - f64.convert_i32_u - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - i32.const 0 - i32.const 1568 - i32.const 764 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i32.const -1 + call $~lib/typedarray/Uint8Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 615 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i32.const 3 + call $~lib/typedarray/Uint8Array#lastIndexOf@varargs + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 616 + 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 3 i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8Array> - (local $0 i32) - (local $1 f32) - (local $2 f64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) + call $~lib/typedarray/Uint8Array#lastIndexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 617 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.const 24 - memory.fill - local.get $3 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 10 - call $~lib/typedarray/Uint8Array#constructor - local.tee $4 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=20 - local.get $4 - call $~lib/typedarray/Int8Array#set<~lib/array/Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 10 - i32.const 0 - i32.const 64 - i32.const 11520 - call $~lib/rt/__newArray - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $4 - local.get $5 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $5 - i64.const 0 - i64.store - local.get $5 - i32.const 0 - i32.store offset=8 - local.get $5 - local.get $4 - i32.store - local.get $5 - i32.const 11088 - i32.store offset=4 - local.get $5 - i32.const 11088 - i32.store offset=8 - i32.const 11088 - call $~lib/array/Array#get:length - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - call $~lib/typedarray/Int8Array#get:length - local.get $8 - i32.const 3 - i32.add - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $9 - local.get $4 - i32.store offset=8 - local.get $4 - i32.load offset=4 - i32.const 3 - i32.add - local.set $5 - local.get $9 - i32.const 11088 - i32.store offset=8 - i32.const 11092 - i32.load - local.set $9 - loop $for-loop|0 - local.get $0 - local.get $8 - i32.lt_s - if - local.get $0 - local.get $5 - i32.add - local.get $9 - local.get $0 - i32.const 2 - i32.shl - i32.add - f32.load - local.tee $1 - i32.trunc_sat_f32_u - i32.const 0 - local.get $1 - local.get $1 - f32.sub - f32.const 0 - f32.eq - select - i32.store8 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - 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 - local.get $4 - i32.store offset=4 - i32.const 10 - i32.const 0 - i32.const 64 - i32.const 11600 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $4 - local.get $6 - call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 10 - i32.const 0 - i32.const 64 - i32.const 11632 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - local.get $4 - i32.store - local.get $0 - i32.const 11184 - i32.store offset=4 - local.get $0 - i32.const 11184 - i32.store offset=8 - i32.const 11184 - call $~lib/array/Array#get:length - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - call $~lib/typedarray/Int8Array#get:length - local.get $5 - i32.const 2 - i32.add - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $4 - i32.store offset=8 - local.get $4 - i32.load offset=4 - i32.const 2 - i32.add - local.set $6 - local.get $0 - i32.const 11184 - i32.store offset=8 - i32.const 11188 - i32.load - local.set $8 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $0 - local.get $5 - i32.lt_s - if - local.get $0 - local.get $6 - i32.add - local.get $8 - local.get $0 - i32.const 3 - i32.shl - i32.add - f64.load - local.tee $2 - i32.trunc_sat_f64_u - i32.const 0 - local.get $2 - local.get $2 - f64.sub - f64.const 0 - f64.eq - select - i32.store8 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|00 - 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 - local.get $4 - i32.store offset=4 - i32.const 10 - i32.const 0 - i32.const 64 - i32.const 11664 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=20 - local.get $4 - local.get $3 - call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=20 - local.get $4 - local.get $7 - call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11264 - i32.store offset=20 - local.get $4 - call $~lib/typedarray/Int8Array#set<~lib/array/Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 10 - i32.const 0 - i32.const 64 - i32.const 11696 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Uint8Array#lastIndexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 618 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> (param $0 i32) (param $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 16320 - i32.lt_s + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 + i32.const 2 + call $~lib/typedarray/Uint8Array#lastIndexOf + i32.const -1 + i32.ne if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 619 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.set $4 + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const 100 + call $~lib/typedarray/Uint8Array#lastIndexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 620 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/array/Array#get:length - local.get $4 + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const -10 + call $~lib/typedarray/Uint8Array#lastIndexOf + i32.const 1 i32.ne if i32.const 0 i32.const 1568 - i32.const 758 + i32.const 621 i32.const 3 call $~lib/builtins/abort unreachable end - loop $for-loop|0 - local.get $2 - local.get $4 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $2 - call $~lib/typedarray/Uint8Array#__uget - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - local.get $2 - call $~lib/typedarray/Uint8Array#__uget - local.tee $3 - local.get $5 - i32.ne - if - global.get $~lib/memory/__stack_pointer - i32.const 11760 - i32.store - i32.const 11760 - i32.const 3 - local.get $2 - f64.convert_i32_s - local.get $5 - f64.convert_i32_u - local.get $3 - f64.convert_i32_u - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - i32.const 0 - i32.const 1568 - i32.const 764 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const -11 + call $~lib/typedarray/Uint8Array#lastIndexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 622 + 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 $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i64) - (local $4 i32) - (local $5 i32) + local.get $2 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer + local.get $2 + i32.const 9 + call $~lib/typedarray/Uint8Array#subarray + local.tee $0 + i32.store offset=16 global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.ne if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 626 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store - local.get $4 + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 i32.const 0 - i32.store offset=8 - local.get $4 + call $~lib/typedarray/Uint8Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 627 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - local.get $4 - local.get $1 i32.store offset=4 - local.get $4 - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int64Array#get:length - local.set $4 - local.get $2 + local.get $0 + i32.const 5 i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.get $2 - local.get $4 - i32.add - i32.lt_s + call $~lib/typedarray/Uint8Array#indexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 628 + 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 9 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.ne if - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 + i32.const 0 + i32.const 1568 + i32.const 629 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $0 - i32.store offset=8 - local.get $2 + i32.store offset=4 local.get $0 - i32.load offset=4 - i32.add - local.set $2 - local.get $5 - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $1 + i32.const 10 i32.const 0 - local.set $0 - loop $for-loop|0 - local.get $0 - local.get $4 - i32.lt_s - if - local.get $0 - local.get $2 - i32.add - local.get $1 - local.get $0 - i32.const 3 - i32.shl - i32.add - i64.load - local.tee $3 - i32.wrap_i64 - local.tee $5 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i64.extend_i32_s - i32.const 255 - local.get $5 - i32.sub - i32.const 31 - i32.shr_s - i64.extend_i32_s - local.get $3 - i64.or - i64.and - i64.store8 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 630 + i32.const 3 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 631 + 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 5 + i32.const 1 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 632 + 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 5 + i32.const 2 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 633 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint64Array,u64>" + (local $0 i32) + (local $1 i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -42800,93 +46019,41 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 i32.const 0 - i32.store offset=8 - local.get $3 - local.get $0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 7728 i32.store - local.get $3 - local.get $1 + global.get $~lib/memory/__stack_pointer + i32.const 7728 i32.store offset=4 - local.get $3 - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int16Array#get:length - local.set $3 - local.get $2 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.get $2 - local.get $3 - i32.add - i32.lt_s - end - if - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + i32.const 7728 + call $~lib/array/Array#get:length + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $0 - i32.store offset=8 - local.get $2 - local.get $0 - i32.load offset=4 - i32.add - local.set $2 - local.get $4 local.get $1 + call $~lib/typedarray/Uint64Array#constructor + local.tee $2 i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $1 - i32.const 0 - local.set $0 loop $for-loop|0 local.get $0 - local.get $3 + local.get $1 i32.lt_s if - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7728 + i32.store offset=12 local.get $2 - i32.add - i32.const 255 - local.get $1 local.get $0 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.tee $4 - i32.sub - i32.const 31 - i32.shr_s - local.get $4 - i32.or - local.get $4 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.and - i32.store8 + i32.const 7728 + local.get $0 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set local.get $0 i32.const 1 i32.add @@ -42895,1158 +46062,1014 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8ClampedArray> - (local $0 i32) - (local $1 f32) - (local $2 f64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 0 + i32.const 0 + call $~lib/typedarray/Uint64Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 603 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.const 24 - memory.fill - local.get $3 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $6 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 10 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $3 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 11 + i32.const 0 + call $~lib/typedarray/Uint64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 604 + 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 + i32.const 0 + call $~lib/typedarray/Uint64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 605 + 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 3 + i32.const 0 + call $~lib/typedarray/Uint64Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 606 + 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 3 + i32.const 2 + call $~lib/typedarray/Uint64Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 607 + 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 3 + i32.const 3 + call $~lib/typedarray/Uint64Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 608 + 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 3 + i32.const 4 + call $~lib/typedarray/Uint64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 609 + 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 + i32.const 10 + call $~lib/typedarray/Uint64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 610 + 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 + i32.const -100 + call $~lib/typedarray/Uint64Array#indexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 611 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i64.const 0 + call $~lib/typedarray/Uint64Array#lastIndexOf@varargs + if + i32.const 0 + i32.const 1568 + i32.const 613 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i64.const 11 + call $~lib/typedarray/Uint64Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 614 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i64.const -1 + call $~lib/typedarray/Uint64Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 615 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i64.const 3 + call $~lib/typedarray/Uint64Array#lastIndexOf@varargs + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 616 + 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 3 + i32.const 4 + call $~lib/typedarray/Uint64Array#lastIndexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 617 + 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 3 + i32.const 3 + call $~lib/typedarray/Uint64Array#lastIndexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 618 + 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 3 + i32.const 2 + call $~lib/typedarray/Uint64Array#lastIndexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 619 + 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 + i32.const 100 + call $~lib/typedarray/Uint64Array#lastIndexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 620 + 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 + i32.const -10 + call $~lib/typedarray/Uint64Array#lastIndexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 621 + 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 + i32.const -11 + call $~lib/typedarray/Uint64Array#lastIndexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 622 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 9 + call $~lib/typedarray/Uint64Array#subarray + local.tee $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const 3 + i32.const 0 + call $~lib/typedarray/Uint64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 626 + 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 4 + i32.const 0 + call $~lib/typedarray/Uint64Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 627 + 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 5 + i32.const 0 + call $~lib/typedarray/Uint64Array#indexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 628 + 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 9 + i32.const 0 + call $~lib/typedarray/Uint64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 629 + 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 10 + i32.const 0 + call $~lib/typedarray/Uint64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 630 + 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 11 + i32.const 0 + call $~lib/typedarray/Uint64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 631 + 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 5 + i32.const 1 + call $~lib/typedarray/Uint64Array#indexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 632 + 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 5 + i32.const 2 + call $~lib/typedarray/Uint64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 633 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint32Array,u32>" + (local $0 i32) + (local $1 i32) + (local $2 i32) + 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 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.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 7728 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7728 + i32.store offset=4 + i32.const 7728 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $~lib/typedarray/Uint32Array#constructor + local.tee $2 + i32.store offset=8 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.lt_s + if global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 + local.get $2 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store - local.get $4 - i32.const 0 - i32.store offset=8 - local.get $4 - local.get $3 - i32.store - local.get $4 - i32.const 11008 - i32.store offset=4 - local.get $4 - i32.const 11008 - i32.store offset=8 - i32.const 11008 - call $~lib/array/Array#get:length - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $~lib/typedarray/Int8Array#get:length - local.get $8 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $3 - i32.store offset=8 - local.get $3 - i32.load offset=4 - local.set $9 - local.get $4 - i32.const 11008 - i32.store offset=8 - i32.const 11012 - i32.load - local.set $10 - loop $for-loop|0 - local.get $0 - local.get $8 - i32.lt_s - if - local.get $0 - local.get $9 - i32.add - i32.const 255 - local.get $10 - local.get $0 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $4 - i32.sub - i32.const 31 - i32.shr_s - local.get $4 - i32.or - local.get $4 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.and - i32.store8 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - 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 - local.get $3 - i32.store offset=4 - i32.const 10 - i32.const 0 - i32.const 64 - i32.const 11728 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $3 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - local.get $3 - i32.store - local.get $0 - i32.const 11088 - i32.store offset=4 - local.get $0 - i32.const 11088 - i32.store offset=8 - i32.const 11088 - call $~lib/array/Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $~lib/typedarray/Int8Array#get:length - local.get $4 - i32.const 3 - i32.add - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $3 - i32.store offset=8 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.add - local.set $8 - local.get $0 - i32.const 11088 - i32.store offset=8 - i32.const 11092 - i32.load - local.set $9 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $0 - local.get $4 - i32.lt_s - if - local.get $0 - local.get $8 - i32.add - local.get $9 - local.get $0 - i32.const 2 - i32.shl - i32.add - f32.load - local.tee $1 - local.get $1 - f32.sub - f32.const 0 - f32.eq - if (result i32) - local.get $1 - f32.const 255 - f32.min - f32.const 0 - f32.max - i32.trunc_sat_f32_u - else - i32.const 0 - end - i32.store8 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|00 - 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 - local.get $3 - i32.store offset=4 - i32.const 10 - i32.const 0 - i32.const 64 - i32.const 11824 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $3 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $3 - local.get $5 - i32.const 6 - call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - i32.const 10 - i32.const 0 - i32.const 64 - i32.const 11856 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $3 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - local.get $3 - i32.store - local.get $0 - i32.const 11184 - i32.store offset=4 - local.get $0 - i32.const 11184 - i32.store offset=8 - i32.const 11184 - call $~lib/array/Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $~lib/typedarray/Int8Array#get:length - local.get $4 - i32.const 2 - i32.add - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $3 - i32.store offset=8 - local.get $3 - i32.load offset=4 - i32.const 2 - i32.add - local.set $5 - local.get $0 - i32.const 11184 - i32.store offset=8 - i32.const 11188 - i32.load - local.set $8 - i32.const 0 - local.set $0 - loop $for-loop|01 - local.get $0 - local.get $4 - i32.lt_s - if - local.get $0 - local.get $5 - i32.add - local.get $8 - local.get $0 - i32.const 3 - i32.shl - i32.add - f64.load - local.tee $2 - local.get $2 - f64.sub - f64.const 0 - f64.eq - if (result i32) - local.get $2 - f64.const 255 - f64.min - f64.const 0 - f64.max - i32.trunc_sat_f64_u - else - i32.const 0 - end - i32.store8 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|01 - 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 - local.get $3 - i32.store offset=4 - i32.const 10 - i32.const 0 - i32.const 64 - i32.const 11888 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $3 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $3 - local.get $6 - call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=20 - local.get $3 - local.get $7 - i32.const 4 - call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - local.get $3 - i32.store + i32.const 7728 + i32.store offset=12 + local.get $2 local.get $0 - i32.const 11264 - i32.store offset=4 + i32.const 7728 local.get $0 - i32.const 11264 - i32.store offset=8 - i32.const 11264 - call $~lib/array/Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $~lib/typedarray/Int8Array#get:length - local.get $4 - i32.const 7 - i32.add - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $3 - i32.store offset=8 - local.get $3 - i32.load offset=4 - i32.const 7 - i32.add - local.set $5 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set local.get $0 - i32.const 11264 - i32.store offset=8 - i32.const 11268 - i32.load - local.set $6 - i32.const 0 - local.set $0 - loop $for-loop|02 - local.get $0 - local.get $4 - i32.lt_s - if - local.get $0 - local.get $5 - i32.add - i32.const 255 - local.get $0 - local.get $6 - i32.add - i32.load8_s - local.tee $7 - i32.sub - i32.const 31 - i32.shr_s - local.get $7 - i32.or - local.get $7 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.and - i32.store8 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|02 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - i32.const 10 - i32.const 0 - i32.const 64 - i32.const 11920 - call $~lib/rt/__newArray local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $3 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - return + br $for-loop|0 end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Uint32Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 603 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/typedarray/Int16Array#set<~lib/array/Array> (param $0 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 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Uint32Array#indexOf + i32.const -1 + i32.ne if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 604 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 - local.get $0 - i32.store - local.get $1 - i32.const 11008 + local.get $2 i32.store offset=4 - local.get $1 - i32.const 11008 - i32.store offset=8 - i32.const 11008 - call $~lib/array/Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.get $1 - i32.lt_s + local.get $2 + i32.const -1 + i32.const 0 + call $~lib/typedarray/Uint32Array#indexOf + i32.const -1 + i32.ne if - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 + i32.const 0 + i32.const 1568 + i32.const 605 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $3 local.get $2 - i32.const 11008 - i32.store offset=8 - i32.const 11012 - i32.load - local.set $2 + i32.store offset=4 + local.get $2 + i32.const 3 i32.const 0 - local.set $0 - loop $for-loop|0 - local.get $0 - local.get $1 - i32.lt_s - if - local.get $3 - local.get $0 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $0 - i32.const 2 - i32.shl - i32.add - i32.load - i32.store16 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int16Array#__uget (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + call $~lib/typedarray/Uint32Array#indexOf + i32.const 3 + i32.ne if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 606 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store local.get $2 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $0 + i32.store offset=4 local.get $2 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> (param $0 i32) (param $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 16320 - i32.lt_s + i32.const 3 + i32.const 2 + call $~lib/typedarray/Uint32Array#indexOf + i32.const 3 + i32.ne if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 607 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $3 - 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 - i32.store - local.get $1 - call $~lib/array/Array#get:length - local.get $4 + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Uint32Array#indexOf + i32.const 3 i32.ne if i32.const 0 i32.const 1568 - i32.const 758 + i32.const 608 i32.const 3 call $~lib/builtins/abort unreachable end - loop $for-loop|0 - local.get $2 - local.get $4 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $2 - call $~lib/typedarray/Int16Array#__uget - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - local.get $2 - call $~lib/typedarray/Int16Array#__uget - local.tee $3 - local.get $5 - i32.ne - if - global.get $~lib/memory/__stack_pointer - i32.const 12000 - i32.store - i32.const 12000 - i32.const 3 - local.get $2 - f64.convert_i32_s - local.get $5 - f64.convert_i32_s - local.get $3 - f64.convert_i32_s - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - i32.const 0 - i32.const 1568 - i32.const 764 - i32.const 7 - call $~lib/builtins/abort - unreachable - 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 $2 + i32.store offset=4 + local.get $2 + i32.const 3 i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + call $~lib/typedarray/Uint32Array#indexOf + i32.const -1 + i32.ne if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 609 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store local.get $2 - i32.const 0 - i32.store offset=8 + i32.store offset=4 local.get $2 - local.get $0 - i32.store + i32.const 1 + i32.const 10 + call $~lib/typedarray/Uint32Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 610 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.get $2 - local.get $1 i32.store offset=4 local.get $2 - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int64Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.get $3 - i32.const 6 - i32.add - i32.lt_s + i32.const 1 + i32.const -100 + call $~lib/typedarray/Uint32Array#indexOf + i32.const 1 + i32.ne if - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 + i32.const 0 + i32.const 1568 + i32.const 611 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - i32.const 12 - i32.add - local.set $2 - local.get $4 - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $1 + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 i32.const 0 - local.set $0 - loop $for-loop|0 - local.get $0 - local.get $3 - i32.lt_s - if - local.get $2 - local.get $0 - i32.const 1 - i32.shl - i32.add - local.get $1 - local.get $0 - i32.const 3 - i32.shl - i32.add - i64.load - i64.store16 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + call $~lib/typedarray/Uint32Array#lastIndexOf@varargs if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 613 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i32.const 0 - i32.store offset=8 - local.get $2 - local.get $0 - i32.store local.get $2 - local.get $1 i32.store offset=4 + i32.const 1 + global.set $~argumentsLength local.get $2 - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int8Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.get $3 - i32.lt_s + i32.const 11 + call $~lib/typedarray/Uint32Array#lastIndexOf@varargs + i32.const -1 + i32.ne if - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 + i32.const 0 + i32.const 1568 + i32.const 614 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $2 - local.get $4 - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $1 - i32.const 0 - local.set $0 - loop $for-loop|0 - local.get $0 - local.get $3 - i32.lt_s - if - local.get $2 - local.get $0 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $1 - i32.add - i32.load8_u - i32.store16 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $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 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i32.const -1 + call $~lib/typedarray/Uint32Array#lastIndexOf@varargs + i32.const -1 + i32.ne if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 615 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i32.const 0 - i32.store offset=8 - local.get $2 - local.get $0 - i32.store local.get $2 - local.get $1 i32.store offset=4 + i32.const 1 + global.set $~argumentsLength local.get $2 - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int16Array#get:length - local.set $2 + i32.const 3 + call $~lib/typedarray/Uint32Array#lastIndexOf@varargs + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 616 + 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 3 + i32.const 4 + call $~lib/typedarray/Uint32Array#lastIndexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 617 + 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 3 + i32.const 3 + call $~lib/typedarray/Uint32Array#lastIndexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 618 + 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 3 + i32.const 2 + call $~lib/typedarray/Uint32Array#lastIndexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 619 + 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 100 + call $~lib/typedarray/Uint32Array#lastIndexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 620 + 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 -10 + call $~lib/typedarray/Uint32Array#lastIndexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 621 + 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 -11 + call $~lib/typedarray/Uint32Array#lastIndexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 622 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 9 + call $~lib/typedarray/Uint32Array#subarray + local.tee $0 + i32.store offset=16 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Uint32Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 626 + 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/typedarray/Int16Array#get:length - local.get $2 i32.const 4 - i32.add - i32.lt_s + i32.const 0 + call $~lib/typedarray/Uint32Array#indexOf if - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 + i32.const 0 + i32.const 1568 + i32.const 627 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 - i32.load offset=4 - i32.const 8 - i32.add - local.set $0 - local.get $3 - local.get $1 - i32.store offset=8 + i32.const 5 + i32.const 0 + call $~lib/typedarray/Uint32Array#indexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 628 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.load offset=4 - local.get $2 + i32.store offset=4 + local.get $0 + i32.const 9 + i32.const 0 + call $~lib/typedarray/Uint32Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 629 + 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 + i32.const 0 + call $~lib/typedarray/Uint32Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 630 + 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 11 + i32.const 0 + call $~lib/typedarray/Uint32Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 631 + 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 5 i32.const 1 - i32.shl - memory.copy - local.get $3 - i32.const 12 + call $~lib/typedarray/Uint32Array#indexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 632 + 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 5 + i32.const 2 + call $~lib/typedarray/Uint32Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 633 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Int16Array#set<~lib/array/Array> (param $0 i32) + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint16Array,u16>" + (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -44061,73 +47084,42 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 i32.const 0 - i32.store offset=8 - local.get $1 - local.get $0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 7728 i32.store - local.get $1 - i32.const 11264 + global.get $~lib/memory/__stack_pointer + i32.const 7728 i32.store offset=4 - local.get $1 - i32.const 11264 - i32.store offset=8 - i32.const 11264 + i32.const 7728 call $~lib/array/Array#get:length local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int16Array#get:length local.get $1 - i32.const 7 - i32.add - i32.lt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + call $~lib/typedarray/Uint16Array#constructor local.tee $2 - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - i32.const 14 - i32.add - local.set $3 - local.get $2 - i32.const 11264 i32.store offset=8 - i32.const 11268 - i32.load - local.set $2 - i32.const 0 - local.set $0 loop $for-loop|0 local.get $0 local.get $1 i32.lt_s if - local.get $3 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7728 + i32.store offset=12 + local.get $2 local.get $0 - i32.const 1 - i32.shl - i32.add + i32.const 7728 local.get $0 - local.get $2 - i32.add - i32.load8_s - i32.store16 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set local.get $0 i32.const 1 i32.add @@ -44136,1568 +47128,1016 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int16Array> - (local $0 i32) - (local $1 f32) - (local $2 f64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 603 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.const 24 - memory.fill - local.get $3 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 10 - call $~lib/typedarray/Int16Array#constructor - local.tee $4 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=20 - local.get $4 - call $~lib/typedarray/Int16Array#set<~lib/array/Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 10 - i32.const 1 - i32.const 65 - i32.const 11952 - call $~lib/rt/__newArray - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $4 - local.get $5 - call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $5 - i64.const 0 - i64.store - local.get $5 - i32.const 0 - i32.store offset=8 - local.get $5 - local.get $4 - i32.store - local.get $5 - i32.const 11088 - i32.store offset=4 - local.get $5 - i32.const 11088 - i32.store offset=8 - i32.const 11088 - call $~lib/array/Array#get:length - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - call $~lib/typedarray/Int16Array#get:length - local.get $8 - i32.const 3 - i32.add - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $9 - local.get $4 - i32.store offset=8 - local.get $4 - i32.load offset=4 - i32.const 6 - i32.add - local.set $5 - local.get $9 - i32.const 11088 - i32.store offset=8 - i32.const 11092 - i32.load - local.set $9 - loop $for-loop|0 - local.get $0 - local.get $8 - i32.lt_s - if - local.get $5 - local.get $0 - i32.const 1 - i32.shl - i32.add - local.get $9 - local.get $0 - i32.const 2 - i32.shl - i32.add - f32.load - local.tee $1 - i32.trunc_sat_f32_s - i32.const 0 - local.get $1 - local.get $1 - f32.sub - f32.const 0 - f32.eq - select - i32.store16 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - 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 - local.get $4 - i32.store offset=4 - i32.const 10 - i32.const 1 - i32.const 65 - i32.const 12048 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $4 - local.get $6 - call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 10 - i32.const 1 - i32.const 65 - i32.const 12096 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - local.get $4 - i32.store - local.get $0 - i32.const 11184 - i32.store offset=4 - local.get $0 - i32.const 11184 - i32.store offset=8 - i32.const 11184 - call $~lib/array/Array#get:length - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - call $~lib/typedarray/Int16Array#get:length - local.get $5 - i32.const 2 - i32.add - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $4 - i32.store offset=8 - local.get $4 - i32.load offset=4 - i32.const 4 - i32.add - local.set $6 - local.get $0 - i32.const 11184 - i32.store offset=8 - i32.const 11188 - i32.load - local.set $8 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $0 - local.get $5 - i32.lt_s - if - local.get $6 - local.get $0 - i32.const 1 - i32.shl - i32.add - local.get $8 - local.get $0 - i32.const 3 - i32.shl - i32.add - f64.load - local.tee $2 - i32.trunc_sat_f64_s - i32.const 0 - local.get $2 - local.get $2 - f64.sub - f64.const 0 - f64.eq - select - i32.store16 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|00 - 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 - local.get $4 - i32.store offset=4 - i32.const 10 - i32.const 1 - i32.const 65 - i32.const 12144 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=20 - local.get $4 - local.get $3 - call $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=20 - local.get $4 - local.get $7 - call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11264 - i32.store offset=20 - local.get $4 - call $~lib/typedarray/Int16Array#set<~lib/array/Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 10 - i32.const 1 - i32.const 65 - i32.const 12192 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 604 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/typedarray/Uint16Array#__uget (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + local.get $2 + i32.store offset=4 + local.get $2 + i32.const -1 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.ne if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 605 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 i32.const 0 - i32.store + call $~lib/typedarray/Uint16Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 606 + 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 $0 - i32.load offset=4 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $0 + i32.store offset=4 local.get $2 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) + i32.const 3 + i32.const 2 + call $~lib/typedarray/Uint16Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 607 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Uint16Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 608 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.ne if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 609 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.set $4 + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const 10 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 610 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/array/Array#get:length - local.get $4 + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const -100 + call $~lib/typedarray/Uint16Array#indexOf + i32.const 1 i32.ne if i32.const 0 i32.const 1568 - i32.const 758 + i32.const 611 i32.const 3 call $~lib/builtins/abort unreachable end - loop $for-loop|0 - local.get $2 - local.get $4 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $2 - call $~lib/typedarray/Uint16Array#__uget - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - local.get $2 - call $~lib/typedarray/Uint16Array#__uget - local.tee $3 - local.get $5 - i32.ne - if - global.get $~lib/memory/__stack_pointer - i32.const 12288 - i32.store - i32.const 12288 - i32.const 3 - local.get $2 - f64.convert_i32_s - local.get $5 - f64.convert_i32_u - local.get $3 - f64.convert_i32_u - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - i32.const 0 - i32.const 1568 - i32.const 764 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i32.const 0 + call $~lib/typedarray/Uint16Array#lastIndexOf@varargs + if + i32.const 0 + i32.const 1568 + i32.const 613 + i32.const 3 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i32.const 11 + call $~lib/typedarray/Uint16Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 614 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i32.const -1 + call $~lib/typedarray/Uint16Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 615 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i32.const 3 + call $~lib/typedarray/Uint16Array#lastIndexOf@varargs + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 616 + 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 3 + i32.const 4 + call $~lib/typedarray/Uint16Array#lastIndexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 617 + 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 3 + i32.const 3 + call $~lib/typedarray/Uint16Array#lastIndexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 618 + 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 3 + i32.const 2 + call $~lib/typedarray/Uint16Array#lastIndexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 619 + 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 100 + call $~lib/typedarray/Uint16Array#lastIndexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 620 + 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 -10 + call $~lib/typedarray/Uint16Array#lastIndexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 621 + 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 -11 + call $~lib/typedarray/Uint16Array#lastIndexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 622 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 9 + call $~lib/typedarray/Uint16Array#subarray + local.tee $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 626 + 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 4 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 627 + 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 5 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 628 + 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 9 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 629 + 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 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 630 + 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 11 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 631 + 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 5 + i32.const 1 + call $~lib/typedarray/Uint16Array#indexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 632 + 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 5 + i32.const 2 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 633 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint16Array> + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int8Array,i8>" (local $0 i32) - (local $1 f32) - (local $2 f64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) + (local $1 i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.const 24 - memory.fill - local.get $3 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set + 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.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 7728 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7728 + i32.store offset=4 + i32.const 7728 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $~lib/typedarray/Int8Array#constructor + local.tee $2 + i32.store offset=8 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.lt_s + if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=4 - local.get $3 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $7 + i32.const 7728 i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 10 - call $~lib/typedarray/Uint16Array#constructor - local.tee $4 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=20 - local.get $4 - call $~lib/typedarray/Int16Array#set<~lib/array/Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 10 + local.get $2 + local.get $0 + i32.const 7728 + local.get $0 + call $~lib/array/Array#__get + i32.extend8_s + call $~lib/typedarray/Int8Array#__set + local.get $0 i32.const 1 - i32.const 66 - i32.const 12240 - call $~lib/rt/__newArray - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $4 - local.get $5 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $5 - i64.const 0 - i64.store - local.get $5 - i32.const 0 - i32.store offset=8 - local.get $5 - local.get $4 - i32.store - local.get $5 - i32.const 11088 - i32.store offset=4 - local.get $5 - i32.const 11088 - i32.store offset=8 - i32.const 11088 - call $~lib/array/Array#get:length - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - call $~lib/typedarray/Int16Array#get:length - local.get $8 - i32.const 3 - i32.add - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $9 - local.get $4 - i32.store offset=8 - local.get $4 - i32.load offset=4 - i32.const 6 i32.add - local.set $5 - local.get $9 - i32.const 11088 - i32.store offset=8 - i32.const 11092 - i32.load - local.set $9 - loop $for-loop|0 - local.get $0 - local.get $8 - i32.lt_s - if - local.get $5 - local.get $0 - i32.const 1 - i32.shl - i32.add - local.get $9 - local.get $0 - i32.const 2 - i32.shl - i32.add - f32.load - local.tee $1 - i32.trunc_sat_f32_u - i32.const 0 - local.get $1 - local.get $1 - f32.sub - f32.const 0 - f32.eq - select - i32.store16 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - 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 - local.get $4 - i32.store offset=4 - i32.const 10 - i32.const 1 - i32.const 66 - i32.const 12336 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $4 - local.get $6 - call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 10 - i32.const 1 - i32.const 66 - i32.const 12384 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - local.get $4 - i32.store - local.get $0 - i32.const 11184 - i32.store offset=4 - local.get $0 - i32.const 11184 - i32.store offset=8 - i32.const 11184 - call $~lib/array/Array#get:length - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - call $~lib/typedarray/Int16Array#get:length - local.get $5 - i32.const 2 - i32.add - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $4 - i32.store offset=8 - local.get $4 - i32.load offset=4 - i32.const 4 - i32.add - local.set $6 - local.get $0 - i32.const 11184 - i32.store offset=8 - i32.const 11188 - i32.load - local.set $8 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $0 - local.get $5 - i32.lt_s - if - local.get $6 - local.get $0 - i32.const 1 - i32.shl - i32.add - local.get $8 - local.get $0 - i32.const 3 - i32.shl - i32.add - f64.load - local.tee $2 - i32.trunc_sat_f64_u - i32.const 0 - local.get $2 - local.get $2 - f64.sub - f64.const 0 - f64.eq - select - i32.store16 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|00 - 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 - local.get $4 - i32.store offset=4 - i32.const 10 - i32.const 1 - i32.const 66 - i32.const 12432 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=20 - local.get $4 - local.get $3 - call $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=20 - local.get $4 - local.get $7 - call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11264 - i32.store offset=20 - local.get $4 - call $~lib/typedarray/Int16Array#set<~lib/array/Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 10 - i32.const 1 - i32.const 66 - i32.const 12480 - call $~lib/rt/__newArray local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - return + br $for-loop|0 end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 603 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/typedarray/Int32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $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 global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.ne if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 604 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - i32.const 0 - i32.store offset=8 - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $1 + local.get $2 i32.store offset=4 - local.get $3 - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/array/Array#get:length - local.set $4 local.get $2 + i32.const -1 i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.get $2 - local.get $4 - i32.add - i32.lt_s + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 605 + 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 3 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 3 + i32.ne if - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 + i32.const 0 + i32.const 1568 + i32.const 606 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 i32.const 2 - i32.shl - i32.add - local.set $0 - local.get $3 - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.load offset=4 - local.get $4 - i32.const 2 - i32.shl - memory.copy - local.get $3 - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int32Array#__uget (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer + call $~lib/typedarray/Uint8Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 607 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 3 + i32.ne if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 608 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store local.get $2 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 + i32.store offset=4 local.get $2 + i32.const 3 i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 609 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const 10 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 610 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const -100 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 1 + i32.ne if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 611 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $4 + call $~lib/typedarray/Uint8Array#lastIndexOf@varargs + if + i32.const 0 + i32.const 1568 + i32.const 613 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/array/Array#get:length - local.get $4 + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i32.const 11 + call $~lib/typedarray/Uint8Array#lastIndexOf@varargs + i32.const -1 i32.ne if i32.const 0 i32.const 1568 - i32.const 758 + i32.const 614 i32.const 3 call $~lib/builtins/abort unreachable end - loop $for-loop|0 - local.get $2 - local.get $4 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $2 - call $~lib/typedarray/Int32Array#__uget - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - local.get $2 - call $~lib/typedarray/Int32Array#__uget - local.tee $3 - local.get $5 - i32.ne - if - global.get $~lib/memory/__stack_pointer - i32.const 12592 - i32.store - i32.const 12592 - i32.const 3 - local.get $2 - f64.convert_i32_s - local.get $5 - f64.convert_i32_s - local.get $3 - f64.convert_i32_s - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - i32.const 0 - i32.const 1568 - i32.const 764 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - 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/typedarray/Int32Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i32.const -1 + call $~lib/typedarray/Uint8Array#lastIndexOf@varargs + i32.const -1 + i32.ne if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 615 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store local.get $2 - i32.const 0 - i32.store offset=8 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength local.get $2 - local.get $0 - i32.store + i32.const 3 + call $~lib/typedarray/Uint8Array#lastIndexOf@varargs + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 616 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.get $2 - local.get $1 i32.store offset=4 local.get $2 - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int64Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.get $3 - i32.const 6 - i32.add - i32.lt_s + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint8Array#lastIndexOf + i32.const 3 + i32.ne if - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 + i32.const 0 + i32.const 1568 + i32.const 617 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - i32.const 24 - i32.add - local.set $2 - local.get $4 - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $1 - i32.const 0 - local.set $0 - loop $for-loop|0 - local.get $0 - local.get $3 - i32.lt_s - if - local.get $2 - local.get $0 - i32.const 2 - i32.shl - i32.add - local.get $1 - local.get $0 - i32.const 3 - i32.shl - i32.add - i64.load - i64.store32 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Uint8Array#lastIndexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 618 + 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/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 + i32.const 2 + call $~lib/typedarray/Uint8Array#lastIndexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 619 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const 100 + call $~lib/typedarray/Uint8Array#lastIndexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 620 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const -10 + call $~lib/typedarray/Uint8Array#lastIndexOf + i32.const 1 + i32.ne if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 621 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store local.get $2 - i32.const 0 - i32.store offset=8 + i32.store offset=4 local.get $2 - local.get $0 - i32.store + i32.const 1 + i32.const -11 + call $~lib/typedarray/Uint8Array#lastIndexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 622 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.get $2 - local.get $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $2 - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int8Array#get:length - local.set $3 + i32.const 4 + i32.const 9 + call $~lib/typedarray/Int8Array#subarray + local.tee $0 + i32.store offset=16 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.get $3 - i32.lt_s + i32.const 3 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.ne if - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 + i32.const 0 + i32.const 1568 + i32.const 626 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 - i32.load offset=4 - local.set $2 - local.get $4 - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $1 + i32.const 4 i32.const 0 - local.set $0 - loop $for-loop|0 - local.get $0 - local.get $3 - i32.lt_s - if - local.get $2 - local.get $0 - i32.const 2 - i32.shl - i32.add - local.get $0 - local.get $1 - i32.add - i32.load8_u - i32.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end + call $~lib/typedarray/Uint8Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 627 + 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/typedarray/Int32Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 5 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 628 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 9 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.ne if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 629 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 10 i32.const 0 - i32.store offset=8 - local.get $2 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 630 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - local.get $2 - local.get $1 i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int16Array#get:length - local.set $3 + local.get $0 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 631 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.get $3 - i32.const 4 - i32.add - i32.lt_s + i32.const 5 + i32.const 1 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 1 + i32.ne if - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 + i32.const 0 + i32.const 1568 + i32.const 632 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 - i32.load offset=4 - i32.const 16 - i32.add - local.set $2 - local.get $4 - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $1 - i32.const 0 - local.set $0 - loop $for-loop|0 - local.get $0 - local.get $3 - i32.lt_s - if - local.get $2 - local.get $0 - i32.const 2 - i32.shl - i32.add - local.get $1 - local.get $0 - i32.const 1 - i32.shl - i32.add - i32.load16_s - i32.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end + i32.const 5 + i32.const 2 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 633 + i32.const 3 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Int32Array#set<~lib/array/Array> (param $0 i32) + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int64Array,i64>" + (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -45712,579 +48152,525 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 i32.const 0 - i32.store offset=8 - local.get $1 - local.get $0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 7728 i32.store - local.get $1 - i32.const 11264 + global.get $~lib/memory/__stack_pointer + i32.const 7728 i32.store offset=4 - local.get $1 - i32.const 11264 - i32.store offset=8 - i32.const 11264 + i32.const 7728 call $~lib/array/Array#get:length local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int32Array#get:length local.get $1 - i32.const 7 - i32.add - i32.lt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + call $~lib/typedarray/Int64Array#constructor local.tee $2 - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - i32.const 28 - i32.add - local.set $3 - local.get $2 - i32.const 11264 i32.store offset=8 - i32.const 11268 - i32.load - local.set $2 - i32.const 0 - local.set $0 loop $for-loop|0 local.get $0 local.get $1 i32.lt_s if - local.get $3 - local.get $0 - i32.const 2 - i32.shl - i32.add - local.get $0 - local.get $2 - i32.add - i32.load8_s - i32.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int32Array> - (local $0 i32) - (local $1 f32) - (local $2 f64) - (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 24 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.const 24 - memory.fill - local.get $3 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=4 - local.get $3 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $8 + i32.const 7728 i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 10 - call $~lib/typedarray/Int32Array#constructor - local.tee $4 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=20 - local.get $4 - i32.const 11008 - i32.const 0 - call $~lib/typedarray/Int32Array#set<~lib/array/Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 10 - i32.const 2 - i32.const 17 - i32.const 12528 - call $~lib/rt/__newArray - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $4 - local.get $5 - call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $5 - i64.const 0 - i64.store - local.get $5 - i32.const 0 - i32.store offset=8 - local.get $5 - local.get $4 - i32.store - local.get $5 - i32.const 11088 - i32.store offset=4 - local.get $5 - i32.const 11088 - i32.store offset=8 - i32.const 11088 - call $~lib/array/Array#get:length - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - call $~lib/typedarray/Int32Array#get:length - local.get $5 - i32.const 3 - i32.add - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $6 - local.get $4 - i32.store offset=8 - local.get $4 - i32.load offset=4 - i32.const 12 - i32.add - local.set $9 - local.get $6 - i32.const 11088 - i32.store offset=8 - i32.const 11092 - i32.load - local.set $10 - loop $for-loop|0 - local.get $0 - local.get $5 - i32.lt_s - if - local.get $10 - local.get $0 - i32.const 2 - i32.shl - local.tee $6 - i32.add - f32.load - local.set $1 - local.get $6 - local.get $9 - i32.add - local.get $1 - i32.trunc_sat_f32_s - i32.const 0 - local.get $1 - local.get $1 - f32.sub - f32.const 0 - f32.eq - select - i32.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - 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 - local.get $4 - i32.store offset=4 - i32.const 10 - i32.const 2 - i32.const 17 - i32.const 12640 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=20 - local.get $4 - local.get $7 - call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int64Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 10 - i32.const 2 - i32.const 17 - i32.const 12704 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - local.get $4 - i32.store + local.get $2 local.get $0 - i32.const 11184 - i32.store offset=4 + i32.const 7728 local.get $0 - i32.const 11184 - i32.store offset=8 - i32.const 11184 - call $~lib/array/Array#get:length - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - call $~lib/typedarray/Int32Array#get:length - local.get $5 - i32.const 2 - i32.add - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $4 - i32.store offset=8 - local.get $4 - i32.load offset=4 - i32.const 8 - i32.add - local.set $6 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set local.get $0 - i32.const 11184 - i32.store offset=8 - i32.const 11188 - i32.load - local.set $7 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $0 - local.get $5 - i32.lt_s - if - local.get $6 - local.get $0 - i32.const 2 - i32.shl - i32.add - local.get $7 - local.get $0 - i32.const 3 - i32.shl - i32.add - f64.load - local.tee $2 - i32.trunc_sat_f64_s - i32.const 0 - local.get $2 - local.get $2 - f64.sub - f64.const 0 - f64.eq - select - i32.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|00 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 10 - i32.const 2 - i32.const 17 - i32.const 12768 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=20 - local.get $4 - local.get $3 - call $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=20 - local.get $4 - local.get $8 - call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11264 - i32.store offset=20 - local.get $4 - call $~lib/typedarray/Int32Array#set<~lib/array/Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 10 - i32.const 2 - i32.const 17 - i32.const 12832 - call $~lib/rt/__newArray local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - return + br $for-loop|0 end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 0 + i32.const 0 + call $~lib/typedarray/Int64Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 603 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/typedarray/Uint32Array#__uget (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 11 + i32.const 0 + call $~lib/typedarray/Int64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 604 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.get $2 + i32.store offset=4 + local.get $2 + i64.const -1 i32.const 0 - i32.store + call $~lib/typedarray/Int64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 605 + 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 $0 - i32.load offset=4 - local.get $1 + i32.store offset=4 + local.get $2 + i64.const 3 + i32.const 0 + call $~lib/typedarray/Int64Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 606 + 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 3 i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 + call $~lib/typedarray/Int64Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 607 + 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 3 + i32.const 3 + call $~lib/typedarray/Int64Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 608 + 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 3 + i32.const 4 + call $~lib/typedarray/Int64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 609 + 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 + i32.const 10 + call $~lib/typedarray/Int64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 610 + 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 + i32.const -100 + call $~lib/typedarray/Int64Array#indexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 611 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i64.const 0 + call $~lib/typedarray/Int64Array#lastIndexOf@varargs + if + i32.const 0 + i32.const 1568 + i32.const 613 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i64.const 11 + call $~lib/typedarray/Int64Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 614 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i64.const -1 + call $~lib/typedarray/Int64Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 615 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i64.const 3 + call $~lib/typedarray/Int64Array#lastIndexOf@varargs + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 616 + 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 3 i32.const 4 + call $~lib/typedarray/Int64Array#lastIndexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 617 + 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 3 + i32.const 3 + call $~lib/typedarray/Int64Array#lastIndexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 618 + 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 3 + i32.const 2 + call $~lib/typedarray/Int64Array#lastIndexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 619 + 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 + i32.const 100 + call $~lib/typedarray/Int64Array#lastIndexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 620 + 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 + i32.const -10 + call $~lib/typedarray/Int64Array#lastIndexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 621 + 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 + i32.const -11 + call $~lib/typedarray/Int64Array#lastIndexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 622 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 9 + call $~lib/typedarray/Int64Array#subarray + local.tee $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const 3 + i32.const 0 + call $~lib/typedarray/Int64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 626 + 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 4 + i32.const 0 + call $~lib/typedarray/Int64Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 627 + 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 5 + i32.const 0 + call $~lib/typedarray/Int64Array#indexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 628 + 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 9 + i32.const 0 + call $~lib/typedarray/Int64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 629 + 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 10 + i32.const 0 + call $~lib/typedarray/Int64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 630 + 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 11 + i32.const 0 + call $~lib/typedarray/Int64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 631 + 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 5 + i32.const 1 + call $~lib/typedarray/Int64Array#indexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 632 + 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 5 + i32.const 2 + call $~lib/typedarray/Int64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 633 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> (param $0 i32) (param $1 i32) + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int32Array,i32>" + (local $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 4 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -46299,3814 +48685,1058 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $4 + i32.const 20 + memory.fill global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 7728 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer + i32.const 7728 + i32.store offset=4 + i32.const 7728 call $~lib/array/Array#get:length - local.get $4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 758 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $~lib/typedarray/Int32Array#constructor + local.tee $2 + i32.store offset=8 loop $for-loop|0 - local.get $2 - local.get $4 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $2 - call $~lib/typedarray/Uint32Array#__uget - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - local.get $2 - call $~lib/typedarray/Uint32Array#__uget - local.tee $3 - local.get $5 - i32.ne - if - global.get $~lib/memory/__stack_pointer - i32.const 12960 - i32.store - i32.const 12960 - i32.const 3 - local.get $2 - f64.convert_i32_s - local.get $5 - f64.convert_i32_u - local.get $3 - f64.convert_i32_u - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - i32.const 0 - i32.const 1568 - i32.const 764 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - 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/typedarray/testTypedArraySet<~lib/typedarray/Uint32Array> - (local $0 i32) - (local $1 f32) - (local $2 f64) - (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 24 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.const 24 - memory.fill - local.get $3 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $8 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 10 - call $~lib/typedarray/Uint32Array#constructor - local.tee $4 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=20 - local.get $4 - i32.const 11008 - i32.const 0 - call $~lib/typedarray/Int32Array#set<~lib/array/Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 10 - i32.const 2 - i32.const 67 - i32.const 12896 - call $~lib/rt/__newArray - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $4 - local.get $5 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $5 - i64.const 0 - i64.store - local.get $5 - i32.const 0 - i32.store offset=8 - local.get $5 - local.get $4 - i32.store - local.get $5 - i32.const 11088 - i32.store offset=4 - local.get $5 - i32.const 11088 - i32.store offset=8 - i32.const 11088 - call $~lib/array/Array#get:length - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - call $~lib/typedarray/Int32Array#get:length - local.get $5 - i32.const 3 - i32.add - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $6 - local.get $4 - i32.store offset=8 - local.get $4 - i32.load offset=4 - i32.const 12 - i32.add - local.set $9 - local.get $6 - i32.const 11088 - i32.store offset=8 - i32.const 11092 - i32.load - local.set $10 - loop $for-loop|0 - local.get $0 - local.get $5 - i32.lt_s - if - local.get $10 - local.get $0 - i32.const 2 - i32.shl - local.tee $6 - i32.add - f32.load - local.set $1 - local.get $6 - local.get $9 - i32.add - local.get $1 - i32.trunc_sat_f32_u - i32.const 0 - local.get $1 - local.get $1 - f32.sub - f32.const 0 - f32.eq - select - i32.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - 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 - local.get $4 - i32.store offset=4 - i32.const 10 - i32.const 2 - i32.const 67 - i32.const 13008 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=20 - local.get $4 - local.get $7 - call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int64Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 10 - i32.const 2 - i32.const 67 - i32.const 13072 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - local.get $4 - i32.store - local.get $0 - i32.const 11184 - i32.store offset=4 - local.get $0 - i32.const 11184 - i32.store offset=8 - i32.const 11184 - call $~lib/array/Array#get:length - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - call $~lib/typedarray/Int32Array#get:length - local.get $5 - i32.const 2 - i32.add - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $4 - i32.store offset=8 - local.get $4 - i32.load offset=4 - i32.const 8 - i32.add - local.set $6 - local.get $0 - i32.const 11184 - i32.store offset=8 - i32.const 11188 - i32.load - local.set $7 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $0 - local.get $5 - i32.lt_s - if - local.get $6 - local.get $0 - i32.const 2 - i32.shl - i32.add - local.get $7 - local.get $0 - i32.const 3 - i32.shl - i32.add - f64.load - local.tee $2 - i32.trunc_sat_f64_u - i32.const 0 - local.get $2 - local.get $2 - f64.sub - f64.const 0 - f64.eq - select - i32.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|00 - 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 - local.get $4 - i32.store offset=4 - i32.const 10 - i32.const 2 - i32.const 67 - i32.const 13136 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=20 - local.get $4 - local.get $3 - call $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=20 - local.get $4 - local.get $8 - call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11264 - i32.store offset=20 - local.get $4 - call $~lib/typedarray/Int32Array#set<~lib/array/Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 10 - i32.const 2 - i32.const 67 - i32.const 13200 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/typedarray/Int64Array#set<~lib/array/Array> (param $0 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 - 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 - local.tee $1 - i64.const 0 - i64.store - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 - local.get $0 - i32.store - local.get $1 - i32.const 11008 - i32.store offset=4 - local.get $1 - i32.const 11008 - i32.store offset=8 - i32.const 11008 - call $~lib/array/Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.get $1 - i32.lt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $3 - local.get $2 - i32.const 11008 - i32.store offset=8 - i32.const 11012 - i32.load - local.set $2 - i32.const 0 - local.set $0 - loop $for-loop|0 - local.get $0 - local.get $1 - i32.lt_s - if - local.get $3 - local.get $0 - i32.const 3 - i32.shl - i32.add - local.get $2 - local.get $0 - i32.const 2 - i32.shl - i32.add - i64.load32_s - i64.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int64Array#__uget (param $0 i32) (param $1 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 - 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 - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $3 - local.get $2 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i64) - (local $4 i64) - (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 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 - local.tee $5 - i32.const 0 - i32.store - local.get $5 - local.get $0 - i32.store - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/array/Array#get:length - local.get $5 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 758 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - loop $for-loop|0 - local.get $2 - local.get $5 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $2 - call $~lib/typedarray/Int64Array#__uget - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - local.get $2 - call $~lib/typedarray/Int64Array#__uget - local.tee $4 - local.get $3 - i64.ne - if - global.get $~lib/memory/__stack_pointer - i32.const 13376 - i32.store - i32.const 13376 - i32.const 3 - local.get $2 - f64.convert_i32_s - local.get $3 - f64.convert_i64_s - local.get $4 - f64.convert_i64_s - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - i32.const 0 - i32.const 1568 - i32.const 764 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - 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/typedarray/Int64Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $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 - 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 - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i32.const 0 - i32.store offset=8 - local.get $2 - local.get $0 - i32.store - local.get $2 - local.get $1 - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int64Array#get:length - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.get $2 - i32.const 6 - i32.add - i32.lt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - i32.const 48 - i32.add - local.set $0 - local.get $3 - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.load offset=4 - local.get $2 - i32.const 3 - i32.shl - memory.copy - local.get $3 - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i32.const 0 - i32.store offset=8 - local.get $2 - local.get $0 - i32.store - local.get $2 - local.get $1 - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int8Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.get $3 - i32.lt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $2 - local.get $4 - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $1 - i32.const 0 - local.set $0 - loop $for-loop|0 - local.get $0 - local.get $3 - i32.lt_s - if - local.get $2 - local.get $0 - i32.const 3 - i32.shl - i32.add - local.get $0 - local.get $1 - i32.add - i64.load8_u - i64.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i32.const 0 - i32.store offset=8 - local.get $2 - local.get $0 - i32.store - local.get $2 - local.get $1 - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int16Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.get $3 - i32.const 4 - i32.add - i32.lt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - i32.const 32 - i32.add - local.set $2 - local.get $4 - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $1 - i32.const 0 - local.set $0 - loop $for-loop|0 - local.get $0 - local.get $3 - i32.lt_s - if - local.get $2 - local.get $0 - i32.const 3 - i32.shl - i32.add - local.get $1 - local.get $0 - i32.const 1 - i32.shl - i32.add - i64.load16_s - i64.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int64Array#set<~lib/array/Array> (param $0 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 - 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 - local.tee $1 - i64.const 0 - i64.store - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 - local.get $0 - i32.store - local.get $1 - i32.const 11264 - i32.store offset=4 - local.get $1 - i32.const 11264 - i32.store offset=8 - i32.const 11264 - call $~lib/array/Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.get $1 - i32.const 7 - i32.add - i32.lt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - i32.const 56 - i32.add - local.set $3 - local.get $2 - i32.const 11264 - i32.store offset=8 - i32.const 11268 - i32.load - local.set $2 - i32.const 0 - local.set $0 - loop $for-loop|0 - local.get $0 - local.get $1 - i32.lt_s - if - local.get $3 - local.get $0 - i32.const 3 - i32.shl - i32.add - local.get $0 - local.get $2 - i32.add - i64.load8_s - i64.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int64Array> - (local $0 i32) - (local $1 f64) - (local $2 f32) - (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 24 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.const 24 - memory.fill - local.get $3 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 10 - call $~lib/typedarray/Int64Array#constructor - local.tee $4 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=20 - local.get $4 - call $~lib/typedarray/Int64Array#set<~lib/array/Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 10 - i32.const 3 - i32.const 68 - i32.const 13264 - call $~lib/rt/__newArray - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=20 - local.get $4 - local.get $7 - call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $7 - i64.const 0 - i64.store - local.get $7 - i32.const 0 - i32.store offset=8 - local.get $7 - local.get $4 - i32.store - local.get $7 - i32.const 11088 - i32.store offset=4 - local.get $7 - i32.const 11088 - i32.store offset=8 - i32.const 11088 - call $~lib/array/Array#get:length - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - call $~lib/typedarray/Int64Array#get:length - local.get $7 - i32.const 3 - i32.add - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $8 - local.get $4 - i32.store offset=8 - local.get $4 - i32.load offset=4 - i32.const 24 - i32.add - local.set $9 - local.get $8 - i32.const 11088 - i32.store offset=8 - i32.const 11092 - i32.load - local.set $8 - loop $for-loop|0 - local.get $0 - local.get $7 - i32.lt_s - if - local.get $9 - local.get $0 - i32.const 3 - i32.shl - i32.add - local.get $8 - local.get $0 - i32.const 2 - i32.shl - i32.add - f32.load - local.tee $2 - i64.trunc_sat_f32_s - i64.const 0 - local.get $2 - local.get $2 - f32.sub - f32.const 0 - f32.eq - select - i64.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - 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 - local.get $4 - i32.store offset=4 - i32.const 10 - i32.const 3 - i32.const 68 - i32.const 13424 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $4 - local.get $5 - call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 10 - i32.const 3 - i32.const 68 - i32.const 13536 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - local.get $4 - i32.store - local.get $0 - i32.const 11184 - i32.store offset=4 - local.get $0 - i32.const 11184 - i32.store offset=8 - i32.const 11184 - call $~lib/array/Array#get:length - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - call $~lib/typedarray/Int64Array#get:length - local.get $5 - i32.const 2 - i32.add - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $4 - i32.store offset=8 - local.get $4 - i32.load offset=4 - i32.const 16 - i32.add - local.set $7 - local.get $0 - i32.const 11184 - i32.store offset=8 - i32.const 11188 - i32.load - local.set $8 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $0 - local.get $5 - i32.lt_s - if - local.get $8 - local.get $0 - i32.const 3 - i32.shl - local.tee $9 - i32.add - f64.load - local.set $1 - local.get $7 - local.get $9 - i32.add - local.get $1 - i64.trunc_sat_f64_s - i64.const 0 - local.get $1 - local.get $1 - f64.sub - f64.const 0 - f64.eq - select - i64.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|00 - 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 - local.get $4 - i32.store offset=4 - i32.const 10 - i32.const 3 - i32.const 68 - i32.const 13648 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=20 - local.get $4 - local.get $3 - call $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $4 - local.get $6 - call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11264 - i32.store offset=20 - local.get $4 - call $~lib/typedarray/Int64Array#set<~lib/array/Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 10 - i32.const 3 - i32.const 68 - i32.const 13760 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/typedarray/Uint64Array#__uget (param $0 i32) (param $1 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 - 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 - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $3 - local.get $2 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i64) - (local $4 i64) - (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 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 - local.tee $5 - i32.const 0 - i32.store - local.get $5 - local.get $0 - i32.store - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/array/Array#get:length - local.get $5 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 758 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - loop $for-loop|0 - local.get $2 - local.get $5 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $2 - call $~lib/typedarray/Uint64Array#__uget - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - local.get $2 - call $~lib/typedarray/Uint64Array#__uget - local.tee $4 - local.get $3 - i64.ne - if - global.get $~lib/memory/__stack_pointer - i32.const 13984 - i32.store - i32.const 13984 - i32.const 3 - local.get $2 - f64.convert_i32_s - local.get $3 - f64.convert_i64_u - local.get $4 - f64.convert_i64_u - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - i32.const 0 - i32.const 1568 - i32.const 764 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - 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/typedarray/testTypedArraySet<~lib/typedarray/Uint64Array> - (local $0 i32) - (local $1 f64) - (local $2 f32) - (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 24 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.const 24 - memory.fill - local.get $3 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 10 - call $~lib/typedarray/Uint64Array#constructor - local.tee $4 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=20 - local.get $4 - call $~lib/typedarray/Int64Array#set<~lib/array/Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 10 - i32.const 3 - i32.const 69 - i32.const 13872 - call $~lib/rt/__newArray - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=20 - local.get $4 - local.get $7 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $7 - i64.const 0 - i64.store - local.get $7 - i32.const 0 - i32.store offset=8 - local.get $7 - local.get $4 - i32.store - local.get $7 - i32.const 11088 - i32.store offset=4 - local.get $7 - i32.const 11088 - i32.store offset=8 - i32.const 11088 - call $~lib/array/Array#get:length - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - call $~lib/typedarray/Int64Array#get:length - local.get $7 - i32.const 3 - i32.add - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $8 - local.get $4 - i32.store offset=8 - local.get $4 - i32.load offset=4 - i32.const 24 - i32.add - local.set $9 - local.get $8 - i32.const 11088 - i32.store offset=8 - i32.const 11092 - i32.load - local.set $8 - loop $for-loop|0 - local.get $0 - local.get $7 - i32.lt_s - if - local.get $9 - local.get $0 - i32.const 3 - i32.shl - i32.add - local.get $8 - local.get $0 - i32.const 2 - i32.shl - i32.add - f32.load - local.tee $2 - i64.trunc_sat_f32_u - i64.const 0 - local.get $2 - local.get $2 - f32.sub - f32.const 0 - f32.eq - select - i64.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - 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 - local.get $4 - i32.store offset=4 - i32.const 10 - i32.const 3 - i32.const 69 - i32.const 14032 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $4 - local.get $5 - call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 10 - i32.const 3 - i32.const 69 - i32.const 14144 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - local.get $4 - i32.store - local.get $0 - i32.const 11184 - i32.store offset=4 - local.get $0 - i32.const 11184 - i32.store offset=8 - i32.const 11184 - call $~lib/array/Array#get:length - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - call $~lib/typedarray/Int64Array#get:length - local.get $5 - i32.const 2 - i32.add - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $4 - i32.store offset=8 - local.get $4 - i32.load offset=4 - i32.const 16 - i32.add - local.set $7 - local.get $0 - i32.const 11184 - i32.store offset=8 - i32.const 11188 - i32.load - local.set $8 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $0 - local.get $5 - i32.lt_s - if - local.get $8 - local.get $0 - i32.const 3 - i32.shl - local.tee $9 - i32.add - f64.load - local.set $1 - local.get $7 - local.get $9 - i32.add - local.get $1 - i64.trunc_sat_f64_u - i64.const 0 - local.get $1 - local.get $1 - f64.sub - f64.const 0 - f64.eq - select - i64.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|00 - 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 - local.get $4 - i32.store offset=4 - i32.const 10 - i32.const 3 - i32.const 69 - i32.const 14256 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=20 - local.get $4 - local.get $3 - call $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $4 - local.get $6 - call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11264 - i32.store offset=20 - local.get $4 - call $~lib/typedarray/Int64Array#set<~lib/array/Array> - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 10 - i32.const 3 - i32.const 69 - i32.const 14368 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/typedarray/Float32Array#__uget (param $0 i32) (param $1 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 - 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 - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $3 - local.get $2 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 f32) - (local $4 f32) - (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 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 - local.tee $5 - i32.const 0 - i32.store - local.get $5 - local.get $0 - i32.store - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/array/Array#get:length - local.get $5 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 758 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - loop $for-loop|0 - local.get $2 - local.get $5 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $2 - call $~lib/typedarray/Float32Array#__uget - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - local.get $2 - call $~lib/typedarray/Float32Array#__uget - local.tee $4 - local.get $3 - f32.ne - if - global.get $~lib/memory/__stack_pointer - i32.const 14544 - i32.store - i32.const 14544 - i32.const 3 - local.get $2 - f64.convert_i32_s - local.get $3 - f64.promote_f32 - local.get $4 - f64.promote_f32 - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - i32.const 0 - i32.const 1568 - i32.const 764 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - 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/typedarray/testTypedArraySet<~lib/typedarray/Float32Array> - (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 24 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.const 24 - memory.fill - local.get $1 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $2 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 10 - call $~lib/typedarray/Float32Array#constructor - local.tee $3 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store - local.get $4 - i32.const 0 - i32.store offset=8 - local.get $4 - local.get $3 - i32.store - local.get $4 - i32.const 11008 - i32.store offset=4 - local.get $4 - i32.const 11008 - i32.store offset=8 - i32.const 11008 - call $~lib/array/Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $~lib/typedarray/Int32Array#get:length - local.get $4 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $3 - i32.store offset=8 - local.get $3 - i32.load offset=4 - local.set $7 - local.get $5 - i32.const 11008 - i32.store offset=8 - i32.const 11012 - i32.load - local.set $8 - loop $for-loop|0 - local.get $0 - local.get $4 - i32.lt_s - if - local.get $7 - local.get $0 - i32.const 2 - i32.shl - local.tee $5 - i32.add - local.get $5 - local.get $8 - i32.add - i32.load - f32.convert_i32_s - f32.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - 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 - local.get $3 - i32.store offset=4 - i32.const 10 - i32.const 2 - i32.const 62 - i32.const 14480 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $3 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=20 - local.get $3 - i32.const 11088 - i32.const 3 - call $~lib/typedarray/Int32Array#set<~lib/array/Array> - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - i32.const 10 - i32.const 2 - i32.const 62 - i32.const 14592 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $3 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - local.get $3 - i32.store - local.get $0 - local.get $6 - i32.store offset=4 - local.get $0 - local.get $6 - i32.store offset=8 - local.get $6 - call $~lib/typedarray/Int64Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $~lib/typedarray/Int32Array#get:length - local.get $4 - i32.const 6 - i32.add - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $3 - i32.store offset=8 - local.get $3 - i32.load offset=4 - i32.const 24 - i32.add - local.set $5 - local.get $0 - local.get $6 - i32.store offset=8 - local.get $6 - i32.load offset=4 - local.set $6 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $0 - local.get $4 - i32.lt_s - if - local.get $5 - local.get $0 - i32.const 2 - i32.shl - i32.add - local.get $6 - local.get $0 - i32.const 3 - i32.shl - i32.add - i64.load - f32.convert_i64_s - f32.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|00 - 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 - local.get $3 - i32.store offset=4 - i32.const 10 - i32.const 2 - i32.const 62 - i32.const 14656 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $3 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - local.get $3 - i32.store - local.get $0 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int8Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $~lib/typedarray/Int32Array#get:length - local.get $4 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $3 - i32.store offset=8 - local.get $3 - i32.load offset=4 - local.set $5 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $1 - i32.const 0 - local.set $0 - loop $for-loop|01 - local.get $0 - local.get $4 - i32.lt_s - if - local.get $5 - local.get $0 - i32.const 2 - i32.shl - i32.add - local.get $0 - local.get $1 - i32.add - i32.load8_u - f32.convert_i32_u - f32.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|01 - 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 - local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - local.get $3 - i32.store - local.get $0 - local.get $2 - i32.store offset=4 - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - call $~lib/typedarray/Int16Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $~lib/typedarray/Int32Array#get:length - local.get $1 - i32.const 4 - i32.add - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $3 - i32.store offset=8 - local.get $3 - i32.load offset=4 - i32.const 16 - i32.add - local.set $4 - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - i32.load offset=4 - local.set $2 - i32.const 0 - local.set $0 - loop $for-loop|02 - local.get $0 - local.get $1 - i32.lt_s - if - local.get $4 - local.get $0 - i32.const 2 - i32.shl - i32.add - local.get $2 - local.get $0 - i32.const 1 - i32.shl - i32.add - i32.load16_s - f32.convert_i32_s - f32.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|02 - 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 - local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - local.get $3 - i32.store - local.get $0 - i32.const 11264 - i32.store offset=4 - local.get $0 - i32.const 11264 - i32.store offset=8 - i32.const 11264 - call $~lib/array/Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $~lib/typedarray/Int32Array#get:length - local.get $1 - i32.const 7 - i32.add - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $3 - i32.store offset=8 - local.get $3 - i32.load offset=4 - i32.const 28 - i32.add - local.set $2 - local.get $0 - i32.const 11264 - i32.store offset=8 - i32.const 11268 - i32.load - local.set $4 - i32.const 0 - local.set $0 - loop $for-loop|03 - local.get $0 - local.get $1 - i32.lt_s - if - local.get $2 - local.get $0 - i32.const 2 - i32.shl - i32.add - local.get $0 - local.get $4 - i32.add - i32.load8_s - f32.convert_i32_s - f32.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|03 - 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 - local.get $3 - i32.store offset=4 - i32.const 10 - i32.const 2 - i32.const 62 - i32.const 14720 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $3 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/typedarray/Float64Array#__uget (param $0 i32) (param $1 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 - 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 - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $3 - local.get $2 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 f64) - (local $4 f64) - (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 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 - local.tee $5 - i32.const 0 - i32.store - local.get $5 - local.get $0 - i32.store - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/array/Array#get:length - local.get $5 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 758 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - loop $for-loop|0 - local.get $2 - local.get $5 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $2 - call $~lib/typedarray/Float64Array#__uget - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - local.get $2 - call $~lib/typedarray/Float64Array#__uget - local.tee $4 - local.get $3 - f64.ne - if - global.get $~lib/memory/__stack_pointer - i32.const 14896 - i32.store - i32.const 14896 - i32.const 3 - local.get $2 - f64.convert_i32_s - local.get $3 - local.get $4 - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - i32.const 0 - i32.const 1568 - i32.const 764 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - 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/typedarray/testTypedArraySet<~lib/typedarray/Float64Array> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.const 24 - memory.fill - local.get $1 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 10 - call $~lib/typedarray/Float64Array#constructor - local.tee $1 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $5 - i64.const 0 - i64.store - local.get $5 - i32.const 0 - i32.store offset=8 - local.get $5 - local.get $1 - i32.store - local.get $5 - i32.const 11008 - i32.store offset=4 - local.get $5 - i32.const 11008 - i32.store offset=8 - i32.const 11008 - call $~lib/array/Array#get:length - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int64Array#get:length - local.get $5 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $6 - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $7 - local.get $6 - i32.const 11008 - i32.store offset=8 - i32.const 11012 - i32.load - local.set $6 - loop $for-loop|0 - local.get $0 - local.get $5 - i32.lt_s - if - local.get $7 - local.get $0 - i32.const 3 - i32.shl - i32.add - local.get $6 - local.get $0 - i32.const 2 - i32.shl - i32.add - i32.load - f64.convert_i32_s - f64.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - 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 - local.get $1 - i32.store offset=4 - i32.const 10 - i32.const 3 - i32.const 63 - i32.const 14784 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $1 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store - local.get $0 - i32.const 11088 - i32.store offset=4 - local.get $0 - i32.const 11088 - i32.store offset=8 - i32.const 11088 - call $~lib/array/Array#get:length - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int64Array#get:length - local.get $5 - i32.const 3 - i32.add - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - i32.const 24 - i32.add - local.set $6 - local.get $0 - i32.const 11088 - i32.store offset=8 - i32.const 11092 - i32.load - local.set $7 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $0 - local.get $5 - i32.lt_s - if - local.get $6 - local.get $0 - i32.const 3 - i32.shl - i32.add - local.get $7 - local.get $0 - i32.const 2 - i32.shl - i32.add - f32.load - f64.promote_f32 - f64.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|00 - 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 - local.get $1 - i32.store offset=4 - i32.const 10 - i32.const 3 - i32.const 63 - i32.const 14944 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $1 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> - 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=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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $2 - i32.store offset=4 - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - call $~lib/typedarray/Int64Array#get:length - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int64Array#get:length - local.get $5 - i32.const 6 - i32.add - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - i32.const 48 - i32.add - local.set $6 - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - i32.load offset=4 - local.set $2 - i32.const 0 - local.set $0 - loop $for-loop|01 - local.get $0 - local.get $5 - i32.lt_s - if - local.get $6 - local.get $0 - i32.const 3 - i32.shl - local.tee $7 - i32.add - local.get $2 - local.get $7 - i32.add - i64.load - f64.convert_i64_s - f64.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|01 - 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 - local.get $1 - i32.store offset=4 - i32.const 10 - i32.const 3 - i32.const 63 - i32.const 15056 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $1 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $3 - i32.store offset=4 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $3 - call $~lib/typedarray/Int8Array#get:length - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int64Array#get:length - local.get $2 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $5 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $3 - i32.load offset=4 - local.set $3 - i32.const 0 - local.set $0 - loop $for-loop|02 - local.get $0 - local.get $2 - i32.lt_s - if - local.get $5 - local.get $0 - i32.const 3 - i32.shl - i32.add - local.get $0 - local.get $3 - i32.add - i32.load8_u - f64.convert_i32_u - f64.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|02 - 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 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $4 - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $4 - i32.store offset=4 - local.get $0 - local.get $4 - i32.store offset=8 - local.get $4 - call $~lib/typedarray/Int16Array#get:length - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int64Array#get:length - local.get $2 - i32.const 4 - i32.add - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - i32.const 32 - i32.add - local.set $3 - local.get $0 - local.get $4 - i32.store offset=8 - local.get $4 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $0 - loop $for-loop|03 - local.get $0 - local.get $2 - i32.lt_s - if - local.get $3 - local.get $0 - i32.const 3 - i32.shl - i32.add - local.get $4 - local.get $0 - i32.const 1 - i32.shl - i32.add - i32.load16_s - f64.convert_i32_s - f64.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|03 - 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 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store - local.get $0 - i32.const 11264 - i32.store offset=4 - local.get $0 - i32.const 11264 - i32.store offset=8 - i32.const 11264 - call $~lib/array/Array#get:length - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int64Array#get:length - local.get $2 - i32.const 7 - i32.add - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - i32.const 56 - i32.add - local.set $3 - local.get $0 - i32.const 11264 - i32.store offset=8 - i32.const 11268 - i32.load - local.set $4 - i32.const 0 - local.set $0 - loop $for-loop|04 - local.get $0 - local.get $2 - i32.lt_s - if - local.get $3 - local.get $0 - i32.const 3 - i32.shl - i32.add - local.get $0 - local.get $4 - i32.add - i32.load8_s - f64.convert_i32_s - f64.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|04 - end - end + local.get $0 + local.get $1 + i32.lt_s + if global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7728 + i32.store offset=12 + local.get $2 + local.get $0 + i32.const 7728 + local.get $0 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer + 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 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Int32Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 603 + 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 11 + i32.const 0 + call $~lib/typedarray/Int32Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 604 + 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 0 + call $~lib/typedarray/Int32Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 605 + 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 3 + i32.const 0 + call $~lib/typedarray/Int32Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 606 + 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 3 + i32.const 2 + call $~lib/typedarray/Int32Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 607 + 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 3 + i32.const 3 + call $~lib/typedarray/Int32Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 608 + 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 3 + i32.const 4 + call $~lib/typedarray/Int32Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 609 + 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 10 + call $~lib/typedarray/Int32Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 610 + 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 -100 + call $~lib/typedarray/Int32Array#indexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 611 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i32.const 0 + call $~lib/typedarray/Int32Array#lastIndexOf@varargs + if + i32.const 0 + i32.const 1568 + i32.const 613 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i32.const 11 + call $~lib/typedarray/Int32Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 614 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i32.const -1 + call $~lib/typedarray/Int32Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 615 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i32.const 3 + call $~lib/typedarray/Int32Array#lastIndexOf@varargs + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 616 + 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 3 + i32.const 4 + call $~lib/typedarray/Int32Array#lastIndexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 617 + 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 3 + i32.const 3 + call $~lib/typedarray/Int32Array#lastIndexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 618 + 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 3 + i32.const 2 + call $~lib/typedarray/Int32Array#lastIndexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 619 + 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 100 + call $~lib/typedarray/Int32Array#lastIndexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 620 + 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 -10 + call $~lib/typedarray/Int32Array#lastIndexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 621 + 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 -11 + call $~lib/typedarray/Int32Array#lastIndexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 622 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 4 + i32.const 9 + call $~lib/typedarray/Int32Array#subarray + local.tee $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Int32Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 626 + 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 4 + i32.const 0 + call $~lib/typedarray/Int32Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 627 + 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 5 + i32.const 0 + call $~lib/typedarray/Int32Array#indexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 628 + 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 9 + i32.const 0 + call $~lib/typedarray/Int32Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 629 + 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 + i32.const 0 + call $~lib/typedarray/Int32Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 630 + 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 11 + i32.const 0 + call $~lib/typedarray/Int32Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 631 + 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 5 + i32.const 1 + call $~lib/typedarray/Int32Array#indexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 632 + 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 5 + i32.const 2 + call $~lib/typedarray/Int32Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 633 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int16Array,i16>" + (local $0 i32) + (local $1 i32) + (local $2 i32) + 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 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.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 7728 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7728 + i32.store offset=4 + i32.const 7728 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $~lib/typedarray/Int16Array#constructor + local.tee $2 + i32.store offset=8 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.lt_s + if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - i32.const 10 - i32.const 3 - i32.const 63 - i32.const 15168 - call $~lib/rt/__newArray - local.set $0 global.get $~lib/memory/__stack_pointer + i32.const 7728 + i32.store offset=12 + local.get $2 local.get $0 - i32.store offset=20 - local.get $1 + i32.const 7728 local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> - global.get $~lib/memory/__stack_pointer - i32.const 24 + call $~lib/array/Array#__get + i32.extend16_s + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - return + local.set $0 + br $for-loop|0 end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 603 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 1360 - i32.const 1632 - i32.const 1902 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 604 + 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 0 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 605 + 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 3 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 606 + 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 3 + i32.const 2 + call $~lib/typedarray/Uint16Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 607 + 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 3 + i32.const 3 + call $~lib/typedarray/Uint16Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 608 + 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 3 + i32.const 4 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 609 + 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 10 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 610 + 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 -100 + call $~lib/typedarray/Uint16Array#indexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 611 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i32.const 0 + call $~lib/typedarray/Uint16Array#lastIndexOf@varargs + if + i32.const 0 + i32.const 1568 + i32.const 613 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i32.const 11 + call $~lib/typedarray/Uint16Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 614 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i32.const -1 + call $~lib/typedarray/Uint16Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 615 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i32.const 3 + call $~lib/typedarray/Uint16Array#lastIndexOf@varargs + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 616 + 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 3 + i32.const 4 + call $~lib/typedarray/Uint16Array#lastIndexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 617 + 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 3 + i32.const 3 + call $~lib/typedarray/Uint16Array#lastIndexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 618 + 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 3 + i32.const 2 + call $~lib/typedarray/Uint16Array#lastIndexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 619 + 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 100 + call $~lib/typedarray/Uint16Array#lastIndexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 620 + 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 -10 + call $~lib/typedarray/Uint16Array#lastIndexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 621 + 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 -11 + call $~lib/typedarray/Uint16Array#lastIndexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 622 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 9 + call $~lib/typedarray/Int16Array#subarray + local.tee $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 626 + 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 4 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 627 + 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 5 - call $~lib/builtins/abort - unreachable + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 628 + 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 9 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 629 + 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 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 630 + 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 11 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 631 + 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 5 + i32.const 1 + call $~lib/typedarray/Uint16Array#indexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 632 + 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 5 + i32.const 2 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 633 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/sort/SORT (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) - (local $12 i32) - (local $13 i64) - (local $14 i32) - (local $15 i32) + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float64Array,f64>" + (local $0 i32) + (local $1 i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -50122,678 +49752,525 @@ end global.get $~lib/memory/__stack_pointer i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 7728 i32.store - block $folding-inner0 - local.get $1 - i32.const 48 - i32.le_s - if - local.get $1 - i32.const 1 - i32.le_s - br_if $folding-inner0 - block $break|0 - block $case1|0 - local.get $1 - i32.const 3 - i32.ne - if - local.get $1 - i32.const 2 - i32.eq - br_if $case1|0 - br $break|0 - end - local.get $0 - i32.load8_s - local.set $1 - local.get $0 - i32.load8_s offset=1 - local.set $3 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $3 - local.get $1 - local.get $1 - local.get $3 - local.get $2 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - local.tee $4 - select - i32.store8 - local.get $0 - i32.load8_s offset=2 - local.set $5 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $5 - local.get $1 - local.get $3 - local.get $4 - select - local.tee $1 - local.get $1 - local.get $5 - local.get $2 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - local.tee $3 - select - i32.store8 offset=1 - local.get $0 - local.get $1 - local.get $5 - local.get $3 - select - i32.store8 offset=2 - end - local.get $0 - i32.load8_s - local.set $1 - local.get $0 - i32.load8_s offset=1 - local.set $3 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $3 - local.get $1 - local.get $1 - local.get $3 - local.get $2 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - local.tee $2 - select - i32.store8 - local.get $0 - local.get $1 - local.get $3 - local.get $2 - select - i32.store8 offset=1 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - i32.const 0 - local.get $1 - i32.const 1 - i32.sub - i32.const 0 - local.get $2 - call $~lib/util/sort/insertionSort - br $folding-inner0 - end - i32.const 33 - local.get $1 - i32.clz - i32.sub - local.tee $4 - i32.const 2 - i32.shl - local.tee $5 - i32.const 1 - i32.shl - local.set $6 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - local.get $5 - global.get $~lib/rt/tlsf/ROOT - local.get $6 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $10 - i32.add - local.set $11 - loop $for-loop|1 - local.get $3 - local.get $4 - i32.lt_u - if - local.get $10 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.const -1 - i32.store - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|1 - 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 $1 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7728 + i32.store offset=4 + i32.const 7728 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $~lib/typedarray/Float64Array#constructor + local.tee $2 + i32.store offset=8 + loop $for-loop|0 local.get $0 - i32.const 0 local.get $1 - i32.const 1 - i32.sub - local.tee $9 - local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $4 - i32.const 1 - i32.add - local.tee $1 - i32.const 32 i32.lt_s if global.get $~lib/memory/__stack_pointer local.get $2 - i32.store - local.get $0 - i32.const 0 - i32.const 31 - local.get $9 - local.get $9 - i32.const 31 - i32.ge_s - select - local.tee $4 - local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7728 + i32.store offset=12 local.get $2 - call $~lib/util/sort/insertionSort + local.get $0 + i32.const 7728 + local.get $0 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__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 $2 + i32.store offset=4 + local.get $2 + f64.const 0 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + if i32.const 0 - local.set $1 + i32.const 1568 + i32.const 603 + 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 + f64.const 11 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.ne + if i32.const 0 - local.set $3 - loop $while-continue|2 - local.get $4 - local.get $9 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $4 - i32.const 1 - i32.add - local.tee $6 - local.get $9 - local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $5 - local.get $6 - i32.sub - i32.const 1 - i32.add - local.tee $7 - i32.const 32 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $6 - local.get $9 - local.get $6 - i32.const 31 - i32.add - local.tee $5 - local.get $5 - local.get $9 - i32.gt_s - select - local.tee $5 - local.get $7 - local.get $2 - call $~lib/util/sort/insertionSort - end - local.get $3 - local.get $6 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $9 - i32.const 1 - i32.add - i64.extend_i32_u - local.tee $13 - i64.div_u - local.get $5 - local.get $6 - i32.add - i32.const 1 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $13 - i64.div_u - i64.xor - i32.wrap_i64 - i32.clz - local.set $7 - loop $for-loop|3 - local.get $1 - local.get $7 - i32.gt_u - if - local.get $1 - i32.const 2 - i32.shl - local.tee $14 - local.get $10 - i32.add - local.tee $15 - i32.load - local.tee $8 - i32.const -1 - i32.ne - if - local.get $11 - local.get $14 - i32.add - i32.load - i32.const 1 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $8 - local.get $3 - local.get $4 - local.get $12 - local.get $2 - call $~lib/util/sort/mergeRuns - local.get $15 - i32.const -1 - i32.store - local.get $8 - local.set $3 - end - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|3 - end - end - local.get $7 - i32.const 2 - i32.shl - local.tee $1 - local.get $10 - i32.add - local.get $3 - i32.store - local.get $1 - local.get $11 - i32.add - local.get $4 - i32.store - local.get $6 - local.set $3 - local.get $5 - local.set $4 - local.get $7 - local.set $1 - br $while-continue|2 - end - end - loop $for-loop|4 - local.get $1 - if - local.get $1 - i32.const 2 - i32.shl - local.tee $3 - local.get $10 - i32.add - i32.load - local.tee $4 - i32.const -1 - i32.ne - if - local.get $3 - local.get $11 - i32.add - i32.load - i32.const 1 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $4 - local.get $3 - local.get $9 - local.get $12 - local.get $2 - call $~lib/util/sort/mergeRuns - end - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|4 - end - end - local.get $12 - call $~lib/rt/tlsf/__free - local.get $10 - call $~lib/rt/tlsf/__free - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return + i32.const 1568 + i32.const 604 + 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 + f64.const -1 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 605 + 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 + f64.const 3 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 606 + 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 + f64.const 3 + i32.const 2 + call $~lib/typedarray/Float64Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 607 + 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 + f64.const 3 + i32.const 3 + call $~lib/typedarray/Float64Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 608 + 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 + f64.const 3 i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int8Array#sort (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 609 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f64.const 1 + i32.const 10 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 610 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + local.get $2 + i32.store offset=4 + local.get $2 + f64.const 1 + i32.const -100 + call $~lib/typedarray/Float64Array#indexOf + i32.const 1 + i32.ne if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 611 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $2 - local.get $3 - local.get $0 + i32.const 1 + global.set $~argumentsLength + local.get $2 + f64.const 0 + call $~lib/typedarray/Float64Array#lastIndexOf@varargs + if + i32.const 0 + i32.const 1568 + i32.const 613 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.set $3 + i32.const 1 + global.set $~argumentsLength + local.get $2 + f64.const 11 + call $~lib/typedarray/Float64Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 614 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store local.get $2 - local.get $3 - local.get $1 - call $~lib/util/sort/SORT + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + f64.const -1 + call $~lib/typedarray/Float64Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 615 + 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 - local.get $0 - ) - (func $std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8> - (local $0 i32) - (local $1 i32) - (local $2 i32) + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + f64.const 3 + call $~lib/typedarray/Float64Array#lastIndexOf@varargs + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 616 + i32.const 3 + call $~lib/builtins/abort + unreachable + end 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 + local.get $2 + i32.store offset=4 + local.get $2 + f64.const 3 + i32.const 4 + call $~lib/typedarray/Float64Array#lastIndexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 617 i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 1 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f64.const 3 + i32.const 3 + call $~lib/typedarray/Float64Array#lastIndexOf + i32.const 3 + i32.ne + if i32.const 0 + i32.const 1568 + i32.const 618 i32.const 3 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f64.const 3 + i32.const 2 + call $~lib/typedarray/Float64Array#lastIndexOf + i32.const -1 + i32.ne + if i32.const 0 - global.set $~argumentsLength - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 + i32.const 1568 + i32.const 619 + 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 + f64.const 1 + i32.const 100 + call $~lib/typedarray/Float64Array#lastIndexOf + i32.const 1 + i32.ne + if i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 15344 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store offset=4 - local.get $2 - i32.const 15344 - i32.store offset=8 - local.get $0 - i32.const 15344 - call $~lib/typedarray/Int8Array#sort - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + i32.const 1568 + i32.const 620 + 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 + f64.const 1 + i32.const -10 + call $~lib/typedarray/Float64Array#lastIndexOf + i32.const 1 + i32.ne + if i32.const 0 - call $~lib/typedarray/Int8Array#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 885 - 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 1 - call $~lib/typedarray/Int8Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 886 - 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 2 - call $~lib/typedarray/Int8Array#__get + i32.const 1568 + i32.const 621 i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 887 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - i32.const 15376 - i32.store offset=12 - local.get $0 - i32.const 15376 - call $~lib/typedarray/Int8Array#sort - drop - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f64.const 1 + i32.const -11 + call $~lib/typedarray/Float64Array#lastIndexOf + i32.const -1 + i32.ne + if i32.const 0 - call $~lib/typedarray/Int8Array#__get + i32.const 1568 + i32.const 622 i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 889 - 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 1 - call $~lib/typedarray/Int8Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 890 - 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 2 - call $~lib/typedarray/Int8Array#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 891 - 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 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 4 + i32.const 9 + call $~lib/typedarray/Float64Array#subarray + local.tee $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f64.const 3 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 626 + 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 4 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 627 + 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 5 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 628 + 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 9 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 629 + 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 10 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 630 + 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 11 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 631 + i32.const 3 + call $~lib/builtins/abort + unreachable end - i32.const 49120 - i32.const 49168 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f64.const 5 i32.const 1 + call $~lib/typedarray/Float64Array#indexOf i32.const 1 - call $~lib/builtins/abort - unreachable + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 632 + 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 5 + i32.const 2 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 633 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/sort/SORT (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) - (local $12 i32) - (local $13 i64) - (local $14 i32) - (local $15 i32) + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float32Array,f32>" + (local $0 i32) + (local $1 i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -50809,885 +50286,519 @@ end global.get $~lib/memory/__stack_pointer i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 7728 i32.store - block $folding-inner0 - local.get $1 - i32.const 48 - i32.le_s - if - local.get $1 - i32.const 1 - i32.le_s - br_if $folding-inner0 - block $break|0 - block $case1|0 - local.get $1 - i32.const 3 - i32.ne - if - local.get $1 - i32.const 2 - i32.eq - br_if $case1|0 - br $break|0 - end - local.get $0 - i32.load8_u - local.set $1 - local.get $0 - i32.load8_u offset=1 - local.set $3 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $3 - local.get $1 - local.get $1 - local.get $3 - local.get $2 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - local.tee $4 - select - i32.store8 - local.get $0 - i32.load8_u offset=2 - local.set $5 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $5 - local.get $1 - local.get $3 - local.get $4 - select - local.tee $1 - local.get $1 - local.get $5 - local.get $2 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - local.tee $3 - select - i32.store8 offset=1 - local.get $0 - local.get $1 - local.get $5 - local.get $3 - select - i32.store8 offset=2 - end - local.get $0 - i32.load8_u - local.set $1 - local.get $0 - i32.load8_u offset=1 - local.set $3 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $3 - local.get $1 - local.get $1 - local.get $3 - local.get $2 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - local.tee $2 - select - i32.store8 - local.get $0 - local.get $1 - local.get $3 - local.get $2 - select - i32.store8 offset=1 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - i32.const 0 - local.get $1 - i32.const 1 - i32.sub - i32.const 0 - local.get $2 - call $~lib/util/sort/insertionSort - br $folding-inner0 - end - i32.const 33 - local.get $1 - i32.clz - i32.sub - local.tee $4 - i32.const 2 - i32.shl - local.tee $5 - i32.const 1 - i32.shl - local.set $6 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - local.get $5 - global.get $~lib/rt/tlsf/ROOT - local.get $6 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $10 - i32.add - local.set $11 - loop $for-loop|1 - local.get $3 - local.get $4 - i32.lt_u - if - local.get $10 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.const -1 - i32.store - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|1 - 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 $1 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7728 + i32.store offset=4 + i32.const 7728 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $~lib/typedarray/Float32Array#constructor + local.tee $2 + i32.store offset=8 + loop $for-loop|0 local.get $0 - i32.const 0 local.get $1 - i32.const 1 - i32.sub - local.tee $9 - local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $4 - i32.const 1 - i32.add - local.tee $1 - i32.const 32 i32.lt_s if global.get $~lib/memory/__stack_pointer local.get $2 - i32.store - local.get $0 - i32.const 0 - i32.const 31 - local.get $9 - local.get $9 - i32.const 31 - i32.ge_s - select - local.tee $4 - local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7728 + i32.store offset=12 local.get $2 - call $~lib/util/sort/insertionSort + local.get $0 + i32.const 7728 + local.get $0 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__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 $2 + i32.store offset=4 + local.get $2 + f32.const 0 + i32.const 0 + call $~lib/typedarray/Float32Array#indexOf + if i32.const 0 - local.set $1 - i32.const 0 - local.set $3 - loop $while-continue|2 - local.get $4 - local.get $9 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $4 - i32.const 1 - i32.add - local.tee $6 - local.get $9 - local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $5 - local.get $6 - i32.sub - i32.const 1 - i32.add - local.tee $7 - i32.const 32 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $6 - local.get $9 - local.get $6 - i32.const 31 - i32.add - local.tee $5 - local.get $5 - local.get $9 - i32.gt_s - select - local.tee $5 - local.get $7 - local.get $2 - call $~lib/util/sort/insertionSort - end - local.get $3 - local.get $6 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $9 - i32.const 1 - i32.add - i64.extend_i32_u - local.tee $13 - i64.div_u - local.get $5 - local.get $6 - i32.add - i32.const 1 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $13 - i64.div_u - i64.xor - i32.wrap_i64 - i32.clz - local.set $7 - loop $for-loop|3 - local.get $1 - local.get $7 - i32.gt_u - if - local.get $1 - i32.const 2 - i32.shl - local.tee $14 - local.get $10 - i32.add - local.tee $15 - i32.load - local.tee $8 - i32.const -1 - i32.ne - if - local.get $11 - local.get $14 - i32.add - i32.load - i32.const 1 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $8 - local.get $3 - local.get $4 - local.get $12 - local.get $2 - call $~lib/util/sort/mergeRuns - local.get $15 - i32.const -1 - i32.store - local.get $8 - local.set $3 - end - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|3 - end - end - local.get $7 - i32.const 2 - i32.shl - local.tee $1 - local.get $10 - i32.add - local.get $3 - i32.store - local.get $1 - local.get $11 - i32.add - local.get $4 - i32.store - local.get $6 - local.set $3 - local.get $5 - local.set $4 - local.get $7 - local.set $1 - br $while-continue|2 - end - end - loop $for-loop|4 - local.get $1 - if - local.get $1 - i32.const 2 - i32.shl - local.tee $3 - local.get $10 - i32.add - i32.load - local.tee $4 - i32.const -1 - i32.ne - if - local.get $3 - local.get $11 - i32.add - i32.load - i32.const 1 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $4 - local.get $3 - local.get $9 - local.get $12 - local.get $2 - call $~lib/util/sort/mergeRuns - end - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|4 - end - end - local.get $12 - call $~lib/rt/tlsf/__free - local.get $10 - call $~lib/rt/tlsf/__free - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return + i32.const 1568 + i32.const 603 + 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 + f32.const 11 + i32.const 0 + call $~lib/typedarray/Float32Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 604 + 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 $~lib/typedarray/Uint8Array#sort (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) + local.get $2 + i32.store offset=4 + local.get $2 + f32.const -1 + i32.const 0 + call $~lib/typedarray/Float32Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 605 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f32.const 3 + i32.const 0 + call $~lib/typedarray/Float32Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 606 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + local.get $2 + i32.store offset=4 + local.get $2 + f32.const 3 + i32.const 2 + call $~lib/typedarray/Float32Array#indexOf + i32.const 3 + i32.ne if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 607 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $2 - local.get $3 - local.get $0 + local.get $2 + f32.const 3 + i32.const 3 + call $~lib/typedarray/Float32Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 608 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.set $3 + local.get $2 + f32.const 3 + i32.const 4 + call $~lib/typedarray/Float32Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 609 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store local.get $2 - local.get $3 - local.get $1 - call $~lib/util/sort/SORT + i32.store offset=4 + local.get $2 + f32.const 1 + i32.const 10 + call $~lib/typedarray/Float32Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 610 + 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 - local.get $0 - ) - (func $std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8> - (local $0 i32) - (local $1 i32) - (local $2 i32) + local.get $2 + i32.store offset=4 + local.get $2 + f32.const 1 + i32.const -100 + call $~lib/typedarray/Float32Array#indexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 611 + i32.const 3 + call $~lib/builtins/abort + unreachable + end 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + f32.const 0 + call $~lib/typedarray/Float32Array#lastIndexOf@varargs + if + i32.const 0 + i32.const 1568 + i32.const 613 i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 1 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + f32.const 11 + call $~lib/typedarray/Float32Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if i32.const 0 + i32.const 1568 + i32.const 614 i32.const 3 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + f32.const -1 + call $~lib/typedarray/Float32Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if i32.const 0 - global.set $~argumentsLength - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 + i32.const 1568 + i32.const 615 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + f32.const 3 + call $~lib/typedarray/Float32Array#lastIndexOf@varargs + i32.const 3 + i32.ne + if i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 15408 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store offset=4 - local.get $2 - i32.const 15408 - i32.store offset=8 - local.get $0 - i32.const 15408 - call $~lib/typedarray/Uint8Array#sort - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + i32.const 1568 + i32.const 616 + 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 + f32.const 3 + i32.const 4 + call $~lib/typedarray/Float32Array#lastIndexOf + i32.const 3 + i32.ne + if i32.const 0 - call $~lib/typedarray/Uint8Array#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 885 - 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 1 - call $~lib/typedarray/Uint8Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 886 - 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 2 - call $~lib/typedarray/Uint8Array#__get + i32.const 1568 + i32.const 617 i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 887 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - i32.const 15440 - i32.store offset=12 - local.get $0 - i32.const 15440 - call $~lib/typedarray/Uint8Array#sort - drop - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f32.const 3 + i32.const 3 + call $~lib/typedarray/Float32Array#lastIndexOf + i32.const 3 + i32.ne + if i32.const 0 - call $~lib/typedarray/Uint8Array#__get + i32.const 1568 + i32.const 618 i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 889 - 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 1 - call $~lib/typedarray/Uint8Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 890 - 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 2 - call $~lib/typedarray/Uint8Array#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 891 - 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 + call $~lib/builtins/abort + unreachable end - i32.const 49120 - i32.const 49168 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f32.const 3 + i32.const 2 + call $~lib/typedarray/Float32Array#lastIndexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 619 + 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 + f32.const 1 + i32.const 100 + call $~lib/typedarray/Float32Array#lastIndexOf i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 620 + 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 + f32.const 1 + i32.const -10 + call $~lib/typedarray/Float32Array#lastIndexOf i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $std/typedarray/testArraySort<~lib/typedarray/Uint8ClampedArray,u8> - (local $0 i32) - (local $1 i32) - (local $2 i32) + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 621 + i32.const 3 + call $~lib/builtins/abort + unreachable + end 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 + local.get $2 + i32.store offset=4 + local.get $2 + f32.const 1 + i32.const -11 + call $~lib/typedarray/Float32Array#lastIndexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 622 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 9 + call $~lib/typedarray/Float32Array#subarray + local.tee $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f32.const 3 + i32.const 0 + call $~lib/typedarray/Float32Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 626 i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f32.const 4 + i32.const 0 + call $~lib/typedarray/Float32Array#indexOf + if i32.const 0 + i32.const 1568 + i32.const 627 i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f32.const 5 + i32.const 0 + call $~lib/typedarray/Float32Array#indexOf + i32.const 1 + i32.ne + if i32.const 0 - global.set $~argumentsLength - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 + i32.const 1568 + i32.const 628 + 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 9 + i32.const 0 + call $~lib/typedarray/Float32Array#indexOf + i32.const -1 + i32.ne + if i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 15472 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store offset=4 - local.get $2 - i32.const 15472 - i32.store offset=8 - local.get $0 - i32.const 15472 - call $~lib/typedarray/Uint8Array#sort - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + i32.const 1568 + i32.const 629 + 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 10 + i32.const 0 + call $~lib/typedarray/Float32Array#indexOf + i32.const -1 + i32.ne + if i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 885 - 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 1 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 886 - 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 2 - call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 1568 + i32.const 630 i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 887 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - i32.const 15504 - i32.store offset=12 - local.get $0 - i32.const 15504 - call $~lib/typedarray/Uint8Array#sort - drop - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f32.const 11 + i32.const 0 + call $~lib/typedarray/Float32Array#indexOf + i32.const -1 + i32.ne + if i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 1568 + i32.const 631 i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 889 - 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 1 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 890 - 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 2 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 891 - 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 + call $~lib/builtins/abort + unreachable end - i32.const 49120 - i32.const 49168 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f32.const 5 i32.const 1 + call $~lib/typedarray/Float32Array#indexOf i32.const 1 - call $~lib/builtins/abort - unreachable + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 632 + 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 5 + i32.const 2 + call $~lib/typedarray/Float32Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 633 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/sort/SORT (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) - (local $12 i32) - (local $13 i64) - (local $14 i32) - (local $15 i32) + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -51706,412 +50817,127 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $folding-inner0 - local.get $1 - i32.const 48 - i32.le_s - if - local.get $1 - i32.const 1 - i32.le_s - br_if $folding-inner0 - block $break|0 - block $case1|0 - local.get $1 - i32.const 3 - i32.ne - if - local.get $1 - i32.const 2 - i32.eq - br_if $case1|0 - br $break|0 - end - local.get $0 - i32.load16_s - local.set $1 - local.get $0 - i32.load16_s offset=2 - local.set $3 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $3 - local.get $1 - local.get $1 - local.get $3 - local.get $2 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - local.tee $4 - select - i32.store16 - local.get $0 - i32.load16_s offset=4 - local.set $5 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $5 - local.get $1 - local.get $3 - local.get $4 - select - local.tee $1 - local.get $1 - local.get $5 - local.get $2 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - local.tee $3 - select - i32.store16 offset=2 - local.get $0 - local.get $1 - local.get $5 - local.get $3 - select - i32.store16 offset=4 - end - local.get $0 - i32.load16_s - local.set $1 - local.get $0 - i32.load16_s offset=2 - local.set $3 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $3 - local.get $1 - local.get $1 - local.get $3 - local.get $2 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - local.tee $2 - select - i32.store16 - local.get $0 - local.get $1 - local.get $3 - local.get $2 - select - i32.store16 offset=2 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - i32.const 0 - local.get $1 - i32.const 1 - i32.sub - i32.const 0 - local.get $2 - call $~lib/util/sort/insertionSort - br $folding-inner0 - end - i32.const 33 - local.get $1 - i32.clz - i32.sub - local.tee $4 - i32.const 2 - i32.shl - local.tee $5 - i32.const 1 - i32.shl - local.set $6 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - local.get $5 - global.get $~lib/rt/tlsf/ROOT - local.get $6 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $10 - i32.add - local.set $11 - loop $for-loop|1 - local.get $3 - local.get $4 - i32.lt_u - if - local.get $10 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.const -1 - i32.store - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|1 - 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 $1 - i32.const 1 - i32.shl - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store + local.get $0 + i32.const 65535 + i32.and + i32.const 7152 + local.get $1 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 536 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachCallCount + local.get $1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 537 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + global.get $std/typedarray/forEachSelf + i32.ne + if i32.const 0 - local.get $1 + i32.const 1568 + i32.const 538 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachCallCount + i32.const 1 + i32.add + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0" (param $0 f64) (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 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - i32.sub - local.tee $9 - local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $4 i32.const 1 - i32.add - local.tee $1 - i32.const 32 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - i32.const 0 - i32.const 31 - local.get $9 - local.get $9 - i32.const 31 - i32.ge_s - select - local.tee $4 - local.get $1 - local.get $2 - call $~lib/util/sort/insertionSort - end + 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 7152 + i32.store + i32.const 7152 + local.get $1 + call $~lib/array/Array#__get + f64.convert_i32_s + local.get $0 + f64.ne + if i32.const 0 - local.set $1 + i32.const 1568 + i32.const 536 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachCallCount + local.get $1 + i32.ne + if i32.const 0 - local.set $3 - loop $while-continue|2 - local.get $4 - local.get $9 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $4 - i32.const 1 - i32.add - local.tee $6 - local.get $9 - local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $5 - local.get $6 - i32.sub - i32.const 1 - i32.add - local.tee $7 - i32.const 32 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $6 - local.get $9 - local.get $6 - i32.const 31 - i32.add - local.tee $5 - local.get $5 - local.get $9 - i32.gt_s - select - local.tee $5 - local.get $7 - local.get $2 - call $~lib/util/sort/insertionSort - end - local.get $3 - local.get $6 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $9 - i32.const 1 - i32.add - i64.extend_i32_u - local.tee $13 - i64.div_u - local.get $5 - local.get $6 - i32.add - i32.const 1 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $13 - i64.div_u - i64.xor - i32.wrap_i64 - i32.clz - local.set $7 - loop $for-loop|3 - local.get $1 - local.get $7 - i32.gt_u - if - local.get $1 - i32.const 2 - i32.shl - local.tee $14 - local.get $10 - i32.add - local.tee $15 - i32.load - local.tee $8 - i32.const -1 - i32.ne - if - local.get $11 - local.get $14 - i32.add - i32.load - i32.const 1 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $8 - local.get $3 - local.get $4 - local.get $12 - local.get $2 - call $~lib/util/sort/mergeRuns - local.get $15 - i32.const -1 - i32.store - local.get $8 - local.set $3 - end - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|3 - end - end - local.get $7 - i32.const 2 - i32.shl - local.tee $1 - local.get $10 - i32.add - local.get $3 - i32.store - local.get $1 - local.get $11 - i32.add - local.get $4 - i32.store - local.get $6 - local.set $3 - local.get $5 - local.set $4 - local.get $7 - local.set $1 - br $while-continue|2 - end - end - loop $for-loop|4 - local.get $1 - if - local.get $1 - i32.const 2 - i32.shl - local.tee $3 - local.get $10 - i32.add - i32.load - local.tee $4 - i32.const -1 - i32.ne - if - local.get $3 - local.get $11 - i32.add - i32.load - i32.const 1 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $4 - local.get $3 - local.get $9 - local.get $12 - local.get $2 - call $~lib/util/sort/mergeRuns - end - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|4 - end - end - local.get $12 - call $~lib/rt/tlsf/__free - local.get $10 - call $~lib/rt/tlsf/__free - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return + i32.const 1568 + i32.const 537 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + global.get $std/typedarray/forEachSelf + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 538 + i32.const 5 + call $~lib/builtins/abort + unreachable end + global.get $std/typedarray/forEachCallCount + i32.const 1 + i32.add + global.set $std/typedarray/forEachCallCount global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Int16Array#sort (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0" (param $0 f32) (param $1 i32) (param $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -52126,38 +50952,66 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $2 - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.set $3 + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 7152 i32.store - local.get $2 - local.get $3 + i32.const 7152 local.get $1 - call $~lib/util/sort/SORT + call $~lib/array/Array#__get + f32.convert_i32_s + local.get $0 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 536 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachCallCount + local.get $1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 537 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + global.get $std/typedarray/forEachSelf + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 538 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachCallCount + i32.const 1 + i32.add + global.set $std/typedarray/forEachCallCount global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16> + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8>" (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 @@ -52168,47 +51022,60 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $0 - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $0 + global.get $~lib/memory/__stack_pointer + i32.const 6 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $8 i32.store offset=4 - local.get $0 - i32.const 2 + local.get $8 + i32.const 0 i32.const 1 - call $~lib/typedarray/Int16Array#__set + call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $8 i32.store offset=4 - local.get $0 + local.get $8 i32.const 1 i32.const 2 - call $~lib/typedarray/Int16Array#__set + call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $8 i32.store offset=4 - local.get $0 - i32.const 0 + local.get $8 + i32.const 2 i32.const 3 - call $~lib/typedarray/Int16Array#__set + call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - local.set $1 + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $8 i32.store offset=4 - i32.const 0 - global.set $~argumentsLength + local.get $8 + i32.const 5 + i32.const 5 + call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - i32.const 12 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + 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 @@ -52216,637 +51083,198 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 i32.const 0 - i32.store offset=8 + i32.const 20 + memory.fill global.get $~lib/memory/__stack_pointer - i32.const 15536 + local.get $8 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 + i32.const 4016 i32.store offset=4 - local.get $2 - i32.const 15536 + global.get $~lib/memory/__stack_pointer + local.get $8 i32.store offset=8 - local.get $0 - i32.const 15536 - call $~lib/typedarray/Int16Array#sort - local.set $0 + local.get $8 + call $~lib/typedarray/Int8Array#get:length + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $0 - i32.store offset=8 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Int16Array#__get + local.get $3 i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 885 - i32.const 3 - call $~lib/builtins/abort - unreachable + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + i32.load offset=4 + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $2 + local.get $7 + i32.add + i32.load8_u + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $5 + local.get $2 + local.get $8 + i32.const 4016 + i32.load + call_indirect (type $1) + if + local.get $0 + local.get $4 + i32.add + local.get $5 + i32.store8 + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + local.get $1 + local.get $4 local.get $0 - i32.const 1 - call $~lib/typedarray/Int16Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 886 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + call $~lib/rt/itcms/__renew + local.tee $2 + i32.store + local.get $1 + local.get $2 + call $~lib/rt/itcms/__link + local.get $1 local.get $0 + i32.store offset=8 + local.get $1 + local.get $2 i32.store offset=4 - local.get $0 - i32.const 2 - call $~lib/typedarray/Int16Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 887 - i32.const 3 - call $~lib/builtins/abort - unreachable - end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer local.get $1 - i32.const 15568 i32.store offset=12 - local.get $0 - i32.const 15568 - call $~lib/typedarray/Int16Array#sort - drop - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Int16Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 889 - i32.const 3 - call $~lib/builtins/abort - unreachable - end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/typedarray/Int16Array#__get - i32.const 2 - i32.ne + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if i32.const 0 i32.const 1568 - i32.const 890 + i32.const 413 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 - i32.const 2 - call $~lib/typedarray/Int16Array#__get - i32.const 1 + local.get $1 + call $~lib/typedarray/Int8Array#get:length + i32.const 3 i32.ne if i32.const 0 i32.const 1568 - i32.const 891 + i32.const 414 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 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/sort/SORT (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) - (local $12 i32) - (local $13 i64) - (local $14 i32) - (local $15 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 - block $folding-inner0 - local.get $1 - i32.const 48 - i32.le_s - if - local.get $1 - i32.const 1 - i32.le_s - br_if $folding-inner0 - block $break|0 - block $case1|0 - local.get $1 - i32.const 3 - i32.ne - if - local.get $1 - i32.const 2 - i32.eq - br_if $case1|0 - br $break|0 - end - local.get $0 - i32.load16_u - local.set $1 - local.get $0 - i32.load16_u offset=2 - local.set $3 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $3 - local.get $1 - local.get $1 - local.get $3 - local.get $2 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - local.tee $4 - select - i32.store16 - local.get $0 - i32.load16_u offset=4 - local.set $5 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $5 - local.get $1 - local.get $3 - local.get $4 - select - local.tee $1 - local.get $1 - local.get $5 - local.get $2 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - local.tee $3 - select - i32.store16 offset=2 - local.get $0 - local.get $1 - local.get $5 - local.get $3 - select - i32.store16 offset=4 - end - local.get $0 - i32.load16_u - local.set $1 - local.get $0 - i32.load16_u offset=2 - local.set $3 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $3 - local.get $1 - local.get $1 - local.get $3 - local.get $2 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - local.tee $2 - select - i32.store16 - local.get $0 - local.get $1 - local.get $3 - local.get $2 - select - i32.store16 offset=2 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - i32.const 0 - local.get $1 - i32.const 1 - i32.sub - i32.const 0 - local.get $2 - call $~lib/util/sort/insertionSort - br $folding-inner0 - end - i32.const 33 - local.get $1 - i32.clz - i32.sub - local.tee $4 - i32.const 2 - i32.shl - local.tee $5 - i32.const 1 - i32.shl - local.set $6 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - local.get $5 - global.get $~lib/rt/tlsf/ROOT - local.get $6 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $10 - i32.add - local.set $11 - loop $for-loop|1 - local.get $3 - local.get $4 - i32.lt_u - if - local.get $10 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.const -1 - i32.store - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|1 - 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 $1 - i32.const 1 - i32.shl - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - i32.const 0 + i32.store offset=4 local.get $1 - i32.const 1 - i32.sub - local.tee $9 - local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $4 - i32.const 1 - i32.add - local.tee $1 - i32.const 32 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - i32.const 0 - i32.const 31 - local.get $9 - local.get $9 - i32.const 31 - i32.ge_s - select - local.tee $4 - local.get $1 - local.get $2 - call $~lib/util/sort/insertionSort - end - i32.const 0 - local.set $1 - i32.const 0 - local.set $3 - loop $while-continue|2 - local.get $4 - local.get $9 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $4 - i32.const 1 - i32.add - local.tee $6 - local.get $9 - local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $5 - local.get $6 - i32.sub - i32.const 1 - i32.add - local.tee $7 - i32.const 32 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $6 - local.get $9 - local.get $6 - i32.const 31 - i32.add - local.tee $5 - local.get $5 - local.get $9 - i32.gt_s - select - local.tee $5 - local.get $7 - local.get $2 - call $~lib/util/sort/insertionSort - end - local.get $3 - local.get $6 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $9 - i32.const 1 - i32.add - i64.extend_i32_u - local.tee $13 - i64.div_u - local.get $5 - local.get $6 - i32.add - i32.const 1 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $13 - i64.div_u - i64.xor - i32.wrap_i64 - i32.clz - local.set $7 - loop $for-loop|3 - local.get $1 - local.get $7 - i32.gt_u - if - local.get $1 - i32.const 2 - i32.shl - local.tee $14 - local.get $10 - i32.add - local.tee $15 - i32.load - local.tee $8 - i32.const -1 - i32.ne - if - local.get $11 - local.get $14 - i32.add - i32.load - i32.const 1 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $8 - local.get $3 - local.get $4 - local.get $12 - local.get $2 - call $~lib/util/sort/mergeRuns - local.get $15 - i32.const -1 - i32.store - local.get $8 - local.set $3 - end - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|3 - end - end - local.get $7 - i32.const 2 - i32.shl - local.tee $1 - local.get $10 - i32.add - local.get $3 - i32.store - local.get $1 - local.get $11 - i32.add - local.get $4 - i32.store - local.get $6 - local.set $3 - local.get $5 - local.set $4 - local.get $7 - local.set $1 - br $while-continue|2 - end - end - loop $for-loop|4 - local.get $1 - if - local.get $1 - i32.const 2 - i32.shl - local.tee $3 - local.get $10 - i32.add - i32.load - local.tee $4 - i32.const -1 - i32.ne - if - local.get $3 - local.get $11 - i32.add - i32.load - i32.const 1 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $4 - local.get $3 - local.get $9 - local.get $12 - local.get $2 - call $~lib/util/sort/mergeRuns - end - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|4 - end + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $12 - call $~lib/rt/tlsf/__free - local.get $10 - call $~lib/rt/tlsf/__free global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__get i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 416 + 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/typedarray/Uint8ClampedArray#__get + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 417 + 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Uint16Array#sort (param $0 i32) (param $1 i32) (result 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 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 - local.tee $3 - i64.const 0 - i64.store - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $2 - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $2 - local.get $3 - local.get $1 - call $~lib/util/sort/SORT - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $std/typedarray/testArraySort<~lib/typedarray/Uint16Array,u16> + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>" (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 @@ -52857,47 +51285,60 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $0 - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $0 + global.get $~lib/memory/__stack_pointer + i32.const 6 + call $~lib/typedarray/Uint8Array#constructor + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $8 i32.store offset=4 - local.get $0 - i32.const 2 + local.get $8 + i32.const 0 i32.const 1 - call $~lib/typedarray/Uint16Array#__set + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $8 i32.store offset=4 - local.get $0 + local.get $8 i32.const 1 i32.const 2 - call $~lib/typedarray/Uint16Array#__set + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $8 i32.store offset=4 - local.get $0 - i32.const 0 + local.get $8 + i32.const 2 i32.const 3 - call $~lib/typedarray/Uint16Array#__set + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.set $1 + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $8 i32.store offset=4 - i32.const 0 - global.set $~argumentsLength + local.get $8 + i32.const 5 + i32.const 5 + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - i32.const 12 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + 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 @@ -52905,136 +51346,171 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 i32.const 0 - i32.store offset=8 + i32.const 20 + memory.fill global.get $~lib/memory/__stack_pointer - i32.const 15600 + local.get $8 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 + i32.const 3984 i32.store offset=4 - local.get $2 - i32.const 15600 + global.get $~lib/memory/__stack_pointer + local.get $8 i32.store offset=8 - local.get $0 - i32.const 15600 - call $~lib/typedarray/Uint16Array#sort - local.set $0 + local.get $8 + call $~lib/typedarray/Int8Array#get:length + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + i32.load offset=4 + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $2 + local.get $7 + i32.add + i32.load8_u + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $5 + local.get $2 + local.get $8 + i32.const 3984 + i32.load + call_indirect (type $1) + if + local.get $0 + local.get $4 + i32.add + local.get $5 + i32.store8 + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end local.get $1 + local.get $4 local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer + call $~lib/rt/itcms/__renew + local.tee $2 + i32.store + local.get $1 + local.get $2 + call $~lib/rt/itcms/__link + local.get $1 local.get $0 + i32.store offset=8 + local.get $1 + local.get $2 i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Uint16Array#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 885 - i32.const 3 - call $~lib/builtins/abort - unreachable - end global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/typedarray/Uint16Array#__get - i32.const 2 - i32.ne + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if i32.const 0 i32.const 1568 - i32.const 886 + i32.const 413 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 - i32.const 2 - call $~lib/typedarray/Uint16Array#__get + local.get $1 + call $~lib/typedarray/Int8Array#get:length i32.const 3 i32.ne if i32.const 0 i32.const 1568 - i32.const 887 + i32.const 414 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 local.get $1 - i32.const 15632 - i32.store offset=12 - local.get $0 - i32.const 15632 - call $~lib/typedarray/Uint16Array#sort - drop - global.get $~lib/memory/__stack_pointer - local.get $0 i32.store offset=4 - local.get $0 + local.get $1 i32.const 0 - call $~lib/typedarray/Uint16Array#__get + call $~lib/typedarray/Uint8Array#__get i32.const 3 i32.ne if i32.const 0 i32.const 1568 - i32.const 889 + i32.const 415 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1 - call $~lib/typedarray/Uint16Array#__get - i32.const 2 + call $~lib/typedarray/Uint8Array#__get + i32.const 4 i32.ne if i32.const 0 i32.const 1568 - i32.const 890 + i32.const 416 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 2 - call $~lib/typedarray/Uint16Array#__get - i32.const 1 + call $~lib/typedarray/Uint8Array#__get + i32.const 5 i32.ne if i32.const 0 i32.const 1568 - i32.const 891 + i32.const 417 i32.const 3 call $~lib/builtins/abort unreachable @@ -53052,490 +51528,298 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64>~anonymous|0" (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i64.const 2 + i64.gt_u + ) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64>" + (local $0 i32) + (local $1 i32) + (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 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) - (local $13 i64) - (local $14 i32) - (local $15 i32) 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 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 block $folding-inner0 - local.get $1 - i32.const 48 - i32.le_s - if - local.get $1 - i32.const 1 - i32.le_s - br_if $folding-inner0 - block $break|0 - block $case1|0 - local.get $1 - i32.const 3 - i32.ne - if - local.get $1 - i32.const 2 - i32.eq - br_if $case1|0 - br $break|0 - end - local.get $0 - i32.load - local.set $1 - local.get $0 - i32.load offset=4 - local.set $3 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $3 - local.get $1 - local.get $1 - local.get $3 - local.get $2 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - local.tee $4 - select - i32.store - local.get $0 - i32.load offset=8 - local.set $5 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $5 - local.get $1 - local.get $3 - local.get $4 - select - local.tee $1 - local.get $1 - local.get $5 - local.get $2 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - local.tee $3 - select - i32.store offset=4 - local.get $0 - local.get $1 - local.get $5 - local.get $3 - select - i32.store offset=8 - end - local.get $0 - i32.load - local.set $1 - local.get $0 - i32.load offset=4 - local.set $3 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $3 - local.get $1 - local.get $1 - local.get $3 - local.get $2 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - local.tee $2 - select - i32.store - local.get $0 - local.get $1 - local.get $3 - local.get $2 - select - i32.store offset=4 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - i32.const 0 - local.get $1 - i32.const 1 - i32.sub - i32.const 0 - local.get $2 - call $~lib/util/sort/insertionSort - br $folding-inner0 - end - i32.const 33 - local.get $1 - i32.clz + global.get $~lib/memory/__stack_pointer + i32.const 16320 + 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 6 + call $~lib/typedarray/Uint64Array#constructor + local.tee $8 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 3 + i64.const 4 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 5 + i64.const 5 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4208 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 20 i32.sub - local.tee $4 - i32.const 2 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4208 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + call $~lib/typedarray/Int64Array#get:length + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 3 i32.shl - local.tee $5 i32.const 1 - i32.shl - local.set $6 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - local.get $5 - global.get $~lib/rt/tlsf/ROOT - local.get $6 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $10 - i32.add - local.set $11 - loop $for-loop|1 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + i32.load offset=4 + local.set $7 + loop $for-loop|0 + local.get $2 local.get $3 - local.get $4 - i32.lt_u + i32.lt_s if - local.get $10 - local.get $3 - i32.const 2 + local.get $7 + local.get $2 + i32.const 3 i32.shl i32.add - i32.const -1 - i32.store - local.get $3 + i64.load + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $5 + local.get $2 + local.get $8 + i32.const 4208 + i32.load + call_indirect (type $8) + if + local.get $4 + local.get $0 + i32.const 3 + i32.shl + i32.add + local.get $5 + i64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $2 i32.const 1 i32.add - local.set $3 - br $for-loop|1 + local.set $2 + br $for-loop|0 end end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $1 - i32.const 2 + local.get $4 + local.get $0 + i32.const 3 i32.shl - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $2 + local.tee $0 + call $~lib/rt/itcms/__renew + local.tee $2 i32.store + local.get $1 + local.get $2 + call $~lib/rt/itcms/__link + local.get $1 local.get $0 - i32.const 0 + i32.store offset=8 local.get $1 - i32.const 1 - i32.sub - local.tee $9 local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $4 - i32.const 1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 20 i32.add - local.tee $1 - i32.const 32 - i32.lt_s + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 i32.const 0 - i32.const 31 - local.get $9 - local.get $9 - i32.const 31 - i32.ge_s - select - local.tee $4 - local.get $1 - local.get $2 - call $~lib/util/sort/insertionSort + i32.const 1568 + i32.const 413 + 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/typedarray/Int64Array#get:length + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 414 + 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 0 - local.set $1 - i32.const 0 - local.set $3 - loop $while-continue|2 - local.get $4 - local.get $9 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $4 - i32.const 1 - i32.add - local.tee $6 - local.get $9 - local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $5 - local.get $6 - i32.sub - i32.const 1 - i32.add - local.tee $7 - i32.const 32 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $6 - local.get $9 - local.get $6 - i32.const 31 - i32.add - local.tee $5 - local.get $5 - local.get $9 - i32.gt_s - select - local.tee $5 - local.get $7 - local.get $2 - call $~lib/util/sort/insertionSort - end - local.get $3 - local.get $6 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $9 - i32.const 1 - i32.add - i64.extend_i32_u - local.tee $13 - i64.div_u - local.get $5 - local.get $6 - i32.add - i32.const 1 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $13 - i64.div_u - i64.xor - i32.wrap_i64 - i32.clz - local.set $7 - loop $for-loop|3 - local.get $1 - local.get $7 - i32.gt_u - if - local.get $1 - i32.const 2 - i32.shl - local.tee $14 - local.get $10 - i32.add - local.tee $15 - i32.load - local.tee $8 - i32.const -1 - i32.ne - if - local.get $11 - local.get $14 - i32.add - i32.load - i32.const 1 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $8 - local.get $3 - local.get $4 - local.get $12 - local.get $2 - call $~lib/util/sort/mergeRuns - local.get $15 - i32.const -1 - i32.store - local.get $8 - local.set $3 - end - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|3 - end - end - local.get $7 - i32.const 2 - i32.shl - local.tee $1 - local.get $10 - i32.add - local.get $3 - i32.store - local.get $1 - local.get $11 - i32.add - local.get $4 - i32.store - local.get $6 - local.set $3 - local.get $5 - local.set $4 - local.get $7 - local.set $1 - br $while-continue|2 - end + call $~lib/typedarray/Uint64Array#__get + i64.const 3 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable end - loop $for-loop|4 - local.get $1 - if - local.get $1 - i32.const 2 - i32.shl - local.tee $3 - local.get $10 - i32.add - i32.load - local.tee $4 - i32.const -1 - i32.ne - if - local.get $3 - local.get $11 - i32.add - i32.load - i32.const 1 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $4 - local.get $3 - local.get $9 - local.get $12 - local.get $2 - call $~lib/util/sort/mergeRuns - end - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|4 - end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint64Array#__get + i64.const 4 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 416 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $12 - call $~lib/rt/tlsf/__free - local.get $10 - call $~lib/rt/tlsf/__free global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint64Array#__get + i64.const 5 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 417 + 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/typedarray/Int32Array#sort (param $0 i32) (param $1 i32) (result 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 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 - local.tee $3 - i64.const 0 - i64.store - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $2 - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $2 - local.get $3 - local.get $1 - call $~lib/util/sort/SORT - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 + i32.const 2 + i32.gt_u ) - (func $std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32> + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32>" (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 @@ -53546,47 +51830,60 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $0 - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $0 + global.get $~lib/memory/__stack_pointer + i32.const 6 + call $~lib/typedarray/Uint32Array#constructor + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $8 i32.store offset=4 - local.get $0 - i32.const 2 + local.get $8 + i32.const 0 i32.const 1 - call $~lib/typedarray/Int32Array#__set + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $8 i32.store offset=4 - local.get $0 + local.get $8 i32.const 1 i32.const 2 - call $~lib/typedarray/Int32Array#__set + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $8 i32.store offset=4 - local.get $0 - i32.const 0 + local.get $8 + i32.const 2 i32.const 3 - call $~lib/typedarray/Int32Array#__set + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - local.set $1 + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $8 i32.store offset=4 - i32.const 0 - global.set $~argumentsLength + local.get $8 + i32.const 5 + i32.const 5 + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 12 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + 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 @@ -53594,136 +51891,180 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 i32.const 0 - i32.store offset=8 + i32.const 20 + memory.fill global.get $~lib/memory/__stack_pointer - i32.const 15664 + local.get $8 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 + i32.const 4144 i32.store offset=4 - local.get $2 - i32.const 15664 + global.get $~lib/memory/__stack_pointer + local.get $8 i32.store offset=8 - local.get $0 - i32.const 15664 - call $~lib/typedarray/Int32Array#sort - local.set $0 + local.get $8 + call $~lib/typedarray/Int32Array#get:length + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 2 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + i32.load offset=4 + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $7 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $5 + local.get $2 + local.get $8 + i32.const 4144 + i32.load + call_indirect (type $1) + if + local.get $4 + local.get $0 + i32.const 2 + i32.shl + i32.add + local.get $5 + i32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end local.get $1 + local.get $4 local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.shl + local.tee $0 + call $~lib/rt/itcms/__renew + local.tee $2 + i32.store + local.get $1 + local.get $2 + call $~lib/rt/itcms/__link + local.get $1 local.get $0 + i32.store offset=8 + local.get $1 + local.get $2 i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Int32Array#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 885 - i32.const 3 - call $~lib/builtins/abort - unreachable - end global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/typedarray/Int32Array#__get - i32.const 2 - i32.ne + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if i32.const 0 i32.const 1568 - i32.const 886 + i32.const 413 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 - i32.const 2 - call $~lib/typedarray/Int32Array#__get + local.get $1 + call $~lib/typedarray/Int32Array#get:length i32.const 3 i32.ne if i32.const 0 i32.const 1568 - i32.const 887 + i32.const 414 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 local.get $1 - i32.const 15696 - i32.store offset=12 - local.get $0 - i32.const 15696 - call $~lib/typedarray/Int32Array#sort - drop - global.get $~lib/memory/__stack_pointer - local.get $0 i32.store offset=4 - local.get $0 + local.get $1 i32.const 0 - call $~lib/typedarray/Int32Array#__get + call $~lib/typedarray/Uint32Array#__get i32.const 3 i32.ne if i32.const 0 i32.const 1568 - i32.const 889 + i32.const 415 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1 - call $~lib/typedarray/Int32Array#__get - i32.const 2 + call $~lib/typedarray/Uint32Array#__get + i32.const 4 i32.ne if i32.const 0 i32.const 1568 - i32.const 890 + i32.const 416 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 2 - call $~lib/typedarray/Int32Array#__get - i32.const 1 + call $~lib/typedarray/Uint32Array#__get + i32.const 5 i32.ne if i32.const 0 i32.const 1568 - i32.const 891 + i32.const 417 i32.const 3 call $~lib/builtins/abort unreachable @@ -53741,490 +52082,301 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 65535 + i32.and + i32.const 2 + i32.gt_u + ) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16>" + (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 i64) - (local $14 i32) - (local $15 i32) 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 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + 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 6 + call $~lib/typedarray/Uint16Array#constructor + local.tee $8 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 i32.const 1 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $folding-inner0 - local.get $1 - i32.const 48 - i32.le_s - if - local.get $1 - i32.const 1 - i32.le_s - br_if $folding-inner0 - block $break|0 - block $case1|0 - local.get $1 - i32.const 3 - i32.ne - if - local.get $1 - i32.const 2 - i32.eq - br_if $case1|0 - br $break|0 - end - local.get $0 - i32.load - local.set $1 - local.get $0 - i32.load offset=4 - local.set $3 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $3 - local.get $1 - local.get $1 - local.get $3 - local.get $2 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - local.tee $4 - select - i32.store - local.get $0 - i32.load offset=8 - local.set $5 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $5 - local.get $1 - local.get $3 - local.get $4 - select - local.tee $1 - local.get $1 - local.get $5 - local.get $2 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - local.tee $3 - select - i32.store offset=4 - local.get $0 - local.get $1 - local.get $5 - local.get $3 - select - i32.store offset=8 - end - local.get $0 - i32.load - local.set $1 - local.get $0 - i32.load offset=4 - local.set $3 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $3 - local.get $1 - local.get $1 - local.get $3 - local.get $2 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - local.tee $2 - select - i32.store - local.get $0 - local.get $1 - local.get $3 - local.get $2 - select - i32.store offset=4 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - i32.const 0 - local.get $1 - i32.const 1 - i32.sub - i32.const 0 - local.get $2 - call $~lib/util/sort/insertionSort - br $folding-inner0 - end - i32.const 33 - local.get $1 - i32.clz - i32.sub - local.tee $4 i32.const 2 - i32.shl - local.tee $5 - i32.const 1 - i32.shl - local.set $6 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - local.get $5 - global.get $~lib/rt/tlsf/ROOT - local.get $6 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $10 - i32.add - local.set $11 - loop $for-loop|1 - local.get $3 - local.get $4 - i32.lt_u - if - local.get $10 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.const -1 - i32.store - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|1 - 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 $1 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 i32.const 2 - i32.shl - call $~lib/rt/tlsf/allocateBlock + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 3 i32.const 4 - i32.add - local.set $12 + call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - i32.const 0 - local.get $1 - i32.const 1 + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 5 + i32.const 5 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4080 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 20 i32.sub - local.tee $9 - local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $4 - i32.const 1 - i32.add - local.tee $1 - i32.const 32 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - i32.const 0 - i32.const 31 - local.get $9 - local.get $9 - i32.const 31 - i32.ge_s - select - local.tee $4 - local.get $1 + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4080 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + call $~lib/typedarray/Int16Array#get:length + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + i32.load offset=4 + local.set $7 + loop $for-loop|0 local.get $2 - call $~lib/util/sort/insertionSort - end - i32.const 0 - local.set $1 - i32.const 0 - local.set $3 - loop $while-continue|2 - local.get $4 - local.get $9 + local.get $3 i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $4 - i32.const 1 - i32.add - local.tee $6 - local.get $9 + local.get $7 local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $5 - local.get $6 - i32.sub - i32.const 1 - i32.add - local.tee $7 - i32.const 32 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $6 - local.get $9 - local.get $6 - i32.const 31 - i32.add - local.tee $5 - local.get $5 - local.get $9 - i32.gt_s - select - local.tee $5 - local.get $7 - local.get $2 - call $~lib/util/sort/insertionSort - end - local.get $3 - local.get $6 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $9 - i32.const 1 - i32.add - i64.extend_i32_u - local.tee $13 - i64.div_u - local.get $5 - local.get $6 - i32.add i32.const 1 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $13 - i64.div_u - i64.xor - i32.wrap_i64 - i32.clz - local.set $7 - loop $for-loop|3 - local.get $1 - local.get $7 - i32.gt_u - if - local.get $1 - i32.const 2 - i32.shl - local.tee $14 - local.get $10 - i32.add - local.tee $15 - i32.load - local.tee $8 - i32.const -1 - i32.ne - if - local.get $11 - local.get $14 - i32.add - i32.load - i32.const 1 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $8 - local.get $3 - local.get $4 - local.get $12 - local.get $2 - call $~lib/util/sort/mergeRuns - local.get $15 - i32.const -1 - i32.store - local.get $8 - local.set $3 - end - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|3 - end - end - local.get $7 - i32.const 2 i32.shl - local.tee $1 - local.get $10 i32.add - local.get $3 - i32.store - local.get $1 - local.get $11 - i32.add - local.get $4 - i32.store - local.get $6 - local.set $3 + i32.load16_u + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength local.get $5 - local.set $4 - local.get $7 - local.set $1 - br $while-continue|2 - end - end - loop $for-loop|4 - local.get $1 - if - local.get $1 - i32.const 2 - i32.shl - local.tee $3 - local.get $10 - i32.add + local.get $2 + local.get $8 + i32.const 4080 i32.load - local.tee $4 - i32.const -1 - i32.ne + call_indirect (type $1) if - local.get $3 - local.get $11 - i32.add - i32.load + local.get $4 + local.get $0 i32.const 1 + i32.shl i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store + local.get $5 + i32.store16 local.get $0 - local.get $4 - local.get $3 - local.get $9 - local.get $12 - local.get $2 - call $~lib/util/sort/mergeRuns + i32.const 1 + i32.add + local.set $0 end - local.get $1 + local.get $2 i32.const 1 - i32.sub - local.set $1 - br $for-loop|4 + i32.add + local.set $2 + br $for-loop|0 end end - local.get $12 - call $~lib/rt/tlsf/__free - local.get $10 - call $~lib/rt/tlsf/__free + local.get $1 + local.get $4 + local.get $0 + i32.const 1 + i32.shl + local.tee $0 + call $~lib/rt/itcms/__renew + local.tee $2 + i32.store + local.get $1 + local.get $2 + call $~lib/rt/itcms/__link + local.get $1 + local.get $0 + i32.store offset=8 + local.get $1 + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + if + i32.const 0 + i32.const 1568 + i32.const 413 + 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/typedarray/Int16Array#get:length + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 414 + 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 0 + call $~lib/typedarray/Uint16Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 415 + 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 + call $~lib/typedarray/Uint16Array#__get i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 416 + 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/typedarray/Uint16Array#__get + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 417 + 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/typedarray/Uint32Array#sort (param $0 i32) (param $1 i32) (result 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 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 - local.tee $3 - i64.const 0 - i64.store - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $2 - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $2 - local.get $3 - local.get $1 - call $~lib/util/sort/SORT - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 + i32.extend8_s + i32.const 2 + i32.gt_s ) - (func $std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32> + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8>" (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 @@ -54235,47 +52387,60 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $0 - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $0 + global.get $~lib/memory/__stack_pointer + i32.const 6 + call $~lib/typedarray/Int8Array#constructor + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $8 i32.store offset=4 - local.get $0 - i32.const 2 + local.get $8 + i32.const 0 i32.const 1 - call $~lib/typedarray/Uint32Array#__set + call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $8 i32.store offset=4 - local.get $0 + local.get $8 i32.const 1 i32.const 2 - call $~lib/typedarray/Uint32Array#__set + call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $8 i32.store offset=4 - local.get $0 - i32.const 0 + local.get $8 + i32.const 2 i32.const 3 - call $~lib/typedarray/Uint32Array#__set + call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - local.set $1 + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $8 i32.store offset=4 - i32.const 0 - global.set $~argumentsLength + local.get $8 + i32.const 5 + i32.const 5 + call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - i32.const 12 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + 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 @@ -54283,639 +52448,203 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 i32.const 0 - i32.store offset=8 + i32.const 20 + memory.fill global.get $~lib/memory/__stack_pointer - i32.const 15728 + local.get $8 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 + i32.const 3952 i32.store offset=4 - local.get $2 - i32.const 15728 + global.get $~lib/memory/__stack_pointer + local.get $8 i32.store offset=8 - local.get $0 - i32.const 15728 - call $~lib/typedarray/Uint32Array#sort - local.set $0 + local.get $8 + call $~lib/typedarray/Int8Array#get:length + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + i32.load offset=4 + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $2 + local.get $7 + i32.add + i32.load8_s + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $5 + local.get $2 + local.get $8 + i32.const 3952 + i32.load + call_indirect (type $1) + if + local.get $0 + local.get $4 + i32.add + local.get $5 + i32.store8 + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + local.get $1 + local.get $4 + local.get $0 + call $~lib/rt/itcms/__renew + local.tee $2 + i32.store + local.get $1 + local.get $2 + call $~lib/rt/itcms/__link local.get $1 local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 + local.get $2 i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Uint32Array#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 885 - i32.const 3 - call $~lib/builtins/abort - unreachable - end global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/typedarray/Uint32Array#__get - i32.const 2 - i32.ne + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if i32.const 0 i32.const 1568 - i32.const 886 + i32.const 413 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 - i32.const 2 - call $~lib/typedarray/Uint32Array#__get + local.get $1 + call $~lib/typedarray/Int8Array#get:length i32.const 3 i32.ne if i32.const 0 i32.const 1568 - i32.const 887 + i32.const 414 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 local.get $1 - i32.const 15760 - i32.store offset=12 - local.get $0 - i32.const 15760 - call $~lib/typedarray/Uint32Array#sort - drop - global.get $~lib/memory/__stack_pointer - local.get $0 i32.store offset=4 - local.get $0 + local.get $1 i32.const 0 - call $~lib/typedarray/Uint32Array#__get + call $~lib/typedarray/Int8Array#__get i32.const 3 i32.ne if i32.const 0 i32.const 1568 - i32.const 889 - 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 1 - call $~lib/typedarray/Uint32Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 890 - 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 2 - call $~lib/typedarray/Uint32Array#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 891 + i32.const 415 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 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/sort/SORT (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 i64) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - (local $14 i32) - (local $15 i32) - (local $16 i64) - (local $17 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 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 - block $folding-inner0 local.get $1 - i32.const 48 - i32.le_s - if - local.get $1 - i32.const 1 - i32.le_s - br_if $folding-inner0 - block $break|0 - block $case1|0 - local.get $1 - i32.const 3 - i32.ne - if - local.get $1 - i32.const 2 - i32.eq - br_if $case1|0 - br $break|0 - end - local.get $0 - i64.load - local.set $9 - local.get $0 - i64.load offset=8 - local.set $16 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $16 - local.get $9 - local.get $9 - local.get $16 - local.get $2 - i32.load - call_indirect (type $7) - i32.const 0 - i32.gt_s - local.tee $1 - select - i64.store - local.get $0 - i64.load offset=16 - local.set $17 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $17 - local.get $9 - local.get $16 - local.get $1 - select - local.tee $9 - local.get $9 - local.get $17 - local.get $2 - i32.load - call_indirect (type $7) - i32.const 0 - i32.gt_s - local.tee $1 - select - i64.store offset=8 - local.get $0 - local.get $9 - local.get $17 - local.get $1 - select - i64.store offset=16 - end - local.get $0 - i64.load - local.set $9 - local.get $0 - i64.load offset=8 - local.set $16 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $16 - local.get $9 - local.get $9 - local.get $16 - local.get $2 - i32.load - call_indirect (type $7) - i32.const 0 - i32.gt_s - local.tee $1 - select - i64.store - local.get $0 - local.get $9 - local.get $16 - local.get $1 - select - i64.store offset=8 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - i32.const 0 - local.get $1 - i32.const 1 - i32.sub - i32.const 0 - local.get $2 - call $~lib/util/sort/insertionSort - br $folding-inner0 - end - i32.const 33 + i32.store offset=4 local.get $1 - i32.clz - i32.sub - local.tee $4 - i32.const 2 - i32.shl - local.tee $5 i32.const 1 - i32.shl - local.set $6 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - local.get $5 - global.get $~lib/rt/tlsf/ROOT - local.get $6 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $11 - i32.add - local.set $12 - loop $for-loop|1 - local.get $3 - local.get $4 - i32.lt_u - if - local.get $11 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.const -1 - i32.store - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|1 - 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 $1 - i32.const 3 - i32.shl - call $~lib/rt/tlsf/allocateBlock + call $~lib/typedarray/Int8Array#__get i32.const 4 - i32.add - local.set $13 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - i32.const 0 - local.get $1 - i32.const 1 - i32.sub - local.tee $10 - local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $4 - i32.const 1 - i32.add - local.tee $1 - i32.const 32 - i32.lt_s + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 i32.const 0 - i32.const 31 - local.get $10 - local.get $10 - i32.const 31 - i32.ge_s - select - local.tee $4 - local.get $1 - local.get $2 - call $~lib/util/sort/insertionSort - end - i32.const 0 - local.set $1 - i32.const 0 - local.set $3 - loop $while-continue|2 - local.get $4 - local.get $10 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $4 - i32.const 1 - i32.add - local.tee $6 - local.get $10 - local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $5 - local.get $6 - i32.sub - i32.const 1 - i32.add - local.tee $7 - i32.const 32 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $6 - local.get $10 - local.get $6 - i32.const 31 - i32.add - local.tee $5 - local.get $5 - local.get $10 - i32.gt_s - select - local.tee $5 - local.get $7 - local.get $2 - call $~lib/util/sort/insertionSort - end - local.get $3 - local.get $6 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $10 - i32.const 1 - i32.add - i64.extend_i32_u - local.tee $9 - i64.div_u - local.get $5 - local.get $6 - i32.add - i32.const 1 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $9 - i64.div_u - i64.xor - i32.wrap_i64 - i32.clz - local.set $7 - loop $for-loop|3 - local.get $1 - local.get $7 - i32.gt_u - if - local.get $1 - i32.const 2 - i32.shl - local.tee $14 - local.get $11 - i32.add - local.tee $15 - i32.load - local.tee $8 - i32.const -1 - i32.ne - if - local.get $12 - local.get $14 - i32.add - i32.load - i32.const 1 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $8 - local.get $3 - local.get $4 - local.get $13 - local.get $2 - call $~lib/util/sort/mergeRuns - local.get $15 - i32.const -1 - i32.store - local.get $8 - local.set $3 - end - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|3 - end - end - local.get $7 - i32.const 2 - i32.shl - local.tee $1 - local.get $11 - i32.add - local.get $3 - i32.store - local.get $1 - local.get $12 - i32.add - local.get $4 - i32.store - local.get $6 - local.set $3 - local.get $5 - local.set $4 - local.get $7 - local.set $1 - br $while-continue|2 - end - end - loop $for-loop|4 - local.get $1 - if - local.get $1 - i32.const 2 - i32.shl - local.tee $3 - local.get $11 - i32.add - i32.load - local.tee $4 - i32.const -1 - i32.ne - if - local.get $3 - local.get $12 - i32.add - i32.load - i32.const 1 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $4 - local.get $3 - local.get $10 - local.get $13 - local.get $2 - call $~lib/util/sort/mergeRuns - end - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|4 - end + i32.const 1568 + i32.const 416 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $13 - call $~lib/rt/tlsf/__free - local.get $11 - call $~lib/rt/tlsf/__free global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Int8Array#__get + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 417 + 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/typedarray/Int64Array#sort (param $0 i32) (param $1 i32) (result 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 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 - local.tee $3 - i64.const 0 - i64.store - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $2 - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $2 - local.get $3 - local.get $1 - call $~lib/util/sort/SORT - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64>~anonymous|0" (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 + i64.const 2 + i64.gt_s ) - (func $std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64> + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64>" (local $0 i32) (local $1 i32) (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i64) + (local $6 i32) + (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -54926,47 +52655,60 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $0 - i32.const 3 + global.get $~lib/memory/__stack_pointer + i32.const 6 call $~lib/typedarray/Int64Array#constructor - local.tee $0 + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $8 i32.store offset=4 - local.get $0 - i32.const 2 + local.get $8 + i32.const 0 i64.const 1 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $8 i32.store offset=4 - local.get $0 + local.get $8 i32.const 1 i64.const 2 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $8 i32.store offset=4 - local.get $0 - i32.const 0 + local.get $8 + i32.const 2 i64.const 3 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.set $1 + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 3 + i64.const 4 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $8 i32.store offset=4 - i32.const 0 - global.set $~argumentsLength + local.get $8 + i32.const 5 + i64.const 5 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 12 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + 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 @@ -54974,96 +52716,140 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 i32.const 0 - i32.store offset=8 + i32.const 20 + memory.fill global.get $~lib/memory/__stack_pointer - i32.const 15792 + local.get $8 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 + i32.const 4176 i32.store offset=4 - local.get $2 - i32.const 15792 + global.get $~lib/memory/__stack_pointer + local.get $8 i32.store offset=8 - local.get $0 - i32.const 15792 - call $~lib/typedarray/Int64Array#sort - local.set $0 + local.get $8 + call $~lib/typedarray/Int64Array#get:length + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 3 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + i32.load offset=4 + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $7 + local.get $2 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $5 + local.get $2 + local.get $8 + i32.const 4176 + i32.load + call_indirect (type $8) + if + local.get $4 + local.get $0 + i32.const 3 + i32.shl + i32.add + local.get $5 + i64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end local.get $1 + local.get $4 local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer + i32.const 3 + i32.shl + local.tee $0 + call $~lib/rt/itcms/__renew + local.tee $2 + i32.store + local.get $1 + local.get $2 + call $~lib/rt/itcms/__link + local.get $1 local.get $0 + i32.store offset=8 + local.get $1 + local.get $2 i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Int64Array#__get - i64.const 1 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 885 - i32.const 3 - call $~lib/builtins/abort - unreachable - end global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/typedarray/Int64Array#__get - i64.const 2 - i64.ne + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if i32.const 0 i32.const 1568 - i32.const 886 + i32.const 413 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 - i32.const 2 - call $~lib/typedarray/Int64Array#__get - i64.const 3 - i64.ne + local.get $1 + call $~lib/typedarray/Int64Array#get:length + i32.const 3 + i32.ne if i32.const 0 i32.const 1568 - i32.const 887 + i32.const 414 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 local.get $1 - i32.const 15824 - i32.store offset=12 - local.get $0 - i32.const 15824 - call $~lib/typedarray/Int64Array#sort - drop - global.get $~lib/memory/__stack_pointer - local.get $0 i32.store offset=4 - local.get $0 + local.get $1 i32.const 0 call $~lib/typedarray/Int64Array#__get i64.const 3 @@ -55071,39 +52857,39 @@ if i32.const 0 i32.const 1568 - i32.const 889 + i32.const 415 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1 call $~lib/typedarray/Int64Array#__get - i64.const 2 + i64.const 4 i64.ne if i32.const 0 i32.const 1568 - i32.const 890 + i32.const 416 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 2 call $~lib/typedarray/Int64Array#__get - i64.const 1 + i64.const 5 i64.ne if i32.const 0 i32.const 1568 - i32.const 891 + i32.const 417 i32.const 3 call $~lib/builtins/abort unreachable @@ -55121,492 +52907,299 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 2 + i32.gt_s + ) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32>" + (local $0 i32) + (local $1 i32) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i64) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - (local $14 i32) - (local $15 i32) - (local $16 i64) - (local $17 i64) 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 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 block $folding-inner0 - local.get $1 - i32.const 48 - i32.le_s - if - local.get $1 - i32.const 1 - i32.le_s - br_if $folding-inner0 - block $break|0 - block $case1|0 - local.get $1 - i32.const 3 - i32.ne - if - local.get $1 - i32.const 2 - i32.eq - br_if $case1|0 - br $break|0 - end - local.get $0 - i64.load - local.set $9 - local.get $0 - i64.load offset=8 - local.set $16 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $16 - local.get $9 - local.get $9 - local.get $16 - local.get $2 - i32.load - call_indirect (type $7) - i32.const 0 - i32.gt_s - local.tee $1 - select - i64.store - local.get $0 - i64.load offset=16 - local.set $17 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $17 - local.get $9 - local.get $16 - local.get $1 - select - local.tee $9 - local.get $9 - local.get $17 - local.get $2 - i32.load - call_indirect (type $7) - i32.const 0 - i32.gt_s - local.tee $1 - select - i64.store offset=8 - local.get $0 - local.get $9 - local.get $17 - local.get $1 - select - i64.store offset=16 - end - local.get $0 - i64.load - local.set $9 - local.get $0 - i64.load offset=8 - local.set $16 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $16 - local.get $9 - local.get $9 - local.get $16 - local.get $2 - i32.load - call_indirect (type $7) - i32.const 0 - i32.gt_s - local.tee $1 - select - i64.store - local.get $0 - local.get $9 - local.get $16 - local.get $1 - select - i64.store offset=8 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - i32.const 0 - local.get $1 - i32.const 1 - i32.sub - i32.const 0 - local.get $2 - call $~lib/util/sort/insertionSort - br $folding-inner0 - end - i32.const 33 - local.get $1 - i32.clz - i32.sub - local.tee $4 - i32.const 2 - i32.shl - local.tee $5 - i32.const 1 - i32.shl - local.set $6 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - local.get $5 - global.get $~lib/rt/tlsf/ROOT - local.get $6 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $11 - i32.add - local.set $12 - loop $for-loop|1 - local.get $3 - local.get $4 - i32.lt_u - if - local.get $11 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.const -1 - i32.store - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|1 - 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 $1 - i32.const 3 - i32.shl - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.set $13 global.get $~lib/memory/__stack_pointer - local.get $2 + i32.const 16320 + 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 6 + call $~lib/typedarray/Int32Array#constructor + local.tee $8 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 i32.const 0 - local.get $1 i32.const 1 - i32.sub - local.tee $10 - local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $4 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 i32.const 1 - i32.add - local.tee $1 - i32.const 32 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 5 + i32.const 5 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + 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 16320 i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - i32.const 0 - i32.const 31 - local.get $10 - local.get $10 - i32.const 31 - i32.ge_s - select - local.tee $4 - local.get $1 - local.get $2 - call $~lib/util/sort/insertionSort - end - i32.const 0 - local.set $1 + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4112 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + call $~lib/typedarray/Int32Array#get:length local.set $3 - loop $while-continue|2 - local.get $4 - local.get $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 2 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + i32.load offset=4 + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $3 i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $4 - i32.const 1 - i32.add - local.tee $6 - local.get $10 - local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $5 - local.get $6 - i32.sub - i32.const 1 - i32.add - local.tee $7 - i32.const 32 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $6 - local.get $10 - local.get $6 - i32.const 31 - i32.add - local.tee $5 - local.get $5 - local.get $10 - i32.gt_s - select - local.tee $5 - local.get $7 - local.get $2 - call $~lib/util/sort/insertionSort - end - local.get $3 - local.get $6 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $10 - i32.const 1 - i32.add - i64.extend_i32_u - local.tee $9 - i64.div_u - local.get $5 - local.get $6 - i32.add - i32.const 1 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $9 - i64.div_u - i64.xor - i32.wrap_i64 - i32.clz - local.set $7 - loop $for-loop|3 - local.get $1 - local.get $7 - i32.gt_u - if - local.get $1 - i32.const 2 - i32.shl - local.tee $14 - local.get $11 - i32.add - local.tee $15 - i32.load - local.tee $8 - i32.const -1 - i32.ne - if - local.get $12 - local.get $14 - i32.add - i32.load - i32.const 1 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $8 - local.get $3 - local.get $4 - local.get $13 - local.get $2 - call $~lib/util/sort/mergeRuns - local.get $15 - i32.const -1 - i32.store - local.get $8 - local.set $3 - end - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|3 - end - end local.get $7 + local.get $2 i32.const 2 i32.shl - local.tee $1 - local.get $11 - i32.add - local.get $3 - i32.store - local.get $1 - local.get $12 i32.add - local.get $4 - i32.store - local.get $6 - local.set $3 + i32.load + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength local.get $5 - local.set $4 - local.get $7 - local.set $1 - br $while-continue|2 - end - end - loop $for-loop|4 - local.get $1 - if - local.get $1 - i32.const 2 - i32.shl - local.tee $3 - local.get $11 - i32.add + local.get $2 + local.get $8 + i32.const 4112 i32.load - local.tee $4 - i32.const -1 - i32.ne + call_indirect (type $1) if - local.get $3 - local.get $12 - i32.add - i32.load - i32.const 1 + local.get $4 + local.get $0 + i32.const 2 + i32.shl i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $5 i32.store local.get $0 - local.get $4 - local.get $3 - local.get $10 - local.get $13 - local.get $2 - call $~lib/util/sort/mergeRuns + i32.const 1 + i32.add + local.set $0 end - local.get $1 + local.get $2 i32.const 1 - i32.sub - local.set $1 - br $for-loop|4 + i32.add + local.set $2 + br $for-loop|0 end end - local.get $13 - call $~lib/rt/tlsf/__free - local.get $11 - call $~lib/rt/tlsf/__free + local.get $1 + local.get $4 + local.get $0 + i32.const 2 + i32.shl + local.tee $0 + call $~lib/rt/itcms/__renew + local.tee $2 + i32.store + local.get $1 + local.get $2 + call $~lib/rt/itcms/__link + local.get $1 + local.get $0 + i32.store offset=8 + local.get $1 + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + if + i32.const 0 + i32.const 1568 + i32.const 413 + 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/typedarray/Int32Array#get:length + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 414 + 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 0 + call $~lib/typedarray/Int32Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 415 + 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 + call $~lib/typedarray/Int32Array#__get i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 416 + 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/typedarray/Int32Array#__get + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 417 + 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/typedarray/Uint64Array#sort (param $0 i32) (param $1 i32) (result 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 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 - local.tee $3 - i64.const 0 - i64.store - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $2 - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $2 - local.get $3 - local.get $1 - call $~lib/util/sort/SORT - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 + i32.extend16_s + i32.const 2 + i32.gt_s ) - (func $std/typedarray/testArraySort<~lib/typedarray/Uint64Array,u64> + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16>" (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 @@ -55617,47 +53210,60 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $0 - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $0 + global.get $~lib/memory/__stack_pointer + i32.const 6 + call $~lib/typedarray/Int16Array#constructor + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $8 i32.store offset=4 - local.get $0 - i32.const 2 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set + local.get $8 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $8 i32.store offset=4 - local.get $0 + local.get $8 i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set + i32.const 2 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $8 i32.store offset=4 - local.get $0 - i32.const 0 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set + local.get $8 + i32.const 5 + i32.const 5 + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $8 i32.store offset=4 - i32.const 0 - global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - i32.const 12 + 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 @@ -55665,136 +53271,180 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 i32.const 0 - i32.store offset=8 + i32.const 20 + memory.fill global.get $~lib/memory/__stack_pointer - i32.const 15856 + local.get $8 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 + i32.const 4048 i32.store offset=4 - local.get $2 - i32.const 15856 + global.get $~lib/memory/__stack_pointer + local.get $8 i32.store offset=8 - local.get $0 - i32.const 15856 - call $~lib/typedarray/Uint64Array#sort - local.set $0 + local.get $8 + call $~lib/typedarray/Int16Array#get:length + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + i32.load offset=4 + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $7 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $5 + local.get $2 + local.get $8 + i32.const 4048 + i32.load + call_indirect (type $1) + if + local.get $4 + local.get $0 + i32.const 1 + i32.shl + i32.add + local.get $5 + i32.store16 + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end local.get $1 + local.get $4 local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer + i32.const 1 + i32.shl + local.tee $0 + call $~lib/rt/itcms/__renew + local.tee $2 + i32.store + local.get $1 + local.get $2 + call $~lib/rt/itcms/__link + local.get $1 local.get $0 + i32.store offset=8 + local.get $1 + local.get $2 i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Uint64Array#__get - i64.const 1 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 885 - i32.const 3 - call $~lib/builtins/abort - unreachable - end global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/typedarray/Uint64Array#__get - i64.const 2 - i64.ne + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if i32.const 0 i32.const 1568 - i32.const 886 + i32.const 413 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 - i32.const 2 - call $~lib/typedarray/Uint64Array#__get - i64.const 3 - i64.ne + local.get $1 + call $~lib/typedarray/Int16Array#get:length + i32.const 3 + i32.ne if i32.const 0 i32.const 1568 - i32.const 887 + i32.const 414 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 local.get $1 - i32.const 15888 - i32.store offset=12 - local.get $0 - i32.const 15888 - call $~lib/typedarray/Uint64Array#sort - drop - global.get $~lib/memory/__stack_pointer - local.get $0 i32.store offset=4 - local.get $0 + local.get $1 i32.const 0 - call $~lib/typedarray/Uint64Array#__get - i64.const 3 - i64.ne + call $~lib/typedarray/Int16Array#__get + i32.const 3 + i32.ne if i32.const 0 i32.const 1568 - i32.const 889 + i32.const 415 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1 - call $~lib/typedarray/Uint64Array#__get - i64.const 2 - i64.ne + call $~lib/typedarray/Int16Array#__get + i32.const 4 + i32.ne if i32.const 0 i32.const 1568 - i32.const 890 + i32.const 416 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 2 - call $~lib/typedarray/Uint64Array#__get - i64.const 1 - i64.ne + call $~lib/typedarray/Int16Array#__get + i32.const 5 + i32.ne if i32.const 0 i32.const 1568 - i32.const 891 + i32.const 417 i32.const 3 call $~lib/builtins/abort unreachable @@ -55812,493 +53462,298 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64>~anonymous|0" (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + f64.const 2 + f64.gt + ) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64>" + (local $0 i32) + (local $1 i32) + (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) + (local $5 f64) (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 f32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - (local $14 i64) - (local $15 i32) - (local $16 i32) - (local $17 f32) - (local $18 f32) 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 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 block $folding-inner0 - local.get $1 - i32.const 48 - i32.le_s - if - local.get $1 - i32.const 1 - i32.le_s - br_if $folding-inner0 - block $break|0 - block $case1|0 - local.get $1 - i32.const 3 - i32.ne - if - local.get $1 - i32.const 2 - i32.eq - br_if $case1|0 - br $break|0 - end - local.get $0 - f32.load - local.set $9 - local.get $0 - f32.load offset=4 - local.set $17 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $17 - local.get $9 - local.get $9 - local.get $17 - local.get $2 - i32.load - call_indirect (type $11) - i32.const 0 - i32.gt_s - local.tee $1 - select - f32.store - local.get $0 - f32.load offset=8 - local.set $18 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $18 - local.get $9 - local.get $17 - local.get $1 - select - local.tee $9 - local.get $9 - local.get $18 - local.get $2 - i32.load - call_indirect (type $11) - i32.const 0 - i32.gt_s - local.tee $1 - select - f32.store offset=4 - local.get $0 - local.get $9 - local.get $18 - local.get $1 - select - f32.store offset=8 - end - local.get $0 - f32.load - local.set $9 - local.get $0 - f32.load offset=4 - local.set $17 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $17 - local.get $9 - local.get $9 - local.get $17 - local.get $2 - i32.load - call_indirect (type $11) - i32.const 0 - i32.gt_s - local.tee $1 - select - f32.store - local.get $0 - local.get $9 - local.get $17 - local.get $1 - select - f32.store offset=4 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - i32.const 0 - local.get $1 - i32.const 1 - i32.sub - i32.const 0 - local.get $2 - call $~lib/util/sort/insertionSort - br $folding-inner0 - end - i32.const 33 - local.get $1 - i32.clz - i32.sub - local.tee $4 - i32.const 2 - i32.shl - local.tee $5 - i32.const 1 - i32.shl - local.set $6 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - local.get $5 - global.get $~lib/rt/tlsf/ROOT - local.get $6 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $11 - i32.add - local.set $12 - loop $for-loop|1 - local.get $3 - local.get $4 - i32.lt_u - if - local.get $11 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.const -1 - i32.store - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|1 - 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 $1 - i32.const 2 - i32.shl - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.set $13 global.get $~lib/memory/__stack_pointer - local.get $2 + i32.const 16320 + 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 6 + call $~lib/typedarray/Float64Array#constructor + local.tee $8 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 i32.const 0 - local.get $1 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 3 + f64.const 4 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 5 + f64.const 5 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4272 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 20 i32.sub - local.tee $10 - local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $4 - i32.const 1 - i32.add - local.tee $1 - i32.const 32 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - i32.const 0 - i32.const 31 - local.get $10 - local.get $10 - i32.const 31 - i32.ge_s - select - local.tee $4 - local.get $1 + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4272 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + call $~lib/typedarray/Int64Array#get:length + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 14 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 3 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + i32.load offset=4 + local.set $7 + loop $for-loop|0 local.get $2 - call $~lib/util/sort/insertionSort - end - i32.const 0 - local.set $1 - i32.const 0 - local.set $3 - loop $while-continue|2 - local.get $4 - local.get $10 + local.get $3 i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $4 - i32.const 1 - i32.add - local.tee $6 - local.get $10 - local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $5 - local.get $6 - i32.sub - i32.const 1 - i32.add - local.tee $7 - i32.const 32 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $6 - local.get $10 - local.get $6 - i32.const 31 - i32.add - local.tee $5 - local.get $5 - local.get $10 - i32.gt_s - select - local.tee $5 - local.get $7 - local.get $2 - call $~lib/util/sort/insertionSort - end - local.get $3 - local.get $6 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $10 - i32.const 1 - i32.add - i64.extend_i32_u - local.tee $14 - i64.div_u - local.get $5 - local.get $6 - i32.add - i32.const 1 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $14 - i64.div_u - i64.xor - i32.wrap_i64 - i32.clz - local.set $7 - loop $for-loop|3 - local.get $1 - local.get $7 - i32.gt_u - if - local.get $1 - i32.const 2 - i32.shl - local.tee $15 - local.get $11 - i32.add - local.tee $16 - i32.load - local.tee $8 - i32.const -1 - i32.ne - if - local.get $12 - local.get $15 - i32.add - i32.load - i32.const 1 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $8 - local.get $3 - local.get $4 - local.get $13 - local.get $2 - call $~lib/util/sort/mergeRuns - local.get $16 - i32.const -1 - i32.store - local.get $8 - local.set $3 - end - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|3 - end - end local.get $7 - i32.const 2 + local.get $2 + i32.const 3 i32.shl - local.tee $1 - local.get $11 - i32.add - local.get $3 - i32.store - local.get $1 - local.get $12 i32.add - local.get $4 - i32.store - local.get $6 - local.set $3 + f64.load + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength local.get $5 - local.set $4 - local.get $7 - local.set $1 - br $while-continue|2 - end - end - loop $for-loop|4 - local.get $1 - if - local.get $1 - i32.const 2 - i32.shl - local.tee $3 - local.get $11 - i32.add + local.get $2 + local.get $8 + i32.const 4272 i32.load - local.tee $4 - i32.const -1 - i32.ne + call_indirect (type $12) if - local.get $3 - local.get $12 + local.get $4 + local.get $0 + i32.const 3 + i32.shl i32.add - i32.load + local.get $5 + f64.store + local.get $0 i32.const 1 i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $4 - local.get $3 - local.get $10 - local.get $13 - local.get $2 - call $~lib/util/sort/mergeRuns + local.set $0 end - local.get $1 + local.get $2 i32.const 1 - i32.sub - local.set $1 - br $for-loop|4 + i32.add + local.set $2 + br $for-loop|0 end end - local.get $13 - call $~lib/rt/tlsf/__free - local.get $11 - call $~lib/rt/tlsf/__free + local.get $1 + local.get $4 + local.get $0 + i32.const 3 + i32.shl + local.tee $0 + call $~lib/rt/itcms/__renew + local.tee $2 + i32.store + local.get $1 + local.get $2 + call $~lib/rt/itcms/__link + local.get $1 + local.get $0 + i32.store offset=8 + local.get $1 + local.get $2 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + if + i32.const 0 + i32.const 1568 + i32.const 413 + 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/typedarray/Int64Array#get:length + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 414 + 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 0 + call $~lib/typedarray/Float64Array#__get + f64.const 3 + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 415 + 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 + call $~lib/typedarray/Float64Array#__get + f64.const 4 + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 416 + 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/typedarray/Float64Array#__get + f64.const 5 + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 417 + 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/typedarray/Float32Array#sort (param $0 i32) (param $1 i32) (result 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 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 - local.tee $3 - i64.const 0 - i64.store - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $2 - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $2 - local.get $3 - local.get $1 - call $~lib/util/sort/SORT - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32>~anonymous|0" (param $0 f32) (param $1 i32) (param $2 i32) (result i32) local.get $0 + f32.const 2 + f32.gt ) - (func $std/typedarray/testArraySort<~lib/typedarray/Float32Array,f32> + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32>" (local $0 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 16 i32.sub @@ -56309,144 +53764,201 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $0 - i32.const 3 + global.get $~lib/memory/__stack_pointer + i32.const 6 call $~lib/typedarray/Float32Array#constructor - local.tee $0 + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 3 + f32.const 4 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 5 + f32.const 5 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + 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 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4240 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + call $~lib/typedarray/Int32Array#get:length + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 2 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + i32.load offset=4 + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $7 + local.get $2 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $5 + local.get $2 + local.get $8 + i32.const 4240 + i32.load + call_indirect (type $13) + if + local.get $4 + local.get $0 + i32.const 2 + i32.shl + i32.add + local.get $5 + f32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + local.get $1 + local.get $4 local.get $0 i32.const 2 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - f32.const 3 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 0 - global.set $~argumentsLength - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer + i32.shl + local.tee $0 + call $~lib/rt/itcms/__renew local.tee $2 - i64.const 0 - i64.store - local.get $2 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 15920 i32.store - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store offset=4 + local.get $1 local.get $2 - i32.const 15920 - i32.store offset=8 + call $~lib/rt/itcms/__link + local.get $1 local.get $0 - i32.const 15920 - call $~lib/typedarray/Float32Array#sort - local.set $0 + i32.store offset=8 + local.get $1 + local.get $2 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer local.get $1 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Float32Array#__get - f32.const 1 - f32.ne - if - i32.const 0 - i32.const 1568 - i32.const 885 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/typedarray/Float32Array#__get - f32.const 2 - f32.ne + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if i32.const 0 i32.const 1568 - i32.const 886 + i32.const 413 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 - i32.const 2 - call $~lib/typedarray/Float32Array#__get - f32.const 3 - f32.ne + local.get $1 + call $~lib/typedarray/Int32Array#get:length + i32.const 3 + i32.ne if i32.const 0 i32.const 1568 - i32.const 887 + i32.const 414 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 local.get $1 - i32.const 15952 - i32.store offset=12 - local.get $0 - i32.const 15952 - call $~lib/typedarray/Float32Array#sort - drop - global.get $~lib/memory/__stack_pointer - local.get $0 i32.store offset=4 - local.get $0 + local.get $1 i32.const 0 call $~lib/typedarray/Float32Array#__get f32.const 3 @@ -56454,39 +53966,39 @@ if i32.const 0 i32.const 1568 - i32.const 889 + i32.const 415 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1 call $~lib/typedarray/Float32Array#__get - f32.const 2 + f32.const 4 f32.ne if i32.const 0 i32.const 1568 - i32.const 890 + i32.const 416 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 2 call $~lib/typedarray/Float32Array#__get - f32.const 1 + f32.const 5 f32.ne if i32.const 0 i32.const 1568 - i32.const 891 + i32.const 417 i32.const 3 call $~lib/builtins/abort unreachable @@ -56504,6 +54016,331 @@ call $~lib/builtins/abort unreachable ) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|0" (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i64.const 1 + i64.and + i64.eqz + ) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.extend8_s + i32.const 1 + i32.and + i32.eqz + ) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.extend16_s + i32.const 1 + i32.and + i32.eqz + ) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0" (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (local $3 i64) + (local $4 i64) + (local $5 i64) + (local $6 i64) + block $__inlined_func$~lib/math/NativeMath.mod$1 (result f64) + local.get $0 + i64.reinterpret_f64 + local.tee $4 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + local.tee $6 + i64.const 2047 + i64.eq + if + local.get $0 + local.get $0 + f64.add + local.tee $0 + local.get $0 + f64.div + br $__inlined_func$~lib/math/NativeMath.mod$1 + end + local.get $4 + i64.const 1 + i64.shl + local.tee $3 + i64.const -9223372036854775808 + i64.le_u + if + local.get $0 + local.get $3 + i64.const -9223372036854775808 + i64.ne + f64.convert_i32_u + f64.mul + br $__inlined_func$~lib/math/NativeMath.mod$1 + end + local.get $4 + i64.const 63 + i64.shr_u + local.set $5 + local.get $6 + i64.eqz + if (result i64) + local.get $4 + i64.const 1 + local.get $6 + local.get $4 + i64.const 12 + i64.shl + i64.clz + i64.sub + local.tee $6 + i64.sub + i64.shl + else + local.get $4 + i64.const 4503599627370495 + i64.and + i64.const 4503599627370496 + i64.or + end + local.set $3 + loop $while-continue|0 + local.get $6 + i64.const 1024 + i64.gt_s + if + local.get $3 + i64.const 4503599627370496 + i64.ge_u + if (result i64) + local.get $0 + f64.const 0 + f64.mul + local.get $3 + i64.const 4503599627370496 + i64.eq + br_if $__inlined_func$~lib/math/NativeMath.mod$1 + drop + local.get $3 + i64.const 4503599627370496 + i64.sub + else + local.get $3 + end + i64.const 1 + i64.shl + local.set $3 + local.get $6 + i64.const 1 + i64.sub + local.set $6 + br $while-continue|0 + end + end + local.get $3 + i64.const 4503599627370496 + i64.ge_u + if + local.get $0 + f64.const 0 + f64.mul + local.get $3 + i64.const 4503599627370496 + i64.eq + br_if $__inlined_func$~lib/math/NativeMath.mod$1 + drop + local.get $3 + i64.const 4503599627370496 + i64.sub + local.set $3 + end + local.get $6 + local.get $3 + i64.const 11 + i64.shl + i64.clz + local.tee $4 + i64.sub + local.set $6 + local.get $3 + local.get $4 + i64.shl + local.set $3 + local.get $6 + i64.const 0 + i64.gt_s + if (result i64) + local.get $3 + i64.const 4503599627370496 + i64.sub + local.get $6 + i64.const 52 + i64.shl + i64.or + else + local.get $3 + i64.const 1 + local.get $6 + i64.sub + i64.shr_u + end + local.get $5 + i64.const 63 + i64.shl + i64.or + f64.reinterpret_i64 + end + f64.const 0 + f64.eq + ) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0" (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + block $__inlined_func$~lib/math/NativeMathf.mod (result f32) + local.get $0 + i32.reinterpret_f32 + local.tee $1 + i32.const 23 + i32.shr_u + i32.const 255 + i32.and + local.tee $2 + i32.const 255 + i32.eq + if + local.get $0 + local.get $0 + f32.add + local.tee $0 + local.get $0 + f32.div + br $__inlined_func$~lib/math/NativeMathf.mod + end + local.get $1 + i32.const 1 + i32.shl + local.tee $3 + i32.const -2147483648 + i32.le_u + if + local.get $0 + local.get $3 + i32.const -2147483648 + i32.ne + f32.convert_i32_u + f32.mul + br $__inlined_func$~lib/math/NativeMathf.mod + end + local.get $1 + i32.const -2147483648 + i32.and + local.set $3 + local.get $2 + if (result i32) + local.get $1 + i32.const 8388607 + i32.and + i32.const 8388608 + i32.or + else + local.get $1 + i32.const 1 + local.get $2 + local.get $1 + i32.const 9 + i32.shl + i32.clz + i32.sub + local.tee $2 + i32.sub + i32.shl + end + local.set $1 + loop $while-continue|0 + local.get $2 + i32.const 128 + i32.gt_s + if + local.get $1 + i32.const 8388608 + i32.ge_u + if (result i32) + local.get $0 + f32.const 0 + f32.mul + local.get $1 + i32.const 8388608 + i32.eq + br_if $__inlined_func$~lib/math/NativeMathf.mod + drop + local.get $1 + i32.const 8388608 + i32.sub + else + local.get $1 + end + i32.const 1 + i32.shl + local.set $1 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + local.get $1 + i32.const 8388608 + i32.ge_u + if + local.get $0 + f32.const 0 + f32.mul + local.get $1 + i32.const 8388608 + i32.eq + br_if $__inlined_func$~lib/math/NativeMathf.mod + drop + local.get $1 + i32.const 8388608 + i32.sub + local.set $1 + end + local.get $2 + local.get $1 + i32.const 8 + i32.shl + i32.clz + local.tee $4 + i32.sub + local.set $2 + local.get $1 + local.get $4 + i32.shl + local.set $1 + local.get $2 + i32.const 0 + i32.gt_s + if (result i32) + local.get $1 + i32.const 8388608 + i32.sub + local.get $2 + i32.const 23 + i32.shl + i32.or + else + local.get $1 + i32.const 1 + local.get $2 + i32.sub + i32.shr_u + end + local.get $3 + i32.or + f32.reinterpret_i32 + end + f32.const 0 + f32.eq + ) (func $start:std/typedarray (local $0 i32) (local $1 i32) @@ -56522,15 +54359,15 @@ i32.const 124 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner25 - block $folding-inner24 - block $folding-inner23 - block $folding-inner22 - block $folding-inner21 - block $folding-inner20 - block $folding-inner19 - block $folding-inner18 - block $folding-inner17 + block $folding-inner23 + block $folding-inner22 + block $folding-inner21 + block $folding-inner20 + block $folding-inner19 + block $folding-inner18 + block $folding-inner17 + block $folding-inner16 + block $folding-inner15 block $folding-inner13 block $folding-inner12 block $folding-inner11 @@ -56545,7 +54382,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 124 @@ -56704,10 +54541,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $7 local.get $6 i32.store offset=4 - local.get $7 + global.get $~lib/memory/__stack_pointer local.get $6 i32.const 1 i32.const 2 @@ -57227,10 +55063,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $7 local.get $6 i32.store offset=4 - local.get $7 + global.get $~lib/memory/__stack_pointer local.get $6 i32.const 1 i32.const 4 @@ -57542,10 +55377,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $7 local.get $6 i32.store offset=4 - local.get $7 + global.get $~lib/memory/__stack_pointer local.get $6 i32.const 1 i32.const 4 @@ -57773,10 +55607,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $7 local.get $6 i32.store offset=4 - local.get $7 + global.get $~lib/memory/__stack_pointer local.get $6 i32.const 1 i32.const 5 @@ -57845,10 +55678,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $7 local.get $6 i32.store offset=4 - local.get $7 + global.get $~lib/memory/__stack_pointer local.get $6 i32.const 1 i32.const 4 @@ -58001,12 +55833,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 local.get $7 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $6 + global.get $~lib/memory/__stack_pointer local.get $7 call $~lib/typedarray/Int32Array#slice@varargs local.tee $6 @@ -58046,12 +55877,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 local.get $7 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $6 + global.get $~lib/memory/__stack_pointer local.get $7 call $~lib/typedarray/Int32Array#slice@varargs local.tee $6 @@ -58091,12 +55921,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 local.get $7 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $6 + global.get $~lib/memory/__stack_pointer local.get $7 call $~lib/typedarray/Int32Array#slice@varargs local.tee $6 @@ -58136,12 +55965,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 local.get $7 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $6 + global.get $~lib/memory/__stack_pointer local.get $7 call $~lib/typedarray/Int32Array#slice@varargs local.tee $6 @@ -58180,12 +56008,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 local.get $7 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $6 + global.get $~lib/memory/__stack_pointer local.get $7 call $~lib/typedarray/Int32Array#slice@varargs local.tee $6 @@ -58224,12 +56051,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 local.get $7 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $6 + global.get $~lib/memory/__stack_pointer local.get $7 call $~lib/typedarray/Int32Array#slice@varargs local.tee $6 @@ -58268,12 +56094,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 local.get $7 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $6 + global.get $~lib/memory/__stack_pointer local.get $7 call $~lib/typedarray/Int32Array#slice@varargs local.tee $6 @@ -58313,12 +56138,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 local.get $7 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $6 + global.get $~lib/memory/__stack_pointer local.get $7 call $~lib/typedarray/Int32Array#slice@varargs local.tee $6 @@ -58357,12 +56181,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 local.get $7 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $6 + global.get $~lib/memory/__stack_pointer local.get $7 call $~lib/typedarray/Int32Array#slice@varargs local.tee $6 @@ -58401,12 +56224,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 local.get $7 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $6 + global.get $~lib/memory/__stack_pointer local.get $7 call $~lib/typedarray/Int32Array#slice@varargs local.tee $6 @@ -58445,12 +56267,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 local.get $7 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $6 + global.get $~lib/memory/__stack_pointer local.get $7 call $~lib/typedarray/Int32Array#slice@varargs local.tee $6 @@ -58585,10 +56406,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $8 local.get $6 i32.store offset=4 - local.get $8 + global.get $~lib/memory/__stack_pointer local.get $6 i32.const 1 i32.const 3 @@ -58671,10 +56491,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $8 local.get $7 i32.store offset=4 - local.get $8 + global.get $~lib/memory/__stack_pointer local.get $7 i32.const 1 i32.const 2 @@ -58741,12 +56560,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $7 local.get $6 i32.store offset=4 i32.const 0 global.set $~argumentsLength - local.get $7 + global.get $~lib/memory/__stack_pointer local.get $6 call $~lib/typedarray/Int32Array#slice@varargs local.tee $7 @@ -58805,16 +56623,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $8 local.get $7 i32.store offset=4 local.get $7 i32.load offset=8 - local.set $7 - local.get $8 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=4 - local.get $7 local.get $6 i32.load offset=8 i32.ne @@ -58833,15 +56648,14 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $6 i64.const 0 i64.store - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int8Array#constructor local.tee $6 @@ -58874,45 +56688,47 @@ i32.const 2896 i32.store offset=8 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 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $7 i64.const 0 i64.store - local.get $7 - i32.const 0 - i32.store offset=8 - local.get $7 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store - local.get $7 + global.get $~lib/memory/__stack_pointer i32.const 2896 i32.store offset=4 - local.get $7 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=8 local.get $6 i32.load offset=4 - local.set $8 - local.get $7 + local.set $7 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=8 local.get $6 call $~lib/typedarray/Int8Array#get:length - local.set $7 + local.set $8 loop $for-loop|0 - local.get $1 - local.get $7 + local.get $0 + local.get $8 i32.lt_s if - local.get $1 - local.get $8 + global.get $~lib/memory/__stack_pointer + i32.const 2896 + i32.store offset=12 + local.get $0 + local.get $7 i32.add i32.load8_s local.set $9 @@ -58921,31 +56737,31 @@ i32.store offset=8 i32.const 4 global.set $~argumentsLength - local.get $0 - local.get $9 local.get $1 + local.get $9 + local.get $0 local.get $6 i32.const 2896 i32.load call_indirect (type $6) - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.const 255 i32.and i32.const 6 i32.ne - br_if $folding-inner18 + br_if $folding-inner20 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -58957,15 +56773,14 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint8Array#constructor local.tee $0 @@ -59004,7 +56819,7 @@ i32.and i32.const 6 i32.ne - br_if $folding-inner18 + br_if $folding-inner20 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -59016,15 +56831,14 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $0 @@ -59063,13 +56877,13 @@ i32.and i32.const 6 i32.ne - br_if $folding-inner18 + br_if $folding-inner20 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -59077,15 +56891,14 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int16Array#constructor local.tee $6 @@ -59118,47 +56931,49 @@ i32.const 2992 i32.store offset=8 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 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $7 i64.const 0 i64.store - local.get $7 - i32.const 0 - i32.store offset=8 - local.get $7 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store - local.get $7 + global.get $~lib/memory/__stack_pointer i32.const 2992 i32.store offset=4 i32.const 0 - local.set $0 - local.get $7 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=8 local.get $6 i32.load offset=4 - local.set $8 - local.get $7 + local.set $7 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=8 local.get $6 call $~lib/typedarray/Int16Array#get:length - local.set $7 + local.set $8 loop $for-loop|02 - local.get $1 - local.get $7 + local.get $0 + local.get $8 i32.lt_s if - local.get $8 - local.get $1 + global.get $~lib/memory/__stack_pointer + i32.const 2992 + i32.store offset=12 + local.get $7 + local.get $0 i32.const 1 i32.shl i32.add @@ -59169,37 +56984,37 @@ i32.store offset=8 i32.const 4 global.set $~argumentsLength - local.get $0 - local.get $9 local.get $1 + local.get $9 + local.get $0 local.get $6 i32.const 2992 i32.load call_indirect (type $6) - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|02 end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.const 65535 i32.and i32.const 6 i32.ne - br_if $folding-inner18 + br_if $folding-inner20 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -59207,15 +57022,14 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint16Array#constructor local.tee $6 @@ -59248,47 +57062,49 @@ i32.const 3024 i32.store offset=8 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 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $7 i64.const 0 i64.store - local.get $7 - i32.const 0 - i32.store offset=8 - local.get $7 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store - local.get $7 + global.get $~lib/memory/__stack_pointer i32.const 3024 i32.store offset=4 i32.const 0 - local.set $0 - local.get $7 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=8 local.get $6 i32.load offset=4 - local.set $8 - local.get $7 + local.set $7 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=8 local.get $6 call $~lib/typedarray/Int16Array#get:length - local.set $7 - loop $for-loop|03 - local.get $1 - local.get $7 + local.set $8 + loop $for-loop|04 + local.get $0 + local.get $8 i32.lt_s if - local.get $8 - local.get $1 + global.get $~lib/memory/__stack_pointer + i32.const 3024 + i32.store offset=12 + local.get $7 + local.get $0 i32.const 1 i32.shl i32.add @@ -59299,37 +57115,37 @@ i32.store offset=8 i32.const 4 global.set $~argumentsLength - local.get $0 - local.get $9 local.get $1 + local.get $9 + local.get $0 local.get $6 i32.const 3024 i32.load call_indirect (type $6) - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|03 + local.set $0 + br $for-loop|04 end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.const 65535 i32.and i32.const 6 i32.ne - br_if $folding-inner18 + br_if $folding-inner20 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -59337,15 +57153,14 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int32Array#constructor local.tee $6 @@ -59378,47 +57193,49 @@ i32.const 3056 i32.store offset=8 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 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $7 i64.const 0 i64.store - local.get $7 - i32.const 0 - i32.store offset=8 - local.get $7 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store - local.get $7 + global.get $~lib/memory/__stack_pointer i32.const 3056 i32.store offset=4 i32.const 0 - local.set $0 - local.get $7 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=8 local.get $6 i32.load offset=4 - local.set $8 - local.get $7 + local.set $7 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=8 local.get $6 call $~lib/typedarray/Int32Array#get:length - local.set $7 - loop $for-loop|04 - local.get $1 - local.get $7 + local.set $8 + loop $for-loop|06 + local.get $0 + local.get $8 i32.lt_s if - local.get $8 - local.get $1 + global.get $~lib/memory/__stack_pointer + i32.const 3056 + i32.store offset=12 + local.get $7 + local.get $0 i32.const 2 i32.shl i32.add @@ -59429,35 +57246,35 @@ i32.store offset=8 i32.const 4 global.set $~argumentsLength - local.get $0 - local.get $9 local.get $1 + local.get $9 + local.get $0 local.get $6 i32.const 3056 i32.load call_indirect (type $6) - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|04 + local.set $0 + br $for-loop|06 end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.const 6 i32.ne - br_if $folding-inner18 + br_if $folding-inner20 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -59465,15 +57282,14 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint32Array#constructor local.tee $6 @@ -59506,47 +57322,49 @@ i32.const 3088 i32.store offset=8 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 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $7 i64.const 0 i64.store - local.get $7 - i32.const 0 - i32.store offset=8 - local.get $7 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store - local.get $7 + global.get $~lib/memory/__stack_pointer i32.const 3088 i32.store offset=4 i32.const 0 - local.set $0 - local.get $7 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=8 local.get $6 i32.load offset=4 - local.set $8 - local.get $7 + local.set $7 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=8 local.get $6 call $~lib/typedarray/Int32Array#get:length - local.set $7 - loop $for-loop|05 - local.get $1 - local.get $7 + local.set $8 + loop $for-loop|08 + local.get $0 + local.get $8 i32.lt_s if - local.get $8 - local.get $1 + global.get $~lib/memory/__stack_pointer + i32.const 3088 + i32.store offset=12 + local.get $7 + local.get $0 i32.const 2 i32.shl i32.add @@ -59557,35 +57375,35 @@ i32.store offset=8 i32.const 4 global.set $~argumentsLength - local.get $0 - local.get $9 local.get $1 + local.get $9 + local.get $0 local.get $6 i32.const 3088 i32.load call_indirect (type $6) - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|05 + local.set $0 + br $for-loop|08 end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.const 6 i32.ne - br_if $folding-inner18 + br_if $folding-inner20 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -59593,125 +57411,126 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $0 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 0 i64.const 1 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1 i64.const 2 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 2 i64.const 3 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 3120 i32.store offset=8 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 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $6 i64.const 0 i64.store - local.get $6 - i32.const 0 - i32.store offset=8 - local.get $6 - local.get $0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 3120 i32.store offset=4 - local.get $6 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=8 - local.get $0 + local.get $1 i32.load offset=4 - local.set $7 - local.get $6 - local.get $0 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=8 - local.get $0 + local.get $1 call $~lib/typedarray/Int64Array#get:length - local.set $6 - loop $for-loop|06 - local.get $1 - local.get $6 + local.set $7 + loop $for-loop|010 + local.get $0 + local.get $7 i32.lt_s if - local.get $7 - local.get $1 + global.get $~lib/memory/__stack_pointer + i32.const 3120 + i32.store offset=12 + local.get $6 + local.get $0 i32.const 3 i32.shl i32.add i64.load local.set $10 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 i32.const 4 global.set $~argumentsLength local.get $3 local.get $10 - local.get $1 local.get $0 + local.get $1 i32.const 3120 i32.load call_indirect (type $17) local.set $3 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|06 + local.set $0 + br $for-loop|010 end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $3 i64.const 6 i64.ne - br_if $folding-inner18 + br_if $folding-inner20 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 i64.const 0 local.set $3 global.get $~lib/memory/__stack_pointer @@ -59721,125 +57540,126 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint64Array#constructor - local.tee $0 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 0 i64.const 1 call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1 i64.const 2 call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 2 i64.const 3 call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 3152 i32.store offset=8 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 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $6 i64.const 0 i64.store - local.get $6 - i32.const 0 - i32.store offset=8 - local.get $6 - local.get $0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 3152 i32.store offset=4 - local.get $6 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=8 - local.get $0 + local.get $1 i32.load offset=4 - local.set $7 - local.get $6 - local.get $0 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=8 - local.get $0 + local.get $1 call $~lib/typedarray/Int64Array#get:length - local.set $6 - loop $for-loop|07 - local.get $1 - local.get $6 + local.set $7 + loop $for-loop|012 + local.get $0 + local.get $7 i32.lt_s if - local.get $7 - local.get $1 + global.get $~lib/memory/__stack_pointer + i32.const 3152 + i32.store offset=12 + local.get $6 + local.get $0 i32.const 3 i32.shl i32.add i64.load local.set $10 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 i32.const 4 global.set $~argumentsLength local.get $3 local.get $10 - local.get $1 local.get $0 + local.get $1 i32.const 3152 i32.load call_indirect (type $17) local.set $3 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|07 + local.set $0 + br $for-loop|012 end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $3 i64.const 6 i64.ne - br_if $folding-inner18 + br_if $folding-inner20 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -59847,125 +57667,126 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Float32Array#constructor - local.tee $0 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 0 f32.const 1 call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1 f32.const 2 call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 2 f32.const 3 call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 3184 i32.store offset=8 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 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $6 i64.const 0 i64.store - local.get $6 - i32.const 0 - i32.store offset=8 - local.get $6 - local.get $0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 3184 i32.store offset=4 - local.get $6 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=8 - local.get $0 + local.get $1 i32.load offset=4 - local.set $7 - local.get $6 - local.get $0 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=8 - local.get $0 + local.get $1 call $~lib/typedarray/Int32Array#get:length - local.set $6 - loop $for-loop|08 - local.get $1 - local.get $6 + local.set $7 + loop $for-loop|014 + local.get $0 + local.get $7 i32.lt_s if - local.get $7 - local.get $1 + global.get $~lib/memory/__stack_pointer + i32.const 3184 + i32.store offset=12 + local.get $6 + local.get $0 i32.const 2 i32.shl i32.add f32.load local.set $11 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 i32.const 4 global.set $~argumentsLength local.get $4 local.get $11 - local.get $1 local.get $0 + local.get $1 i32.const 3184 i32.load - call_indirect (type $22) + call_indirect (type $26) local.set $4 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|08 + local.set $0 + br $for-loop|014 end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $4 f32.const 6 f32.ne - br_if $folding-inner18 + br_if $folding-inner20 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -59973,119 +57794,120 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Float64Array#constructor - local.tee $0 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 0 f64.const 1 call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1 f64.const 2 call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 2 f64.const 3 call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 3216 i32.store offset=8 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 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $6 i64.const 0 i64.store - local.get $6 - i32.const 0 - i32.store offset=8 - local.get $6 - local.get $0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 3216 i32.store offset=4 - local.get $6 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=8 - local.get $0 + local.get $1 i32.load offset=4 - local.set $7 - local.get $6 - local.get $0 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=8 - local.get $0 + local.get $1 call $~lib/typedarray/Int64Array#get:length - local.set $6 - loop $for-loop|09 - local.get $1 - local.get $6 + local.set $7 + loop $for-loop|016 + local.get $0 + local.get $7 i32.lt_s if - local.get $7 - local.get $1 + global.get $~lib/memory/__stack_pointer + i32.const 3216 + i32.store offset=12 + local.get $6 + local.get $0 i32.const 3 i32.shl i32.add f64.load local.set $12 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 i32.const 4 global.set $~argumentsLength local.get $5 local.get $12 - local.get $1 local.get $0 + local.get $1 i32.const 3216 i32.load - call_indirect (type $23) + call_indirect (type $25) local.set $5 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|09 + local.set $0 + br $for-loop|016 end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $5 f64.const 6 f64.ne - br_if $folding-inner18 + br_if $folding-inner20 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -60097,12 +57919,11 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int8Array#constructor local.tee $0 @@ -60166,12 +57987,11 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint8Array#constructor local.tee $0 @@ -60235,12 +58055,11 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $0 @@ -60304,12 +58123,11 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int16Array#constructor local.tee $0 @@ -60373,12 +58191,11 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint16Array#constructor local.tee $0 @@ -60442,12 +58259,11 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int32Array#constructor local.tee $0 @@ -60511,12 +58327,11 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint32Array#constructor local.tee $0 @@ -60580,12 +58395,11 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int64Array#constructor local.tee $0 @@ -60649,12 +58463,11 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint64Array#constructor local.tee $0 @@ -60718,12 +58531,11 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Float32Array#constructor local.tee $0 @@ -60787,12 +58599,11 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Float64Array#constructor local.tee $0 @@ -60856,15 +58667,14 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int8Array#constructor local.tee $6 @@ -60897,35 +58707,34 @@ i32.const 3248 i32.store offset=8 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 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3248 i32.store offset=4 i32.const 0 local.set $1 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=8 local.get $6 i32.load offset=4 local.set $7 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=8 local.get $6 @@ -60933,11 +58742,14 @@ i32.const 1 i32.sub local.set $0 - loop $for-loop|010 + loop $for-loop|018 local.get $0 i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + i32.const 3248 + i32.store offset=12 local.get $0 local.get $7 i32.add @@ -60960,11 +58772,11 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|010 + br $for-loop|018 end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -60972,7 +58784,7 @@ i32.and i32.const 6 i32.ne - br_if $folding-inner20 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -60984,15 +58796,14 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint8Array#constructor local.tee $0 @@ -61031,7 +58842,7 @@ i32.and i32.const 6 i32.ne - br_if $folding-inner20 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -61043,15 +58854,14 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $0 @@ -61090,7 +58900,7 @@ i32.and i32.const 6 i32.ne - br_if $folding-inner20 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -61102,15 +58912,14 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int16Array#constructor local.tee $6 @@ -61143,35 +58952,34 @@ i32.const 3344 i32.store offset=8 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 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3344 i32.store offset=4 i32.const 0 local.set $1 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=8 local.get $6 i32.load offset=4 local.set $7 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=8 local.get $6 @@ -61179,11 +58987,14 @@ i32.const 1 i32.sub local.set $0 - loop $for-loop|011 + loop $for-loop|020 local.get $0 i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + i32.const 3344 + i32.store offset=12 local.get $7 local.get $0 i32.const 1 @@ -61208,11 +59019,11 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|011 + br $for-loop|020 end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -61220,7 +59031,7 @@ i32.and i32.const 6 i32.ne - br_if $folding-inner20 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -61232,15 +59043,14 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint16Array#constructor local.tee $6 @@ -61273,35 +59083,34 @@ i32.const 3376 i32.store offset=8 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 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3376 i32.store offset=4 i32.const 0 local.set $1 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=8 local.get $6 i32.load offset=4 local.set $7 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=8 local.get $6 @@ -61309,11 +59118,14 @@ i32.const 1 i32.sub local.set $0 - loop $for-loop|012 + loop $for-loop|022 local.get $0 i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + i32.const 3376 + i32.store offset=12 local.get $7 local.get $0 i32.const 1 @@ -61338,11 +59150,11 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|012 + br $for-loop|022 end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -61350,7 +59162,7 @@ i32.and i32.const 6 i32.ne - br_if $folding-inner20 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -61362,15 +59174,14 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int32Array#constructor local.tee $6 @@ -61403,35 +59214,34 @@ i32.const 3408 i32.store offset=8 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 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3408 i32.store offset=4 i32.const 0 local.set $1 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=8 local.get $6 i32.load offset=4 local.set $7 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=8 local.get $6 @@ -61439,11 +59249,14 @@ i32.const 1 i32.sub local.set $0 - loop $for-loop|013 + loop $for-loop|024 local.get $0 i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + i32.const 3408 + i32.store offset=12 local.get $7 local.get $0 i32.const 2 @@ -61468,17 +59281,17 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|013 + br $for-loop|024 end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $1 i32.const 6 i32.ne - br_if $folding-inner20 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -61490,15 +59303,14 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint32Array#constructor local.tee $6 @@ -61531,35 +59343,34 @@ i32.const 3440 i32.store offset=8 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 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3440 i32.store offset=4 i32.const 0 local.set $1 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=8 local.get $6 i32.load offset=4 local.set $7 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=8 local.get $6 @@ -61567,11 +59378,14 @@ i32.const 1 i32.sub local.set $0 - loop $for-loop|014 + loop $for-loop|026 local.get $0 i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + i32.const 3440 + i32.store offset=12 local.get $7 local.get $0 i32.const 2 @@ -61596,17 +59410,17 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|014 + br $for-loop|026 end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $1 i32.const 6 i32.ne - br_if $folding-inner20 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -61620,15 +59434,14 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int64Array#constructor local.tee $1 @@ -61661,33 +59474,32 @@ i32.const 3472 i32.store offset=8 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 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3472 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $1 i32.load offset=4 local.set $6 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $1 @@ -61695,11 +59507,14 @@ i32.const 1 i32.sub local.set $0 - loop $for-loop|015 + loop $for-loop|028 local.get $0 i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + i32.const 3472 + i32.store offset=12 local.get $6 local.get $0 i32.const 3 @@ -61724,17 +59539,17 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|015 + br $for-loop|028 end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $3 i64.const 6 i64.ne - br_if $folding-inner20 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -61748,15 +59563,14 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint64Array#constructor local.tee $1 @@ -61789,33 +59603,32 @@ i32.const 3504 i32.store offset=8 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 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3504 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $1 i32.load offset=4 local.set $6 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $1 @@ -61823,11 +59636,14 @@ i32.const 1 i32.sub local.set $0 - loop $for-loop|016 + loop $for-loop|030 local.get $0 i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + i32.const 3504 + i32.store offset=12 local.get $6 local.get $0 i32.const 3 @@ -61852,17 +59668,17 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|016 + br $for-loop|030 end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $3 i64.const 6 i64.ne - br_if $folding-inner20 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -61876,15 +59692,14 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Float32Array#constructor local.tee $1 @@ -61917,33 +59732,32 @@ i32.const 3536 i32.store offset=8 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 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3536 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $1 i32.load offset=4 local.set $6 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $1 @@ -61951,11 +59765,14 @@ i32.const 1 i32.sub local.set $0 - loop $for-loop|017 + loop $for-loop|032 local.get $0 i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + i32.const 3536 + i32.store offset=12 local.get $6 local.get $0 i32.const 2 @@ -61974,23 +59791,23 @@ local.get $1 i32.const 3536 i32.load - call_indirect (type $22) + call_indirect (type $26) local.set $4 local.get $0 i32.const 1 i32.sub local.set $0 - br $for-loop|017 + br $for-loop|032 end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $4 f32.const 6 f32.ne - br_if $folding-inner20 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -62004,15 +59821,14 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Float64Array#constructor local.tee $1 @@ -62045,33 +59861,32 @@ i32.const 3568 i32.store offset=8 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 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3568 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $1 i32.load offset=4 local.set $6 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $1 @@ -62079,11 +59894,14 @@ i32.const 1 i32.sub local.set $0 - loop $for-loop|018 + loop $for-loop|034 local.get $0 i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + i32.const 3568 + i32.store offset=12 local.get $6 local.get $0 i32.const 3 @@ -62102,49 +59920,49 @@ local.get $1 i32.const 3568 i32.load - call_indirect (type $23) + call_indirect (type $25) local.set $5 local.get $0 i32.const 1 i32.sub local.set $0 - br $for-loop|018 + br $for-loop|034 end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $5 f64.const 6 f64.ne - br_if $folding-inner20 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - call $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64> - call $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64> + call $"std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>" + call $"std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8>" + call $"std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>" + call $"std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8>" + call $"std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16>" + call $"std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16>" + call $"std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32>" + call $"std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32>" + call $"std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64>" + call $"std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64>" + call $"std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32>" + call $"std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64>" global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -62152,15 +59970,14 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int8Array#constructor local.tee $0 @@ -62198,10 +60015,9 @@ i32.eqz br_if $folding-inner6 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4336 i32.store offset=8 local.get $0 @@ -62219,15 +60035,14 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint8Array#constructor local.tee $0 @@ -62265,10 +60080,9 @@ i32.eqz br_if $folding-inner6 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4400 i32.store offset=8 local.get $0 @@ -62286,15 +60100,14 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $0 @@ -62332,10 +60145,9 @@ i32.eqz br_if $folding-inner6 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4464 i32.store offset=8 local.get $0 @@ -62353,15 +60165,14 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int16Array#constructor local.tee $0 @@ -62399,10 +60210,9 @@ i32.eqz br_if $folding-inner6 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4528 i32.store offset=8 local.get $0 @@ -62420,15 +60230,14 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint16Array#constructor local.tee $0 @@ -62466,10 +60275,9 @@ i32.eqz br_if $folding-inner6 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4592 i32.store offset=8 local.get $0 @@ -62487,15 +60295,14 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int32Array#constructor local.tee $0 @@ -62533,10 +60340,9 @@ i32.eqz br_if $folding-inner6 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4656 i32.store offset=8 local.get $0 @@ -62554,15 +60360,14 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint32Array#constructor local.tee $0 @@ -62600,10 +60405,9 @@ i32.eqz br_if $folding-inner6 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4720 i32.store offset=8 local.get $0 @@ -62621,15 +60425,14 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int64Array#constructor local.tee $0 @@ -62667,10 +60470,9 @@ i32.eqz br_if $folding-inner6 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4784 i32.store offset=8 local.get $0 @@ -62688,15 +60490,14 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint64Array#constructor local.tee $0 @@ -62734,10 +60535,9 @@ i32.eqz br_if $folding-inner6 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4848 i32.store offset=8 local.get $0 @@ -62755,15 +60555,14 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Float32Array#constructor local.tee $0 @@ -62801,10 +60600,9 @@ i32.eqz br_if $folding-inner6 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4912 i32.store offset=8 local.get $0 @@ -62822,15 +60620,14 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Float64Array#constructor local.tee $0 @@ -62868,10 +60665,9 @@ i32.eqz br_if $folding-inner6 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4976 i32.store offset=8 local.get $0 @@ -62889,15 +60685,14 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int8Array#constructor local.tee $0 @@ -62936,10 +60731,9 @@ i32.ne br_if $folding-inner8 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 5040 i32.store offset=8 local.get $0 @@ -62959,15 +60753,14 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint8Array#constructor local.tee $0 @@ -63006,10 +60799,9 @@ i32.ne br_if $folding-inner8 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 5104 i32.store offset=8 local.get $0 @@ -63029,15 +60821,14 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $0 @@ -63076,10 +60867,9 @@ i32.ne br_if $folding-inner8 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 5168 i32.store offset=8 local.get $0 @@ -63099,15 +60889,14 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int16Array#constructor local.tee $0 @@ -63146,10 +60935,9 @@ i32.ne br_if $folding-inner8 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 5232 i32.store offset=8 local.get $0 @@ -63169,15 +60957,14 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint16Array#constructor local.tee $0 @@ -63216,10 +61003,9 @@ i32.ne br_if $folding-inner8 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 5296 i32.store offset=8 local.get $0 @@ -63239,15 +61025,14 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int32Array#constructor local.tee $0 @@ -63286,10 +61071,9 @@ i32.ne br_if $folding-inner8 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 5360 i32.store offset=8 local.get $0 @@ -63309,15 +61093,14 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint32Array#constructor local.tee $0 @@ -63356,10 +61139,9 @@ i32.ne br_if $folding-inner8 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 5424 i32.store offset=8 local.get $0 @@ -63379,15 +61161,14 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int64Array#constructor local.tee $0 @@ -63426,10 +61207,9 @@ i32.ne br_if $folding-inner8 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 5488 i32.store offset=8 local.get $0 @@ -63449,15 +61229,14 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint64Array#constructor local.tee $0 @@ -63496,10 +61275,9 @@ i32.ne br_if $folding-inner8 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 5552 i32.store offset=8 local.get $0 @@ -63519,15 +61297,14 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Float32Array#constructor local.tee $0 @@ -63566,10 +61343,9 @@ i32.ne br_if $folding-inner8 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 5616 i32.store offset=8 local.get $0 @@ -63589,15 +61365,14 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Float64Array#constructor local.tee $0 @@ -63636,10 +61411,9 @@ i32.ne br_if $folding-inner8 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 5680 i32.store offset=8 local.get $0 @@ -63659,15 +61433,14 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int8Array#constructor local.tee $0 @@ -63706,10 +61479,9 @@ i32.ne br_if $folding-inner10 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 5744 i32.store offset=8 local.get $0 @@ -63729,15 +61501,14 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint8Array#constructor local.tee $0 @@ -63776,10 +61547,9 @@ i32.ne br_if $folding-inner10 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 5808 i32.store offset=8 local.get $0 @@ -63799,15 +61569,14 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $0 @@ -63846,10 +61615,9 @@ i32.ne br_if $folding-inner10 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 5872 i32.store offset=8 local.get $0 @@ -63869,15 +61637,14 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int16Array#constructor local.tee $0 @@ -63916,10 +61683,9 @@ i32.ne br_if $folding-inner10 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 5936 i32.store offset=8 local.get $0 @@ -63939,15 +61705,14 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint16Array#constructor local.tee $0 @@ -63986,10 +61751,9 @@ i32.ne br_if $folding-inner10 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 6000 i32.store offset=8 local.get $0 @@ -64009,15 +61773,14 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int32Array#constructor local.tee $0 @@ -64056,10 +61819,9 @@ i32.ne br_if $folding-inner10 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 6064 i32.store offset=8 local.get $0 @@ -64079,15 +61841,14 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint32Array#constructor local.tee $0 @@ -64126,10 +61887,9 @@ i32.ne br_if $folding-inner10 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 6128 i32.store offset=8 local.get $0 @@ -64149,15 +61909,14 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int64Array#constructor local.tee $0 @@ -64196,10 +61955,9 @@ i32.ne br_if $folding-inner10 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 6192 i32.store offset=8 local.get $0 @@ -64219,15 +61977,14 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint64Array#constructor local.tee $0 @@ -64266,10 +62023,9 @@ i32.ne br_if $folding-inner10 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 6256 i32.store offset=8 local.get $0 @@ -64289,15 +62045,14 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Float32Array#constructor local.tee $0 @@ -64336,10 +62091,9 @@ i32.ne br_if $folding-inner10 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 6320 i32.store offset=8 local.get $0 @@ -64359,15 +62113,14 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Float64Array#constructor local.tee $0 @@ -64406,10 +62159,9 @@ i32.ne br_if $folding-inner10 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 6384 i32.store offset=8 local.get $0 @@ -64429,15 +62181,14 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int8Array#constructor local.tee $0 @@ -64475,10 +62226,9 @@ i32.eqz br_if $folding-inner12 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 6448 i32.store offset=8 local.get $0 @@ -64496,15 +62246,14 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint8Array#constructor local.tee $0 @@ -64542,10 +62291,9 @@ i32.eqz br_if $folding-inner12 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 6512 i32.store offset=8 local.get $0 @@ -64563,17 +62311,406 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 + 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 3 + call $~lib/typedarray/Uint8ClampedArray#constructor 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.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6544 + i32.store offset=8 + local.get $0 + i32.const 6544 + call $~lib/typedarray/Uint8Array#every + i32.eqz + br_if $folding-inner12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6576 + i32.store offset=8 + local.get $0 + i32.const 6576 + call $~lib/typedarray/Uint8Array#every + br_if $folding-inner13 + 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 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner21 + 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 3 + call $~lib/typedarray/Int16Array#constructor + 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.const 2 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6608 + i32.store offset=8 + local.get $0 + i32.const 6608 + call $~lib/typedarray/Int16Array#every + i32.eqz + br_if $folding-inner12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6640 i32.store offset=8 local.get $0 + i32.const 6640 + call $~lib/typedarray/Int16Array#every + br_if $folding-inner13 + 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 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner21 + 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 3 - call $~lib/typedarray/Uint8ClampedArray#constructor + call $~lib/typedarray/Uint16Array#constructor + 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.const 2 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6672 + i32.store offset=8 + local.get $0 + i32.const 6672 + call $~lib/typedarray/Uint16Array#every + i32.eqz + br_if $folding-inner12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6704 + i32.store offset=8 + local.get $0 + i32.const 6704 + call $~lib/typedarray/Uint16Array#every + br_if $folding-inner13 + 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 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner21 + 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 3 + call $~lib/typedarray/Int32Array#constructor + 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.const 2 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6736 + i32.store offset=8 + local.get $0 + i32.const 6736 + call $~lib/typedarray/Int32Array#every + i32.eqz + br_if $folding-inner12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6768 + i32.store offset=8 + local.get $0 + i32.const 6768 + call $~lib/typedarray/Int32Array#every + br_if $folding-inner13 + 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 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner21 + 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 3 + call $~lib/typedarray/Uint32Array#constructor + 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.const 2 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6800 + i32.store offset=8 + local.get $0 + i32.const 6800 + call $~lib/typedarray/Uint32Array#every + i32.eqz + br_if $folding-inner12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6832 + i32.store offset=8 + local.get $0 + i32.const 6832 + call $~lib/typedarray/Uint32Array#every + br_if $folding-inner13 + 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 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner21 + 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 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i64.const 4 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i64.const 6 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6864 + i32.store offset=8 + local.get $0 + i32.const 6864 + call $~lib/typedarray/Int64Array#every + i32.eqz + br_if $folding-inner12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6896 + i32.store offset=8 + local.get $0 + i32.const 6896 + call $~lib/typedarray/Int64Array#every + br_if $folding-inner13 + 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 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner21 + 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 3 + call $~lib/typedarray/Uint64Array#constructor local.tee $0 i32.store global.get $~lib/memory/__stack_pointer @@ -64581,43 +62718,42 @@ i32.store offset=4 local.get $0 i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set + i64.const 2 + call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint8ClampedArray#__set + i64.const 4 + call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint8ClampedArray#__set + i64.const 6 + call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 6544 + i32.const 6928 i32.store offset=8 local.get $0 - i32.const 6544 - call $~lib/typedarray/Uint8Array#every + i32.const 6928 + call $~lib/typedarray/Uint64Array#every i32.eqz br_if $folding-inner12 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 - i32.const 6576 + global.get $~lib/memory/__stack_pointer + i32.const 6960 i32.store offset=8 local.get $0 - i32.const 6576 - call $~lib/typedarray/Uint8Array#every + i32.const 6960 + call $~lib/typedarray/Uint64Array#every br_if $folding-inner13 global.get $~lib/memory/__stack_pointer i32.const 12 @@ -64630,17 +62766,16 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 - call $~lib/typedarray/Int16Array#constructor + call $~lib/typedarray/Float32Array#constructor local.tee $0 i32.store global.get $~lib/memory/__stack_pointer @@ -64648,43 +62783,42 @@ i32.store offset=4 local.get $0 i32.const 0 - i32.const 2 - call $~lib/typedarray/Int16Array#__set + f32.const 2 + call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.const 1 - i32.const 4 - call $~lib/typedarray/Int16Array#__set + f32.const 4 + call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.const 2 - i32.const 6 - call $~lib/typedarray/Int16Array#__set + f32.const 6 + call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 6608 + i32.const 6992 i32.store offset=8 local.get $0 - i32.const 6608 - call $~lib/typedarray/Int16Array#every + i32.const 6992 + call $~lib/typedarray/Float32Array#every i32.eqz br_if $folding-inner12 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 - i32.const 6640 + global.get $~lib/memory/__stack_pointer + i32.const 7024 i32.store offset=8 local.get $0 - i32.const 6640 - call $~lib/typedarray/Int16Array#every + i32.const 7024 + call $~lib/typedarray/Float32Array#every br_if $folding-inner13 global.get $~lib/memory/__stack_pointer i32.const 12 @@ -64697,17 +62831,16 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 - call $~lib/typedarray/Uint16Array#constructor + call $~lib/typedarray/Float64Array#constructor local.tee $0 i32.store global.get $~lib/memory/__stack_pointer @@ -64715,48 +62848,49 @@ i32.store offset=4 local.get $0 i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set + f64.const 2 + call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint16Array#__set + f64.const 4 + call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint16Array#__set + f64.const 6 + call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 6672 + i32.const 7056 i32.store offset=8 local.get $0 - i32.const 6672 - call $~lib/typedarray/Uint16Array#every + i32.const 7056 + call $~lib/typedarray/Float64Array#every i32.eqz br_if $folding-inner12 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 - i32.const 6704 + global.get $~lib/memory/__stack_pointer + i32.const 7088 i32.store offset=8 local.get $0 - i32.const 6704 - call $~lib/typedarray/Uint16Array#every + i32.const 7088 + call $~lib/typedarray/Float64Array#every br_if $folding-inner13 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -64764,62 +62898,136 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + i32.const 0 + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $0 + call $~lib/typedarray/Int8Array#constructor + local.tee $1 i32.store + local.get $1 + global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 i32.const 0 - i32.const 2 - call $~lib/typedarray/Int32Array#__set + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + i32.extend8_s + call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 i32.const 1 - i32.const 4 - call $~lib/typedarray/Int32Array#__set + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + i32.extend8_s + call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 i32.const 2 - i32.const 6 - call $~lib/typedarray/Int32Array#__set + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + i32.extend8_s + call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 6736 + i32.const 7200 i32.store offset=8 - local.get $0 - i32.const 6736 - call $~lib/typedarray/Int32Array#every - i32.eqz - br_if $folding-inner12 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner21 + 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 $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7200 i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.const 6768 i32.store offset=8 - local.get $0 - i32.const 6768 - call $~lib/typedarray/Int32Array#every - br_if $folding-inner13 + local.get $1 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int8Array#get:length + local.set $7 + loop $for-loop|036 + local.get $0 + local.get $7 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 7200 + i32.store offset=12 + local.get $0 + local.get $6 + i32.add + i32.load8_s + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $0 + local.get $1 + i32.const 7200 + i32.load + call_indirect (type $4) + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|036 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -64831,62 +63039,77 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + i32.const 0 + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer i32.const 3 - call $~lib/typedarray/Uint32Array#constructor + call $~lib/typedarray/Uint8Array#constructor local.tee $0 i32.store + local.get $0 + global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 local.get $0 i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint32Array#__set + i32.const 1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 6800 + i32.const 7152 i32.store offset=8 local.get $0 - i32.const 6800 - call $~lib/typedarray/Uint32Array#every - i32.eqz - br_if $folding-inner12 + i32.const 2 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 - i32.const 6832 + global.get $~lib/memory/__stack_pointer + i32.const 7232 i32.store offset=8 local.get $0 - i32.const 6832 - call $~lib/typedarray/Uint32Array#every - br_if $folding-inner13 + i32.const 7232 + call $~lib/typedarray/Uint8Array#forEach + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -64898,66 +63121,83 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + i32.const 0 + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer i32.const 3 - call $~lib/typedarray/Int64Array#constructor + call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $0 i32.store + local.get $0 + global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 local.get $0 i32.const 0 - i64.const 2 - call $~lib/typedarray/Int64Array#__set + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $0 - i32.const 1 - i64.const 4 - call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i64.const 6 - call $~lib/typedarray/Int64Array#__set + i32.const 1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 6864 + i32.const 7152 i32.store offset=8 local.get $0 - i32.const 6864 - call $~lib/typedarray/Int64Array#every - i32.eqz - br_if $folding-inner12 + i32.const 2 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 - i32.const 6896 + global.get $~lib/memory/__stack_pointer + i32.const 7264 i32.store offset=8 local.get $0 - i32.const 6896 - call $~lib/typedarray/Int64Array#every - br_if $folding-inner13 + i32.const 7264 + call $~lib/typedarray/Uint8Array#forEach + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -64965,66 +63205,144 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + i32.const 0 + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $0 + call $~lib/typedarray/Int16Array#constructor + local.tee $1 i32.store + local.get $1 + global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 i32.const 0 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + i32.extend16_s + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 i32.const 1 - i64.const 4 - call $~lib/typedarray/Uint64Array#__set + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + i32.extend16_s + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 i32.const 2 - i64.const 6 - call $~lib/typedarray/Uint64Array#__set + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + i32.extend16_s + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 6928 + i32.const 7296 i32.store offset=8 - local.get $0 - i32.const 6928 - call $~lib/typedarray/Uint64Array#every - i32.eqz - br_if $folding-inner12 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner21 + 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 $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7296 i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.const 6960 i32.store offset=8 - local.get $0 - i32.const 6960 - call $~lib/typedarray/Uint64Array#every - br_if $folding-inner13 + local.get $1 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int16Array#get:length + local.set $7 + loop $for-loop|038 + local.get $0 + local.get $7 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 7296 + i32.store offset=12 + local.get $6 + local.get $0 + i32.const 1 + i32.shl + i32.add + i32.load16_s + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $0 + local.get $1 + i32.const 7296 + i32.load + call_indirect (type $4) + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|038 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -65032,135 +63350,147 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + i32.const 0 + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $0 + call $~lib/typedarray/Uint16Array#constructor + local.tee $1 i32.store + local.get $1 + global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 i32.const 0 - f32.const 2 - call $~lib/typedarray/Float32Array#__set + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 - i32.const 1 - f32.const 4 - call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - f32.const 6 - call $~lib/typedarray/Float32Array#__set + i32.const 7152 + i32.store offset=8 + local.get $1 + i32.const 1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 6992 + i32.const 7152 i32.store offset=8 - local.get $0 - i32.const 6992 - call $~lib/typedarray/Float32Array#every - i32.eqz - br_if $folding-inner12 + local.get $1 + i32.const 2 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 local.get $1 - i32.const 7024 - i32.store offset=8 - local.get $0 - i32.const 7024 - call $~lib/typedarray/Float32Array#every - br_if $folding-inner13 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 7328 + i32.store offset=8 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 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - f64.const 2 - call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - f64.const 4 - call $~lib/typedarray/Float64Array#__set + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - f64.const 6 - call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 7328 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 7056 + local.get $1 i32.store offset=8 - local.get $0 - i32.const 7056 - call $~lib/typedarray/Float64Array#every - i32.eqz - br_if $folding-inner12 + local.get $1 + i32.load offset=4 + local.set $6 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 local.get $1 - i32.const 7088 i32.store offset=8 - local.get $0 - i32.const 7088 - call $~lib/typedarray/Float64Array#every - br_if $folding-inner13 + local.get $1 + call $~lib/typedarray/Int16Array#get:length + local.set $7 + loop $for-loop|040 + local.get $0 + local.get $7 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 7328 + i32.store offset=12 + local.get $6 + local.get $0 + i32.const 1 + i32.shl + i32.add + i32.load16_u + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $0 + local.get $1 + i32.const 7328 + i32.load + call_indirect (type $4) + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|040 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -65168,141 +63498,141 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 i32.const 0 global.set $std/typedarray/forEachCallCount - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $0 + call $~lib/typedarray/Int32Array#constructor + local.tee $1 i32.store - local.get $0 + local.get $1 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=8 - local.get $0 + local.get $1 i32.const 0 i32.const 7152 i32.const 0 call $~lib/array/Array#__get - i32.extend8_s - call $~lib/typedarray/Int8Array#__set + call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=8 - local.get $0 + local.get $1 i32.const 1 i32.const 7152 i32.const 1 call $~lib/array/Array#__get - i32.extend8_s - call $~lib/typedarray/Int8Array#__set + call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=8 - local.get $0 + local.get $1 i32.const 2 i32.const 7152 i32.const 2 call $~lib/array/Array#__get - i32.extend8_s - call $~lib/typedarray/Int8Array#__set + call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 7200 + i32.const 7360 i32.store offset=8 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 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $6 i64.const 0 i64.store - local.get $6 - i32.const 0 - i32.store offset=8 - local.get $6 - local.get $0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $6 - i32.const 7200 + global.get $~lib/memory/__stack_pointer + i32.const 7360 i32.store offset=4 - local.get $6 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=8 - local.get $0 + local.get $1 i32.load offset=4 - local.set $7 - local.get $6 - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int8Array#get:length local.set $6 - loop $for-loop|019 - local.get $1 - local.get $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int32Array#get:length + local.set $7 + loop $for-loop|042 + local.get $0 + local.get $7 i32.lt_s if - local.get $1 - local.get $7 - i32.add - i32.load8_s - local.set $8 global.get $~lib/memory/__stack_pointer + i32.const 7360 + i32.store offset=12 + local.get $6 local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $8 - local.get $1 local.get $0 - i32.const 7200 + local.get $1 + i32.const 7360 i32.load call_indirect (type $4) - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|019 + local.set $0 + br $for-loop|042 end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -65310,82 +63640,141 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 i32.const 0 global.set $std/typedarray/forEachCallCount - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 + call $~lib/typedarray/Uint32Array#constructor + local.tee $1 i32.store - local.get $0 + local.get $1 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=8 - local.get $0 + local.get $1 i32.const 0 i32.const 7152 i32.const 0 call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=8 - local.get $0 + local.get $1 i32.const 1 i32.const 7152 i32.const 1 call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=8 - local.get $0 + local.get $1 i32.const 2 i32.const 7152 i32.const 2 call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 7232 + i32.const 7392 i32.store offset=8 - local.get $0 - i32.const 7232 - call $~lib/typedarray/Uint8Array#forEach + 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 16320 + i32.lt_s + br_if $folding-inner21 + 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 $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7392 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int32Array#get:length + local.set $7 + loop $for-loop|044 + local.get $0 + local.get $7 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 7392 + i32.store offset=12 + local.get $6 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $0 + local.get $1 + i32.const 7392 + i32.load + call_indirect (type $4) + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|044 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -65393,84 +63782,144 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 i32.const 0 global.set $std/typedarray/forEachCallCount - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 + call $~lib/typedarray/Int64Array#constructor + local.tee $1 i32.store - local.get $0 + local.get $1 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=8 - local.get $0 + local.get $1 i32.const 0 i32.const 7152 i32.const 0 call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=8 - local.get $0 + local.get $1 i32.const 1 i32.const 7152 i32.const 1 call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=8 - local.get $0 + local.get $1 i32.const 2 i32.const 7152 i32.const 2 call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7424 + 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 16320 + i32.lt_s + br_if $folding-inner21 + 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 $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7424 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 7264 - i32.store offset=8 - local.get $0 - i32.const 7264 - call $~lib/typedarray/Uint8Array#forEach + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int64Array#get:length + local.set $7 + loop $for-loop|046 + local.get $0 + local.get $7 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 7424 + i32.store offset=12 + local.get $6 + local.get $0 + i32.const 3 + i32.shl + i32.add + i64.load + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $0 + local.get $1 + i32.const 7424 + i32.load + call_indirect (type $28) + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|046 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -65478,145 +63927,144 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 i32.const 0 global.set $std/typedarray/forEachCallCount - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $0 + call $~lib/typedarray/Uint64Array#constructor + local.tee $1 i32.store - local.get $0 + local.get $1 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=8 - local.get $0 + local.get $1 i32.const 0 i32.const 7152 i32.const 0 call $~lib/array/Array#__get - i32.extend16_s - call $~lib/typedarray/Int16Array#__set + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=8 - local.get $0 + local.get $1 i32.const 1 i32.const 7152 i32.const 1 call $~lib/array/Array#__get - i32.extend16_s - call $~lib/typedarray/Int16Array#__set + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=8 - local.get $0 + local.get $1 i32.const 2 i32.const 7152 i32.const 2 call $~lib/array/Array#__get - i32.extend16_s - call $~lib/typedarray/Int16Array#__set + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 7296 + i32.const 7456 i32.store offset=8 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 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $6 i64.const 0 i64.store - local.get $6 - i32.const 0 - i32.store offset=8 - local.get $6 - local.get $0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $6 - i32.const 7296 + global.get $~lib/memory/__stack_pointer + i32.const 7456 i32.store offset=4 - local.get $6 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=8 - local.get $0 + local.get $1 i32.load offset=4 - local.set $7 - local.get $6 - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int16Array#get:length local.set $6 - loop $for-loop|020 - local.get $1 - local.get $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int64Array#get:length + local.set $7 + loop $for-loop|048 + local.get $0 + local.get $7 i32.lt_s if - local.get $7 - local.get $1 - i32.const 1 + global.get $~lib/memory/__stack_pointer + i32.const 7456 + i32.store offset=12 + local.get $6 + local.get $0 + i32.const 3 i32.shl i32.add - i32.load16_s - local.set $8 + i64.load global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $8 - local.get $1 local.get $0 - i32.const 7296 - i32.load - call_indirect (type $4) local.get $1 + i32.const 7456 + i32.load + call_indirect (type $28) + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|020 + local.set $0 + br $for-loop|048 end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -65624,148 +64072,144 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 i32.const 0 global.set $std/typedarray/forEachCallCount - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $0 + call $~lib/typedarray/Float32Array#constructor + local.tee $1 i32.store - local.get $0 + local.get $1 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=8 - local.get $0 + local.get $1 i32.const 0 i32.const 7152 i32.const 0 call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=8 - local.get $0 + local.get $1 i32.const 1 i32.const 7152 i32.const 1 call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=8 - local.get $0 + local.get $1 i32.const 2 i32.const 7152 i32.const 2 call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 7328 + i32.const 7488 i32.store offset=8 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 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $6 i64.const 0 i64.store - local.get $6 - i32.const 0 - i32.store offset=8 - local.get $6 - local.get $0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $6 - i32.const 7328 + global.get $~lib/memory/__stack_pointer + i32.const 7488 i32.store offset=4 - local.get $6 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=8 - local.get $0 + local.get $1 i32.load offset=4 - local.set $7 - local.get $6 - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int16Array#get:length local.set $6 - loop $for-loop|021 - local.get $1 - local.get $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int32Array#get:length + local.set $7 + loop $for-loop|050 + local.get $0 + local.get $7 i32.lt_s if - local.get $7 - local.get $1 - i32.const 1 + global.get $~lib/memory/__stack_pointer + i32.const 7488 + i32.store offset=12 + local.get $6 + local.get $0 + i32.const 2 i32.shl i32.add - i32.load16_u - local.set $8 + f32.load global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $8 - local.get $1 local.get $0 - i32.const 7328 - i32.load - call_indirect (type $4) local.get $1 + i32.const 7488 + i32.load + call_indirect (type $35) + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|021 + local.set $0 + br $for-loop|050 end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -65773,285 +64217,380 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 i32.const 0 global.set $std/typedarray/forEachCallCount - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $0 + call $~lib/typedarray/Float64Array#constructor + local.tee $1 i32.store - local.get $0 + local.get $1 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=8 - local.get $0 + local.get $1 i32.const 0 i32.const 7152 i32.const 0 call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=8 - local.get $0 + local.get $1 i32.const 1 i32.const 7152 i32.const 1 call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=8 - local.get $0 + local.get $1 i32.const 2 i32.const 7152 i32.const 2 call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 7360 + i32.const 7520 i32.store offset=8 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 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $6 i64.const 0 i64.store - local.get $6 - i32.const 0 - i32.store offset=8 - local.get $6 - local.get $0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $6 - i32.const 7360 + global.get $~lib/memory/__stack_pointer + i32.const 7520 i32.store offset=4 - local.get $6 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=8 - local.get $0 + local.get $1 i32.load offset=4 - local.set $7 - local.get $6 - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int32Array#get:length local.set $6 - loop $for-loop|022 - local.get $1 - local.get $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int64Array#get:length + local.set $7 + loop $for-loop|052 + local.get $0 + local.get $7 i32.lt_s if - local.get $7 - local.get $1 - i32.const 2 + global.get $~lib/memory/__stack_pointer + i32.const 7520 + i32.store offset=12 + local.get $6 + local.get $0 + i32.const 3 i32.shl i32.add - i32.load - local.set $8 + f64.load global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $8 - local.get $1 local.get $0 - i32.const 7360 - i32.load - call_indirect (type $4) local.get $1 + i32.const 7520 + i32.load + call_indirect (type $34) + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|022 + local.set $0 + br $for-loop|052 end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + call $"std/typedarray/testArrayReverse<~lib/typedarray/Int8Array,i8>" + call $"std/typedarray/testArrayReverse<~lib/typedarray/Uint8Array,u8>" + call $"std/typedarray/testArrayReverse<~lib/typedarray/Uint8ClampedArray,u8>" + call $"std/typedarray/testArrayReverse<~lib/typedarray/Int16Array,i16>" + call $"std/typedarray/testArrayReverse<~lib/typedarray/Uint16Array,u16>" + call $"std/typedarray/testArrayReverse<~lib/typedarray/Int32Array,i32>" + call $"std/typedarray/testArrayReverse<~lib/typedarray/Uint32Array,u32>" + call $"std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64>" + call $"std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64>" + call $"std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32>" + call $"std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64>" + call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int8Array,i8>" + call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8Array,u8>" + call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8ClampedArray,u8>" + call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int16Array,i16>" + call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint16Array,u16>" + call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int32Array,i32>" + call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint32Array,u32>" + call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int64Array,i64>" + call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint64Array,u64>" + call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float32Array,f32>" + call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float64Array,f64>" + global.get $~lib/memory/__stack_pointer + i32.const 1 + call $~lib/typedarray/Float64Array#constructor + local.tee $1 + i32.store offset=84 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 i32.const 0 - local.set $1 + f64.const nan:0x8000000000000 + call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + i32.store offset=4 + local.get $1 + f64.const nan:0x8000000000000 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 653 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 0 + 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 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - i32.const 0 - global.set $std/typedarray/forEachCallCount - local.get $0 - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $0 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $0 - global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 + block $"~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0" (result i32) + i32.const 0 + local.get $1 + call $~lib/typedarray/Int64Array#get:length + local.tee $6 + i32.eqz + local.get $6 + i32.const 0 + i32.le_s + i32.or + br_if $"~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0" + drop + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.load offset=4 + local.set $1 + loop $while-continue|0 + local.get $0 + local.get $6 + i32.lt_s + if + i32.const 1 + local.get $1 + local.get $0 + i32.const 3 + i32.shl + i32.add + f64.load + local.tee $5 + local.get $5 + f64.ne + br_if $"~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0" + drop + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|0 + end + end + i32.const 0 + end global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.const 7152 - i32.const 0 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 654 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $0 - i32.const 1 - i32.const 7152 i32.const 1 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set + call $~lib/typedarray/Float32Array#constructor + local.tee $1 + i32.store offset=88 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 + local.get $1 + i32.const 0 + f32.const nan:0x400000 + call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $0 - i32.const 2 - i32.const 7152 - i32.const 2 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 + local.get $1 + f32.const nan:0x400000 + i32.const 0 + call $~lib/typedarray/Float32Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 659 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 7392 - i32.store offset=8 + local.get $1 + i32.store offset=4 + i32.const 0 + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $6 i64.const 0 i64.store - local.get $6 - i32.const 0 - i32.store offset=8 - local.get $6 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $6 - i32.const 7392 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $6 - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $7 - local.get $6 - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $6 - loop $for-loop|023 + block $"~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0" (result i32) + i32.const 0 local.get $1 + call $~lib/typedarray/Int32Array#get:length + local.tee $6 + i32.eqz local.get $6 - i32.lt_s - if - local.get $7 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $8 - local.get $1 + i32.const 0 + i32.le_s + i32.or + br_if $"~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0" + drop + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.load offset=4 + local.set $1 + loop $while-continue|05 local.get $0 - i32.const 7392 - i32.load - call_indirect (type $4) - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|023 + local.get $6 + i32.lt_s + if + i32.const 1 + local.get $1 + local.get $0 + i32.const 2 + i32.shl + i32.add + f32.load + local.tee $4 + local.get $4 + f32.ne + br_if $"~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0" + drop + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|05 + end end + i32.const 0 end global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.ne - br_if $folding-inner21 - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $1 + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 660 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -66059,145 +64598,103 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - i32.const 0 - global.set $std/typedarray/forEachCallCount - local.get $0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/typedarray/Int8Array#constructor local.tee $0 i32.store - local.get $0 - global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 local.get $0 i32.const 0 - i32.const 7152 - i32.const 0 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set + i32.const 1 + call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 local.get $0 i32.const 1 - i32.const 7152 - i32.const 1 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set + i32.const 2 + call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 local.get $0 i32.const 2 - i32.const 7152 - i32.const 2 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set + i32.const 3 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 + local.get $0 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - i32.const 7424 + local.get $0 i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#join + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner15 + 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 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $6 - i64.const 0 - i64.store - local.get $6 i32.const 0 - i32.store offset=8 - local.get $6 - local.get $0 i32.store - local.get $6 - i32.const 7424 - i32.store offset=4 - local.get $6 - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $7 - local.get $6 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.set $6 - loop $for-loop|024 - local.get $1 - local.get $6 - i32.lt_s - if - local.get $7 - local.get $1 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $3 - local.get $1 - local.get $0 - i32.const 7424 - i32.load - call_indirect (type $28) - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|024 - end - end + call $~lib/typedarray/Int8Array#join + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.ne - br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner16 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -66205,145 +64702,85 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - i32.const 0 - global.set $std/typedarray/forEachCallCount - local.get $0 - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/typedarray/Uint8Array#constructor local.tee $0 i32.store - local.get $0 - global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 local.get $0 i32.const 0 - i32.const 7152 - i32.const 0 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set + i32.const 1 + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 local.get $0 i32.const 1 - i32.const 7152 - i32.const 1 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set + i32.const 2 + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 local.get $0 i32.const 2 - i32.const 7152 - i32.const 2 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set + i32.const 3 + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - 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 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - local.tee $6 - i64.const 0 - i64.store - local.get $6 - i32.const 0 - i32.store offset=8 - local.get $6 local.get $0 - i32.store - local.get $6 - i32.const 7456 i32.store offset=4 - local.get $6 + local.get $0 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - i32.load offset=4 - local.set $7 - local.get $6 + 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 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner15 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.set $6 - loop $for-loop|025 - local.get $1 - local.get $6 - i32.lt_s - if - local.get $7 - local.get $1 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $3 - local.get $1 - local.get $0 - i32.const 7456 - i32.load - call_indirect (type $28) - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|025 - end - end + call $~lib/typedarray/Uint8Array#toString + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.ne - br_if $folding-inner21 + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner16 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -66351,145 +64788,85 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - i32.const 0 - global.set $std/typedarray/forEachCallCount - local.get $0 - i32.const 3 - call $~lib/typedarray/Float32Array#constructor + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $0 i32.store - local.get $0 - global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 local.get $0 i32.const 0 - i32.const 7152 - i32.const 0 - call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 local.get $0 i32.const 1 - i32.const 7152 - i32.const 1 - call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 local.get $0 i32.const 2 - i32.const 7152 - i32.const 2 - call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - 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 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - local.tee $6 - i64.const 0 - i64.store - local.get $6 - i32.const 0 - i32.store offset=8 - local.get $6 local.get $0 - i32.store - local.get $6 - i32.const 7488 i32.store offset=4 - local.get $6 + local.get $0 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - i32.load offset=4 - local.set $7 - local.get $6 + 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 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner15 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $6 - loop $for-loop|026 - local.get $1 - local.get $6 - i32.lt_s - if - local.get $7 - local.get $1 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $1 - local.get $0 - i32.const 7488 - i32.load - call_indirect (type $31) - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|026 - end - end + call $~lib/typedarray/Uint8Array#toString + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.ne - br_if $folding-inner21 + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner16 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -66497,405 +64874,224 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - i32.const 0 - global.set $std/typedarray/forEachCallCount - local.get $0 - i32.const 3 - call $~lib/typedarray/Float64Array#constructor + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/typedarray/Int16Array#constructor local.tee $0 i32.store - local.get $0 - global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 local.get $0 i32.const 0 - i32.const 7152 - i32.const 0 - call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set + i32.const 1 + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 local.get $0 i32.const 1 - i32.const 7152 - i32.const 1 - call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set + i32.const 2 + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 local.get $0 i32.const 2 - i32.const 7152 - i32.const 2 - call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set + i32.const 3 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 + local.get $0 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - i32.const 7520 + local.get $0 i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int16Array#join + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner15 + 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 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $6 - i64.const 0 - i64.store - local.get $6 i32.const 0 - i32.store offset=8 - local.get $6 - local.get $0 i32.store - local.get $6 - i32.const 7520 - i32.store offset=4 - local.get $6 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store local.get $0 - i32.load offset=4 - local.set $7 - local.get $6 + call $~lib/typedarray/Int16Array#join + local.set $0 + 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=8 + i32.store offset=4 local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.set $6 - loop $for-loop|027 - local.get $1 - local.get $6 - i32.lt_s - if - local.get $7 - local.get $1 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $5 - local.get $1 - local.get $0 - i32.const 7520 - i32.load - call_indirect (type $32) - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|027 - end - end + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner16 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.ne - br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i32.const 12 - i32.add + i32.sub global.set $~lib/memory/__stack_pointer - call $std/typedarray/testArrayReverse<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testArrayReverse<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testArrayReverse<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testArrayReverse<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testArrayReverse<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testArrayReverse<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testArrayReverse<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64> - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float64Array,f64> global.get $~lib/memory/__stack_pointer - i32.const 1 - call $~lib/typedarray/Float64Array#constructor - local.tee $1 - i32.store offset=84 + i32.const 16320 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 0 - f64.const nan:0x8000000000000 - call $~lib/typedarray/Float64Array#__set + i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 5 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=4 - local.get $1 - f64.const nan:0x8000000000000 + local.get $0 i32.const 0 - call $~lib/typedarray/Float64Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 653 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 1 + call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - local.tee $6 - local.get $1 + local.get $0 i32.store offset=4 - i32.const 0 - local.set $0 - local.get $6 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - local.tee $6 - i64.const 0 - i64.store - block $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) - local.get $6 - local.get $1 - i32.store - local.get $6 - local.get $1 - i32.store offset=4 - i32.const 0 - local.get $1 - call $~lib/typedarray/Int64Array#get:length - local.tee $6 - i32.eqz - local.get $6 - i32.const 0 - i32.le_s - i32.or - br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 - drop - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.load offset=4 - local.set $1 - loop $while-continue|0 - local.get $0 - local.get $6 - i32.lt_s - if - i32.const 1 - local.get $1 - local.get $0 - i32.const 3 - i32.shl - i32.add - f64.load - local.tee $5 - local.get $5 - f64.ne - br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 - drop - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $while-continue|0 - end - end - i32.const 0 - end - local.set $0 + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer local.get $0 - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 654 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.store offset=4 + local.get $0 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - i32.const 1 - call $~lib/typedarray/Float32Array#constructor - local.tee $1 - i32.store offset=88 + local.get $0 + i32.store offset=8 + local.get $0 + 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 0 - f32.const nan:0x400000 - call $~lib/typedarray/Float32Array#__set + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner15 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - f32.const nan:0x400000 - i32.const 0 - call $~lib/typedarray/Float32Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 659 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + local.get $0 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $6 - local.get $1 - i32.store offset=4 - i32.const 0 - local.set $0 - local.get $6 - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $6 - i64.const 0 - i64.store - block $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) - local.get $6 - local.get $1 - i32.store - local.get $6 - local.get $1 - i32.store offset=4 - i32.const 0 - local.get $1 - call $~lib/typedarray/Int32Array#get:length - local.tee $6 - i32.eqz - local.get $6 - i32.const 0 - i32.le_s - i32.or - br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 - drop - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.load offset=4 - local.set $1 - loop $while-continue|01 - local.get $0 - local.get $6 - i32.lt_s - if - i32.const 1 - local.get $1 - local.get $0 - i32.const 2 - i32.shl - i32.add - f32.load - local.tee $4 - local.get $4 - f32.ne - br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 - drop - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $while-continue|01 - end - end - i32.const 0 - end + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/typedarray/Uint16Array#join local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 8 + 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 + i32.const 9616 + call $~lib/string/String.__eq i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 660 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + br_if $folding-inner16 + 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 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 - i32.const 20 - memory.fill - local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer i32.const 5 - call $~lib/typedarray/Int8Array#constructor + call $~lib/typedarray/Int32Array#constructor local.tee $0 i32.store global.get $~lib/memory/__stack_pointer @@ -66904,115 +65100,102 @@ local.get $0 i32.const 0 i32.const 1 - call $~lib/typedarray/Int8Array#__set + call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.const 1 i32.const 2 - call $~lib/typedarray/Int8Array#__set + call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.const 2 i32.const 3 - call $~lib/typedarray/Int8Array#__set + call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.const 3 i32.const 4 - call $~lib/typedarray/Int8Array#__set + call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.const 4 i32.const 5 - call $~lib/typedarray/Int8Array#__set + call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=16 + i32.store offset=8 local.get $0 - call $~lib/typedarray/Int8Array#join + call $~lib/typedarray/Int32Array#join local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 local.get $1 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner22 + br_if $folding-inner15 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 - i32.store offset=12 - local.get $1 - i32.const 8 + 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 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 local.get $0 i32.store - local.get $1 - i32.const 9584 - i32.store offset=4 local.get $0 - call $~lib/typedarray/Int8Array#join + call $~lib/typedarray/Int32Array#join local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~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 9616 - i32.store offset=8 local.get $0 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner23 + br_if $folding-inner16 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 - i32.const 20 - memory.fill - local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer i32.const 5 - call $~lib/typedarray/Uint8Array#constructor + call $~lib/typedarray/Uint32Array#constructor local.tee $0 i32.store global.get $~lib/memory/__stack_pointer @@ -67021,92 +65204,102 @@ local.get $0 i32.const 0 i32.const 1 - call $~lib/typedarray/Uint8Array#__set + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.const 1 i32.const 2 - call $~lib/typedarray/Uint8Array#__set + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.const 2 i32.const 3 - call $~lib/typedarray/Uint8Array#__set + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.const 3 i32.const 4 - call $~lib/typedarray/Uint8Array#__set + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.const 4 i32.const 5 - call $~lib/typedarray/Uint8Array#__set + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=16 + i32.store offset=8 local.get $0 - call $~lib/typedarray/Uint8Array#join + call $~lib/typedarray/Uint32Array#join local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 local.get $1 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner22 + br_if $folding-inner15 + 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 16320 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store local.get $0 - call $~lib/typedarray/Uint8Array#toString + call $~lib/typedarray/Uint32Array#join local.set $0 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 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 local.get $0 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner23 + br_if $folding-inner16 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 - i32.const 20 - memory.fill - local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer i32.const 5 - call $~lib/typedarray/Uint8ClampedArray#constructor + call $~lib/typedarray/Int64Array#constructor local.tee $0 i32.store global.get $~lib/memory/__stack_pointer @@ -67114,93 +65307,103 @@ i32.store offset=4 local.get $0 i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set + i64.const 1 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set + i64.const 2 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set + i64.const 3 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint8ClampedArray#__set + i64.const 4 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.const 4 - i32.const 5 - call $~lib/typedarray/Uint8ClampedArray#__set + i64.const 5 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=16 + i32.store offset=8 local.get $0 - call $~lib/typedarray/Uint8Array#join + call $~lib/typedarray/Int64Array#join local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 local.get $1 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner22 + br_if $folding-inner15 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + 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 16320 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - call $~lib/typedarray/Uint8Array#toString + i32.store + local.get $0 + call $~lib/typedarray/Int64Array#join local.set $0 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 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 local.get $0 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner23 + br_if $folding-inner16 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 - i32.const 20 - memory.fill - local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer i32.const 5 - call $~lib/typedarray/Int16Array#constructor + call $~lib/typedarray/Uint64Array#constructor local.tee $0 i32.store global.get $~lib/memory/__stack_pointer @@ -67208,116 +65411,103 @@ i32.store offset=4 local.get $0 i32.const 0 - i32.const 1 - call $~lib/typedarray/Int16Array#__set + i64.const 1 + call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.const 1 - i32.const 2 - call $~lib/typedarray/Int16Array#__set + i64.const 2 + call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.const 2 - i32.const 3 - call $~lib/typedarray/Int16Array#__set + i64.const 3 + call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.const 3 - i32.const 4 - call $~lib/typedarray/Int16Array#__set + i64.const 4 + call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.const 4 - i32.const 5 - call $~lib/typedarray/Int16Array#__set + i64.const 5 + call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=16 + i32.store offset=8 local.get $0 - call $~lib/typedarray/Int16Array#join + call $~lib/typedarray/Uint64Array#join local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 local.get $1 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner22 + br_if $folding-inner15 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 - i32.store offset=12 - local.get $1 - i32.const 8 + 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 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 local.get $0 i32.store - local.get $1 - i32.const 9584 - i32.store offset=4 local.get $0 - call $~lib/typedarray/Int16Array#join + call $~lib/typedarray/Uint64Array#join local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~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 9616 - i32.store offset=8 local.get $0 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner23 + br_if $folding-inner16 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 - i32.const 20 - memory.fill - local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer i32.const 5 - call $~lib/typedarray/Uint16Array#constructor + call $~lib/typedarray/Float32Array#constructor local.tee $0 i32.store global.get $~lib/memory/__stack_pointer @@ -67325,116 +65515,103 @@ i32.store offset=4 local.get $0 i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint16Array#__set + f32.const 1 + call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set + f32.const 2 + call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint16Array#__set + f32.const 3 + call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint16Array#__set + f32.const 4 + call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.const 4 - i32.const 5 - call $~lib/typedarray/Uint16Array#__set + f32.const 5 + call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=16 + i32.store offset=8 local.get $0 - call $~lib/typedarray/Uint16Array#join + call $~lib/typedarray/Float32Array#join local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 local.get $1 - i32.const 9616 + i32.const 10800 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner22 + br_if $folding-inner17 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 - i32.store offset=12 - local.get $1 - i32.const 8 + 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 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 local.get $0 i32.store - local.get $1 - i32.const 9584 - i32.store offset=4 local.get $0 - call $~lib/typedarray/Uint16Array#join + call $~lib/typedarray/Float32Array#join local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~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 9616 - i32.store offset=8 local.get $0 - i32.const 9616 + i32.const 10800 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner23 + br_if $folding-inner18 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 - i32.const 20 - memory.fill - local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer i32.const 5 - call $~lib/typedarray/Int32Array#constructor + call $~lib/typedarray/Float64Array#constructor local.tee $0 i32.store global.get $~lib/memory/__stack_pointer @@ -67442,1417 +65619,2798 @@ i32.store offset=4 local.get $0 i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set + f64.const 1 + call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set + f64.const 2 + call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set + f64.const 3 + call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#__set + f64.const 4 + call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.const 4 - i32.const 5 - call $~lib/typedarray/Int32Array#__set + f64.const 5 + call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=16 + i32.store offset=8 local.get $0 - call $~lib/typedarray/Int32Array#join + call $~lib/typedarray/Float64Array#join local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 local.get $1 - i32.const 9616 + i32.const 10800 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner22 + br_if $folding-inner17 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 - i32.store offset=12 - local.get $1 - i32.const 8 + 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 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 local.get $0 i32.store - local.get $1 - i32.const 9584 - i32.store offset=4 local.get $0 - call $~lib/typedarray/Int32Array#join + call $~lib/typedarray/Float64Array#join local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~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 9616 - i32.store offset=8 local.get $0 - i32.const 9616 + i32.const 10800 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner23 + br_if $folding-inner18 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer 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 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 - i32.const 20 - memory.fill - local.get $0 - i32.const 5 - call $~lib/typedarray/Uint32Array#constructor + call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $0 - i32.store + i32.store offset=92 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 + i32.const 2 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer local.get $0 i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint32Array#__set + call $~lib/typedarray/Uint8Array.wrap@varargs + local.tee $0 + i32.store offset=96 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - i32.const 1 + call $~lib/typedarray/Int8Array#get:length + if + i32.const 0 + i32.const 1568 + i32.const 737 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer i32.const 2 - call $~lib/typedarray/Uint32Array#__set + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $0 + i32.store offset=92 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 + i32.const 2 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer local.get $0 i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint32Array#__set + call $~lib/typedarray/Uint8Array.wrap@varargs + local.tee $0 + i32.store offset=96 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint32Array#__set + call $~lib/typedarray/Int8Array#get:length + if + i32.const 0 + i32.const 1568 + i32.const 741 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + call $"std/typedarray/testArrayWrap<~lib/typedarray/Int8Array,i8>" global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 24 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 10928 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 10928 i32.store offset=4 + i32.const 10928 + call $~lib/array/Array#get:length + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Uint32Array#__set + call $~lib/typedarray/Uint8Array#constructor + local.tee $1 + i32.store offset=8 + loop $for-loop|053 + local.get $0 + local.get $2 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 10928 + i32.store offset=12 + local.get $1 + local.get $2 + i32.const 10928 + local.get $2 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|053 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load + local.tee $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $2 + local.get $7 + local.get $8 + local.get $1 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $2 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + call $~lib/typedarray/Uint8Array.wrap@varargs + local.tee $6 + i32.store offset=20 + i32.const 0 + local.set $2 + loop $for-loop|1 + local.get $0 + local.get $2 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/typedarray/Uint8Array#__get + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $2 + call $~lib/typedarray/Uint8Array#__get + local.get $7 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 730 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + 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 24 + i32.add + global.set $~lib/memory/__stack_pointer + call $"std/typedarray/testArrayWrap<~lib/typedarray/Uint8ClampedArray,u8>" + call $"std/typedarray/testArrayWrap<~lib/typedarray/Int16Array,i16>" + call $"std/typedarray/testArrayWrap<~lib/typedarray/Uint16Array,u16>" + call $"std/typedarray/testArrayWrap<~lib/typedarray/Int32Array,i32>" + call $"std/typedarray/testArrayWrap<~lib/typedarray/Uint32Array,u32>" + call $"std/typedarray/testArrayWrap<~lib/typedarray/Int64Array,i64>" + call $"std/typedarray/testArrayWrap<~lib/typedarray/Uint64Array,u64>" + call $"std/typedarray/testArrayWrap<~lib/typedarray/Float32Array,f32>" + call $"std/typedarray/testArrayWrap<~lib/typedarray/Float64Array,f64>" + call $std/typedarray/testTypedArraySet<~lib/typedarray/Int8Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8ClampedArray> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Int16Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint16Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Int32Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint32Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Int64Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint64Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Float32Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Float64Array> + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $1 + i32.store offset=100 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + i32.store offset=104 global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=16 local.get $0 - call $~lib/typedarray/Uint32Array#join - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 - local.get $1 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner22 - global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 - i32.store offset=12 - local.get $1 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 + i32.const 0 + f32.const 400 + call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 local.get $0 - i32.store - local.get $1 - i32.const 9584 i32.store offset=4 local.get $0 - call $~lib/typedarray/Uint32Array#join - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 1 + f32.const nan:0x400000 + call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 local.get $0 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner23 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - 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 16320 - i32.lt_s - br_if $folding-inner19 + i32.const 2 + f32.const inf + call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.const 20 - memory.fill - local.get $0 - i32.const 5 + i32.const 4 call $~lib/typedarray/Int64Array#constructor - local.tee $0 - i32.store + local.tee $6 + i32.store offset=108 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $6 i32.store offset=4 - local.get $0 + local.get $6 i32.const 0 - i64.const 1 + i64.const -10 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $6 i32.store offset=4 - local.get $0 + local.get $6 i32.const 1 - i64.const 2 + i64.const 100 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $6 i32.store offset=4 - local.get $0 + local.get $6 i32.const 2 - i64.const 3 + i64.const 10 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $6 i32.store offset=4 - local.get $0 + local.get $6 i32.const 3 - i64.const 4 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i64.const 5 + i64.const 300 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 + i32.const 2 + call $~lib/typedarray/Int32Array#constructor + local.tee $7 + i32.store offset=112 global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=16 - local.get $0 - call $~lib/typedarray/Int64Array#join - local.set $1 + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.const 300 + call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $7 i32.store offset=4 + local.get $7 + i32.const 1 + i32.const -1 + call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 local.get $1 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner22 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 - i32.store offset=12 - local.get $1 - i32.const 8 + 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 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $1 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 $1 - local.get $0 i32.store - local.get $1 - i32.const 9584 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int64Array#join - local.set $0 - 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 $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9616 + local.get $0 i32.store offset=8 local.get $0 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner23 + call $~lib/typedarray/Int32Array#get:length + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 20 + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int8Array#get:length + local.get $8 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - 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 16320 i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.const 20 - memory.fill - local.get $0 - i32.const 5 - call $~lib/typedarray/Uint64Array#constructor - local.tee $0 - i32.store + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + i32.const 1 + i32.add + local.set $9 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store offset=8 local.get $0 + i32.load offset=4 + local.set $0 i32.const 0 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set + local.set $2 + loop $for-loop|0654 + local.get $2 + local.get $8 + i32.lt_s + if + local.get $2 + local.get $9 + i32.add + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + f32.load + local.tee $4 + local.get $4 + f32.sub + f32.const 0 + f32.eq + if (result i32) + local.get $4 + f32.const 255 + f32.min + f32.const 0 + f32.max + i32.trunc_sat_f32_u + else + i32.const 0 + end + i32.store8 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0654 + end + end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 - i32.const 3 - i64.const 4 - call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $6 + i32.store offset=20 + local.get $1 + local.get $6 i32.const 4 - i64.const 5 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=16 - local.get $0 - call $~lib/typedarray/Uint64Array#join - local.set $1 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 - local.get $1 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner22 + local.get $7 + i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=12 - local.get $1 - i32.const 8 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $1 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 $1 - local.get $0 i32.store - local.get $1 - i32.const 9584 + global.get $~lib/memory/__stack_pointer + local.get $7 i32.store offset=4 - local.get $0 - call $~lib/typedarray/Uint64Array#join + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + call $~lib/typedarray/Int32Array#get:length local.set $0 global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int8Array#get:length + local.get $0 i32.const 8 i32.add - global.set $~lib/memory/__stack_pointer + i32.lt_s + br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + i32.const 8 + i32.add + local.set $6 global.get $~lib/memory/__stack_pointer - i32.const 9616 + local.get $7 i32.store offset=8 - local.get $0 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner23 + local.get $7 + i32.load offset=4 + local.set $7 + i32.const 0 + local.set $2 + loop $for-loop|07 + local.get $0 + local.get $2 + i32.gt_s + if + local.get $2 + local.get $6 + i32.add + i32.const 255 + local.get $7 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $8 + i32.sub + i32.const 31 + i32.shr_s + local.get $8 + i32.or + local.get $8 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i32.and + i32.store8 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|07 + end + end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer 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 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - local.tee $0 + local.get $1 + i32.store offset=4 + i32.const 10 i32.const 0 - i32.const 20 - memory.fill + i32.const 64 + i32.const 15280 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 5 - call $~lib/typedarray/Float32Array#constructor + i32.store offset=20 + local.get $1 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint32Array#constructor local.tee $0 - i32.store + i32.store offset=116 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.const 0 - f32.const 1 - call $~lib/typedarray/Float32Array#__set + i32.const 1 + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.const 1 - f32.const 2 - call $~lib/typedarray/Float32Array#__set + i32.const 300 + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.const 2 - f32.const 3 - call $~lib/typedarray/Float32Array#__set + i32.const 100 + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.const 3 - f32.const 4 - call $~lib/typedarray/Float32Array#__set + i32.const -1 + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 i32.const 4 - f32.const 5 - call $~lib/typedarray/Float32Array#__set + call $~lib/typedarray/Int16Array#constructor + local.tee $2 + i32.store offset=120 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.const -10 + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=16 - local.get $0 - call $~lib/typedarray/Float32Array#join - local.set $1 + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const 100 + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 + local.get $2 + i32.const 2 + i32.const 10 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 + i32.const 300 + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - i32.const 10800 - i32.store offset=8 local.get $1 - i32.const 10800 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner24 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 - i32.store offset=12 - local.get $1 - i32.const 8 + 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 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $1 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 $1 - local.get $0 i32.store - local.get $1 - i32.const 9584 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Float32Array#join - local.set $0 - 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 $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 10800 + local.get $0 i32.store offset=8 local.get $0 - i32.const 10800 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner25 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer + call $~lib/typedarray/Int32Array#get:length + local.set $6 global.get $~lib/memory/__stack_pointer - i32.const 16320 + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int8Array#get:length + local.get $6 i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.const 20 - memory.fill - local.get $0 - i32.const 5 - call $~lib/typedarray/Float64Array#constructor - local.tee $0 - i32.store + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $7 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store offset=8 local.get $0 + i32.load offset=4 + local.set $8 i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set + local.set $0 + loop $for-loop|0855 + local.get $0 + local.get $6 + i32.lt_s + if + local.get $0 + local.get $7 + i32.add + i32.const 255 + local.get $8 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $9 + local.get $9 + i32.const 255 + i32.gt_u + select + i32.store8 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0855 + end + end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 - i32.const 2 - f64.const 3 - call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - f64.const 4 - call $~lib/typedarray/Float64Array#__set + local.get $2 + i32.store offset=20 + local.get $1 + local.get $2 + i32.const 5 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 - i32.const 4 - f64.const 5 - call $~lib/typedarray/Float64Array#__set + i32.const 10 + i32.const 0 + i32.const 64 + i32.const 15312 + call $~lib/rt/__newArray + local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=16 + i32.store offset=20 + local.get $1 local.get $0 - call $~lib/typedarray/Float64Array#join - local.set $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8>" + block $folding-inner02 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner02 + 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 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 0 + global.set $~argumentsLength + 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 16320 + i32.lt_s + br_if $folding-inner02 + 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 15344 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15344 + i32.store offset=8 + local.get $1 + i32.const 15344 + call $~lib/typedarray/Int8Array#sort + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 12 + 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 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 885 + 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 + call $~lib/typedarray/Int8Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 886 + 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/typedarray/Int8Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 887 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15376 + i32.store offset=12 + local.get $1 + i32.const 15376 + call $~lib/typedarray/Int8Array#sort + drop + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 889 + 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 + call $~lib/typedarray/Int8Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 890 + 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/typedarray/Int8Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 891 + 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 + br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8>" + end + 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 10800 - i32.store offset=8 - local.get $1 - i32.const 10800 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner24 + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8>$1" + block $folding-inner04 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner04 + 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 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 0 + global.set $~argumentsLength + 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 16320 + i32.lt_s + br_if $folding-inner04 + 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 15408 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15408 + i32.store offset=8 + local.get $1 + i32.const 15408 + call $~lib/typedarray/Uint8Array#sort + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 12 + 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 + i32.const 0 + call $~lib/typedarray/Uint8Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 885 + 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 + call $~lib/typedarray/Uint8Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 886 + 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/typedarray/Uint8Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 887 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15440 + i32.store offset=12 + local.get $1 + i32.const 15440 + call $~lib/typedarray/Uint8Array#sort + drop + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint8Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 889 + 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 + call $~lib/typedarray/Uint8Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 890 + 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/typedarray/Uint8Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 891 + 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 + br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8>$1" + end + 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 16 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint8ClampedArray,u8>$2" + block $folding-inner06 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner06 + 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 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 0 + global.set $~argumentsLength + 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 16320 + i32.lt_s + br_if $folding-inner06 + 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 15472 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15472 + i32.store offset=8 + local.get $1 + i32.const 15472 + call $~lib/typedarray/Uint8Array#sort + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 12 + 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 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 885 + 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 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 886 + 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/typedarray/Uint8ClampedArray#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 887 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15504 + i32.store offset=12 + local.get $1 + i32.const 15504 + call $~lib/typedarray/Uint8Array#sort + drop + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 889 + 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 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 890 + 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/typedarray/Uint8ClampedArray#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 891 + 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 + br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint8ClampedArray,u8>$2" + end + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=12 - local.get $1 - i32.const 8 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16>$3" + block $folding-inner08 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner08 + 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 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 0 + global.set $~argumentsLength + 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 16320 + i32.lt_s + br_if $folding-inner08 + 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 15536 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15536 + i32.store offset=8 + local.get $1 + i32.const 15536 + call $~lib/typedarray/Int16Array#sort + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 12 + 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 + i32.const 0 + call $~lib/typedarray/Int16Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 885 + 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 + call $~lib/typedarray/Int16Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 886 + 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/typedarray/Int16Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 887 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15568 + i32.store offset=12 + local.get $1 + i32.const 15568 + call $~lib/typedarray/Int16Array#sort + drop + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int16Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 889 + 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 + call $~lib/typedarray/Int16Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 890 + 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/typedarray/Int16Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 891 + 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 + br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16>$3" + end + 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 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - local.get $0 - i32.store - local.get $1 - i32.const 9584 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Float64Array#join - local.set $0 - 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 $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 10800 - i32.store offset=8 - local.get $0 - i32.const 10800 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner25 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add + i32.const 16 + i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 0 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 - i32.store offset=92 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 2 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 0 - call $~lib/typedarray/Uint8Array.wrap@varargs - local.tee $0 - i32.store offset=96 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int8Array#get:length - if - i32.const 0 - i32.const 1568 - i32.const 737 - i32.const 3 + block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint16Array,u16>$4" + block $folding-inner010 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner010 + 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 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 0 + global.set $~argumentsLength + 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 16320 + i32.lt_s + br_if $folding-inner010 + 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 15600 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15600 + i32.store offset=8 + local.get $1 + i32.const 15600 + call $~lib/typedarray/Uint16Array#sort + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 12 + 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 + i32.const 0 + call $~lib/typedarray/Uint16Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 885 + 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 + call $~lib/typedarray/Uint16Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 886 + 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/typedarray/Uint16Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 887 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15632 + i32.store offset=12 + local.get $1 + i32.const 15632 + call $~lib/typedarray/Uint16Array#sort + drop + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint16Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 889 + 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 + call $~lib/typedarray/Uint16Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 890 + 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/typedarray/Uint16Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 891 + 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 + br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint16Array,u16>$4" + end + 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 2 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 - i32.store offset=92 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 2 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/typedarray/Uint8Array.wrap@varargs - local.tee $0 - i32.store offset=96 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int8Array#get:length - if - i32.const 0 - i32.const 1568 - i32.const 741 - i32.const 3 + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32>$5" + block $folding-inner012 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner012 + 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 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 0 + global.set $~argumentsLength + 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 16320 + i32.lt_s + br_if $folding-inner012 + 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 15664 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15664 + i32.store offset=8 + local.get $1 + i32.const 15664 + call $~lib/typedarray/Int32Array#sort + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 12 + 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 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 885 + 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 + call $~lib/typedarray/Int32Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 886 + 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/typedarray/Int32Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 887 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15696 + i32.store offset=12 + local.get $1 + i32.const 15696 + call $~lib/typedarray/Int32Array#sort + drop + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 889 + 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 + call $~lib/typedarray/Int32Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 890 + 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/typedarray/Int32Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 891 + 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 + br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32>$5" + end + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - call $std/typedarray/testArrayWrap<~lib/typedarray/Int8Array,i8> global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.const 24 - memory.fill - local.get $0 - i32.const 10928 - i32.store - local.get $0 - i32.const 10928 - i32.store offset=4 - i32.const 10928 - call $~lib/array/Array#get:length - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/typedarray/Uint8Array#constructor - local.tee $1 - i32.store offset=8 - loop $for-loop|01 - local.get $0 - local.get $2 - i32.gt_s - if + block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32>$6" + block $folding-inner014 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner014 + 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 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - local.tee $6 local.get $1 i32.store offset=4 - local.get $6 - i32.const 10928 - i32.store offset=12 local.get $1 - local.get $2 - i32.const 10928 - local.get $2 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set - local.get $2 i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 0 + global.set $~argumentsLength + 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 16320 + i32.lt_s + br_if $folding-inner014 + 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 15728 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15728 + i32.store offset=8 + local.get $1 + i32.const 15728 + call $~lib/typedarray/Uint32Array#sort + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add - local.set $2 - br $for-loop|01 - end - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 - i32.store offset=12 - local.get $2 - local.get $1 - i32.load - local.tee $6 - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=12 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $2 - local.get $6 - local.get $7 - local.get $8 - local.get $1 - i32.load offset=8 - i32.add - call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $2 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 0 - call $~lib/typedarray/Uint8Array.wrap@varargs - local.tee $6 - i32.store offset=20 - i32.const 0 - local.set $2 - loop $for-loop|1 - local.get $0 - local.get $2 - i32.gt_s - if + 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 - local.get $2 - call $~lib/typedarray/Uint8Array#__get - local.set $7 + i32.const 0 + call $~lib/typedarray/Uint32Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 885 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 - local.get $2 - call $~lib/typedarray/Uint8Array#__get - local.get $7 + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint32Array#__get + i32.const 2 i32.ne if i32.const 0 i32.const 1568 - i32.const 730 - i32.const 5 + i32.const 886 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 887 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15760 + i32.store offset=12 + local.get $1 + i32.const 15760 + call $~lib/typedarray/Uint32Array#sort + drop + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint32Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 889 + 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 + call $~lib/typedarray/Uint32Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 890 + 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/typedarray/Uint32Array#__get i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 891 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add - local.set $2 - br $for-loop|1 + global.set $~lib/memory/__stack_pointer + br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32>$6" end + 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 24 - i32.add - global.set $~lib/memory/__stack_pointer - call $std/typedarray/testArrayWrap<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testArrayWrap<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testArrayWrap<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testArrayWrap<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testArrayWrap<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testArrayWrap<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testArrayWrap<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testArrayWrap<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testArrayWrap<~lib/typedarray/Float64Array,f64> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Int8Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8ClampedArray> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Int16Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint16Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Int32Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint32Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Int64Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint64Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Float32Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Float64Array> - global.get $~lib/memory/__stack_pointer - i32.const 10 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $1 - i32.store offset=100 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $0 - i32.store offset=104 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - f32.const 400 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - f32.const nan:0x400000 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - f32.const inf - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Int64Array#constructor - local.tee $6 - i32.store offset=108 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i64.const -10 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i64.const 100 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i64.const 10 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i64.const 300 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 2 - call $~lib/typedarray/Int32Array#constructor - local.tee $7 - i32.store offset=112 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.const 300 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 1 - i32.const -1 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - 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 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i32.const 0 - i32.store offset=8 - local.get $2 - local.get $1 - i32.store - local.get $2 - local.get $0 - i32.store offset=4 - local.get $2 - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int8Array#get:length - local.get $8 - i32.const 1 - i32.add - i32.lt_s - br_if $folding-inner17 - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - i32.const 1 - i32.add - local.set $9 - local.get $2 - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $0 - i32.const 0 - local.set $2 - loop $for-loop|00 - local.get $2 - local.get $8 - i32.lt_s - if - local.get $2 - local.get $9 - i32.add - local.get $0 - local.get $2 + block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64>$7" + block $folding-inner016 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner016 + 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 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 i32.const 2 - i32.shl + i64.const 1 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 0 + global.set $~argumentsLength + 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 16320 + i32.lt_s + br_if $folding-inner016 + 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 15792 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15792 + i32.store offset=8 + local.get $1 + i32.const 15792 + call $~lib/typedarray/Int64Array#sort + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add - f32.load - local.tee $4 - local.get $4 - f32.sub - f32.const 0 - f32.eq - if (result i32) - local.get $4 - f32.const 255 - f32.min - f32.const 0 - f32.max - i32.trunc_sat_f32_u - else + 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 + i32.const 0 + call $~lib/typedarray/Int64Array#__get + i64.const 1 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 885 + 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 + call $~lib/typedarray/Int64Array#__get + i64.const 2 + i64.ne + if i32.const 0 + i32.const 1568 + i32.const 886 + i32.const 3 + call $~lib/builtins/abort + unreachable end - i32.store8 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Int64Array#__get + i64.const 3 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 887 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15824 + i32.store offset=12 + local.get $1 + i32.const 15824 + call $~lib/typedarray/Int64Array#sort + drop + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int64Array#__get + i64.const 3 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 889 + 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 + call $~lib/typedarray/Int64Array#__get + i64.const 2 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 890 + 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/typedarray/Int64Array#__get + i64.const 1 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 891 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add - local.set $2 - br $for-loop|00 + global.set $~lib/memory/__stack_pointer + br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64>$7" end + 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 12 - i32.add - global.set $~lib/memory/__stack_pointer - 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=20 - local.get $1 - local.get $6 - i32.const 4 - call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=20 - 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 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $7 - i32.store offset=4 - local.get $0 - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/typedarray/Int32Array#get:length - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int8Array#get:length - local.get $0 - i32.const 8 - i32.add - i32.lt_s - br_if $folding-inner17 - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - i32.const 8 - i32.add - local.set $6 - local.get $2 - local.get $7 - i32.store offset=8 - local.get $7 - i32.load offset=4 - local.set $7 - i32.const 0 - local.set $2 - loop $for-loop|01213 - local.get $0 - local.get $2 - i32.gt_s - if - local.get $2 - local.get $6 - i32.add - i32.const 255 - local.get $7 - local.get $2 + block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint64Array,u64>$8" + block $folding-inner018 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner018 + 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 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 i32.const 2 - i32.shl - i32.add - i32.load - local.tee $8 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 0 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.sub - i32.const 31 - i32.shr_s - local.get $8 - i32.or - local.get $8 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.and - i32.store8 - local.get $2 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner018 + 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 15856 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15856 + i32.store offset=8 + local.get $1 + i32.const 15856 + call $~lib/typedarray/Uint64Array#sort + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 12 + 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 + i32.const 0 + call $~lib/typedarray/Uint64Array#__get + i64.const 1 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 885 + 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 + call $~lib/typedarray/Uint64Array#__get + i64.const 2 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 886 + 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/typedarray/Uint64Array#__get + i64.const 3 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 887 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15888 + i32.store offset=12 + local.get $1 + i32.const 15888 + call $~lib/typedarray/Uint64Array#sort + drop + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint64Array#__get + i64.const 3 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 889 + 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 + call $~lib/typedarray/Uint64Array#__get + i64.const 2 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 890 + 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/typedarray/Uint64Array#__get + i64.const 1 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 891 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add - local.set $2 - br $for-loop|01213 + global.set $~lib/memory/__stack_pointer + br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint64Array,u64>$8" end + 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 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 10 - i32.const 0 - i32.const 64 - i32.const 15280 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $1 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Uint32Array#constructor - local.tee $0 - i32.store offset=116 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 300 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 100 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.const -1 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Int16Array#constructor - local.tee $2 - i32.store offset=120 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.const -10 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const 100 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2 - i32.const 10 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - i32.const 300 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - 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 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - local.tee $6 - i64.const 0 - i64.store - local.get $6 - i32.const 0 - i32.store offset=8 - local.get $6 - local.get $1 - i32.store - local.get $6 - local.get $0 - i32.store offset=4 - local.get $6 - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int8Array#get:length - local.get $6 - i32.lt_s - br_if $folding-inner17 - global.get $~lib/memory/__stack_pointer - local.tee $7 - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $8 - local.get $7 - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $7 - i32.const 0 - local.set $0 - loop $for-loop|02324 - local.get $0 - local.get $6 - i32.lt_s - if - local.get $0 - local.get $8 - i32.add - i32.const 255 - local.get $7 - local.get $0 + block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Float32Array,f32>$9" + block $folding-inner020 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner020 + 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 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 i32.const 2 - i32.shl + f32.const 1 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 0 + global.set $~argumentsLength + 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 16320 + i32.lt_s + br_if $folding-inner020 + 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 15920 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15920 + i32.store offset=8 + local.get $1 + i32.const 15920 + call $~lib/typedarray/Float32Array#sort + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add - i32.load - local.tee $9 - local.get $9 - i32.const 255 - i32.gt_u - select - i32.store8 - local.get $0 + 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 + i32.const 0 + call $~lib/typedarray/Float32Array#__get + f32.const 1 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 885 + 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 + call $~lib/typedarray/Float32Array#__get + f32.const 2 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 886 + 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/typedarray/Float32Array#__get + f32.const 3 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 887 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15952 + i32.store offset=12 + local.get $1 + i32.const 15952 + call $~lib/typedarray/Float32Array#sort + drop + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Float32Array#__get + f32.const 3 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 889 + 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 + call $~lib/typedarray/Float32Array#__get + f32.const 2 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 890 + 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/typedarray/Float32Array#__get + f32.const 1 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 891 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add - local.set $0 - br $for-loop|02324 + global.set $~lib/memory/__stack_pointer + br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Float32Array,f32>$9" end + 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 12 - i32.add - global.set $~lib/memory/__stack_pointer - 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=20 - local.get $1 - local.get $2 - i32.const 5 - call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 10 - i32.const 0 - i32.const 64 - i32.const 15312 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $1 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> - call $std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testArraySort<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testArraySort<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testArraySort<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testArraySort<~lib/typedarray/Float32Array,f32> - 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 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Float64Array#constructor local.tee $0 @@ -68937,10 +68495,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 15984 i32.store offset=12 local.get $0 @@ -69005,12 +68562,12 @@ i32.const 0 i32.gt_s if - loop $while-continue|013 + loop $while-continue|010 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|013 + br $while-continue|010 end end end @@ -69117,470 +68674,67 @@ call $~lib/builtins/abort unreachable end - i32.const 1360 - i32.const 1632 - i32.const 1902 + i32.const 0 + i32.const 1568 + i32.const 675 i32.const 5 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 323 - i32.const 3 + i32.const 676 + i32.const 5 call $~lib/builtins/abort unreachable end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 672 + i32.const 5 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 367 - i32.const 3 + i32.const 673 + i32.const 5 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 1568 - i32.const 541 - i32.const 3 + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 675 - i32.const 5 + i32.const 323 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 1568 - i32.const 676 - i32.const 5 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 672 - i32.const 5 + i32.const 367 + i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 673 - i32.const 5 + i32.const 541 + i32.const 3 call $~lib/builtins/abort unreachable ) - (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result 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 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 - local.tee $4 - i32.const 0 - i32.store - local.get $0 - local.get $1 - i32.shl - local.tee $5 - i32.const 1 - call $~lib/rt/itcms/__new - local.set $1 - local.get $3 - if - local.get $1 - local.get $3 - local.get $5 - memory.copy - end - local.get $4 - local.get $1 - i32.store - i32.const 16 - local.get $2 - call $~lib/rt/itcms/__new - local.tee $2 - local.get $1 - i32.store - local.get $2 - local.get $1 - call $~lib/rt/itcms/__link - local.get $2 - local.get $1 - i32.store offset=4 - local.get $2 - local.get $5 - i32.store offset=8 - local.get $2 - 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 $2 - ) - (func $~lib/util/number/itoa32 (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 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 - local.tee $1 - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - local.get $1 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 8000 - return - 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 $2 - select - local.tee $0 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 100 - i32.lt_u - if (result i32) - local.get $0 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $0 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $0 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $0 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $0 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $0 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.tee $1 - i32.const 1 - i32.shl - local.get $2 - i32.add - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - local.get $2 - local.get $3 - i32.add - local.get $0 - local.get $1 - call $~lib/util/number/utoa32_dec_lut - local.get $2 - if - local.get $3 - 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 $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 - local.tee $1 - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - local.get $1 - 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 $1 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - local.get $0 - local.get $1 - call $~lib/util/number/utoa32_dec_lut - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $~lib/util/number/dtoa (param $0 f64) (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 - local.tee $1 - i32.const 0 - i32.store - local.get $0 - f64.const 0 - f64.eq - if - local.get $1 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 9664 - return - end - local.get $0 - local.get $0 - f64.sub - f64.const 0 - f64.ne - if - local.get $0 - local.get $0 - f64.ne - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 9696 - return - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 9728 - i32.const 9776 - local.get $0 - f64.const 0 - f64.lt - select - return - end - i32.const 9808 - local.get $0 - call $~lib/util/number/dtoa_core - i32.const 1 - i32.shl - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - local.get $1 - i32.const 9808 - local.get $2 - memory.copy - 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 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.const 1073741820 - i32.gt_u - if - i32.const 1056 - i32.const 1104 - i32.const 52 - i32.const 43 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) ) diff --git a/tests/compiler/std/uri.debug.wat b/tests/compiler/std/uri.debug.wat index ef094cef9d..3351c851af 100644 --- a/tests/compiler/std/uri.debug.wat +++ b/tests/compiler/std/uri.debug.wat @@ -1697,14 +1697,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 @@ -3422,12 +3425,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -3683,16 +3682,13 @@ (func $start:std/uri (local $0 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 + i32.store memory.size i32.const 16 i32.shl @@ -3711,11 +3707,6 @@ call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace i32.const 32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -3723,11 +3714,6 @@ i32.store local.get $0 i32.const 32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3739,11 +3725,6 @@ unreachable end i32.const 736 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -3751,11 +3732,6 @@ i32.store local.get $0 i32.const 736 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3767,11 +3743,6 @@ unreachable end i32.const 768 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -3779,11 +3750,6 @@ i32.store local.get $0 i32.const 768 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3795,11 +3761,6 @@ unreachable end i32.const 800 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -3807,11 +3768,6 @@ i32.store local.get $0 i32.const 800 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3823,11 +3779,6 @@ unreachable end i32.const 832 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -3835,11 +3786,6 @@ i32.store local.get $0 i32.const 832 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3851,11 +3797,6 @@ unreachable end i32.const 928 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -3863,11 +3804,6 @@ i32.store local.get $0 i32.const 960 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3879,11 +3815,6 @@ unreachable end i32.const 992 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -3891,11 +3822,6 @@ i32.store local.get $0 i32.const 1024 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3907,11 +3833,6 @@ unreachable end i32.const 1056 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -3919,11 +3840,6 @@ i32.store local.get $0 i32.const 1088 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3935,11 +3851,6 @@ unreachable end i32.const 1136 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -3947,11 +3858,6 @@ i32.store local.get $0 i32.const 1168 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3963,11 +3869,6 @@ unreachable end i32.const 1216 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -3975,11 +3876,6 @@ i32.store local.get $0 i32.const 1248 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3991,11 +3887,6 @@ unreachable end i32.const 1280 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -4003,11 +3894,6 @@ i32.store local.get $0 i32.const 1312 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4019,11 +3905,6 @@ unreachable end i32.const 1360 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -4031,11 +3912,6 @@ i32.store local.get $0 i32.const 1392 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4047,11 +3923,6 @@ unreachable end i32.const 1488 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -4059,11 +3930,6 @@ i32.store local.get $0 i32.const 1520 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4075,11 +3941,6 @@ unreachable end i32.const 1632 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -4087,11 +3948,6 @@ i32.store local.get $0 i32.const 1664 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4103,11 +3959,6 @@ unreachable end i32.const 1712 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -4115,11 +3966,6 @@ i32.store local.get $0 i32.const 1744 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4131,11 +3977,6 @@ unreachable end i32.const 1792 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -4143,11 +3984,6 @@ i32.store local.get $0 i32.const 1824 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4159,11 +3995,6 @@ unreachable end i32.const 1904 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -4171,11 +4002,6 @@ i32.store local.get $0 i32.const 1936 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4187,11 +4013,6 @@ unreachable end i32.const 2000 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -4199,11 +4020,6 @@ i32.store local.get $0 i32.const 2048 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4215,11 +4031,6 @@ unreachable end i32.const 2128 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -4227,11 +4038,6 @@ i32.store local.get $0 i32.const 2240 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4243,11 +4049,6 @@ unreachable end i32.const 32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURI local.set $0 global.get $~lib/memory/__stack_pointer @@ -4255,11 +4056,6 @@ i32.store local.get $0 i32.const 32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4271,11 +4067,6 @@ unreachable end i32.const 736 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURI local.set $0 global.get $~lib/memory/__stack_pointer @@ -4283,11 +4074,6 @@ i32.store local.get $0 i32.const 736 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4299,11 +4085,6 @@ unreachable end i32.const 2480 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURI local.set $0 global.get $~lib/memory/__stack_pointer @@ -4311,11 +4092,6 @@ i32.store local.get $0 i32.const 2480 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4327,11 +4103,6 @@ unreachable end i32.const 832 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURI local.set $0 global.get $~lib/memory/__stack_pointer @@ -4339,11 +4110,6 @@ i32.store local.get $0 i32.const 832 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4355,11 +4121,6 @@ unreachable end i32.const 2528 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURI local.set $0 global.get $~lib/memory/__stack_pointer @@ -4367,11 +4128,6 @@ i32.store local.get $0 i32.const 2560 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4383,11 +4139,6 @@ unreachable end i32.const 1632 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURI local.set $0 global.get $~lib/memory/__stack_pointer @@ -4395,11 +4146,6 @@ i32.store local.get $0 i32.const 1664 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4411,11 +4157,6 @@ unreachable end i32.const 1712 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURI local.set $0 global.get $~lib/memory/__stack_pointer @@ -4423,11 +4164,6 @@ i32.store local.get $0 i32.const 1744 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4439,11 +4175,6 @@ unreachable end i32.const 1904 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURI local.set $0 global.get $~lib/memory/__stack_pointer @@ -4451,11 +4182,6 @@ i32.store local.get $0 i32.const 1936 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4467,11 +4193,6 @@ unreachable end i32.const 2128 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURI local.set $0 global.get $~lib/memory/__stack_pointer @@ -4479,11 +4200,6 @@ i32.store local.get $0 i32.const 2128 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4495,11 +4211,6 @@ unreachable end i32.const 32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -4507,11 +4218,6 @@ i32.store local.get $0 i32.const 32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4523,11 +4229,6 @@ unreachable end i32.const 736 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -4535,11 +4236,6 @@ i32.store local.get $0 i32.const 736 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4551,11 +4247,6 @@ unreachable end i32.const 2624 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -4563,11 +4254,6 @@ i32.store local.get $0 i32.const 2656 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4579,11 +4265,6 @@ unreachable end i32.const 2688 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -4591,11 +4272,6 @@ i32.store local.get $0 i32.const 2720 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4607,11 +4283,6 @@ unreachable end i32.const 2752 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -4619,11 +4290,6 @@ i32.store local.get $0 i32.const 2752 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4635,11 +4301,6 @@ unreachable end i32.const 1712 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -4647,11 +4308,6 @@ i32.store local.get $0 i32.const 1712 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4663,11 +4319,6 @@ unreachable end i32.const 2784 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -4675,11 +4326,6 @@ i32.store local.get $0 i32.const 2864 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4691,11 +4337,6 @@ unreachable end i32.const 2912 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -4703,11 +4344,6 @@ i32.store local.get $0 i32.const 2864 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4719,11 +4355,6 @@ unreachable end i32.const 2992 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -4731,11 +4362,6 @@ i32.store local.get $0 i32.const 2128 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4747,11 +4373,6 @@ unreachable end i32.const 1392 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -4759,11 +4380,6 @@ i32.store local.get $0 i32.const 1360 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4775,11 +4391,6 @@ unreachable end i32.const 32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer @@ -4787,11 +4398,6 @@ i32.store local.get $0 i32.const 32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4803,11 +4409,6 @@ unreachable end i32.const 736 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer @@ -4815,11 +4416,6 @@ i32.store local.get $0 i32.const 736 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4831,11 +4427,6 @@ unreachable end i32.const 2624 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer @@ -4843,11 +4434,6 @@ i32.store local.get $0 i32.const 2624 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4859,11 +4445,6 @@ unreachable end i32.const 3120 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer @@ -4871,11 +4452,6 @@ i32.store local.get $0 i32.const 3152 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4887,11 +4463,6 @@ unreachable end i32.const 3184 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer @@ -4899,11 +4470,6 @@ i32.store local.get $0 i32.const 3216 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4915,11 +4481,6 @@ unreachable end i32.const 2752 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer @@ -4927,11 +4488,6 @@ i32.store local.get $0 i32.const 2752 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4943,11 +4499,6 @@ unreachable end i32.const 1712 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer @@ -4955,11 +4506,6 @@ i32.store local.get $0 i32.const 1712 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4971,11 +4517,6 @@ unreachable end i32.const 2784 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer @@ -4983,11 +4524,6 @@ i32.store local.get $0 i32.const 2784 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4999,11 +4535,6 @@ unreachable end i32.const 1392 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer @@ -5011,11 +4542,6 @@ i32.store local.get $0 i32.const 1360 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -5027,11 +4553,6 @@ unreachable end i32.const 3248 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer @@ -5039,11 +4560,6 @@ i32.store local.get $0 i32.const 3248 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -5055,11 +4571,6 @@ unreachable end i32.const 3296 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer @@ -5067,11 +4578,6 @@ i32.store local.get $0 i32.const 3296 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -5083,11 +4589,6 @@ unreachable end i32.const 2992 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer @@ -5095,11 +4596,6 @@ i32.store local.get $0 i32.const 2992 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -5114,7 +4610,7 @@ global.set $~lib/memory/__stack_pointer call $~lib/rt/itcms/__collect global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/std/uri.release.wat b/tests/compiler/std/uri.release.wat index b82c1ed0b1..e69563783a 100644 --- a/tests/compiler/std/uri.release.wat +++ b/tests/compiler/std/uri.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 $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) (result i32))) (type $6 (func (param i32 i32 i32 i32))) - (type $7 (func (param i32 i32 i64))) - (type $8 (func (result i32))) + (type $7 (func (result i32))) + (type $8 (func (param i32 i32 i64))) (import "env" "abort" (func $~lib/builtins/abort (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)) @@ -153,790 +153,463 @@ (data $66 (i32.const 4336) "\04\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 1376 - call $~lib/rt/itcms/__visit - i32.const 1184 - call $~lib/rt/itcms/__visit - i32.const 1584 - 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$132 - 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 37124 - 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$132 - 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 4336 - 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 4340 - 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) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - local.get $1 - i32.eqz + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4356 + i32.lt_s if - i32.const 0 - i32.const 1520 - i32.const 201 - i32.const 14 + i32.const 37152 + i32.const 37200 + 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.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + i32.eq if - i32.const 0 - i32.const 1520 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return 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 + block $folding-inner0 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.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.const 4 - i32.add + i32.store + local.get $3 local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $4 - i32.load + 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 - end - local.get $3 - i32.const 2 - i32.and - if + global.get $~lib/memory/__stack_pointer local.get $1 + i32.store offset=4 + local.get $3 + local.tee $0 i32.const 4 - i32.sub - i32.load - local.tee $1 - i32.load - local.tee $6 - i32.const 1 - i32.and + i32.ge_u + if (result i32) + local.get $2 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + else + i32.const 1 + end i32.eqz if - i32.const 0 - i32.const 1520 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $0 + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end end - local.get $0 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - local.get $6 - i32.const 4 + block $__inlined_func$~lib/util/string/compareImpl$88 + loop $while-continue|1 + local.get $0 + local.tee $3 + i32.const 1 + i32.sub + local.set $0 + local.get $3 + if + local.get $2 + i32.load16_u + local.tee $5 + local.get $1 + i32.load16_u + local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 + i32.ne + br_if $__inlined_func$~lib/util/string/compareImpl$88 + local.get $2 + i32.const 2 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end + end + i32.const 0 + local.set $3 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add + global.set $~lib/memory/__stack_pointer 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 + i32.eqz + return end - local.get $4 - local.get $1 - i32.const 4 - i32.add - local.get $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 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 + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (func $~lib/uri/encodeURIComponent (param $0 i32) (result i32) + 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 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4356 + i32.lt_s if - i32.const 0 - i32.const 1520 - i32.const 251 - i32.const 14 + i32.const 37152 + i32.const 37200 + i32.const 1 + i32.const 1 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.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 + i32.store + global.get $~lib/memory/__stack_pointer 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 20 + i32.sub + i32.load offset=16 i32.const 1 - local.get $2 - i32.shl - i32.or - i32.store offset=4 + i32.shr_u + i32.const 1068 + call $~lib/util/uri/encode + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (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 + (func $~lib/uri/decodeURI (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 4356 + i32.lt_s if - i32.const 0 - i32.const 1520 - i32.const 382 - i32.const 14 + i32.const 37152 + i32.const 37200 + i32.const 1 + i32.const 1 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 + 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 $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.load offset=16 i32.const 1 - i32.or - i32.or - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 + i32.shr_u i32.const 0 - i32.store offset=8 - local.get $1 + call $~lib/util/uri/decode + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add - local.get $3 - i32.add - local.tee $3 - i32.const 2 + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/uri/decodeURIComponent (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 4356 + i32.lt_s + if + 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.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $3 - i32.store offset=1568 + i32.store local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.const 1 + call $~lib/util/uri/decode + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (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 + (func $~lib/uri/encodeURI (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 4356 + i32.lt_s if + i32.const 37152 + i32.const 37200 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort unreachable end - i32.const 37136 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - i32.const 38704 - i32.const 0 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - loop $for-loop|0 - local.get $0 - i32.const 23 - i32.lt_u + local.get $0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.const 3388 + call $~lib/util/uri/encode + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (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 - i32.const 2 - i32.shl - i32.const 37136 - i32.add - i32.const 0 - i32.store offset=4 - i32.const 0 - local.set $1 - loop $for-loop|1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$132 + local.get $1 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $0 + i32.eqz + if local.get $1 - i32.const 16 + i32.load offset=8 + i32.eqz + local.get $1 + i32.const 37124 i32.lt_u + i32.and + i32.eqz if - local.get $0 - i32.const 4 - i32.shl - local.get $1 - i32.add - i32.const 2 - i32.shl - i32.const 37136 - i32.add i32.const 0 - i32.store offset=96 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|1 + i32.const 1248 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable end + br $__inlined_func$~lib/rt/itcms/Object#unlink$132 + 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 4336 + 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 4340 i32.add - local.set $0 - br $for-loop|0 + 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 - i32.const 37136 - i32.const 38708 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 37136 - global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) (local $0 i32) @@ -1148,7 +821,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1181,7 +853,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1190,65 +861,378 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + 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/__renew (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + local.get $0 + i32.const 20 + i32.sub + local.tee $3 + i32.load + i32.const -4 + i32.and + i32.const 16 + i32.sub + i32.le_u + if + local.get $3 + local.get $1 + i32.store offset=16 local.get $0 - local.get $0 + return + end + local.get $1 + local.get $3 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.tee $2 + local.get $0 + local.get $1 + local.get $3 + i32.load offset=16 + local.tee $0 + local.get $0 + local.get $1 + i32.gt_u + select + memory.copy + local.get $2 + ) + (func $~lib/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 - global.set $~lib/rt/itcms/state + i32.const 1520 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable 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 + 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.shr_u - local.set $1 - else + i32.add + local.get $2 + i32.const -4 + i32.and + i32.add + local.tee $3 + i32.store local.get $1 - i32.const 536870910 - i32.lt_u + 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 - 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 + i32.const 0 + i32.const 1520 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $0 local.get $1 - i32.const 31 + 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 $2 + 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 - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 end - local.get $1 + local.tee $2 i32.const 16 i32.lt_u - local.get $2 + local.get $5 i32.const 23 i32.lt_u i32.and @@ -1256,78 +1240,66 @@ if i32.const 0 i32.const 1520 - i32.const 334 + 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=4 - i32.const -1 + i32.load offset=96 + local.set $3 local.get $1 - i32.shl - i32.and - local.tee $1 - if (result i32) - local.get $0 + 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.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 + 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/itcms/__new (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1362,12 +1334,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 @@ -1379,8 +1347,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1432,8 +1399,6 @@ local.tee $2 i32.eqz if - memory.size - local.tee $2 local.get $5 i32.const 256 i32.ge_u @@ -1461,7 +1426,8 @@ i32.const 4 local.get $4 i32.load offset=1568 - local.get $2 + memory.size + local.tee $2 i32.const 16 i32.shl i32.const 4 @@ -1475,7 +1441,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.set $3 + local.get $2 + local.get $3 local.get $2 local.get $3 i32.gt_s @@ -1647,43 +1615,30 @@ memory.fill local.get $1 ) - (func $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - local.get $1 - local.get $0 - i32.const 20 - i32.sub - local.tee $3 - i32.load - i32.const -4 - i32.and - i32.const 16 - i32.sub - i32.le_u - if - local.get $3 - local.get $1 - i32.store offset=16 + (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 - local.get $1 - local.get $3 - i32.load offset=12 - call $~lib/rt/itcms/__new - local.tee $2 - local.get $0 - local.get $1 - local.get $3 - i32.load offset=16 - local.tee $0 - local.get $0 - local.get $1 - i32.gt_u - select - memory.copy - local.get $2 + unreachable ) (func $~lib/util/uri/encode (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -2613,367 +2568,382 @@ local.get $9 end ) - (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 - local.tee $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 $0 - call $~lib/rt/itcms/__visit + 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 - return - end - unreachable - ) - (func $~start - call $start:std/uri - ) - (func $~lib/uri/encodeURIComponent (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4356 - i32.lt_s - if - i32.const 37152 - i32.const 37200 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + 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 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store local.get $1 - local.get $0 - i32.store - local.get $0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.const 1068 - call $~lib/util/uri/encode - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/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 4356 - i32.lt_s + i32.const 16 + i32.lt_u + local.get $2 + i32.const 23 + i32.lt_u + i32.and + i32.eqz if - i32.const 37152 - i32.const 37200 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1520 + i32.const 334 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const -1 local.get $1 - i32.eq - if - local.get $2 - 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.tee $4 - local.tee $2 + i32.shl + i32.and + local.tee $1 + if (result i32) local.get $0 - i32.store + 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.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $3 + i32.load + i32.const -1 local.get $2 - 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 - local.get $4 - local.get $0 - i32.store - local.get $0 - local.set $2 - local.get $4 - local.get $1 - i32.store offset=4 - local.get $3 - local.tee $0 - i32.const 4 - i32.ge_u + 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.const 7 - i32.and + i32.ctz local.get $1 - i32.const 7 - i32.and - i32.or + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 else - i32.const 1 + i32.const 0 end - i32.eqz + end + ) + (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 37136 + i32.const 0 + i32.store + i32.const 38704 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u if - loop $do-loop|0 - local.get $2 - i64.load + local.get $0 + i32.const 2 + i32.shl + i32.const 37136 + i32.add + i32.const 0 + i32.store offset=4 + i32.const 0 + local.set $1 + loop $for-loop|1 local.get $1 - i64.load - i64.eq + i32.const 16 + i32.lt_u if - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 local.get $0 i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end - end - end - block $__inlined_func$~lib/util/string/compareImpl$88 - loop $while-continue|1 - local.get $0 - local.tee $3 - i32.const 1 - i32.sub - local.set $0 - local.get $3 - if - local.get $2 - i32.load16_u - local.tee $5 + i32.shl local.get $1 - i32.load16_u - local.tee $4 - i32.sub - local.set $3 - local.get $4 - local.get $5 - i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$88 - local.get $2 + i32.add i32.const 2 + i32.shl + i32.const 37136 i32.add - local.set $2 + i32.const 0 + i32.store offset=96 local.get $1 - i32.const 2 + i32.const 1 i32.add local.set $1 - br $while-continue|1 + br $for-loop|1 end end - i32.const 0 - local.set $3 + 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 - local.get $3 - i32.eqz - return end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $~lib/uri/encodeURI (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4356 - i32.lt_s - if - i32.const 37152 - i32.const 37200 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - local.get $0 - i32.store - local.get $0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.const 3388 - call $~lib/util/uri/encode - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/uri/decodeURIComponent (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4356 - i32.lt_s + i32.const 37136 + i32.const 38708 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 37136 + global.set $~lib/rt/tlsf/ROOT + ) + (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 37152 - i32.const 37200 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1520 + i32.const 382 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store local.get $1 - local.get $0 - i32.store - local.get $0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.const 1 - call $~lib/util/uri/decode - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 19 i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/uri/decodeURI (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer + i32.const -16 + i32.and i32.const 4 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4356 - i32.lt_s + local.set $1 + local.get $0 + i32.load offset=1568 + local.tee $3 if - i32.const 37152 - i32.const 37200 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + 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 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and local.get $1 - local.get $0 - i32.store - local.get $0 - local.get $0 + 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 - i32.load offset=16 + local.tee $3 i32.const 1 - i32.shr_u + i32.or + i32.or + i32.store + local.get $1 i32.const 0 - call $~lib/util/uri/decode - local.set $0 - global.get $~lib/memory/__stack_pointer + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 i32.const 4 i32.add - global.set $~lib/memory/__stack_pointer + 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/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 1584 + 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 $~start + call $start:std/uri ) (func $start:std/uri (local $0 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -2988,12 +2958,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 i32.const 0 - i32.store offset=8 + i32.store memory.size i32.const 16 i32.shl @@ -3026,18 +2992,12 @@ i32.store i32.const 1472 global.set $~lib/rt/itcms/fromSpace - local.get $0 - i32.const 1056 - i32.store offset=8 i32.const 1056 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 local.get $0 i32.const 1056 call $~lib/string/String.__eq @@ -3050,18 +3010,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1760 - i32.store offset=8 i32.const 1760 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1760 - i32.store offset=4 local.get $0 i32.const 1760 call $~lib/string/String.__eq @@ -3074,18 +3028,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1792 - i32.store offset=8 i32.const 1792 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1792 - i32.store offset=4 local.get $0 i32.const 1792 call $~lib/string/String.__eq @@ -3098,18 +3046,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1824 - i32.store offset=8 i32.const 1824 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1824 - i32.store offset=4 local.get $0 i32.const 1824 call $~lib/string/String.__eq @@ -3122,18 +3064,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1856 - i32.store offset=8 i32.const 1856 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1856 - i32.store offset=4 local.get $0 i32.const 1856 call $~lib/string/String.__eq @@ -3146,18 +3082,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1952 - i32.store offset=8 i32.const 1952 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1984 - i32.store offset=4 local.get $0 i32.const 1984 call $~lib/string/String.__eq @@ -3170,18 +3100,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2016 - i32.store offset=8 i32.const 2016 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2048 - i32.store offset=4 local.get $0 i32.const 2048 call $~lib/string/String.__eq @@ -3194,19 +3118,13 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2080 - i32.store offset=8 i32.const 2080 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2112 - i32.store offset=4 - local.get $0 + i32.store + local.get $0 i32.const 2112 call $~lib/string/String.__eq i32.eqz @@ -3218,18 +3136,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2160 - i32.store offset=8 i32.const 2160 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2192 - i32.store offset=4 local.get $0 i32.const 2192 call $~lib/string/String.__eq @@ -3242,18 +3154,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2240 - i32.store offset=8 i32.const 2240 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2272 - i32.store offset=4 local.get $0 i32.const 2272 call $~lib/string/String.__eq @@ -3266,18 +3172,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2304 - i32.store offset=8 i32.const 2304 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store offset=4 local.get $0 i32.const 2336 call $~lib/string/String.__eq @@ -3290,18 +3190,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2384 - i32.store offset=8 i32.const 2384 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2416 - i32.store offset=4 local.get $0 i32.const 2416 call $~lib/string/String.__eq @@ -3314,18 +3208,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2512 - i32.store offset=8 i32.const 2512 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2544 - i32.store offset=4 local.get $0 i32.const 2544 call $~lib/string/String.__eq @@ -3338,18 +3226,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2656 - i32.store offset=8 i32.const 2656 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2688 - i32.store offset=4 local.get $0 i32.const 2688 call $~lib/string/String.__eq @@ -3362,18 +3244,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2736 - i32.store offset=8 i32.const 2736 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2768 - i32.store offset=4 local.get $0 i32.const 2768 call $~lib/string/String.__eq @@ -3386,18 +3262,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2816 - i32.store offset=8 i32.const 2816 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2848 - i32.store offset=4 local.get $0 i32.const 2848 call $~lib/string/String.__eq @@ -3410,18 +3280,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2928 - i32.store offset=8 i32.const 2928 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2960 - i32.store offset=4 local.get $0 i32.const 2960 call $~lib/string/String.__eq @@ -3434,18 +3298,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3024 - i32.store offset=8 i32.const 3024 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3072 - i32.store offset=4 local.get $0 i32.const 3072 call $~lib/string/String.__eq @@ -3458,18 +3316,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3152 - i32.store offset=8 i32.const 3152 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3264 - i32.store offset=4 local.get $0 i32.const 3264 call $~lib/string/String.__eq @@ -3482,18 +3334,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=8 i32.const 1056 call $~lib/uri/encodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 local.get $0 i32.const 1056 call $~lib/string/String.__eq @@ -3506,18 +3352,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1760 - i32.store offset=8 i32.const 1760 call $~lib/uri/encodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1760 - i32.store offset=4 local.get $0 i32.const 1760 call $~lib/string/String.__eq @@ -3530,18 +3370,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3504 - i32.store offset=8 i32.const 3504 call $~lib/uri/encodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3504 - i32.store offset=4 local.get $0 i32.const 3504 call $~lib/string/String.__eq @@ -3554,18 +3388,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1856 - i32.store offset=8 i32.const 1856 call $~lib/uri/encodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1856 - i32.store offset=4 local.get $0 i32.const 1856 call $~lib/string/String.__eq @@ -3578,18 +3406,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3552 - i32.store offset=8 i32.const 3552 call $~lib/uri/encodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3584 - i32.store offset=4 local.get $0 i32.const 3584 call $~lib/string/String.__eq @@ -3602,18 +3424,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2656 - i32.store offset=8 i32.const 2656 call $~lib/uri/encodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2688 - i32.store offset=4 local.get $0 i32.const 2688 call $~lib/string/String.__eq @@ -3626,18 +3442,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2736 - i32.store offset=8 i32.const 2736 call $~lib/uri/encodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2768 - i32.store offset=4 local.get $0 i32.const 2768 call $~lib/string/String.__eq @@ -3650,18 +3460,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2928 - i32.store offset=8 i32.const 2928 call $~lib/uri/encodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2960 - i32.store offset=4 local.get $0 i32.const 2960 call $~lib/string/String.__eq @@ -3674,18 +3478,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3152 - i32.store offset=8 i32.const 3152 call $~lib/uri/encodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3152 - i32.store offset=4 local.get $0 i32.const 3152 call $~lib/string/String.__eq @@ -3698,18 +3496,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=8 i32.const 1056 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 local.get $0 i32.const 1056 call $~lib/string/String.__eq @@ -3722,18 +3514,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1760 - i32.store offset=8 i32.const 1760 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1760 - i32.store offset=4 local.get $0 i32.const 1760 call $~lib/string/String.__eq @@ -3746,18 +3532,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3648 - i32.store offset=8 i32.const 3648 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3680 - i32.store offset=4 local.get $0 i32.const 3680 call $~lib/string/String.__eq @@ -3770,18 +3550,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3712 - i32.store offset=8 i32.const 3712 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3744 - i32.store offset=4 local.get $0 i32.const 3744 call $~lib/string/String.__eq @@ -3794,18 +3568,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3776 - i32.store offset=8 i32.const 3776 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3776 - i32.store offset=4 local.get $0 i32.const 3776 call $~lib/string/String.__eq @@ -3818,18 +3586,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2736 - i32.store offset=8 i32.const 2736 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2736 - i32.store offset=4 local.get $0 i32.const 2736 call $~lib/string/String.__eq @@ -3842,18 +3604,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3808 - i32.store offset=8 i32.const 3808 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3888 - i32.store offset=4 local.get $0 i32.const 3888 call $~lib/string/String.__eq @@ -3866,18 +3622,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3936 - i32.store offset=8 i32.const 3936 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3888 - i32.store offset=4 local.get $0 i32.const 3888 call $~lib/string/String.__eq @@ -3890,18 +3640,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4016 - i32.store offset=8 i32.const 4016 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3152 - i32.store offset=4 local.get $0 i32.const 3152 call $~lib/string/String.__eq @@ -3914,18 +3658,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2416 - i32.store offset=8 i32.const 2416 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2384 - i32.store offset=4 local.get $0 i32.const 2384 call $~lib/string/String.__eq @@ -3938,18 +3676,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=8 i32.const 1056 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 local.get $0 i32.const 1056 call $~lib/string/String.__eq @@ -3962,18 +3694,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1760 - i32.store offset=8 i32.const 1760 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1760 - i32.store offset=4 local.get $0 i32.const 1760 call $~lib/string/String.__eq @@ -3986,18 +3712,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3648 - i32.store offset=8 i32.const 3648 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3648 - i32.store offset=4 local.get $0 i32.const 3648 call $~lib/string/String.__eq @@ -4010,18 +3730,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4144 - i32.store offset=8 i32.const 4144 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4176 - i32.store offset=4 local.get $0 i32.const 4176 call $~lib/string/String.__eq @@ -4034,18 +3748,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4208 - i32.store offset=8 i32.const 4208 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4240 - i32.store offset=4 local.get $0 i32.const 4240 call $~lib/string/String.__eq @@ -4058,18 +3766,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3776 - i32.store offset=8 i32.const 3776 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3776 - i32.store offset=4 local.get $0 i32.const 3776 call $~lib/string/String.__eq @@ -4082,18 +3784,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2736 - i32.store offset=8 i32.const 2736 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2736 - i32.store offset=4 local.get $0 i32.const 2736 call $~lib/string/String.__eq @@ -4106,18 +3802,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3808 - i32.store offset=8 i32.const 3808 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3808 - i32.store offset=4 local.get $0 i32.const 3808 call $~lib/string/String.__eq @@ -4130,18 +3820,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2416 - i32.store offset=8 i32.const 2416 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2384 - i32.store offset=4 local.get $0 i32.const 2384 call $~lib/string/String.__eq @@ -4154,18 +3838,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4272 - i32.store offset=8 i32.const 4272 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4272 - i32.store offset=4 local.get $0 i32.const 4272 call $~lib/string/String.__eq @@ -4178,18 +3856,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4320 - i32.store offset=8 i32.const 4320 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4320 - i32.store offset=4 local.get $0 i32.const 4320 call $~lib/string/String.__eq @@ -4202,18 +3874,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4016 - i32.store offset=8 i32.const 4016 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4016 - i32.store offset=4 local.get $0 i32.const 4016 call $~lib/string/String.__eq @@ -4262,7 +3928,7 @@ i32.add global.set $~lib/rt/itcms/threshold global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/super-inline.debug.wat b/tests/compiler/super-inline.debug.wat index 347d6527fd..dc1722f0ec 100644 --- a/tests/compiler/super-inline.debug.wat +++ b/tests/compiler/super-inline.debug.wat @@ -1622,14 +1622,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 @@ -2299,12 +2302,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/super-inline.release.wat b/tests/compiler/super-inline.release.wat index 7fe25b0471..d1ffdaa805 100644 --- a/tests/compiler/super-inline.release.wat +++ b/tests/compiler/super-inline.release.wat @@ -1,7 +1,7 @@ (module - (type $0 (func)) - (type $1 (func (param i32))) - (type $2 (func (param i32) (result i32))) + (type $0 (func (param i32))) + (type $1 (func (param i32) (result i32))) + (type $2 (func)) (type $3 (func (param i32 i32))) (type $4 (func (param i32 i32 i32 i32))) (type $5 (func (param i32 i32 i64))) @@ -34,63 +34,6 @@ (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/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - global.get $super-inline/foo - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $super-inline/bar - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 1248 - 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/__visit (param $0 i32) (local $1 i32) (local $2 i32) @@ -635,127 +578,331 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (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 $2 - local.get $1 - i64.extend_i32_u - i64.lt_u + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - i32.const 0 - i32.const 1392 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable + 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 - 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 + global.get $~lib/rt/tlsf/ROOT + i32.eqz if - local.get $3 + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if + i32.const 4 + local.get $2 + i32.load offset=1568 + memory.size + local.tee $1 + 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.set $3 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 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s if local.get $3 - i32.load - local.set $4 - local.get $5 - local.set $1 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end end - else - local.get $0 - i32.const 1572 - i32.add + local.get $2 local.get $1 - i32.gt_u + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz if i32.const 0 i32.const 1392 - i32.const 402 - i32.const 5 + i32.const 499 + i32.const 16 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.load + i32.const -4 + i32.and + i32.const 28 i32.lt_u if - return + i32.const 0 + i32.const 1392 + i32.const 501 + i32.const 14 + call $~lib/builtins/abort + unreachable end + local.get $2 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 + call $~lib/rt/tlsf/removeBlock local.get $1 - i32.const 4 - i32.add - local.get $3 - i32.add + i32.load 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 + i32.const -4 + i32.and + i32.const 28 + i32.sub + local.tee $4 + i32.const 16 + i32.ge_u + if + local.get $1 + local.get $3 + i32.const 2 + i32.and + i32.const 28 + i32.or + i32.store + local.get $1 + i32.const 32 + i32.add + local.tee $3 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $2 + local.get $3 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + 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 + 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 $0 + i32.load offset=8 + 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 + 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 + local.get $0 + 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 $0 + i32.const 0 + i32.const 0 + memory.fill + local.get $0 + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $super-inline/Bar + block $super-inline/Foo + 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 $super-inline/Foo $super-inline/Bar $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 + ) + (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 $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $1 + 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 $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 + i32.const 0 + end + end + ) + (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 @@ -829,598 +976,273 @@ i32.const 34240 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 + (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 - 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 34236 - 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 + i32.const 1392 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + 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/itcms/visitRoots + (local $0 i32) + (local $1 i32) + global.get $super-inline/foo + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $super-inline/bar + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 1248 + 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 - 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.const 3 i32.ne if i32.const 0 i32.const 1120 - i32.const 229 - i32.const 20 + i32.const 160 + i32.const 16 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 34236 - 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 34236 - 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.set $1 - 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 $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (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 $2 - i32.const 2 - i32.shl + i32.const 20 i32.add - i32.load offset=4 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end + call $~lib/rt/__visit_members 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 - i32.const 0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 end end ) - (func $~lib/rt/itcms/__new (param $0 i32) (result i32) + (func $super-inline/Foo#constructor (param $0 i32) (result i32) (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 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 $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 - local.tee $1 - local.get $1 - 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 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1468 + 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 - end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.tee $2 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - memory.size - local.tee $1 - i32.const 4 - local.get $2 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl + 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 - i32.ne - i32.shl - i32.const 65563 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $3 - local.get $1 - local.get $3 - i32.gt_s - select - memory.grow - i32.const 0 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1468 i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz if - local.get $3 - memory.grow + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.lt_s - if - unreachable - end + call $~lib/rt/itcms/__new + local.tee $0 + i32.store end - local.get $2 - 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 $2 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 28 - i32.lt_u - if - i32.const 0 - i32.const 1392 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable + 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 + return end - local.get $2 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.tee $3 - i32.const -4 - i32.and - i32.const 28 + i32.const 34256 + i32.const 34304 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $super-inline/Bar#a (param $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - local.tee $4 - i32.const 16 - i32.ge_u + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1468 + i32.lt_s if - local.get $1 - local.get $3 - i32.const 2 - i32.and - i32.const 28 - i32.or - i32.store - local.get $1 - i32.const 32 - i32.add - local.tee $3 - local.get $4 - i32.const 4 - i32.sub + i32.const 34256 + i32.const 34304 i32.const 1 - i32.or - i32.store - local.get $2 - local.get $3 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $3 - 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 + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.get $1 - local.get $0 - i32.store offset=12 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $0 - i32.load offset=8 - 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 - 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.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - i32.const -4 - i32.and + i32.store + 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 $0 - i32.const 0 - i32.const 0 - memory.fill - local.get $0 - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $super-inline/Bar - block $super-inline/Foo - 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 $super-inline/Foo $super-inline/Bar $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - return - end - return - end - return - end - unreachable + global.set $~lib/memory/__stack_pointer ) (func $~start (local $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1491,20 +1313,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.get $0 i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 call $super-inline/Foo#constructor local.tee $0 i32.store @@ -1533,104 +1353,264 @@ call $~lib/builtins/abort unreachable ) - (func $super-inline/Foo#constructor (param $0 i32) (result i32) + (func $~lib/rt/itcms/step (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 - global.get $~lib/memory/__stack_pointer - i32.const 1468 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $0 - i32.eqz - if - local.get $1 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1468 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - local.get $2 - 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 $1 - 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 - return - end - i32.const 34256 - i32.const 34304 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $super-inline/Bar#a (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 1468 - i32.lt_s - if - i32.const 34256 - i32.const 34304 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + 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 34236 + 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 34236 + 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 34236 + 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 - global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 - i32.store - local.get $1 - local.get $0 - i32.store - local.get $1 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer ) ) diff --git a/tests/compiler/switch.debug.wat b/tests/compiler/switch.debug.wat index 6510f0aca7..dea9957b59 100644 --- a/tests/compiler/switch.debug.wat +++ b/tests/compiler/switch.debug.wat @@ -1,13 +1,67 @@ (module (type $0 (func (param i32) (result i32))) - (type $1 (func)) - (type $2 (func (param i32 i32 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 i64) (result 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 f32) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) - (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 $~lib/shared/runtime/Runtime.Stub i32 (i32.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 $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 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) ",\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)) @@ -50,6 +104,38 @@ 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 @@ -166,399 +252,4719 @@ i32.const 2 return ) - (func $start:switch + (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) + (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 + 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 368 + 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 368 + 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 368 + 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 496 + i32.const 560 + 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 368 + 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 640 + 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 640 + 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 640 + 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 640 + 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 640 + 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 640 + 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 640 + 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 640 + 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 640 + 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 640 + 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 640 + 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 640 + 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 640 + 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 368 + 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 304 + i32.const 640 + 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 640 + 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 640 + 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 640 + 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 640 + 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 640 + 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 304 + i32.const 368 + i32.const 261 + i32.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 $switch/doSwitchBoolean (param $b i32) (result i32) + (local $1 i32) + block $break|0 + block $case1|0 + block $case0|0 + local.get $b + local.set $1 + local.get $1 + i32.const 0 + i32.ne + i32.const 1 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 0 + i32.ne + i32.const 0 + i32.eq + br_if $case1|0 + br $break|0 + end + i32.const 1 + return + end + i32.const 2 + return + end + i32.const 0 + return + ) + (func $switch/doSwitchUInt32 (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 $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 $case3|0 + end + i32.const 1 + return + end + i32.const 2 + return + end + i32.const 3 + return + end + i32.const 0 + return + ) + (func $switch/doSwitchEnum (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 + global.get $switch/Foo.A + i32.eq + br_if $case0|0 + local.get $1 + global.get $switch/Foo.B + i32.eq + br_if $case1|0 + local.get $1 + global.get $switch/Foo.C + i32.eq + br_if $case2|0 + br $case3|0 + end + i32.const 1 + return + end + i32.const 2 + return + end + i32.const 3 + return + end + i32.const 0 + return + ) + (func $switch/doSwitchUint8 (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 255 + i32.and + i32.const 1 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 255 + i32.and + i32.const 2 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 255 + i32.and + i32.const 3 + i32.eq + br_if $case2|0 + br $case3|0 + end + i32.const 1 + return + end + i32.const 2 + return + end + i32.const 3 + return + end + i32.const 0 + return + ) + (func $switch/doSwitchFloat (param $n f32) (result i32) + (local $1 f32) + block $case2|0 + block $case1|0 + block $case0|0 + local.get $n + local.set $1 + local.get $1 + f32.const 1 + f32.eq + br_if $case0|0 + local.get $1 + f32.const 2 + f32.eq + br_if $case1|0 + br $case2|0 + end + i32.const 1 + return + end + i32.const 2 + return + end + i32.const 0 + return + ) + (func $switch/doSwitchInt64 (param $n i64) (result i32) + (local $1 i64) + block $case2|0 + block $case1|0 + block $case0|0 + local.get $n + local.set $1 + local.get $1 + i64.const 1 + i64.eq + br_if $case0|0 + local.get $1 + i64.const 2 + i64.eq + br_if $case1|0 + br $case2|0 + end + i32.const 1 + return + end + i32.const 2 + return + end + i32.const 0 + return + ) + (func $switch/doSwitchUInt64 (param $n i64) (result i32) + (local $1 i64) + block $case2|0 + block $case1|0 + block $case0|0 + local.get $n + local.set $1 + local.get $1 + i64.const 1 + i64.eq + br_if $case0|0 + local.get $1 + i64.const 2 + i64.eq + br_if $case1|0 + br $case2|0 + end + i32.const 1 + return + end + i32.const 2 + return + end + i32.const 0 + return + ) + (func $switch/FooClass#set:value (param $this i32) (param $value i32) + local.get $this + local.get $value + i32.store + ) + (func $switch/FooClass#get:value (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $switch/BarClass#get:value (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $switch/BarClass#set:value (param $this i32) (param $value i32) + local.get $this + local.get $value + i32.store + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + global.get $switch/foo1 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $switch/foo2 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 496 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 304 + 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 $switch/BarClass + block $switch/FooClass + 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 $switch/FooClass $switch/BarClass $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 + ) + (func $~start + call $start:switch + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 33728 + i32.const 33776 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/string/String.__eq (param $left i32) (param $right i32) (result i32) + (local $leftLength 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 $left + local.get $right + i32.eq + if + i32.const 1 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + local.get $left + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $right + i32.const 0 + i32.eq + end + if + i32.const 0 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + local.get $left + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/string/String#get:length + local.set $leftLength + local.get $leftLength + local.get $right + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/string/String#get:length + i32.ne + if + i32.const 0 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + local.get $left + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + i32.const 0 + local.get $right + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + local.get $leftLength + call $~lib/util/string/compareImpl + i32.eqz + 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 $switch/doSwitchString (param $s 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 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/memory/__stack_pointer + local.get $s + local.tee $1 + i32.store + local.get $1 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 80 + call $~lib/string/String.__eq + br_if $case0|0 + local.get $1 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 112 + call $~lib/string/String.__eq + br_if $case1|0 + local.get $1 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 144 + call $~lib/string/String.__eq + br_if $case2|0 + br $case3|0 + end + i32.const 1 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + i32.const 2 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + i32.const 3 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + 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 + global.get $~lib/memory/__stack_pointer + local.get $outSize + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $out + i32.store offset=4 + local.get $out + local.get $this + local.get $thisSize + memory.copy + local.get $out + local.get $thisSize + i32.add + local.get $other + local.get $otherSize + memory.copy + local.get $out + local.set $6 + global.get $~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 $switch/doSwitchNullableString (param $s 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 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/memory/__stack_pointer + local.get $s + local.tee $1 + i32.store + local.get $1 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + call $~lib/string/String.__eq + br_if $case0|0 + local.get $1 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 80 + call $~lib/string/String.__eq + br_if $case1|0 + local.get $1 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 112 + call $~lib/string/String.__eq + br_if $case2|0 + local.get $1 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 144 + call $~lib/string/String.__eq + br_if $case3|0 + br $case4|0 + end + i32.const 0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + i32.const 1 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + i32.const 2 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + i32.const 3 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + 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 $switch/FooClass#constructor (param $this i32) (param $value 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 + i32.const 4 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + call $switch/FooClass#set:value + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $value + call $switch/FooClass#set:value + 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 $2 + ) + (func $switch/doSwitchClassMember (param $foo 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 + block $case2|0 + block $case1|0 + block $case0|0 + local.get $foo + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $switch/FooClass#get:value + 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 + br $case2|0 + end + i32.const 1 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + i32.const 2 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + i32.const 3 + 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 $switch/BarClass.__eq (param $left i32) (param $right 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 $left + local.get $right + i32.eq + if + i32.const 1 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + local.get $left + i32.eqz + if (result i32) + i32.const 1 + else + local.get $right + i32.eqz + end + if + i32.const 0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + local.get $left + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $switch/BarClass#get:value + local.get $right + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $switch/BarClass#get:value + i32.eq + 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 $switch/BarClass#constructor (param $this i32) (param $value 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 + i32.const 4 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + call $switch/BarClass#set:value + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $value + call $switch/BarClass#set:value + 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 $2 + ) + (func $switch/doSwitchClassInstanceWithOverload (param $foo i32) (result i32) + (local $1 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 + i32.store offset=8 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/memory/__stack_pointer + local.get $foo + local.tee $1 + i32.store + local.get $1 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + call $switch/BarClass.__eq + br_if $case0|0 + local.get $1 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.const 1 + call $switch/BarClass#constructor + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $2 + call $switch/BarClass.__eq + br_if $case1|0 + local.get $1 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.const 2 + call $switch/BarClass#constructor + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $2 + call $switch/BarClass.__eq + br_if $case2|0 + br $case3|0 + end + i32.const 0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + i32.const 1 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + i32.const 2 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + i32.const 3 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + ) + (func $start:switch + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + i32.const 0 + call $switch/doSwitch + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 10 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + call $switch/doSwitch + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 11 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + call $switch/doSwitch + i32.const 23 + 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 3 + call $switch/doSwitch + i32.const 23 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 13 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 4 + call $switch/doSwitch + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 14 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $switch/doSwitchDefaultFirst + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 24 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + call $switch/doSwitchDefaultFirst + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 25 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + call $switch/doSwitchDefaultFirst + i32.const 23 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 26 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + call $switch/doSwitchDefaultFirst + i32.const 23 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 27 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 4 + call $switch/doSwitchDefaultFirst + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 28 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $switch/doSwitchDefaultOmitted + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 38 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + call $switch/doSwitchDefaultOmitted + 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 + i32.const 2 + call $switch/doSwitchDefaultOmitted + i32.const 23 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 40 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + call $switch/doSwitchDefaultOmitted + i32.const 23 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 41 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 4 + call $switch/doSwitchDefaultOmitted + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 42 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $switch/doSwitchBreakCase + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 51 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + call $switch/doSwitchBreakCase + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 52 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + call $switch/doSwitchBreakCase + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 53 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $switch/doSwitchBreakDefault + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 62 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + call $switch/doSwitchBreakDefault + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 63 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + call $switch/doSwitchBreakDefault + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 64 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $switch/doSwitchFallThroughCase + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 73 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + call $switch/doSwitchFallThroughCase + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 74 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + call $switch/doSwitchFallThroughCase + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 75 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $switch/doSwitchFallThroughDefault + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 84 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + call $switch/doSwitchFallThroughDefault + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 85 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + call $switch/doSwitchFallThroughDefault + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 86 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $switch/doSwitchEmpty + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 92 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + call $switch/doSwitchEmpty + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 93 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + call $switch/doSwitchEmpty + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 94 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 80 + call $switch/doSwitchString + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 106 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 112 + call $switch/doSwitchString + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 107 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 144 + call $switch/doSwitchString + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 108 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 176 + call $switch/doSwitchString + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 109 + 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 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 704 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchString + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 112 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 208 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchString + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 113 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 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 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 704 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchString + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 114 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 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 832 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchString + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 115 + i32.const 1 + call $~lib/builtins/abort + unreachable + end i32.const 0 - call $switch/doSwitch + call $switch/doSwitchNullableString i32.const 0 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 10 + i32.const 128 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 80 + call $switch/doSwitchNullableString i32.const 1 - call $switch/doSwitch + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 129 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 112 + call $switch/doSwitchNullableString + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 130 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 144 + call $switch/doSwitchNullableString + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 131 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 176 + call $switch/doSwitchNullableString + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 132 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 704 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchNullableString i32.const 1 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 11 + i32.const 135 i32.const 1 call $~lib/builtins/abort unreachable end + 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 208 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchNullableString i32.const 2 - call $switch/doSwitch - i32.const 23 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 12 + i32.const 136 i32.const 1 call $~lib/builtins/abort unreachable end + 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 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 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 704 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchNullableString i32.const 3 - call $switch/doSwitch - i32.const 23 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 13 + i32.const 137 i32.const 1 call $~lib/builtins/abort unreachable end + 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 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 832 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchNullableString i32.const 4 - call $switch/doSwitch + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 138 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + call $switch/doSwitchBoolean + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 148 + i32.const 1 + call $~lib/builtins/abort + unreachable + end i32.const 0 + call $switch/doSwitchBoolean + i32.const 2 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 14 + i32.const 149 i32.const 1 call $~lib/builtins/abort unreachable end i32.const 0 - call $switch/doSwitch + call $switch/doSwitchUInt32 i32.const 0 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 24 + i32.const 159 i32.const 1 call $~lib/builtins/abort unreachable end i32.const 1 - call $switch/doSwitch + call $switch/doSwitchUInt32 i32.const 1 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 25 + i32.const 160 i32.const 1 call $~lib/builtins/abort unreachable end i32.const 2 - call $switch/doSwitch - i32.const 23 + call $switch/doSwitchUInt32 + i32.const 2 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 26 + i32.const 161 i32.const 1 call $~lib/builtins/abort unreachable end i32.const 3 - call $switch/doSwitch - i32.const 23 + call $switch/doSwitchUInt32 + i32.const 3 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 27 + i32.const 162 i32.const 1 call $~lib/builtins/abort unreachable end i32.const 4 - call $switch/doSwitch + call $switch/doSwitchUInt32 i32.const 0 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 28 + i32.const 163 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $switch/Foo.A + call $switch/doSwitchEnum + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 180 i32.const 1 call $~lib/builtins/abort unreachable end + global.get $switch/Foo.B + call $switch/doSwitchEnum + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 181 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $switch/Foo.C + call $switch/doSwitchEnum + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 182 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $switch/Foo.D + call $switch/doSwitchEnum i32.const 0 - call $switch/doSwitchDefaultOmitted + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 183 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $switch/doSwitchUint8 i32.const 0 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 38 + i32.const 193 i32.const 1 call $~lib/builtins/abort unreachable end i32.const 1 - call $switch/doSwitchDefaultOmitted + call $switch/doSwitchUint8 i32.const 1 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 39 + i32.const 194 i32.const 1 call $~lib/builtins/abort unreachable end i32.const 2 - call $switch/doSwitchDefaultOmitted - i32.const 23 + call $switch/doSwitchUint8 + i32.const 2 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 40 + i32.const 195 i32.const 1 call $~lib/builtins/abort unreachable end i32.const 3 - call $switch/doSwitchDefaultOmitted - i32.const 23 + call $switch/doSwitchUint8 + i32.const 3 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 41 + i32.const 196 i32.const 1 call $~lib/builtins/abort unreachable end i32.const 4 - call $switch/doSwitchDefaultOmitted + call $switch/doSwitchUint8 i32.const 0 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 42 + i32.const 197 i32.const 1 call $~lib/builtins/abort unreachable end + f32.const 0 + call $switch/doSwitchFloat i32.const 0 - call $switch/doSwitchBreakCase - i32.const 2 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 51 + i32.const 206 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1 - call $switch/doSwitchBreakCase + f32.const 1 + call $switch/doSwitchFloat i32.const 1 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 52 + i32.const 207 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2 - call $switch/doSwitchBreakCase + f32.const 2 + call $switch/doSwitchFloat i32.const 2 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 53 + i32.const 208 i32.const 1 call $~lib/builtins/abort unreachable end + i64.const 0 + call $switch/doSwitchInt64 i32.const 0 - call $switch/doSwitchBreakDefault - i32.const 2 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 62 + i32.const 217 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1 - call $switch/doSwitchBreakDefault + i64.const 1 + call $switch/doSwitchInt64 i32.const 1 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 63 + i32.const 218 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2 - call $switch/doSwitchBreakDefault + i64.const 2 + call $switch/doSwitchInt64 i32.const 2 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 64 + i32.const 219 i32.const 1 call $~lib/builtins/abort unreachable end + i64.const 0 + call $switch/doSwitchUInt64 i32.const 0 - call $switch/doSwitchFallThroughCase + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 230 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 1 + call $switch/doSwitchUInt64 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 231 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 2 + call $switch/doSwitchUInt64 i32.const 2 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 73 + i32.const 232 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 0 i32.const 1 - call $switch/doSwitchFallThroughCase + call $switch/FooClass#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchClassMember i32.const 1 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 74 + i32.const 251 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 0 i32.const 2 - call $switch/doSwitchFallThroughCase + call $switch/FooClass#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchClassMember i32.const 2 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 75 + i32.const 252 i32.const 1 call $~lib/builtins/abort unreachable end i32.const 0 - call $switch/doSwitchFallThroughDefault - i32.const 2 + i32.const 3 + call $switch/FooClass#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchClassMember + i32.const 3 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 84 + i32.const 253 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 0 i32.const 1 - call $switch/doSwitchFallThroughDefault + call $switch/FooClass#constructor + global.set $switch/foo1 + i32.const 0 + i32.const 2 + call $switch/FooClass#constructor + global.set $switch/foo2 + global.get $switch/foo1 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchClassInstance i32.const 1 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 85 + i32.const 266 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2 - call $switch/doSwitchFallThroughDefault + global.get $switch/foo2 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchClassInstance i32.const 2 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 86 + i32.const 267 i32.const 1 call $~lib/builtins/abort unreachable end i32.const 0 - call $switch/doSwitchEmpty - i32.const 2 + i32.const 1 + call $switch/FooClass#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchClassInstance + i32.const 3 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 92 + i32.const 268 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $switch/doSwitchClassInstanceWithOverload + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 293 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 0 + i32.const 1 + call $switch/BarClass#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchClassInstanceWithOverload i32.const 1 - call $switch/doSwitchEmpty - i32.const 2 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 93 + i32.const 294 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 0 i32.const 2 - call $switch/doSwitchEmpty + call $switch/BarClass#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchClassInstanceWithOverload i32.const 2 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 94 + i32.const 295 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 3 + call $switch/BarClass#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchClassInstanceWithOverload + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 296 i32.const 1 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~start - call $start:switch + (func $switch/doSwitchClassInstance (param $foo 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 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/memory/__stack_pointer + local.get $foo + local.tee $1 + i32.store + local.get $1 + global.get $switch/foo1 + i32.eq + br_if $case0|0 + local.get $1 + global.get $switch/foo2 + i32.eq + br_if $case1|0 + br $case2|0 + end + i32.const 1 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + i32.const 2 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + i32.const 3 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return ) ) diff --git a/tests/compiler/switch.release.wat b/tests/compiler/switch.release.wat index b5389b07f8..9b967b3838 100644 --- a/tests/compiler/switch.release.wat +++ b/tests/compiler/switch.release.wat @@ -1,6 +1,2970 @@ (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 (param i32 i32 i32 i32))) + (type $6 (func (param i32 i32 i64))) + (type $7 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (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 $switch/foo1 (mut i32) (i32.const 0)) + (global $switch/foo2 (mut i32) (i32.const 0)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34732)) (memory $0 1) (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/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$191 + 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$191 + 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 1964 + i32.lt_s + if + i32.const 34752 + i32.const 34800 + 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 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + local.get $0 + i32.const 0 + call $~lib/string/String.__eq + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + 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 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 1168 + call $~lib/string/String.__eq + br_if $case3|0 + br $case4|0 + end + 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 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 2 + return + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 3 + return + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 4 + ) + (func $switch/doSwitchString (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 1964 + i32.lt_s + if + i32.const 34752 + i32.const 34800 + 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 + block $case3|0 + block $case2|0 + block $case1|0 + local.get $0 + i32.const 1104 + call $~lib/string/String.__eq + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + 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 1168 + call $~lib/string/String.__eq + br_if $case2|0 + br $case3|0 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 2 + return + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 3 + return + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 4 + ) + (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 1964 + i32.lt_s + if + i32.const 34752 + i32.const 34800 + 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 + if (result i32) + local.get $2 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + else + i32.const 1 + end + i32.eqz + if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $0 + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + block $__inlined_func$~lib/util/string/compareImpl$76 + loop $while-continue|1 + local.get $0 + local.tee $3 + i32.const 1 + i32.sub + local.set $0 + local.get $3 + if + local.get $2 + i32.load16_u + local.tee $5 + local.get $1 + i32.load16_u + local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 + i32.ne + br_if $__inlined_func$~lib/util/string/compareImpl$76 + local.get $2 + i32.const 2 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end + end + i32.const 0 + local.set $3 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.eqz + return + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (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 1392 + 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$186 + 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 34732 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$186 + end + local.get $1 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1392 + 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 1936 + i32.load + i32.gt_u + if + i32.const 1520 + i32.const 1584 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 2 + i32.shl + i32.const 1940 + 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 $switch/FooClass#constructor (param $0 i32) (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 1964 + i32.lt_s + if + i32.const 34752 + i32.const 34800 + 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 4 + 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 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $switch/BarClass#constructor (param $0 i32) (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 1964 + i32.lt_s + if + i32.const 34752 + i32.const 34800 + 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 4 + 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 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $switch/doSwitchClassInstanceWithOverload (param $0 i32) (result i32) + (local $1 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 1964 + i32.lt_s + if + i32.const 34752 + i32.const 34800 + 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 + block $case3|0 + block $case2|0 + block $case1|0 + local.get $0 + i32.const 0 + call $switch/BarClass.__eq + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 1 + call $switch/BarClass#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + call $switch/BarClass.__eq + br_if $case1|0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 2 + call $switch/BarClass#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + call $switch/BarClass.__eq + br_if $case2|0 + br $case3|0 + end + 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 + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 2 + return + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 3 + ) + (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 1664 + 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 1664 + 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 1664 + 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 1664 + 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 1664 + 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 1664 + 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 1664 + 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 1664 + 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 1664 + 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/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 1328 + i32.const 1392 + i32.const 261 + i32.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 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$70 + end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.const 10 + i32.shl + i32.add + global.set $~lib/rt/itcms/threshold + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.set $4 + local.get $0 + i32.const 16 + i32.add + local.tee $2 + i32.const 1073741820 + i32.gt_u + if + i32.const 1328 + i32.const 1664 + 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 + 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 + memory.size + local.tee $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.set $3 + local.get $2 + local.get $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 1664 + 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 1664 + 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 1664 + 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/__visit_members (param $0 i32) + block $invalid + block $switch/BarClass + block $switch/FooClass + 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 $switch/FooClass $switch/BarClass $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 + ) + (func $switch/doSwitchClassMember (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 1964 + i32.lt_s + if + 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.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + block $case2|0 + block $case1|0 + local.get $0 + i32.load + local.tee $0 + i32.const 1 + i32.ne + if + local.get $0 + i32.const 2 + i32.eq + br_if $case1|0 + br $case2|0 + end + 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 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 2 + return + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 3 + ) + (func $switch/doSwitchClassInstance (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 1964 + i32.lt_s + if + 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.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + block $case2|0 + block $case1|0 + global.get $switch/foo1 + local.get $0 + i32.ne + if + local.get $0 + global.get $switch/foo2 + i32.eq + br_if $case1|0 + br $case2|0 + end + 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 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 2 + return + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 3 + ) + (func $switch/BarClass.__eq (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 1964 + i32.lt_s + if + 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.store + local.get $0 + local.get $1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return + end + local.get $1 + i32.eqz + local.get $0 + i32.eqz + i32.or + 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 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load + i32.eq + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (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 1664 + 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 1664 + 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/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 34736 + i32.const 0 + i32.store + i32.const 36304 + 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 34736 + 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 34736 + 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 34736 + i32.const 36308 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34736 + global.set $~lib/rt/tlsf/ROOT + ) + (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 1664 + 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 1664 + 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 1664 + 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/itcms/visitRoots + (local $0 i32) + (local $1 i32) + global.get $switch/foo1 + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $switch/foo2 + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 1520 + call $~lib/rt/itcms/__visit + i32.const 1328 + 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 1392 + 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 $~start + call $start:switch + ) + (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 34732 + 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 1392 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34732 + 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 34732 + 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 1664 + 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 $start:switch + (local $0 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 1964 + i32.lt_s + if + i32.const 34752 + i32.const 34800 + 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 + i32.const 1104 + call $switch/doSwitchString + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 106 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1136 + call $switch/doSwitchString + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 107 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1168 + call $switch/doSwitchString + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 108 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1200 + call $switch/doSwitchString + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 109 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 1728 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchString + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 112 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 1232 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchString + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 113 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 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 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 1728 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchString + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 114 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 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 1856 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchString + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 115 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $switch/doSwitchNullableString + if + i32.const 0 + i32.const 1056 + i32.const 128 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1104 + call $switch/doSwitchNullableString + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 129 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1136 + call $switch/doSwitchNullableString + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 130 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1168 + call $switch/doSwitchNullableString + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 131 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1200 + call $switch/doSwitchNullableString + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 132 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 1728 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchNullableString + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 135 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 1232 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchNullableString + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 136 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 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 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 1728 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchNullableString + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 137 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 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 1856 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchNullableString + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 138 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + call $switch/FooClass#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchClassMember + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 251 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + call $switch/FooClass#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchClassMember + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 252 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + call $switch/FooClass#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchClassMember + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 253 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + call $switch/FooClass#constructor + global.set $switch/foo1 + i32.const 2 + call $switch/FooClass#constructor + global.set $switch/foo2 + global.get $~lib/memory/__stack_pointer + global.get $switch/foo1 + local.tee $0 + i32.store + local.get $0 + call $switch/doSwitchClassInstance + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 266 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $switch/foo2 + local.tee $0 + i32.store + local.get $0 + call $switch/doSwitchClassInstance + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 267 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + call $switch/FooClass#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchClassInstance + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 268 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $switch/doSwitchClassInstanceWithOverload + if + i32.const 0 + i32.const 1056 + i32.const 293 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + call $switch/BarClass#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchClassInstanceWithOverload + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 294 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + call $switch/BarClass#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchClassInstanceWithOverload + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 295 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + call $switch/BarClass#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchClassInstanceWithOverload + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 296 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) ) diff --git a/tests/compiler/switch.ts b/tests/compiler/switch.ts index bd73eb7051..11167dc19f 100644 --- a/tests/compiler/switch.ts +++ b/tests/compiler/switch.ts @@ -21,11 +21,11 @@ function doSwitchDefaultFirst(n: i32): i32 { case 3: return 23; } } -assert(doSwitch(0) == 0); -assert(doSwitch(1) == 1); -assert(doSwitch(2) == 23); -assert(doSwitch(3) == 23); -assert(doSwitch(4) == 0); +assert(doSwitchDefaultFirst(0) == 0); +assert(doSwitchDefaultFirst(1) == 1); +assert(doSwitchDefaultFirst(2) == 23); +assert(doSwitchDefaultFirst(3) == 23); +assert(doSwitchDefaultFirst(4) == 0); function doSwitchDefaultOmitted(n: i32): i32 { switch (n) { @@ -92,3 +92,205 @@ function doSwitchEmpty(n: i32): i32 { assert(doSwitchEmpty(0) == 2); assert(doSwitchEmpty(1) == 2); assert(doSwitchEmpty(2) == 2); + +function doSwitchString(s: string): i32 { + switch (s) { + case "one": return 1; + case "two": return 2; + case "three": return 3; + default: return 4; + } +} + +// these will pass regardless of whether the comparison is done by value or reference +assert(doSwitchString("one") == 1); +assert(doSwitchString("two") == 2); +assert(doSwitchString("three") == 3); +assert(doSwitchString("four") == 4); + +// these would fail if the comparison was done by reference +assert(doSwitchString("o" + "n" + "e") == 1); +assert(doSwitchString("t" + "w" + "o") == 2); +assert(doSwitchString("t" + "h" + "r" + "e" + "e") == 3); +assert(doSwitchString("f" + "o" + "u" + "r") == 4); + +function doSwitchNullableString(s: string | null): i32 { + switch (s) { + case null: return 0; + case "one": return 1; + case "two": return 2; + case "three": return 3; + default: return 4; + } +} + +// these will pass regardless of whether the comparison is done by value or reference +assert(doSwitchNullableString(null) == 0); +assert(doSwitchNullableString("one") == 1); +assert(doSwitchNullableString("two") == 2); +assert(doSwitchNullableString("three") == 3); +assert(doSwitchNullableString("four") == 4); + +// these would fail if the comparison was done by reference +assert(doSwitchNullableString("o" + "n" + "e") == 1); +assert(doSwitchNullableString("t" + "w" + "o") == 2); +assert(doSwitchNullableString("t" + "h" + "r" + "e" + "e") == 3); +assert(doSwitchNullableString("f" + "o" + "u" + "r") == 4); + +function doSwitchBoolean(b: bool): i32 { + switch (b) { + case true: return 1; + case false: return 2; + } + return 0; +} + +assert(doSwitchBoolean(true) == 1); +assert(doSwitchBoolean(false) == 2); + +function doSwitchUInt32(n: u32): i32 { + switch (n) { + case 1: return 1; + case 2: return 2; + case 3: return 3; + default: return 0; + } +} +assert(doSwitchUInt32(0) == 0); +assert(doSwitchUInt32(1) == 1); +assert(doSwitchUInt32(2) == 2); +assert(doSwitchUInt32(3) == 3); +assert(doSwitchUInt32(4) == 0); + +enum Foo { + A = 1, + B = 2, + C = 3, + D = 4, +} + +function doSwitchEnum(n: Foo): i32 { + switch (n) { + case Foo.A: return 1; + case Foo.B: return 2; + case Foo.C: return 3; + default: return 0; + } +} +assert(doSwitchEnum(Foo.A) == 1); +assert(doSwitchEnum(Foo.B) == 2); +assert(doSwitchEnum(Foo.C) == 3); +assert(doSwitchEnum(Foo.D) == 0); + +function doSwitchUint8(n: u8): i32 { + switch (n) { + case 1: return 1; + case 2: return 2; + case 3: return 3; + default: return 0; + } +} +assert(doSwitchUint8(0) == 0); +assert(doSwitchUint8(1) == 1); +assert(doSwitchUint8(2) == 2); +assert(doSwitchUint8(3) == 3); +assert(doSwitchUint8(4) == 0); + +function doSwitchFloat(n: f32): i32 { + switch (n) { + case 1.0: return 1; + case 2.0: return 2; + default: return 0; + } +} +assert(doSwitchFloat(0.0) == 0); +assert(doSwitchFloat(1.0) == 1); +assert(doSwitchFloat(2.0) == 2); + +function doSwitchInt64(n: i64): i32 { + switch (n) { + case (1): return 1; + case (2): return 2; + default: return 0; + } +} +assert(doSwitchInt64(0) == 0); +assert(doSwitchInt64(1) == 1); +assert(doSwitchInt64(2) == 2); + +function doSwitchUInt64(n: u64): i32 { + const one: u64 = 1; + const two: u64 = 2; + switch (n) { + case one: return 1; + case two: return 2; + default: return 0; + } +} +assert(doSwitchUInt64(0) == 0); +assert(doSwitchUInt64(1) == 1); +assert(doSwitchUInt64(2) == 2); + + +// class members should switch like any other expression +class FooClass { + value: i32; + + constructor(value: i32) { + this.value = value; + } +} + +function doSwitchClassMember(foo: FooClass): i32 { + switch (foo.value) { + case 1: return 1; + case 2: return 2; + default: return 3; + } +} +assert(doSwitchClassMember(new FooClass(1)) == 1); +assert(doSwitchClassMember(new FooClass(2)) == 2); +assert(doSwitchClassMember(new FooClass(3)) == 3); + + +// class instances switch using reference equality by default +const foo1 = new FooClass(1); +const foo2 = new FooClass(2); +function doSwitchClassInstance(foo: FooClass): i32 { + switch (foo) { + case foo1: return 1; + case foo2: return 2; + default: return 3; + } +} +assert(doSwitchClassInstance(foo1) == 1); +assert(doSwitchClassInstance(foo2) == 2); +assert(doSwitchClassInstance(new FooClass(1)) == 3); + +// class instances can switch using value equality with an operator overload +class BarClass { + value: i32; + + constructor(value: i32) { + this.value = value; + } + + @operator("==") private static __eq(left: BarClass | null, right: BarClass | null): bool { + if (changetype(left) == changetype(right)) return true; + if (!left || !right) return false; + return left.value == right.value; + } +} + +function doSwitchClassInstanceWithOverload(foo: BarClass | null): i32 { + switch (foo) { + case null: return 0; + case new BarClass(1): return 1; + case new BarClass(2): return 2; + default: return 3; + } +} +assert(doSwitchClassInstanceWithOverload(null) == 0); +assert(doSwitchClassInstanceWithOverload(new BarClass(1)) == 1); +assert(doSwitchClassInstanceWithOverload(new BarClass(2)) == 2); +assert(doSwitchClassInstanceWithOverload(new BarClass(3)) == 3); diff --git a/tests/compiler/tablebase.release.wat b/tests/compiler/tablebase.release.wat index 1d985e2553..6ed678709b 100644 --- a/tests/compiler/tablebase.release.wat +++ b/tests/compiler/tablebase.release.wat @@ -11,7 +11,6 @@ (export "memory" (memory $0)) (start $~start) (func $~start - (local $0 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -28,10 +27,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store i32.const 1056 diff --git a/tests/compiler/templateliteral.debug.wat b/tests/compiler/templateliteral.debug.wat index 4afd1b5eec..ace4b98b35 100644 --- a/tests/compiler/templateliteral.debug.wat +++ b/tests/compiler/templateliteral.debug.wat @@ -14,7 +14,7 @@ (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) (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 (param i32 i32 i32 i32))) @@ -39,10 +39,10 @@ (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 4640)) - (global $~lib/memory/__data_end i32 (i32.const 4672)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 37440)) - (global $~lib/memory/__heap_base i32 (i32.const 37440)) + (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") @@ -98,11 +98,16 @@ (data $50 (i32.const 4348) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00r\00e\00f\00#\001\00r\00e\00f\00#\002\00\00\00\00\00\00\00\00\00") (data $51 (i32.const 4396) ",\00\00\00\03\00\00\00\00\00\00\00\04\00\00\00\14\00\00\00p\02\00\00\00\00\00\00\90\02\00\00\00\00\00\00\b0\02\00\00\00\00\00\00\00\00\00\00") (data $52 (i32.const 4444) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00(\00A\00=\00r\00e\00f\00#\001\00,\00 \00B\00=\00r\00e\00f\00#\002\00)\00\00\00\00\00\00\00\00\00") - (data $53 (i32.const 4508) "\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 $54 (i32.const 4540) "\1c\00\00\00\00\00\00\00\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 4572) "\1c\00\00\00\03\00\00\00\00\00\00\00\04\00\00\00\0c\00\00\00\00\00\00\00\d0\11\00\00\00\00\00\00") - (data $56 (i32.const 4604) "\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 $57 (i32.const 4640) "\07\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\04A\00\00 \00\00\00\00\00\00\00") + (data $53 (i32.const 4508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00c\00:\00 \00\00\00\00\00\00\00") + (data $54 (i32.const 4540) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00;\00 \00d\00:\00 \00\00\00") + (data $55 (i32.const 4572) ",\00\00\00\03\00\00\00\00\00\00\00\04\00\00\00\10\00\00\00\b0\11\00\00\00\00\00\00\d0\11\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $56 (i32.const 4620) "\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 4652) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\"\00\00\00c\00:\00 \00r\00e\00f\00#\003\00;\00 \00d\00:\00 \00n\00u\00l\00l\00\00\00\00\00\00\00\00\00\00\00") + (data $58 (i32.const 4716) "\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 $59 (i32.const 4748) "\1c\00\00\00\00\00\00\00\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 4780) "\1c\00\00\00\03\00\00\00\00\00\00\00\04\00\00\00\0c\00\00\00\00\00\00\00\a0\12\00\00\00\00\00\00") + (data $61 (i32.const 4812) "\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 $62 (i32.const 4848) "\07\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\04A\00\00 \00\00\00\00\00\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) @@ -1803,14 +1808,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 @@ -3771,26 +3779,30 @@ end unreachable ) - (func $~lib/util/number/dtoa_core (param $buffer i32) (param $value f64) (result i32) + (func $~lib/util/number/dtoa_core (param $buffer i32) (param $value f64) (param $isSingle i32) (result i32) (local $sign i32) - (local $value|3 f64) - (local $buffer|4 i32) - (local $sign|5 i32) - (local $uv i64) - (local $exp i32) - (local $sid i64) + (local $value|4 f64) + (local $buffer|5 i32) + (local $sign|6 i32) + (local $isSingle|7 i32) (local $frc i64) + (local $exp i32) + (local $uv i32) + (local $sid i32) + (local $uv|12 i64) + (local $sid|13 i64) (local $f i64) (local $e i32) - (local $frc|12 i64) - (local $exp|13 i32) + (local $isSingle|16 i32) + (local $frc|17 i64) + (local $exp|18 i32) (local $off i32) (local $m i32) (local $minExp i32) (local $dk f64) (local $k i32) (local $index i32) - (local $off|20 i32) + (local $off|25 i32) (local $frc_pow i64) (local $exp_pow i32) (local $u i64) @@ -3806,28 +3818,28 @@ (local $e1 i32) (local $e2 i32) (local $w_exp i32) - (local $u|36 i64) - (local $v|37 i64) - (local $u0|38 i64) - (local $v0|39 i64) - (local $u1|40 i64) - (local $v1|41 i64) - (local $l|42 i64) - (local $t|43 i64) - (local $w|44 i64) + (local $u|41 i64) + (local $v|42 i64) + (local $u0|43 i64) + (local $v0|44 i64) + (local $u1|45 i64) + (local $v1|46 i64) + (local $l|47 i64) + (local $t|48 i64) + (local $w|49 i64) (local $wp_frc i64) - (local $e1|46 i32) - (local $e2|47 i32) + (local $e1|51 i32) + (local $e2|52 i32) (local $wp_exp i32) - (local $u|49 i64) - (local $v|50 i64) - (local $u0|51 i64) - (local $v0|52 i64) - (local $u1|53 i64) - (local $v1|54 i64) - (local $l|55 i64) - (local $t|56 i64) - (local $w|57 i64) + (local $u|54 i64) + (local $v|55 i64) + (local $u0|56 i64) + (local $v0|57 i64) + (local $u1|58 i64) + (local $v1|59 i64) + (local $l|60 i64) + (local $t|61 i64) + (local $w|62 i64) (local $wm_frc i64) (local $delta i64) (local $len i32) @@ -3846,77 +3858,127 @@ end block $~lib/util/number/grisu2|inlined.0 (result i32) local.get $value - local.set $value|3 + local.set $value|4 local.get $buffer - local.set $buffer|4 + local.set $buffer|5 local.get $sign - local.set $sign|5 - local.get $value|3 - i64.reinterpret_f64 - local.set $uv - local.get $uv - i64.const 9218868437227405312 - i64.and - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.set $exp - local.get $uv - i64.const 4503599627370495 - i64.and - local.set $sid - local.get $exp - i32.const 0 - i32.ne - i64.extend_i32_u - i64.const 52 - i64.shl - local.get $sid - i64.add - local.set $frc - local.get $exp - i32.const 1 - local.get $exp - select - i32.const 1023 - i32.const 52 - i32.add - i32.sub - local.set $exp + local.set $sign|6 + local.get $isSingle + local.set $isSingle|7 + local.get $isSingle|7 + if + local.get $value|4 + f32.demote_f64 + i32.reinterpret_f32 + local.set $uv + local.get $uv + i32.const 2139095040 + i32.and + i32.const 23 + i32.shr_u + local.set $exp + local.get $uv + i32.const 8388607 + i32.and + local.set $sid + local.get $exp + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 23 + i64.shl + local.get $sid + i64.extend_i32_u + i64.add + local.set $frc + local.get $exp + if (result i32) + local.get $exp + else + i32.const 1 + end + i32.const 127 + i32.const 23 + i32.add + i32.sub + local.set $exp + else + local.get $value|4 + i64.reinterpret_f64 + local.set $uv|12 + local.get $uv|12 + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.set $exp + local.get $uv|12 + i64.const 4503599627370495 + i64.and + local.set $sid|13 + local.get $exp + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 52 + i64.shl + local.get $sid|13 + i64.add + local.set $frc + local.get $exp + if (result i32) + local.get $exp + else + i32.const 1 + end + i32.const 1023 + i32.const 52 + i32.add + i32.sub + local.set $exp + end local.get $frc local.set $f local.get $exp local.set $e + local.get $isSingle|7 + local.set $isSingle|16 local.get $f i64.const 1 i64.shl i64.const 1 i64.add - local.set $frc|12 + local.set $frc|17 local.get $e i32.const 1 i32.sub - local.set $exp|13 - local.get $frc|12 + local.set $exp|18 + local.get $frc|17 i64.clz i32.wrap_i64 local.set $off - local.get $frc|12 + local.get $frc|17 local.get $off i64.extend_i32_s i64.shl - local.set $frc|12 - local.get $exp|13 + local.set $frc|17 + local.get $exp|18 local.get $off i32.sub - local.set $exp|13 + local.set $exp|18 i32.const 1 local.get $f - i64.const 4503599627370496 + local.get $isSingle|16 + if (result i64) + i64.const 8388608 + else + i64.const 4503599627370496 + end i64.eq i32.add local.set $m - local.get $frc|12 + local.get $frc|17 global.set $~lib/util/number/_frc_plus local.get $f local.get $m @@ -3927,12 +3989,12 @@ local.get $e local.get $m i32.sub - local.get $exp|13 + local.get $exp|18 i32.sub i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_minus - local.get $exp|13 + local.get $exp|18 global.set $~lib/util/number/_exp global.get $~lib/util/number/_exp local.set $minExp @@ -3984,14 +4046,14 @@ local.get $frc i64.clz i32.wrap_i64 - local.set $off|20 + local.set $off|25 local.get $frc - local.get $off|20 + local.get $off|25 i64.extend_i32_s i64.shl local.set $frc local.get $exp - local.get $off|20 + local.get $off|25 i32.sub local.set $exp global.get $~lib/util/number/_frc_pow @@ -4076,63 +4138,63 @@ local.set $w_exp block $~lib/util/number/umul64f|inlined.1 (result i64) global.get $~lib/util/number/_frc_plus - local.set $u|36 + local.set $u|41 local.get $frc_pow - local.set $v|37 - local.get $u|36 + local.set $v|42 + local.get $u|41 i64.const 4294967295 i64.and - local.set $u0|38 - local.get $v|37 + local.set $u0|43 + local.get $v|42 i64.const 4294967295 i64.and - local.set $v0|39 - local.get $u|36 + local.set $v0|44 + local.get $u|41 i64.const 32 i64.shr_u - local.set $u1|40 - local.get $v|37 + local.set $u1|45 + local.get $v|42 i64.const 32 i64.shr_u - local.set $v1|41 - local.get $u0|38 - local.get $v0|39 + local.set $v1|46 + local.get $u0|43 + local.get $v0|44 i64.mul - local.set $l|42 - local.get $u1|40 - local.get $v0|39 + local.set $l|47 + local.get $u1|45 + local.get $v0|44 i64.mul - local.get $l|42 + local.get $l|47 i64.const 32 i64.shr_u i64.add - local.set $t|43 - local.get $u0|38 - local.get $v1|41 + local.set $t|48 + local.get $u0|43 + local.get $v1|46 i64.mul - local.get $t|43 + local.get $t|48 i64.const 4294967295 i64.and i64.add - local.set $w|44 - local.get $w|44 + local.set $w|49 + local.get $w|49 i64.const 2147483647 i64.add - local.set $w|44 - local.get $t|43 + local.set $w|49 + local.get $t|48 i64.const 32 i64.shr_u - local.set $t|43 - local.get $w|44 + local.set $t|48 + local.get $w|49 i64.const 32 i64.shr_u - local.set $w|44 - local.get $u1|40 - local.get $v1|41 + local.set $w|49 + local.get $u1|45 + local.get $v1|46 i64.mul - local.get $t|43 + local.get $t|48 i64.add - local.get $w|44 + local.get $w|49 i64.add br $~lib/util/number/umul64f|inlined.1 end @@ -4141,11 +4203,11 @@ local.set $wp_frc block $~lib/util/number/umul64e|inlined.1 (result i32) global.get $~lib/util/number/_exp - local.set $e1|46 + local.set $e1|51 local.get $exp_pow - local.set $e2|47 - local.get $e1|46 - local.get $e2|47 + local.set $e2|52 + local.get $e1|51 + local.get $e2|52 i32.add i32.const 64 i32.add @@ -4154,63 +4216,63 @@ local.set $wp_exp block $~lib/util/number/umul64f|inlined.2 (result i64) global.get $~lib/util/number/_frc_minus - local.set $u|49 + local.set $u|54 local.get $frc_pow - local.set $v|50 - local.get $u|49 + local.set $v|55 + local.get $u|54 i64.const 4294967295 i64.and - local.set $u0|51 - local.get $v|50 + local.set $u0|56 + local.get $v|55 i64.const 4294967295 i64.and - local.set $v0|52 - local.get $u|49 + local.set $v0|57 + local.get $u|54 i64.const 32 i64.shr_u - local.set $u1|53 - local.get $v|50 + local.set $u1|58 + local.get $v|55 i64.const 32 i64.shr_u - local.set $v1|54 - local.get $u0|51 - local.get $v0|52 + local.set $v1|59 + local.get $u0|56 + local.get $v0|57 i64.mul - local.set $l|55 - local.get $u1|53 - local.get $v0|52 + local.set $l|60 + local.get $u1|58 + local.get $v0|57 i64.mul - local.get $l|55 + local.get $l|60 i64.const 32 i64.shr_u i64.add - local.set $t|56 - local.get $u0|51 - local.get $v1|54 + local.set $t|61 + local.get $u0|56 + local.get $v1|59 i64.mul - local.get $t|56 + local.get $t|61 i64.const 4294967295 i64.and i64.add - local.set $w|57 - local.get $w|57 + local.set $w|62 + local.get $w|62 i64.const 2147483647 i64.add - local.set $w|57 - local.get $t|56 + local.set $w|62 + local.get $t|61 i64.const 32 i64.shr_u - local.set $t|56 - local.get $w|57 + local.set $t|61 + local.get $w|62 i64.const 32 i64.shr_u - local.set $w|57 - local.get $u1|53 - local.get $v1|54 + local.set $w|62 + local.get $u1|58 + local.get $v1|59 i64.mul - local.get $t|56 + local.get $t|61 i64.add - local.get $w|57 + local.get $w|62 i64.add br $~lib/util/number/umul64f|inlined.2 end @@ -4221,13 +4283,13 @@ local.get $wm_frc i64.sub local.set $delta - local.get $buffer|4 + local.get $buffer|5 local.get $w_frc local.get $w_exp local.get $wp_frc local.get $wp_exp local.get $delta - local.get $sign|5 + local.get $sign|6 call $~lib/util/number/genDigits br $~lib/util/number/grisu2|inlined.0 end @@ -4250,7 +4312,7 @@ ) (func $~lib/number/F64#toString (param $this f64) (param $radix i32) (result i32) local.get $this - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa return ) (func $templateliteral/Ref#set:value (param $this i32) (param $value i32) @@ -4311,6 +4373,7 @@ call $templateliteral/test_float call $templateliteral/test_fast_paths_string call $templateliteral/test_ref + call $templateliteral/test_null call $templateliteral/test_recursive ) (func $~lib/rt/__visit_globals (param $0 i32) @@ -4335,12 +4398,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -4396,20 +4455,12 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit local.get $0 i32.load offset=4 - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid @@ -4465,8 +4516,8 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 37472 - i32.const 37520 + i32.const 37680 + i32.const 37728 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4927,13 +4978,13 @@ (local $3 i32) (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 32 + i32.const 28 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 32 + i32.const 28 memory.fill global.get $~lib/memory/__stack_pointer i32.const 32 @@ -4950,11 +5001,6 @@ i32.store offset=8 local.get $4 i32.const 32 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $4 call $~lib/string/String.__eq i32.eqz if @@ -4969,13 +5015,13 @@ local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=16 + i32.store offset=12 local.get $4 local.get $b local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=20 + i32.store offset=16 local.get $4 call $~lib/string/String#concat local.set $4 @@ -4984,11 +5030,6 @@ i32.store offset=8 local.get $4 i32.const 592 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $4 call $~lib/string/String.__eq i32.eqz if @@ -5002,51 +5043,46 @@ global.get $~lib/memory/__stack_pointer local.get $a local.tee $2 - i32.store offset=24 + i32.store offset=20 global.get $~lib/memory/__stack_pointer local.get $b local.tee $3 - i32.store offset=28 + i32.store offset=24 i32.const 720 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=16 + i32.store offset=12 local.get $4 i32.const 1 local.get $2 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=20 + i32.store offset=16 local.get $4 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset i32.const 720 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=16 + i32.store offset=12 local.get $4 i32.const 3 local.get $3 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=20 + i32.store offset=16 local.get $4 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset i32.const 720 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=16 + i32.store offset=12 local.get $4 i32.const 160 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=20 - local.get $4 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $4 global.get $~lib/memory/__stack_pointer @@ -5054,11 +5090,6 @@ i32.store offset=8 local.get $4 i32.const 768 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $4 call $~lib/string/String.__eq i32.eqz if @@ -5070,7 +5101,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 32 + i32.const 28 i32.add global.set $~lib/memory/__stack_pointer ) @@ -5081,13 +5112,13 @@ (local $3 i32) (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + 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 24 + i32.const 20 memory.fill i32.const 1 local.set $a @@ -5102,11 +5133,6 @@ i32.store local.get $4 i32.const 2592 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 call $~lib/string/String.__eq i32.eqz if @@ -5123,7 +5149,7 @@ local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=8 + i32.store offset=4 local.get $4 local.get $b i32.const 10 @@ -5131,7 +5157,7 @@ local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=12 + i32.store offset=8 local.get $4 call $~lib/string/String#concat local.set $4 @@ -5140,11 +5166,6 @@ i32.store local.get $4 i32.const 2624 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 call $~lib/string/String.__eq i32.eqz if @@ -5160,53 +5181,48 @@ i32.const 10 call $~lib/number/I32#toString local.tee $2 - i32.store offset=16 + i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $b i32.const 10 call $~lib/number/I32#toString local.tee $3 - i32.store offset=20 + i32.store offset=16 i32.const 2656 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=8 + i32.store offset=4 local.get $4 i32.const 1 local.get $2 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=12 + i32.store offset=8 local.get $4 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset i32.const 2656 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=8 + i32.store offset=4 local.get $4 i32.const 3 local.get $3 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=12 + i32.store offset=8 local.get $4 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset i32.const 2656 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=8 + i32.store offset=4 local.get $4 i32.const 160 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $4 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $4 global.get $~lib/memory/__stack_pointer @@ -5214,11 +5230,6 @@ i32.store local.get $4 i32.const 2704 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 call $~lib/string/String.__eq i32.eqz if @@ -5230,7 +5241,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) @@ -5241,13 +5252,13 @@ (local $3 i32) (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + 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 24 + i32.const 20 memory.fill f64.const 1 local.set $a @@ -5262,11 +5273,6 @@ i32.store local.get $4 i32.const 3888 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 call $~lib/string/String.__eq i32.eqz if @@ -5283,7 +5289,7 @@ local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=8 + i32.store offset=4 local.get $4 local.get $b i32.const 0 @@ -5291,7 +5297,7 @@ local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=12 + i32.store offset=8 local.get $4 call $~lib/string/String#concat local.set $4 @@ -5300,11 +5306,6 @@ i32.store local.get $4 i32.const 3920 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 call $~lib/string/String.__eq i32.eqz if @@ -5320,53 +5321,48 @@ i32.const 0 call $~lib/number/F64#toString local.tee $2 - i32.store offset=16 + i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $b i32.const 0 call $~lib/number/F64#toString local.tee $3 - i32.store offset=20 + i32.store offset=16 i32.const 3952 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=8 + i32.store offset=4 local.get $4 i32.const 1 local.get $2 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=12 + i32.store offset=8 local.get $4 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset i32.const 3952 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=8 + i32.store offset=4 local.get $4 i32.const 3 local.get $3 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=12 + i32.store offset=8 local.get $4 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset i32.const 3952 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=8 + i32.store offset=4 local.get $4 i32.const 160 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $4 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $4 global.get $~lib/memory/__stack_pointer @@ -5374,11 +5370,6 @@ i32.store local.get $4 i32.const 4000 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 call $~lib/string/String.__eq i32.eqz if @@ -5390,7 +5381,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) @@ -5399,14 +5390,16 @@ (local $b i32) (local $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 16 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 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 i32.const 2 local.set $a global.get $~lib/memory/__stack_pointer @@ -5422,11 +5415,6 @@ i32.store offset=4 local.get $2 i32.const 4048 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 call $~lib/string/String.__eq i32.eqz if @@ -5444,11 +5432,6 @@ i32.store offset=4 local.get $2 i32.const 64 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 call $~lib/string/String.__eq i32.eqz if @@ -5460,18 +5443,13 @@ unreachable end i32.const 4080 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 - local.get $2 local.get $a i32.const 10 call $~lib/number/I32#toString local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=16 + i32.store offset=8 local.get $2 call $~lib/string/String#concat local.set $2 @@ -5480,11 +5458,6 @@ i32.store offset=4 local.get $2 i32.const 4112 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 call $~lib/string/String.__eq i32.eqz if @@ -5496,16 +5469,11 @@ unreachable end i32.const 4080 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 - local.get $2 local.get $b local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=16 + i32.store offset=8 local.get $2 call $~lib/string/String#concat local.set $2 @@ -5514,11 +5482,6 @@ i32.store offset=4 local.get $2 i32.const 4144 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 call $~lib/string/String.__eq i32.eqz if @@ -5535,14 +5498,9 @@ local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=12 + i32.store offset=8 local.get $2 i32.const 4176 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $2 call $~lib/string/String#concat local.set $2 global.get $~lib/memory/__stack_pointer @@ -5550,11 +5508,6 @@ i32.store offset=4 local.get $2 i32.const 4208 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 call $~lib/string/String.__eq i32.eqz if @@ -5569,14 +5522,9 @@ local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=12 + i32.store offset=8 local.get $2 i32.const 4176 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $2 call $~lib/string/String#concat local.set $2 global.get $~lib/memory/__stack_pointer @@ -5584,11 +5532,6 @@ i32.store offset=4 local.get $2 i32.const 4240 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 call $~lib/string/String.__eq i32.eqz if @@ -5605,13 +5548,13 @@ local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=12 + i32.store offset=8 local.get $2 local.get $b local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=16 + i32.store offset=12 local.get $2 call $~lib/string/String#concat local.set $2 @@ -5620,11 +5563,6 @@ i32.store offset=4 local.get $2 i32.const 4272 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 call $~lib/string/String.__eq i32.eqz if @@ -5636,7 +5574,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) @@ -5710,27 +5648,19 @@ (func $templateliteral/Ref#toString (param $this 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 i32.const 4304 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $templateliteral/Ref#get:value i32.const 10 @@ -5738,12 +5668,12 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 call $~lib/string/String.__concat 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 @@ -5756,13 +5686,13 @@ (local $3 i32) (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 36 + i32.const 32 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 36 + i32.const 32 memory.fill global.get $~lib/memory/__stack_pointer i32.const 0 @@ -5780,7 +5710,7 @@ local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=16 + i32.store offset=12 local.get $4 call $templateliteral/Ref#toString local.set $4 @@ -5789,11 +5719,6 @@ i32.store offset=8 local.get $4 i32.const 4336 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $4 call $~lib/string/String.__eq i32.eqz if @@ -5808,25 +5733,25 @@ local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=24 + i32.store offset=20 local.get $4 call $templateliteral/Ref#toString local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=16 + i32.store offset=12 local.get $4 local.get $b local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=24 + i32.store offset=20 local.get $4 call $templateliteral/Ref#toString local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=20 + i32.store offset=16 local.get $4 call $~lib/string/String#concat local.set $4 @@ -5835,11 +5760,6 @@ i32.store offset=8 local.get $4 i32.const 4368 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $4 call $~lib/string/String.__eq i32.eqz if @@ -5855,61 +5775,56 @@ local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=16 + i32.store offset=12 local.get $4 call $templateliteral/Ref#toString local.tee $2 - i32.store offset=28 + i32.store offset=24 global.get $~lib/memory/__stack_pointer local.get $b local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=16 + i32.store offset=12 local.get $4 call $templateliteral/Ref#toString local.tee $3 - i32.store offset=32 + i32.store offset=28 i32.const 4416 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=16 + i32.store offset=12 local.get $4 i32.const 1 local.get $2 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=20 + i32.store offset=16 local.get $4 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset i32.const 4416 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=16 + i32.store offset=12 local.get $4 i32.const 3 local.get $3 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=20 + i32.store offset=16 local.get $4 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset i32.const 4416 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=16 + i32.store offset=12 local.get $4 i32.const 160 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=20 - local.get $4 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $4 global.get $~lib/memory/__stack_pointer @@ -5917,23 +5832,128 @@ i32.store offset=8 local.get $4 i32.const 4464 - local.set $4 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 53 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $4 + i32.const 32 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $templateliteral/test_null + (local $c i32) + (local $d i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 28 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 28 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $templateliteral/Ref#constructor + local.tee $c + i32.store + i32.const 0 + local.set $d + global.get $~lib/memory/__stack_pointer + local.get $c + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $5 + call $templateliteral/Ref#toString + local.tee $2 i32.store offset=12 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $d + local.tee $4 + i32.store offset=16 local.get $4 + if (result i32) + local.get $4 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $5 + call $templateliteral/Ref#toString + else + i32.const 4640 + end + local.tee $3 + i32.store offset=20 + i32.const 4592 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $5 + i32.const 1 + local.get $2 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=24 + local.get $5 + call $~lib/staticarray/StaticArray<~lib/string/String>#__uset + i32.const 4592 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $5 + i32.const 3 + local.get $3 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=24 + local.get $5 + call $~lib/staticarray/StaticArray<~lib/string/String>#__uset + i32.const 4592 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $5 + i32.const 160 + call $~lib/staticarray/StaticArray<~lib/string/String>#join + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 4672 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 53 + i32.const 60 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 36 + i32.const 28 i32.add global.set $~lib/memory/__stack_pointer ) @@ -6056,7 +6076,7 @@ call $templateliteral/RecursiveObject#toString local.tee $3 i32.store offset=12 - i32.const 4592 + i32.const 4800 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -6070,7 +6090,7 @@ i32.store offset=16 local.get $4 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset - i32.const 4592 + i32.const 4800 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -6084,18 +6104,13 @@ i32.store offset=16 local.get $4 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset - i32.const 4592 + i32.const 4800 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 i32.const 160 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=16 - local.get $4 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $4 global.get $~lib/memory/__stack_pointer @@ -6111,90 +6126,70 @@ (local $a i32) (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + 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 24 + i32.const 20 memory.fill global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 4528 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 + i32.const 4736 i32.const 0 call $templateliteral/RecursiveObject#constructor local.tee $c - i32.store offset=4 + i32.store global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 64 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 local.get $c local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 - i32.store offset=8 + i32.store offset=4 local.get $3 call $templateliteral/RecursiveObject#constructor local.tee $b - i32.store offset=12 + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 32 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 local.get $b local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 - i32.store offset=8 + i32.store offset=4 local.get $3 call $templateliteral/RecursiveObject#constructor local.tee $a - i32.store offset=16 + i32.store offset=12 local.get $a local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 - i32.store offset=20 + i32.store offset=16 local.get $3 call $templateliteral/RecursiveObject#toString local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 - i32.store - local.get $3 - i32.const 4624 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + i32.store offset=4 local.get $3 + i32.const 4832 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 118 + i32.const 125 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) @@ -6380,10 +6375,12 @@ local.get $14 return ) - (func $~lib/util/number/dtoa (param $value f64) (result i32) + (func $~lib/util/number/dtoa (param $value f64) (result i32) + (local $value|1 f64) + (local $isSingle i32) (local $size i32) (local $result i32) - (local $3 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -6392,76 +6389,66 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $value - f64.const 0 - f64.eq - if - i32.const 2752 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return - end - local.get $value - local.get $value - f64.sub - f64.const 0 - f64.eq - i32.eqz - if - local.get $value + block $~lib/util/number/dtoa_impl|inlined.0 (result i32) local.get $value - f64.ne + local.set $value|1 + i32.const 0 + local.set $isSingle + local.get $value|1 + f64.const 0 + f64.eq if - i32.const 2784 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return + i32.const 2752 + br $~lib/util/number/dtoa_impl|inlined.0 end - i32.const 2816 - i32.const 2864 - local.get $value + local.get $value|1 + local.get $value|1 + f64.sub f64.const 0 - f64.lt - select - local.set $3 + f64.eq + i32.eqz + if + local.get $value|1 + local.get $value|1 + f64.ne + if + i32.const 2784 + br $~lib/util/number/dtoa_impl|inlined.0 + end + 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 2896 + 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 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return + local.get $size + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $result + i32.store + local.get $result + i32.const 2896 + local.get $size + memory.copy + local.get $result + br $~lib/util/number/dtoa_impl|inlined.0 end - i32.const 2896 - local.get $value - 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 2896 - local.get $size - memory.copy - local.get $result - local.set $3 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $5 return ) ) diff --git a/tests/compiler/templateliteral.release.wat b/tests/compiler/templateliteral.release.wat index 688d5f4e11..e99c91217f 100644 --- a/tests/compiler/templateliteral.release.wat +++ b/tests/compiler/templateliteral.release.wat @@ -1,16 +1,16 @@ (module (type $0 (func (param i32 i32) (result i32))) - (type $1 (func)) - (type $2 (func (param 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 $6 (func (param f64) (result i32))) + (type $4 (func (param i32 i32 i32))) + (type $5 (func (param f64) (result i32))) + (type $6 (func (param i32 i32))) (type $7 (func (param i32 i32 i32 i32))) (type $8 (func (param i32 i32 i64))) - (type $9 (func (result i32))) + (type $9 (func (param i32 i32 i32) (result i32))) (type $10 (func (param i64 i64 i32 i64 i32) (result i32))) - (type $11 (func (param i32 i32 i32) (result i32))) + (type $11 (func (result i32))) (import "env" "abort" (func $~lib/builtins/abort (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)) @@ -28,7 +28,7 @@ (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 38464)) + (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") @@ -122,195 +122,440 @@ (data $52 (i32.const 5468) "<") (data $52.1 (i32.const 5480) "\02\00\00\00$\00\00\00(\00A\00=\00r\00e\00f\00#\001\00,\00 \00B\00=\00r\00e\00f\00#\002\00)") (data $53 (i32.const 5532) "\1c") - (data $53.1 (i32.const 5544) "\02\00\00\00\02\00\00\00c") + (data $53.1 (i32.const 5544) "\02\00\00\00\06\00\00\00c\00:\00 ") (data $54 (i32.const 5564) "\1c") - (data $54.1 (i32.const 5576) "\02\00\00\00\02\00\00\00:") - (data $55 (i32.const 5596) "\1c\00\00\00\03\00\00\00\00\00\00\00\04\00\00\00\0c\00\00\00\00\00\00\00\d0\15") - (data $56 (i32.const 5628) "\1c") - (data $56.1 (i32.const 5640) "\02\00\00\00\n\00\00\00a\00:\00b\00:\00c") - (data $57 (i32.const 5664) "\07\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\04A\00\00 ") + (data $54.1 (i32.const 5576) "\02\00\00\00\n\00\00\00;\00 \00d\00:\00 ") + (data $55 (i32.const 5596) ",\00\00\00\03\00\00\00\00\00\00\00\04\00\00\00\10\00\00\00\b0\15\00\00\00\00\00\00\d0\15") + (data $56 (i32.const 5644) "\1c") + (data $56.1 (i32.const 5656) "\02\00\00\00\08\00\00\00n\00u\00l\00l") + (data $57 (i32.const 5676) "<") + (data $57.1 (i32.const 5688) "\02\00\00\00\"\00\00\00c\00:\00 \00r\00e\00f\00#\003\00;\00 \00d\00:\00 \00n\00u\00l\00l") + (data $58 (i32.const 5740) "\1c") + (data $58.1 (i32.const 5752) "\02\00\00\00\02\00\00\00c") + (data $59 (i32.const 5772) "\1c") + (data $59.1 (i32.const 5784) "\02\00\00\00\02\00\00\00:") + (data $60 (i32.const 5804) "\1c\00\00\00\03\00\00\00\00\00\00\00\04\00\00\00\0c\00\00\00\00\00\00\00\a0\16") + (data $61 (i32.const 5836) "\1c") + (data $61.1 (i32.const 5848) "\02\00\00\00\n\00\00\00a\00:\00b\00:\00c") + (data $62 (i32.const 5872) "\07\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\04A\00\00 ") (export "memory" (memory $0)) (export "_start" (func $~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 2464 - call $~lib/rt/itcms/__visit - i32.const 3520 - 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 + (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 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 + 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 - if - local.get $0 - i32.load offset=4 - i32.const 3 + 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 i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1280 - 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 + local.get $1 + i32.const 7 i32.and - local.set $0 - br $while-continue|0 + i32.or + else + i32.const 1 + end + i32.eqz + if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $0 + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + block $__inlined_func$~lib/util/string/compareImpl$91 + loop $while-continue|1 + local.get $0 + local.tee $3 + i32.const 1 + i32.sub + local.set $0 + local.get $3 + if + local.get $2 + i32.load16_u + local.tee $5 + local.get $1 + i32.load16_u + local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 + i32.ne + br_if $__inlined_func$~lib/util/string/compareImpl$91 + local.get $2 + i32.const 2 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end + end + i32.const 0 + local.set $3 end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.eqz + return end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 ) - (func $~lib/rt/itcms/Object#makeGray (param $0 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.get $1 + i32.eqz + if + return + end local.get $0 - global.get $~lib/rt/itcms/iter - i32.eq + i32.eqz if - local.get $0 - i32.load offset=8 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1280 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.set $~lib/rt/itcms/iter + i32.const 0 + i32.const 1280 + i32.const 295 + i32.const 14 + call $~lib/builtins/abort + unreachable end - block $__inlined_func$~lib/rt/itcms/Object#unlink$162 + global.get $~lib/rt/itcms/white + local.get $1 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if local.get $0 + i32.const 20 + i32.sub + local.tee $0 i32.load offset=4 - i32.const -4 + i32.const 3 i32.and - local.tee $1 + local.tee $3 + global.get $~lib/rt/itcms/white i32.eqz + i32.eq if local.get $0 - i32.load offset=8 - i32.eqz - local.get $0 - i32.const 38464 - i32.lt_u + local.get $1 + local.get $2 + select + call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + local.get $3 + i32.const 3 + i32.eq i32.and - i32.eqz if - i32.const 0 - i32.const 1280 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable + local.get $1 + call $~lib/rt/itcms/Object#makeGray end - br $__inlined_func$~lib/rt/itcms/Object#unlink$162 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 + 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 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 + i32.and + local.set $2 + 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.and + local.tee $3 + local.get $2 + i32.add + 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 1184 + return + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=4 + local.get $4 + local.get $0 + local.get $2 + memory.copy + local.get $2 + local.get $4 + i32.add + local.get $1 + local.get $3 + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + ) + (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 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 + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/itoa32$75 local.get $0 - i32.load offset=8 - local.tee $2 i32.eqz if - i32.const 0 - i32.const 1280 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 2032 + 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 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $3 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $3 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $3 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $3 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $3 + i32.const 100000000 + i32.ge_u + i32.add + end end + local.tee $2 + i32.const 1 + i32.shl local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 + 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 - 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 + call $~lib/util/number/utoa32_dec_lut local.get $1 - i32.const 5664 - i32.load - i32.gt_u if - i32.const 1408 - i32.const 1472 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable + local.get $0 + i32.const 45 + i32.store16 end - local.get $1 - i32.const 2 - i32.shl - i32.const 5668 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - i32.load - i32.const 32 - i32.and + global.set $~lib/memory/__stack_pointer 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 @@ -336,903 +581,919 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/staticarray/StaticArray<~lib/string/String>#join (param $0 i32) (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 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 offset=4 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 1184 + i32.store + local.get $0 + local.get $1 + call $~lib/util/string/joinStringArray + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (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.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + (local $6 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u if - i32.const 0 - i32.const 1552 - i32.const 268 - i32.const 14 + i32.const 1216 + i32.const 1280 + i32.const 261 + i32.const 31 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - i32.const 0 + block $__inlined_func$~lib/rt/itcms/interrupt$70 + i32.const 2048 + local.set $2 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$70 + end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.const 10 + i32.shl + i32.add + global.set $~lib/rt/itcms/threshold + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.set $4 + local.get $0 + i32.const 16 + i32.add + local.tee $2 + i32.const 1073741820 + i32.gt_u + if + i32.const 1216 i32.const 1552 - i32.const 270 - i32.const 14 + i32.const 461 + i32.const 29 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const 256 - i32.lt_u + local.get $4 + local.get $2 + i32.const 12 + i32.le_u if (result i32) - local.get $3 - i32.const 4 - i32.shr_u + i32.const 12 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 + local.get $2 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 i32.sub - local.set $2 - local.get $3 + end + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + 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 + memory.size + local.tee $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.set $3 + local.get $2 + local.get $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.xor + 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 1552 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end end - local.tee $3 - i32.const 16 - i32.lt_u + local.get $5 local.get $2 - i32.const 23 - i32.lt_u + i32.load + i32.const -4 i32.and - i32.eqz + i32.gt_u if i32.const 0 i32.const 1552 - i32.const 284 + i32.const 501 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 $4 + local.get $2 + call $~lib/rt/tlsf/removeBlock local.get $2 + i32.load + local.set $6 + local.get $5 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 1552 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load - local.tee $3 - i32.const 1 + i32.const 15 i32.and - i32.eqz if i32.const 0 i32.const 1552 - i32.const 203 + i32.const 361 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load + local.get $6 i32.const -4 i32.and - i32.add - local.tee $4 - i32.load - local.tee $2 - i32.const 1 - i32.and + local.get $5 + i32.sub + local.tee $3 + i32.const 16 + i32.ge_u 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 + local.get $5 + local.get $6 + i32.const 2 i32.and - i32.add - local.tee $3 + i32.or i32.store - local.get $1 + local.get $2 i32.const 4 i32.add - local.get $1 - i32.load - i32.const -4 - i32.and + local.get $5 i32.add - local.tee $4 - i32.load - local.set $2 - end - local.get $3 - i32.const 2 - i32.and - if - local.get $1 + local.tee $5 + local.get $3 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 1552 - 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 + 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 $3 + 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 $4 local.get $2 - i32.const 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 + i32.store offset=4 + local.get $2 local.get $3 - i32.const -4 + i32.store offset=8 + local.get $3 + local.get $2 + local.get $3 + i32.load offset=4 + i32.const 3 i32.and - local.tee $2 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1552 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $4 + 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 - i32.ne - if - i32.const 0 - i32.const 1552 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $4 - i32.const 4 - i32.sub + local.tee $1 + i32.const 0 + local.get $0 + memory.fill 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 + ) + (func $templateliteral/Ref#toString (param $0 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + 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 - i32.shr_u - i32.const 16 - i32.xor + 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 - local.tee $2 - i32.const 16 - i32.lt_u - local.get $5 - i32.const 23 - i32.lt_u - i32.and - i32.eqz + i32.const 38704 + i32.const 38752 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/number/F64#toString (param $0 f64) (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 5904 + i32.lt_s if - i32.const 0 - i32.const 1552 - i32.const 251 - i32.const 14 + i32.const 38704 + i32.const 38752 + i32.const 1 + i32.const 1 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.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 + i32.store + i32.const 3776 + local.set $1 + block $~lib/util/number/dtoa_impl|inlined.0 + local.get $0 + f64.const 0 + f64.eq + br_if $~lib/util/number/dtoa_impl|inlined.0 + local.get $0 + local.get $0 + f64.sub + f64.const 0 + f64.ne + if + i32.const 3808 + local.set $1 + local.get $0 + local.get $0 + f64.ne + br_if $~lib/util/number/dtoa_impl|inlined.0 + i32.const 3840 + i32.const 3888 + local.get $0 + f64.const 0 + f64.lt + select + local.set $1 + br $~lib/util/number/dtoa_impl|inlined.0 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/util/number/dtoa_core + i32.const 1 + i32.shl + local.tee $2 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store local.get $1 - i32.store offset=4 + i32.const 3920 + local.get $2 + memory.copy end - local.get $0 - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.shl - local.get $2 - i32.add - i32.const 2 - i32.shl i32.add + global.set $~lib/memory/__stack_pointer 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) + (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - local.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 + 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 2044 + i32.add + i64.load32_u + local.get $3 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 2044 + 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 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 + i32.const 100 + i32.ge_u if - local.get $3 - i32.const 4 + 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.gt_u - if - i32.const 0 - i32.const 1552 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 2044 + i32.add + i32.load + i32.store local.get $1 - i32.const 16 + 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 - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - local.set $1 - end + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.const 2 + i32.shl + i32.const 2044 + i32.add + i32.load + i32.store else local.get $0 - i32.const 1572 + local.get $2 + i32.const 1 + i32.sub + i32.const 1 + i32.shl 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 + i32.const 48 + i32.add + i32.store16 end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and + ) + (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.sub + i32.load local.tee $3 - i32.const 20 - i32.lt_u + i32.const 1 + i32.and + i32.eqz if - return + i32.const 0 + i32.const 1552 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable end - local.get $1 - local.get $4 - i32.const 2 + local.get $3 + i32.const -4 i32.and + local.tee $3 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1552 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end local.get $3 - i32.const 8 - i32.sub + 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 1 - i32.or - i32.or - i32.store + 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 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end local.get $1 - i32.const 0 - i32.store offset=4 + i32.load offset=8 + local.set $5 local.get $1 - i32.const 0 - i32.store offset=8 + 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.add + i32.shl 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 + i32.shl + i32.add 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 + i32.load offset=96 + i32.eq if - unreachable - end - i32.const 38464 - i32.const 0 - i32.store - i32.const 40032 - i32.const 0 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 23 - i32.lt_u + 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.const 38464 i32.add - i32.const 0 + 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 - 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 38464 - 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 38464 - i32.const 40036 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 38464 - 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 + local.get $3 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 38464 - 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.load + i32.const -2 + local.get $2 + i32.rotl i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.store 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 + 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 1552 + 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 1552 + 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 - 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 1280 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 38464 - 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 38464 - 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.set $1 - 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 1552 - 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 $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return + i32.const 0 + i32.const 1552 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 local.get $0 - i32.store offset=8 + 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 - global.set $~lib/rt/itcms/state + i32.const 1552 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + local.get $4 + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + i32.ne + if + i32.const 0 + i32.const 1552 + 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 - local.get $1 + if (result i32) + local.get $2 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.const 1073741820 + local.get $2 + local.get $2 + i32.const 1073741820 + i32.ge_u + select + local.tee $2 i32.clz i32.sub - local.tee $2 + 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 - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 end - local.get $1 + local.tee $2 i32.const 16 i32.lt_u - local.get $2 + local.get $5 i32.const 23 i32.lt_u i32.and @@ -1240,1257 +1501,1208 @@ if i32.const 0 i32.const 1552 - i32.const 334 + 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=4 - i32.const -1 + i32.load offset=96 + local.set $3 local.get $1 - i32.shl - i32.and - local.tee $1 - if (result i32) - local.get $0 + 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.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 + 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/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/itcms/Object#makeGray (param $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 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 + global.get $~lib/rt/itcms/iter + i32.eq 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 - local.tee $2 - local.get $2 - 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 + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1280 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable end + local.get $1 + global.set $~lib/rt/itcms/iter 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 1216 - i32.const 1552 - 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 + block $__inlined_func$~lib/rt/itcms/Object#unlink$165 + local.get $0 + i32.load offset=4 + i32.const -4 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 + local.tee $1 + i32.eqz if - local.get $3 - memory.grow - i32.const 0 - i32.lt_s + local.get $0 + i32.load offset=8 + i32.eqz + local.get $0 + i32.const 38672 + i32.lt_u + i32.and + i32.eqz if + i32.const 0 + i32.const 1280 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort unreachable end + br $__inlined_func$~lib/rt/itcms/Object#unlink$165 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.get $0 + i32.load offset=8 local.tee $2 i32.eqz if i32.const 0 - i32.const 1552 - i32.const 499 + i32.const 1280 + i32.const 132 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 1552 - 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 1552 - 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 $1 local.get $2 - local.get $5 - local.get $6 - i32.const 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 - 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.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 - 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 + local.get $1 + i32.const 5872 i32.load - i32.const -4 - i32.and + i32.gt_u + if + i32.const 1408 + i32.const 1472 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 5876 i32.add - local.tee $3 - local.get $3 i32.load - i32.const -3 + i32.const 32 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 + 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 $2 - local.get $3 + local.get $0 + local.get $1 i32.store offset=8 - local.get $3 - local.get $2 - local.get $3 + 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 $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 + i32.store offset=8 ) - (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - local.get $1 - i32.eqz - if + (func $~lib/rt/__visit_members (param $0 i32) + (local $1 i32) + (local $2 i32) + block $invalid + block $templateliteral/RecursiveObject + block $templateliteral/Ref + block $~lib/staticarray/StaticArray<~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/staticarray/StaticArray<~lib/string/String> $templateliteral/Ref $templateliteral/RecursiveObject $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + local.get $0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.add + local.set $1 + loop $while-continue|0 + local.get $0 + local.get $1 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + return + end + 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 - i32.eqz + unreachable + ) + (func $templateliteral/Ref#constructor (param $0 i32) (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 5904 + i32.lt_s if - i32.const 0 - i32.const 1280 - i32.const 295 - i32.const 14 + i32.const 38704 + i32.const 38752 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/rt/itcms/white - local.tee $3 - local.get $1 - i32.const 20 - i32.sub + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 5 + call $~lib/rt/itcms/__new local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $3 - i32.eqz - local.get $0 - i32.const 20 - i32.sub - local.tee $0 - i32.load offset=4 - i32.const 3 - i32.and - local.tee $3 - i32.eq - if - local.get $0 - local.get $1 - local.get $2 - select - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - local.get $3 - i32.const 3 - i32.eq - i32.and - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - end - end + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $templateliteral/RecursiveObject#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 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 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $2 + local.get $0 + i32.store + local.get $2 + local.get $0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $2 + local.get $1 + i32.store offset=4 + local.get $2 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 ) - (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - loop $while-continue|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 10000 - i32.ge_u + 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 10000 - i32.rem_u - local.set $3 + i32.const 1 + i32.const 27 local.get $1 - i32.const 10000 - i32.div_u - local.set $1 - local.get $0 - local.get $2 - i32.const 4 + i32.clz 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 2044 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 i32.shl - i32.const 2044 i32.add - i64.load32_u - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 + i32.const 1 + i32.sub + local.set $1 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 2044 - i32.add - i32.load - i32.store + i32.const 31 local.get $1 - i32.const 100 - i32.div_u + 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 10 - i32.ge_u + 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 2 - i32.sub - i32.const 1 + i32.const 4 i32.shl i32.add - local.get $1 i32.const 2 i32.shl - i32.const 2044 i32.add - i32.load - i32.store + i32.load offset=96 else local.get $0 + i32.load + i32.const -1 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/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 5696 - i32.lt_s - if - i32.const 38496 - i32.const 38544 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/itoa32$75 - local.get $0 - i32.eqz - if - local.get $1 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 2032 - 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 + i32.and 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 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $3 - i32.const 1000 - i32.ge_u - i32.add + 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 - local.get $3 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $3 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $3 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $3 - i32.const 100000000 - i32.ge_u - i32.add - end + i32.const 0 end - local.tee $2 + end + ) + (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 - i32.shl local.get $1 - i32.add - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 38672 + i32.const 0 + i32.store + i32.const 40240 + i32.const 0 + i32.store + loop $for-loop|0 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 23 + i32.lt_u if local.get $0 - i32.const 45 - i32.store16 + i32.const 2 + i32.shl + i32.const 38672 + 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 38672 + 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer end - local.get $0 + i32.const 38672 + i32.const 40244 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 38672 + global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/util/number/genDigits (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (result i32) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i64) - (local $8 i32) - (local $9 i64) - (local $10 i64) - (local $11 i32) - (local $12 i64) - local.get $1 - local.get $0 - i64.sub - local.set $10 - i64.const 1 - i32.const 0 local.get $2 - i32.sub - local.tee $11 - i64.extend_i32_s - local.tee $0 - i64.shl - local.tee $7 - i64.const 1 - i64.sub - local.tee $12 local.get $1 - i64.and - local.set $9 + 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 - i64.shr_u - i32.wrap_i64 - local.tee $5 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $5 - i32.const 100 - i32.lt_u - if (result i32) - local.get $5 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $5 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $5 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $5 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $5 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add + 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 - i32.const 100000000 - i32.ge_u - i32.add + 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.set $8 + 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/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 2464 + call $~lib/rt/itcms/__visit + i32.const 3520 + 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 $8 - i32.const 0 - i32.gt_s + local.get $0 + local.get $1 + i32.ne if - block $break|1 - block $case10|1 - block $case9|1 - block $case8|1 - block $case7|1 - block $case6|1 - block $case5|1 - block $case4|1 - block $case3|1 - block $case2|1 - block $case1|1 - block $case0|1 - local.get $8 - i32.const 1 - i32.sub - br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $case0|1 $case10|1 - end - local.get $5 - i32.const 1000000000 - i32.div_u - local.set $6 - local.get $5 - i32.const 1000000000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 100000000 - i32.div_u - local.set $6 - local.get $5 - i32.const 100000000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 10000000 - i32.div_u - local.set $6 - local.get $5 - i32.const 10000000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 1000000 - i32.div_u - local.set $6 - local.get $5 - i32.const 1000000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 100000 - i32.div_u - local.set $6 - local.get $5 - i32.const 100000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 10000 - i32.div_u - local.set $6 - local.get $5 - i32.const 10000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 1000 - i32.div_u - local.set $6 - local.get $5 - i32.const 1000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 100 - i32.div_u - local.set $6 - local.get $5 - i32.const 100 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 10 - i32.div_u - local.set $6 - local.get $5 - i32.const 10 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - local.set $6 - i32.const 0 - local.set $5 - br $break|1 - end - i32.const 0 - local.set $6 - end - local.get $4 - local.get $6 - i32.or + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne if - local.get $4 - local.tee $2 - i32.const 1 - i32.add - local.set $4 - local.get $2 - i32.const 1 - i32.shl - i32.const 3920 - i32.add - local.get $6 - i32.const 65535 - i32.and - i32.const 48 - i32.add - i32.store16 + i32.const 0 + i32.const 1280 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end - local.get $8 - i32.const 1 - i32.sub - local.set $8 - local.get $3 - local.get $5 - i64.extend_i32_u - local.get $11 - i64.extend_i32_s - local.tee $1 - i64.shl - local.get $9 - i64.add - local.tee $0 - i64.ge_u - if - global.get $~lib/util/number/_K - local.get $8 - i32.add - global.set $~lib/util/number/_K - local.get $8 - i32.const 2 - i32.shl - i32.const 4848 - i32.add - i64.load32_u - local.get $1 - i64.shl - local.set $7 - local.get $4 - i32.const 1 - i32.shl - i32.const 3918 - i32.add - local.tee $2 - i32.load16_u - local.set $6 - loop $while-continue|3 - local.get $0 - local.get $10 - i64.lt_u - local.get $3 - local.get $0 - i64.sub - local.get $7 - i64.ge_u - i32.and - if (result i32) - local.get $10 - local.get $0 - local.get $7 - i64.add - local.tee $1 - i64.gt_u - local.get $10 - local.get $0 - i64.sub - local.get $1 - local.get $10 - i64.sub - i64.gt_u - i32.or - else - i32.const 0 - end - if - local.get $6 - i32.const 1 - i32.sub - local.set $6 - local.get $0 - local.get $7 - i64.add - local.set $0 - br $while-continue|3 - end - end - local.get $2 - local.get $6 - i32.store16 - local.get $4 - return - end - br $while-continue|0 - end - end - loop $while-continue|4 - local.get $3 - i64.const 10 - i64.mul - local.set $3 - local.get $9 - i64.const 10 - i64.mul - local.tee $1 - local.get $11 - i64.extend_i32_s - i64.shr_u - local.tee $0 - local.get $4 - i64.extend_i32_s - i64.or - i64.const 0 - i64.ne - if - local.get $4 - local.tee $2 - i32.const 1 - i32.add - local.set $4 - local.get $2 - i32.const 1 - i32.shl - i32.const 3920 + local.get $0 + i32.const 20 i32.add + call $~lib/rt/__visit_members local.get $0 - i32.wrap_i64 - i32.const 65535 + i32.load offset=4 + i32.const -4 i32.and - i32.const 48 - i32.add - i32.store16 + local.set $0 + br $while-continue|0 end - local.get $8 - i32.const 1 - i32.sub - local.set $8 - local.get $1 - local.get $12 - i64.and - local.tee $9 - local.get $3 - i64.ge_u - br_if $while-continue|4 end - global.get $~lib/util/number/_K - local.get $8 - i32.add - global.set $~lib/util/number/_K - local.get $10 - i32.const 0 - local.get $8 + ) + (func $templateliteral/RecursiveObject#toString (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 i32.sub - i32.const 2 - i32.shl - i32.const 4848 - i32.add - i64.load32_u - i64.mul - local.set $1 - local.get $4 - i32.const 1 - i32.shl - i32.const 3918 - i32.add - local.tee $2 - i32.load16_u - local.set $6 - loop $while-continue|6 - local.get $1 - local.get $9 - i64.gt_u - local.get $3 - local.get $9 - i64.sub - local.get $7 - i64.ge_u - i32.and - if (result i32) - local.get $1 - local.get $7 - local.get $9 - i64.add - local.tee $0 - i64.gt_u - local.get $1 - local.get $9 - i64.sub - local.get $0 - local.get $1 - i64.sub - i64.gt_u - i32.or - else - i32.const 0 - end - if - local.get $6 - i32.const 1 - i32.sub - local.set $6 - local.get $7 - local.get $9 - i64.add - local.set $9 - br $while-continue|6 - end + 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 - local.get $2 - local.get $6 - i32.store16 - local.get $4 - ) - (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - local.get $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + 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.tee $1 + i32.store offset=4 + local.get $1 i32.eqz if + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 3145774 i32.store - local.get $1 - i32.const 2 + local.get $0 + i32.load + global.get $~lib/memory/__stack_pointer + i32.const 20 i32.add + global.set $~lib/memory/__stack_pointer return end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $2 - i32.add - local.tee $3 - i32.const 21 - i32.le_s + i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $3 - i32.le_s - i32.and - if (result i32) - loop $for-loop|0 - local.get $1 - local.get $3 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 48 - i32.store16 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 - end - end - local.get $0 - local.get $3 - i32.const 1 - i32.shl - i32.add - i32.const 3145774 - i32.store - local.get $3 - i32.const 2 + call $templateliteral/RecursiveObject#toString + local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 5824 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + i32.const 5824 + local.get $0 + i32.store + i32.const 5824 + local.get $0 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 5824 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=16 + i32.const 5832 + local.get $1 + i32.store + i32.const 5824 + local.get $1 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 5824 + i32.store + i32.const 5824 + call $~lib/staticarray/StaticArray<~lib/string/String>#join + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~start + global.get $~started + if + return + end + i32.const 1 + global.set $~started + call $start:templateliteral + ) + (func $~lib/util/string/joinStringArray (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 16 + 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 + i64.const 0 + i64.store offset=8 + local.get $1 + i32.const 1 + i32.sub + local.tee $4 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add - else - local.get $3 - i32.const 21 - i32.le_s + global.set $~lib/memory/__stack_pointer + i32.const 1184 + return + end + local.get $4 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.const 1184 + local.get $0 + select + return + end + loop $for-loop|0 + local.get $1 local.get $3 - i32.const 0 i32.gt_s - i32.and - if (result i32) + if + global.get $~lib/memory/__stack_pointer local.get $0 local.get $3 - i32.const 1 + i32.const 2 i32.shl i32.add - local.tee $0 - i32.const 2 + i32.load + local.tee $5 + i32.store offset=4 + local.get $5 + if + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $2 + local.get $5 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.add + local.set $2 + end + local.get $3 + i32.const 1 i32.add + local.set $3 + br $for-loop|0 + end + end + i32.const 0 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 1184 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 1180 + i32.load + i32.const 1 + i32.shr_u + local.tee $1 + local.get $4 + i32.mul + i32.add + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=12 + i32.const 0 + local.set $2 + loop $for-loop|1 + local.get $2 + local.get $4 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 0 local.get $2 - i32.sub - i32.const 1 + i32.const 2 i32.shl - memory.copy - local.get $0 - i32.const 46 - i32.store16 - local.get $1 - i32.const 1 i32.add - else - local.get $3 - i32.const 0 - i32.le_s - local.get $3 - i32.const -6 - i32.gt_s - i32.and - if (result i32) - local.get $0 - i32.const 2 + i32.load + local.tee $6 + i32.store offset=4 + local.get $6 + if + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + local.get $5 local.get $3 + i32.const 1 + i32.shl + i32.add + local.get $6 + local.get $6 + i32.const 20 i32.sub - local.tee $3 + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $6 i32.const 1 i32.shl + memory.copy + local.get $3 + local.get $6 i32.add - local.get $0 + local.set $3 + end + local.get $1 + if + local.get $5 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.const 1184 local.get $1 i32.const 1 i32.shl memory.copy - local.get $0 - i32.const 3014704 - i32.store - i32.const 2 - local.set $2 - loop $for-loop|1 - local.get $2 - local.get $3 - i32.lt_s - if - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 48 - i32.store16 - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|1 - end - end local.get $1 local.get $3 i32.add - else - local.get $1 - i32.const 1 - i32.eq - if - local.get $0 - i32.const 101 - i32.store16 offset=2 - local.get $0 - i32.const 4 - i32.add - local.tee $2 - local.get $3 - i32.const 1 + local.set $3 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $0 + i32.store offset=4 + local.get $0 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $5 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 + i32.and + memory.copy + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + ) + (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + local.get $2 + i32.eqz + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 3145774 + i32.store + local.get $1 + i32.const 2 + i32.add + return + end + local.get $1 + local.get $2 + i32.add + local.tee $3 + i32.const 21 + i32.le_s + local.get $1 + local.get $3 + i32.le_s + i32.and + if (result i32) + loop $for-loop|0 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 48 + i32.store16 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.const 3145774 + i32.store + local.get $3 + i32.const 2 + i32.add + else + local.get $3 + i32.const 21 + i32.le_s + local.get $3 + i32.const 0 + i32.gt_s + i32.and + if (result i32) + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.tee $0 + i32.const 2 + i32.add + local.get $0 + i32.const 0 + local.get $2 + i32.sub + i32.const 1 + i32.shl + memory.copy + local.get $0 + i32.const 46 + i32.store16 + local.get $1 + i32.const 1 + i32.add + else + local.get $3 + i32.const 0 + i32.le_s + local.get $3 + i32.const -6 + i32.gt_s + i32.and + if (result i32) + local.get $0 + i32.const 2 + local.get $3 + i32.sub + local.tee $3 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $1 + i32.const 1 + i32.shl + memory.copy + local.get $0 + i32.const 3014704 + i32.store + i32.const 2 + local.set $2 + loop $for-loop|1 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 48 + i32.store16 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 + end + end + local.get $1 + local.get $3 + i32.add + else + local.get $1 + i32.const 1 + i32.eq + if + local.get $0 + i32.const 101 + i32.store16 offset=2 + local.get $0 + i32.const 4 + i32.add + local.tee $2 + local.get $3 + i32.const 1 i32.sub local.tee $0 i32.const 0 @@ -2668,61 +2880,485 @@ end end ) - (func $~lib/util/number/dtoa_core (param $0 f64) (result i32) - (local $1 i64) - (local $2 i32) - (local $3 i64) - (local $4 i64) - (local $5 i64) - (local $6 i64) + (func $~lib/util/number/genDigits (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (result i32) + (local $5 i32) + (local $6 i32) (local $7 i32) - (local $8 i32) - (local $9 i32) + (local $8 i64) + (local $9 i64) (local $10 i64) - (local $11 i64) + (local $11 i32) (local $12 i64) - (local $13 i64) - (local $14 i64) - local.get $0 - f64.const 0 - f64.lt - local.tee $2 - if (result f64) - i32.const 3920 - i32.const 45 - i32.store16 - local.get $0 - f64.neg - else - local.get $0 - end - i64.reinterpret_f64 - local.tee $1 - i64.const 9218868437227405312 - i64.and - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.tee $7 - i32.const 1 - local.get $7 - select - i32.const 1075 - i32.sub - local.tee $8 - i32.const 1 - i32.sub local.get $1 - i64.const 4503599627370495 - i64.and - local.get $7 + local.get $0 + i64.sub + local.set $9 + i64.const 1 i32.const 0 - i32.ne - i64.extend_i32_u - i64.const 52 + local.get $2 + i32.sub + local.tee $11 + i64.extend_i32_s + local.tee $0 i64.shl - i64.add - local.tee $1 + local.tee $10 + i64.const 1 + i64.sub + local.tee $12 + local.get $1 + i64.and + local.set $8 + local.get $1 + local.get $0 + i64.shr_u + i32.wrap_i64 + local.tee $2 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $2 + i32.const 100 + i32.lt_u + if (result i32) + local.get $2 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $2 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $2 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $2 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $2 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $2 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $2 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.set $7 + loop $while-continue|0 + local.get $7 + i32.const 0 + i32.gt_s + if + block $break|1 + block $case10|1 + block $case9|1 + block $case8|1 + block $case7|1 + block $case6|1 + block $case5|1 + block $case4|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + local.get $7 + i32.const 1 + i32.sub + br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $case0|1 $case10|1 + end + local.get $2 + i32.const 1000000000 + i32.div_u + local.set $5 + local.get $2 + i32.const 1000000000 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 100000000 + i32.div_u + local.set $5 + local.get $2 + i32.const 100000000 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 10000000 + i32.div_u + local.set $5 + local.get $2 + i32.const 10000000 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 1000000 + i32.div_u + local.set $5 + local.get $2 + i32.const 1000000 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 100000 + i32.div_u + local.set $5 + local.get $2 + i32.const 100000 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 10000 + i32.div_u + local.set $5 + local.get $2 + i32.const 10000 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 1000 + i32.div_u + local.set $5 + local.get $2 + i32.const 1000 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 100 + i32.div_u + local.set $5 + local.get $2 + i32.const 100 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 10 + i32.div_u + local.set $5 + local.get $2 + i32.const 10 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + local.set $5 + i32.const 0 + local.set $2 + br $break|1 + end + i32.const 0 + local.set $5 + end + local.get $4 + local.get $5 + i32.or + if + local.get $4 + local.tee $6 + i32.const 1 + i32.add + local.set $4 + local.get $6 + i32.const 1 + i32.shl + i32.const 3920 + i32.add + local.get $5 + i32.const 65535 + i32.and + i32.const 48 + i32.add + i32.store16 + end + local.get $7 + i32.const 1 + i32.sub + local.set $7 + local.get $3 + local.get $2 + i64.extend_i32_u + local.get $11 + i64.extend_i32_s + local.tee $1 + i64.shl + local.get $8 + i64.add + local.tee $0 + i64.ge_u + if + global.get $~lib/util/number/_K + local.get $7 + i32.add + global.set $~lib/util/number/_K + local.get $7 + i32.const 2 + i32.shl + i32.const 4848 + i32.add + i64.load32_u + local.get $1 + i64.shl + local.set $1 + local.get $4 + i32.const 1 + i32.shl + i32.const 3918 + i32.add + local.tee $2 + i32.load16_u + local.set $7 + loop $while-continue|3 + local.get $0 + local.get $9 + i64.lt_u + local.get $3 + local.get $0 + i64.sub + local.get $1 + i64.ge_u + i32.and + if (result i32) + local.get $9 + local.get $0 + local.get $1 + i64.add + local.tee $8 + i64.gt_u + local.get $9 + local.get $0 + i64.sub + local.get $8 + local.get $9 + i64.sub + i64.gt_u + i32.or + else + i32.const 0 + end + if + local.get $7 + i32.const 1 + i32.sub + local.set $7 + local.get $0 + local.get $1 + i64.add + local.set $0 + br $while-continue|3 + end + end + local.get $2 + local.get $7 + i32.store16 + local.get $4 + return + end + br $while-continue|0 + end + end + loop $while-continue|4 + local.get $3 + i64.const 10 + i64.mul + local.set $3 + local.get $8 + i64.const 10 + i64.mul + local.tee $0 + local.get $11 + i64.extend_i32_s + i64.shr_u + local.tee $1 + local.get $4 + i64.extend_i32_s + i64.or + i64.const 0 + i64.ne + if + local.get $4 + local.tee $2 + i32.const 1 + i32.add + local.set $4 + local.get $2 + i32.const 1 + i32.shl + i32.const 3920 + i32.add + local.get $1 + i32.wrap_i64 + i32.const 65535 + i32.and + i32.const 48 + i32.add + i32.store16 + end + local.get $7 + i32.const 1 + i32.sub + local.set $7 + local.get $0 + local.get $12 + i64.and + local.tee $8 + local.get $3 + i64.ge_u + br_if $while-continue|4 + end + global.get $~lib/util/number/_K + local.get $7 + i32.add + global.set $~lib/util/number/_K + local.get $9 + i32.const 0 + local.get $7 + i32.sub + i32.const 2 + i32.shl + i32.const 4848 + i32.add + i64.load32_u + i64.mul + local.set $0 + local.get $4 + i32.const 1 + i32.shl + i32.const 3918 + i32.add + local.tee $2 + i32.load16_u + local.set $7 + loop $while-continue|6 + local.get $0 + local.get $8 + i64.gt_u + local.get $3 + local.get $8 + i64.sub + local.get $10 + i64.ge_u + i32.and + if (result i32) + local.get $0 + local.get $8 + local.get $10 + i64.add + local.tee $1 + i64.gt_u + local.get $0 + local.get $8 + i64.sub + local.get $1 + local.get $0 + i64.sub + i64.gt_u + i32.or + else + i32.const 0 + end + if + local.get $7 + i32.const 1 + i32.sub + local.set $7 + local.get $8 + local.get $10 + i64.add + local.set $8 + br $while-continue|6 + end + end + local.get $2 + local.get $7 + i32.store16 + local.get $4 + ) + (func $~lib/util/number/dtoa_core (param $0 f64) (result i32) + (local $1 i64) + (local $2 i32) + (local $3 i64) + (local $4 i32) + (local $5 i64) + (local $6 i64) + (local $7 i64) + (local $8 i32) + (local $9 i32) + (local $10 i64) + (local $11 i64) + (local $12 i64) + (local $13 i64) + (local $14 i64) + local.get $0 + f64.const 0 + f64.lt + local.tee $2 + if (result f64) + i32.const 3920 + i32.const 45 + i32.store16 + local.get $0 + f64.neg + else + local.get $0 + end + i64.reinterpret_f64 + local.tee $1 + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.tee $4 + i32.const 1 + local.get $4 + select + i32.const 1075 + i32.sub + local.tee $8 + i32.const 1 + i32.sub + local.get $1 + i64.const 4503599627370495 + i64.and + local.get $4 + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 52 + i64.shl + i64.add + local.tee $1 i64.const 1 i64.shl i64.const 1 @@ -2730,11 +3366,11 @@ local.tee $3 i64.clz i32.wrap_i64 - local.tee $7 + local.tee $9 i32.sub - local.set $9 + local.set $4 local.get $3 - local.get $7 + local.get $9 i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_plus @@ -2744,25 +3380,24 @@ i64.eq i32.const 1 i32.add - local.tee $7 + local.tee $9 i64.extend_i32_s i64.shl i64.const 1 i64.sub local.get $8 - local.get $7 - i32.sub local.get $9 i32.sub + local.get $4 + i32.sub i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_minus - local.get $9 + local.get $4 global.set $~lib/util/number/_exp i32.const 348 i32.const -61 global.get $~lib/util/number/_exp - local.tee $7 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 @@ -2771,8 +3406,8 @@ f64.add local.tee $0 i32.trunc_sat_f64_s - local.tee $8 - local.get $8 + local.tee $4 + local.get $4 f64.convert_i32_s local.get $0 f64.ne @@ -2781,18 +3416,18 @@ i32.shr_s i32.const 1 i32.add - local.tee $8 + local.tee $4 i32.const 3 i32.shl - local.tee $9 + local.tee $8 i32.sub global.set $~lib/util/number/_K - local.get $9 + local.get $8 i32.const 3976 i32.add i64.load global.set $~lib/util/number/_frc_pow - local.get $8 + local.get $4 i32.const 1 i32.shl i32.const 4672 @@ -2806,7 +3441,7 @@ local.tee $1 i64.const 4294967295 i64.and - local.set $4 + local.set $5 global.get $~lib/util/number/_frc_pow local.tee $10 i64.const 4294967295 @@ -2817,13 +3452,13 @@ i64.shr_u local.tee $1 i64.mul - local.get $4 + local.get $5 local.get $11 i64.mul i64.const 32 i64.shr_u i64.add - local.set $5 + local.set $6 global.get $~lib/util/number/_frc_plus local.tee $3 i64.const 4294967295 @@ -2841,7 +3476,7 @@ i64.const 32 i64.shr_u i64.add - local.set $6 + local.set $7 global.get $~lib/util/number/_frc_minus local.tee $13 i64.const 4294967295 @@ -2871,14 +3506,14 @@ i64.shr_u local.tee $1 i64.mul - local.get $5 + local.get $6 i64.const 32 i64.shr_u i64.add local.get $1 - local.get $4 - i64.mul local.get $5 + i64.mul + local.get $6 i64.const 4294967295 i64.and i64.add @@ -2890,14 +3525,14 @@ local.get $1 local.get $3 i64.mul - local.get $6 + local.get $7 i64.const 32 i64.shr_u i64.add local.get $1 local.get $12 i64.mul - local.get $6 + local.get $7 i64.const 4294967295 i64.and i64.add @@ -2909,8 +3544,8 @@ i64.const 1 i64.sub local.tee $3 - local.get $7 global.get $~lib/util/number/_exp_pow + global.get $~lib/util/number/_exp i32.add i32.const -64 i32.sub @@ -2946,93 +3581,265 @@ local.get $2 i32.add ) - (func $~lib/number/F64#toString (param $0 f64) (result i32) + (func $~lib/rt/itcms/step (result i32) + (local $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 5696 - i32.lt_s - if - i32.const 38496 - i32.const 38544 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/dtoa$79 - local.get $0 - f64.const 0 - f64.eq - if - local.get $1 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 3776 + 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 - br $__inlined_func$~lib/util/number/dtoa$79 + 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 38672 + 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 - local.get $0 - local.get $0 - f64.sub - f64.const 0 - f64.ne + 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 1280 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - f64.ne + i32.const 38672 + i32.lt_u if - global.get $~lib/memory/__stack_pointer + 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 - global.set $~lib/memory/__stack_pointer - i32.const 3808 - local.set $1 - br $__inlined_func$~lib/util/number/dtoa$79 + i32.sub + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 4 + i32.add + local.tee $0 + i32.const 38672 + 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 1552 + 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 3840 - i32.const 3888 - local.get $0 - f64.const 0 - f64.lt - select - local.set $1 - br $__inlined_func$~lib/util/number/dtoa$79 + i32.const 10 + return end - local.get $0 - call $~lib/util/number/dtoa_core - i32.const 1 - i32.shl - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - local.get $1 - i32.const 3920 - local.get $2 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + 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 - local.get $1 + i32.const 0 ) (func $start:templateliteral (local $0 i32) @@ -3042,7 +3849,7 @@ memory.size i32.const 16 i32.shl - i32.const 38464 + i32.const 38672 i32.sub i32.const 1 i32.shr_u @@ -3072,31 +3879,27 @@ i32.const 1504 global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer - i32.const 32 + i32.const 28 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 5696 + i32.const 5904 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 - i32.const 32 + i32.const 28 memory.fill - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1088 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store offset=8 - local.get $0 - i32.const 1056 - i32.store offset=12 i32.const 1056 i32.const 1056 call $~lib/string/String.__eq @@ -3110,12 +3913,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1056 - i32.store offset=16 - local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer i32.const 1088 - i32.store offset=20 + i32.store offset=16 i32.const 1056 i32.const 1088 call $~lib/string/String#concat @@ -3123,9 +3925,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1616 - i32.store offset=12 local.get $0 i32.const 1616 call $~lib/string/String.__eq @@ -3139,18 +3938,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1056 - i32.store offset=24 - local.get $0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer i32.const 1088 - i32.store offset=28 - local.get $0 + i32.store offset=24 + global.get $~lib/memory/__stack_pointer i32.const 1744 - i32.store offset=16 - local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer i32.const 1056 - i32.store offset=20 + i32.store offset=16 i32.const 1748 i32.const 1056 i32.store @@ -3160,10 +3958,10 @@ call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 1744 - i32.store offset=16 + i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 1088 - i32.store offset=20 + i32.store offset=16 i32.const 1756 i32.const 1088 i32.store @@ -3173,19 +3971,13 @@ call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 1744 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 1184 - i32.store offset=20 + i32.store offset=12 i32.const 1744 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1792 - i32.store offset=12 local.get $0 i32.const 1792 call $~lib/string/String.__eq @@ -3199,20 +3991,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 32 + i32.const 28 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5696 + i32.const 5904 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 24 + i32.const 20 memory.fill i32.const 1 call $~lib/number/I32#toString @@ -3220,9 +4012,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3616 - i32.store offset=4 local.get $0 i32.const 3616 call $~lib/string/String.__eq @@ -3240,13 +4029,13 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 i32.const 2 call $~lib/number/I32#toString local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 local.get $0 local.get $1 call $~lib/string/String#concat @@ -3254,9 +4043,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3648 - i32.store offset=4 local.get $0 i32.const 3648 call $~lib/string/String.__eq @@ -3273,18 +4059,18 @@ i32.const 1 call $~lib/number/I32#toString local.tee $0 - i32.store offset=16 + i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 2 call $~lib/number/I32#toString local.tee $1 - i32.store offset=20 + i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 3680 - i32.store offset=8 + i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 i32.const 3684 local.get $0 i32.store @@ -3294,10 +4080,10 @@ call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 3680 - i32.store offset=8 + i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 i32.const 3692 local.get $1 i32.store @@ -3307,19 +4093,13 @@ call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 3680 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1184 - i32.store offset=12 + i32.store offset=4 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 - global.get $~lib/memory/__stack_pointer - i32.const 3728 - i32.store offset=4 local.get $0 i32.const 3728 call $~lib/string/String.__eq @@ -3333,20 +4113,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5696 + i32.const 5904 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 24 + i32.const 20 memory.fill f64.const 1 call $~lib/number/F64#toString @@ -3354,9 +4134,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4912 - i32.store offset=4 local.get $0 i32.const 4912 call $~lib/string/String.__eq @@ -3374,13 +4151,13 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 f64.const 2 call $~lib/number/F64#toString local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 local.get $0 local.get $1 call $~lib/string/String#concat @@ -3388,9 +4165,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4944 - i32.store offset=4 local.get $0 i32.const 4944 call $~lib/string/String.__eq @@ -3407,18 +4181,18 @@ f64.const 1 call $~lib/number/F64#toString local.tee $0 - i32.store offset=16 + i32.store offset=12 global.get $~lib/memory/__stack_pointer f64.const 2 call $~lib/number/F64#toString local.tee $1 - i32.store offset=20 + i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 4976 - i32.store offset=8 + i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 i32.const 4980 local.get $0 i32.store @@ -3428,10 +4202,10 @@ call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 4976 - i32.store offset=8 + i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 i32.const 4988 local.get $1 i32.store @@ -3441,19 +4215,13 @@ call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 4976 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1184 - i32.store offset=12 + i32.store offset=4 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 - global.get $~lib/memory/__stack_pointer - i32.const 5024 - i32.store offset=4 local.get $0 i32.const 5024 call $~lib/string/String.__eq @@ -3467,1357 +4235,482 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - call $templateliteral/test_fast_paths_string global.get $~lib/memory/__stack_pointer - i32.const 36 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5696 + i32.const 5904 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.const 36 - memory.fill - local.get $0 - i32.const 1 - call $templateliteral/Ref#constructor - local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2 - call $templateliteral/Ref#constructor - local.tee $0 - i32.store offset=4 + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $2 - call $templateliteral/Ref#toString - local.set $1 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 + i32.const 1088 + i32.store + i32.const 2 + call $~lib/number/I32#toString + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 5360 - i32.store offset=12 - local.get $1 - i32.const 5360 + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 5072 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 51 + i32.const 31 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=24 - local.get $2 - call $templateliteral/Ref#toString - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=24 - local.get $0 - call $templateliteral/Ref#toString - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=20 - local.get $1 - local.get $3 - call $~lib/string/String#concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 5392 - i32.store offset=12 - local.get $1 - i32.const 5392 + i32.const 1088 + i32.store offset=4 + i32.const 1088 + i32.const 1088 call $~lib/string/String.__eq i32.eqz if - i32.const 0 - i32.const 1120 - i32.const 52 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $templateliteral/Ref#toString - local.tee $1 - i32.store offset=28 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $templateliteral/Ref#toString - local.tee $0 - i32.store offset=32 - global.get $~lib/memory/__stack_pointer - i32.const 5440 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - i32.const 5444 - local.get $1 - i32.store - i32.const 5440 - local.get $1 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 5440 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - i32.const 5452 - local.get $0 - i32.store - i32.const 5440 - local.get $0 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 5440 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 1184 - i32.store offset=20 - i32.const 5440 - call $~lib/staticarray/StaticArray<~lib/string/String>#join + i32.const 0 + i32.const 1120 + i32.const 32 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 + i32.const 5104 + local.get $0 + call $~lib/string/String#concat + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 5488 - i32.store offset=12 local.get $0 - i32.const 5488 + i32.store offset=4 + local.get $0 + i32.const 5136 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 53 + i32.const 33 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 36 - i32.add - global.set $~lib/memory/__stack_pointer - 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 5696 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.const 24 - memory.fill - local.get $0 - i32.const 5552 - i32.store - local.get $0 - i32.const 5552 - i32.const 0 - call $templateliteral/RecursiveObject#constructor - local.tee $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer i32.const 1088 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer + i32.const 5104 i32.const 1088 - local.get $0 - call $templateliteral/RecursiveObject#constructor - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store + call $~lib/string/String#concat + local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1056 + i32.store offset=4 local.get $0 - call $templateliteral/RecursiveObject#constructor - local.tee $0 - i32.store offset=16 + i32.const 5168 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 34 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + call $~lib/number/I32#toString + local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=20 + i32.store offset=8 local.get $0 - call $templateliteral/RecursiveObject#toString + i32.const 5200 + call $~lib/string/String#concat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 5648 - i32.store offset=8 + i32.store offset=4 local.get $0 - i32.const 5648 + i32.const 5232 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 118 + i32.const 35 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 38496 - i32.const 38544 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/rt/__visit_members (param $0 i32) - (local $1 i32) - (local $2 i32) - block $invalid - block $templateliteral/RecursiveObject - block $templateliteral/Ref - block $~lib/staticarray/StaticArray<~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/staticarray/StaticArray<~lib/string/String> $templateliteral/Ref $templateliteral/RecursiveObject $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - return - end - local.get $0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.add - local.set $1 - loop $while-continue|0 - local.get $0 - local.get $1 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - return - end - return - end + i32.const 1088 + i32.store offset=8 + i32.const 1088 + i32.const 5200 + call $~lib/string/String#concat + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load - local.tee $1 - if - local.get $1 - call $~lib/rt/itcms/__visit - end + i32.store offset=4 local.get $0 - i32.load offset=4 - local.tee $0 + i32.const 5264 + call $~lib/string/String.__eq + i32.eqz if - local.get $0 - call $~lib/rt/itcms/__visit + i32.const 0 + i32.const 1120 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable end - return - end - unreachable - ) - (func $~start - global.get $~started - if - return - end - i32.const 1 - global.set $~started - call $start:templateliteral - ) - (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 5696 - i32.lt_s - if - i32.const 38496 - i32.const 38544 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $0 - local.get $1 - i32.eq - if - local.get $2 - 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 + i32.const 2 + call $~lib/number/I32#toString + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 - local.tee $2 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 - local.get $2 - 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 - local.get $4 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 1088 + i32.store offset=12 local.get $0 - i32.store + i32.const 1088 + call $~lib/string/String#concat + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $0 - local.set $2 - local.get $4 - 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 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - else - i32.const 1 - end + local.get $0 + i32.const 5296 + call $~lib/string/String.__eq i32.eqz if - loop $do-loop|0 - local.get $2 - i64.load - local.get $1 - i64.load - i64.eq - if - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end - end - end - block $__inlined_func$~lib/util/string/compareImpl$89 - loop $while-continue|1 - local.get $0 - local.tee $3 - i32.const 1 - i32.sub - local.set $0 - local.get $3 - if - local.get $2 - i32.load16_u - local.tee $5 - local.get $1 - i32.load16_u - local.tee $4 - i32.sub - local.set $3 - local.get $4 - local.get $5 - i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$89 - local.get $2 - i32.const 2 - i32.add - local.set $2 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 - end - end i32.const 0 - local.set $3 + i32.const 1120 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 - i32.eqz - return - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - 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) - (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 5696 - i32.lt_s - if - i32.const 38496 - i32.const 38544 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $5 - i64.const 0 - i64.store - local.get $5 - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $2 - local.get $5 - local.get $1 - i32.store - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $3 - local.get $2 - i32.add - local.tee $4 - i32.eqz - if - local.get $5 - i32.const 8 - i32.add + global.get $~lib/memory/__stack_pointer + i32.const 32 + i32.sub global.set $~lib/memory/__stack_pointer - i32.const 1184 - return - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store offset=4 - local.get $4 - local.get $0 - local.get $2 - memory.copy - local.get $2 - local.get $4 - i32.add - local.get $1 - local.get $3 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - ) - (func $~lib/util/string/joinStringArray (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 5696 - i32.lt_s - if - i32.const 38496 - i32.const 38544 - i32.const 1 + global.get $~lib/memory/__stack_pointer + i32.const 5904 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 32 + memory.fill + global.get $~lib/memory/__stack_pointer i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $5 - i64.const 0 - i64.store - local.get $5 - i64.const 0 - i64.store offset=8 - local.get $1 - i32.const 1 - i32.sub - local.tee $4 - i32.const 0 - i32.lt_s - if - local.get $5 - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1184 - return - end - local.get $4 - i32.eqz - if + call $templateliteral/Ref#constructor + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 2 + call $templateliteral/Ref#constructor + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=12 + local.get $2 + call $templateliteral/Ref#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.const 5360 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 51 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=20 + local.get $2 + call $templateliteral/Ref#toString + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.load - local.tee $0 - i32.store local.get $1 - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer + i32.store offset=12 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1184 + i32.store offset=20 local.get $0 - select - return - end - loop $for-loop|0 + call $templateliteral/Ref#toString + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=16 local.get $1 local.get $3 - i32.gt_s + call $~lib/string/String#concat + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.const 5392 + call $~lib/string/String.__eq + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $0 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $6 - i32.store offset=4 - local.get $6 - if - local.get $5 - local.get $6 - i32.store offset=8 - local.get $2 - local.get $6 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.add - local.set $2 - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 + i32.const 0 + i32.const 1120 + i32.const 52 + i32.const 3 + call $~lib/builtins/abort + unreachable end - end - i32.const 0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 1184 - i32.store offset=8 - local.get $1 - local.get $2 - local.get $4 - i32.const 1180 - i32.load - i32.const 1 - i32.shr_u - local.tee $5 - i32.mul - i32.add - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store offset=12 - i32.const 0 - local.set $2 - loop $for-loop|1 + global.get $~lib/memory/__stack_pointer local.get $2 - local.get $4 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.tee $7 - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $1 - i32.store offset=4 - local.get $1 - if - local.get $7 - local.get $1 - i32.store offset=8 - local.get $6 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.get $1 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $1 - i32.const 1 - i32.shl - memory.copy - local.get $1 - local.get $3 - i32.add - local.set $3 - end - local.get $5 - if - local.get $6 - local.get $3 - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $5 - i32.const 1 - i32.shl - memory.copy - local.get $3 - local.get $5 - i32.add - local.set $3 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $0 - i32.store offset=4 - local.get $0 - if - local.get $1 - local.get $0 - i32.store offset=8 - local.get $6 - local.get $3 - i32.const 1 - i32.shl - i32.add + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $2 + call $templateliteral/Ref#toString + local.tee $1 + i32.store offset=24 + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - memory.copy - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - ) - (func $~lib/staticarray/StaticArray<~lib/string/String>#join (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 5696 - i32.lt_s - if - i32.const 38496 - i32.const 38544 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 2 - i32.shr_u - local.set $2 - local.get $1 - i32.const 1184 - i32.store - local.get $0 - local.get $2 - call $~lib/util/string/joinStringArray - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $templateliteral/test_fast_paths_string - (local $0 i32) - (local $1 i32) - 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 5696 - i32.lt_s - if - i32.const 38496 - i32.const 38544 + call $templateliteral/Ref#toString + local.tee $0 + i32.store offset=28 + global.get $~lib/memory/__stack_pointer + i32.const 5440 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=16 + i32.const 5444 + local.get $1 + i32.store + i32.const 5440 + local.get $1 i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 5440 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + i32.const 5452 + local.get $0 + i32.store + i32.const 5440 + local.get $0 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.const 20 - memory.fill - local.get $0 - i32.const 1088 - i32.store - i32.const 2 - call $~lib/number/I32#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5072 - i32.store offset=8 - local.get $0 - i32.const 5072 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 31 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1088 - i32.store offset=4 - local.get $0 - i32.const 1088 - i32.store offset=8 - i32.const 1088 - i32.const 1088 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 5440 + i32.store offset=12 + 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 5488 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 53 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer i32.const 32 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 5104 - i32.store offset=12 - i32.const 2 - call $~lib/number/I32#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=16 - i32.const 5104 - local.get $0 - call $~lib/string/String#concat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5136 - i32.store offset=8 - local.get $0 - i32.const 5136 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 33 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 5104 - i32.store offset=12 - local.get $0 - i32.const 1088 - i32.store offset=16 - i32.const 5104 - i32.const 1088 - call $~lib/string/String#concat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5168 - i32.store offset=8 - local.get $0 - i32.const 5168 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 34 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 2 - call $~lib/number/I32#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=12 - local.get $1 - i32.const 5200 - i32.store offset=16 - local.get $0 - i32.const 5200 - call $~lib/string/String#concat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5232 - i32.store offset=8 - local.get $0 - i32.const 5232 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 35 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1088 - i32.store offset=12 - local.get $0 - i32.const 5200 - i32.store offset=16 - i32.const 1088 - i32.const 5200 - call $~lib/string/String#concat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5264 - i32.store offset=8 - local.get $0 - i32.const 5264 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 2 - call $~lib/number/I32#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=12 - local.get $1 - i32.const 1088 - i32.store offset=16 - local.get $0 - i32.const 1088 - call $~lib/string/String#concat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5296 - i32.store offset=8 - local.get $0 - i32.const 5296 - call $~lib/string/String.__eq - i32.eqz - if + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 28 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 5904 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1120 - i32.const 37 + i32.const 28 + memory.fill + global.get $~lib/memory/__stack_pointer i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $templateliteral/Ref#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 5696 - i32.lt_s - if - i32.const 38496 - i32.const 38544 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - i32.const 4 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - i32.store - local.get $2 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $templateliteral/Ref#toString (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 + call $templateliteral/Ref#constructor + local.tee $0 + i32.store global.get $~lib/memory/__stack_pointer - i32.const 5696 - i32.lt_s - br_if $folding-inner0 + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $templateliteral/Ref#toString + local.tee $0 + i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 5664 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 5616 i32.store offset=8 - local.get $1 - i32.const 5328 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=24 + i32.const 5620 + local.get $0 i32.store - local.get $1 + i32.const 5616 local.get $0 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 5616 i32.store offset=8 - local.get $0 - i32.load - call $~lib/number/I32#toString + global.get $~lib/memory/__stack_pointer + i32.const 5664 + i32.store offset=24 + i32.const 5628 + i32.const 5664 + i32.store + i32.const 5616 + i32.const 5664 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 5616 + i32.store offset=8 + 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 5696 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 28 + i32.add + global.set $~lib/memory/__stack_pointer + 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 5696 + i32.const 5904 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - i32.const 5328 + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 5760 + i32.const 0 + call $templateliteral/RecursiveObject#constructor + local.tee $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - i32.const 5328 + global.get $~lib/memory/__stack_pointer + i32.const 1088 local.get $0 - call $~lib/string/String#concat - local.set $0 + call $templateliteral/RecursiveObject#constructor + local.tee $0 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 1056 local.get $0 - return - end - i32.const 38496 - i32.const 38544 - 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) - (local $3 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 5696 - i32.lt_s - if - i32.const 38496 - i32.const 38544 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i32.const 0 - i32.store offset=8 - local.get $2 - i32.const 8 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $2 - i32.store offset=4 - local.get $3 - local.get $0 - i32.store offset=8 - local.get $2 - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $2 - local.get $1 - i32.store offset=4 - local.get $2 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $templateliteral/RecursiveObject#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - 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 5696 - i32.lt_s - if - i32.const 38496 - i32.const 38544 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.const 20 - memory.fill - local.get $2 - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.load offset=4 - local.tee $1 - i32.store offset=4 - local.get $1 - i32.eqz - if - local.get $2 + call $templateliteral/RecursiveObject#constructor + local.tee $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=16 local.get $0 - i32.load + call $templateliteral/RecursiveObject#toString local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 5856 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 125 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.load - local.tee $0 - i32.store offset=8 - local.get $2 - local.get $1 - i32.store - local.get $2 - local.get $1 - call $templateliteral/RecursiveObject#toString - local.tee $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 5616 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=16 - i32.const 5616 - local.get $0 - i32.store - i32.const 5616 - local.get $0 + i32.const 38704 + i32.const 38752 i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 5616 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 - i32.const 5624 - local.get $1 - i32.store - i32.const 5616 - local.get $1 i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 5616 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1184 - i32.store offset=16 - i32.const 5616 - call $~lib/staticarray/StaticArray<~lib/string/String>#join - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + call $~lib/builtins/abort + unreachable ) ) diff --git a/tests/compiler/templateliteral.ts b/tests/compiler/templateliteral.ts index b6d3782712..7ced6c8454 100644 --- a/tests/compiler/templateliteral.ts +++ b/tests/compiler/templateliteral.ts @@ -54,6 +54,13 @@ function test_ref(): void { } test_ref(); +function test_null(): void { + var c: Ref | null = new Ref(3); + var d: Ref | null = null; + assert(`c: ${c}; d: ${d}` == "c: ref#3; d: null"); +} +test_null(); + function tag(parts: TemplateStringsArray, a: i32): string { var raw = parts.raw; assert(parts.length == 2); diff --git a/tests/compiler/ternary.release.wat b/tests/compiler/ternary.release.wat index af33f14eda..7d2cc0437a 100644 --- a/tests/compiler/ternary.release.wat +++ b/tests/compiler/ternary.release.wat @@ -1,8 +1,8 @@ (module (type $0 (func)) - (type $1 (func (param i32 i32 i32) (result i32))) + (type $1 (func (param i32 i32 i32 i32))) (type $2 (func (param i32))) - (type $3 (func (param i32 i32 i32 i32))) + (type $3 (func (param i32 i32 i32) (result i32))) (type $4 (func (param i32 i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33836)) @@ -14,12 +14,6 @@ (export "testDropWithTypeMismatch" (func $ternary/testDropWithTypeMismatch)) (export "memory" (memory $0)) (export "testVoidInclTypeMismatch" (func $export:ternary/testVoidInclTypeMismatch)) - (func $ternary/test (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $1 - local.get $2 - local.get $0 - select - ) (func $ternary/testDropWithTypeMismatch (param $0 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -37,18 +31,24 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) + (func $ternary/test (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $1 + local.get $2 + local.get $0 + select + ) (func $export:ternary/testVoidInclTypeMismatch (param $0 i32) (param $1 i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -69,11 +69,11 @@ i32.store local.get $1 i32.load + local.tee $2 call_indirect (type $0) local.get $0 if - local.get $1 - i32.load + local.get $2 call_indirect (type $0) end local.get $0 diff --git a/tests/compiler/throw.debug.wat b/tests/compiler/throw.debug.wat index c487003992..0b8420d409 100644 --- a/tests/compiler/throw.debug.wat +++ b/tests/compiler/throw.debug.wat @@ -1815,12 +1815,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/throw.release.wat b/tests/compiler/throw.release.wat index f7ebdcef76..7336e48213 100644 --- a/tests/compiler/throw.release.wat +++ b/tests/compiler/throw.release.wat @@ -45,766 +45,179 @@ (export "doThrow" (func $throw/doThrow)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots + (func $~lib/rt/itcms/step (local $0 i32) (local $1 i32) - i32.const 1488 - 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 + (local $2 i64) + (local $3 i32) + (local $4 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 - i32.const 1392 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + return end - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - local.get $0 + 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 - 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 1392 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable + 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 $3 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $3 + 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 + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$92 - local.get $1 + 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 - local.tee $0 - i32.eqz + i32.eq if - local.get $1 - i32.load offset=8 - i32.eqz - local.get $1 - i32.const 34516 - i32.lt_u + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 34516 + 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 - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable + 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 $3 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $3 + 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 - br $__inlined_func$~lib/rt/itcms/Object#unlink$92 + 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 - local.get $1 - i32.load offset=8 - local.tee $2 + 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 $3 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white i32.eqz + local.get $3 + i32.const 3 + i32.and + i32.ne if i32.const 0 i32.const 1392 - 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 1728 - i32.load - i32.gt_u - if - i32.const 1488 - i32.const 1552 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - 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 $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 1632 - 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 1632 - 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 1632 - 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 1632 - 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 1632 - 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 1632 - 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 1632 - 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 1632 - 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 1632 - 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/itcms/step - (local $0 i32) - (local $1 i32) - (local $2 i64) - (local $3 i32) - (local $4 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 - 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 $3 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $3 - 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 - 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 34516 - 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 $3 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $3 - 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 - 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 $3 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $3 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1392 - i32.const 229 - i32.const 20 + i32.const 229 + i32.const 20 call $~lib/builtins/abort unreachable end @@ -911,7 +324,6 @@ i64.shl local.tee $2 i32.wrap_i64 - local.set $4 local.get $2 i64.const 36100 i64.lt_u @@ -957,7 +369,6 @@ i32.const 0 end local.set $0 - local.get $4 i32.const -16 i32.and local.get $1 @@ -1003,7 +414,6 @@ global.set $~lib/rt/tlsf/ROOT end global.get $~lib/rt/tlsf/ROOT - local.set $0 local.get $3 i32.const 4 i32.sub @@ -1036,87 +446,636 @@ i32.const 1 i32.or i32.store - local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock end end return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 + 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 + ) + (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 1392 + 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$92 + 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 34516 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$92 + end + local.get $1 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1392 + 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 1728 + i32.load + i32.gt_u + if + i32.const 1488 + i32.const 1552 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $0 + 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 $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/__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 + ) + (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 1632 + 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 1632 + 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 1632 + 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 1632 + 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 1632 + 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 1632 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.store offset=8 + 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 - global.set $~lib/rt/itcms/state + i32.const 1632 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable end - ) - (func $throw/doThrow - (local $0 i32) - global.get $~lib/memory/__stack_pointer + local.get $4 + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + i32.ne + if + i32.const 0 + i32.const 1632 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 i32.const 4 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s + 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 34544 - i32.const 34592 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1632 + i32.const 251 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 + 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 + 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 - i32.const 1056 + 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 - i32.const 1696 - i32.const 1168 - i32.const 3 - i32.const 3 - call $~lib/builtins/abort - unreachable + 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/__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 + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1488 + 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 - i32.load - local.tee $0 + local.get $1 + i32.ne if local.get $0 - call $~lib/rt/itcms/__visit + i32.load offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1392 + 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 - return end - unreachable ) (func $~start (local $0 i32) - (local $1 i32) block $__inlined_func$start:throw$1 global.get $~lib/memory/__stack_pointer i32.const 12 @@ -1128,20 +1087,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 1216 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer @@ -1154,11 +1111,10 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 20 memory.fill - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store loop $while-continue|0 @@ -1170,14 +1126,13 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 1088 i32.store offset=4 local.get $0 i32.const 10 i32.gt_s if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1216 i32.store offset=8 i32.const 1248 @@ -1194,10 +1149,9 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1328 i32.store offset=16 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer @@ -1225,17 +1179,15 @@ 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 if - loop $while-continue|01 + loop $while-continue|05 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step - br $while-continue|01 + br $while-continue|05 end end end @@ -1257,4 +1209,33 @@ unreachable end ) + (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 + 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 + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 1696 + i32.const 1168 + i32.const 3 + i32.const 3 + call $~lib/builtins/abort + unreachable + ) ) diff --git a/tests/compiler/tuple-circular.json b/tests/compiler/tuple-circular.json new file mode 100644 index 0000000000..d196b422ed --- /dev/null +++ b/tests/compiler/tuple-circular.json @@ -0,0 +1,9 @@ +{ + "asc_flags": [ + "--enable", "multi-value" + ], + "stderr": [ + "TS2456: Type alias 'Loop' circularly references itself.", + "1 parse error(s)" + ] +} diff --git a/tests/compiler/tuple-circular.ts b/tests/compiler/tuple-circular.ts new file mode 100644 index 0000000000..dd016d7679 --- /dev/null +++ b/tests/compiler/tuple-circular.ts @@ -0,0 +1 @@ +type Loop = [Loop, i32]; diff --git a/tests/compiler/tuple-disabled.json b/tests/compiler/tuple-disabled.json new file mode 100644 index 0000000000..b4e8e8ffe9 --- /dev/null +++ b/tests/compiler/tuple-disabled.json @@ -0,0 +1,9 @@ +{ + "asc_flags": [ + "--disable", "multi-value" + ], + "stderr": [ + "TS1110: Type expected.", + "3 parse error(s)" + ] +} diff --git a/tests/compiler/tuple-disabled.ts b/tests/compiler/tuple-disabled.ts new file mode 100644 index 0000000000..5c93a3e424 --- /dev/null +++ b/tests/compiler/tuple-disabled.ts @@ -0,0 +1,3 @@ +export function tupleDisabled(x: [left: i32, right: i32]): void {} +export type tupleTypeDisabled1 = [i32, i32]; +export type tupleTypeDisabled2 = []; diff --git a/tests/compiler/tuple-errors.json b/tests/compiler/tuple-errors.json new file mode 100644 index 0000000000..bf732842af --- /dev/null +++ b/tests/compiler/tuple-errors.json @@ -0,0 +1,37 @@ +{ + "asc_flags": [ + "--enable", "multi-value" + ], + "stderr": [ + "in tuple-errors.ts(1,13)", + "in tuple-errors.ts(2,13)", + "in tuple-errors.ts(3,13)", + "in tuple-errors.ts(4,13)", + "in tuple-errors.ts(5,13)", + "in tuple-errors.ts(6,13)", + "in tuple-errors.ts(7,13)", + "in tuple-errors.ts(8,13)", + "AS100: Not implemented: Tuple types", + "in tuple-errors.ts(10,45)", + "in tuple-errors.ts(11,45)", + "in tuple-errors.ts(12,51)", + "in tuple-errors.ts(1,39)", + "in tuple-errors.ts(14,45)", + "in tuple-errors.ts(15,53)", + "in tuple-errors.ts(16,45)", + "in tuple-errors.ts(17,45)", + "in tuple-errors.ts(19,46)", + "in tuple-errors.ts(22,46)", + "in tuple-errors.ts(25,52)", + "in tuple-errors.ts(31,46)", + "in tuple-errors.ts(34,54)", + "in tuple-errors.ts(37,46)", + "in tuple-errors.ts(40,46)", + "in tuple-errors.ts(44,15)", + "in tuple-errors.ts(49,17)", + "in tuple-errors.ts(53,35)", + "in tuple-errors.ts(56,35)", + "in tuple-errors.ts(60,39)", + "in tuple-errors.ts(63,39)" + ] +} diff --git a/tests/compiler/tuple-errors.ts b/tests/compiler/tuple-errors.ts new file mode 100644 index 0000000000..2bab1e6bb2 --- /dev/null +++ b/tests/compiler/tuple-errors.ts @@ -0,0 +1,65 @@ +export type TupleTypeUnimplemented1 = []; +export type TupleTypeUnimplemented2 = [i32]; +export type TupleTypeUnimplemented3 = [i32, []]; +export type TupleTypeUnimplemented4 = [i32, TupleTypeUnimplemented1]; +export type TupleTypeUnimplemented5 = [string, i32]; +export type TupleTypeUnimplemented6 = [i32[], [i32]]; +export type TupleTypeUnimplemented7 = [i32, i32]; +export type TupleTypeUnimplemented8 = [x: i32, y: i32]; + +export function TupleParamUnimplemented1(x: []): void { } +export function TupleParamUnimplemented2(x: [i32]): void { } +export function TupleParamUnimplemented3(x: [i32, []]): void { } +export function TupleParamUnimplemented4(x: [i32, TupleTypeUnimplemented1]): void { } +export function TupleParamUnimplemented5(x: [string, i32]): void { } +export function TupleParamUnimplemented6(x: [i32[], [i32]]): void { } +export function TupleParamUnimplemented7(x: [i32, i32]): void { } +export function TupleParamUnimplemented8(x: [left: i32, right: i32]): void { } + +export function TupleReturnUnimplemented1(): [] { + return []; +} +export function TupleReturnUnimplemented2(): [i32] { + return [0]; +} +export function TupleReturnUnimplemented3(): [i32, []] { + return [0, []]; +} +export function TupleReturnUnimplemented4(): [i32, TupleTypeUnimplemented1] { + return [0, []]; +} +export function TupleReturnUnimplemented5(): [string, i32] { + return ["foo", 0]; +} +export function TupleReturnUnimplemented6(): [i32[], [i32]] { + return [new Array(), [0]]; +} +export function TupleReturnUnimplemented7(): [i32, i32] { + return [0, 1]; +} +export function TupleReturnUnimplemented8(): [first: i32, second: i32] { + return [0, 1]; +} + +type Box = [T, i32]; + +export function TupleGeneric1(x: Box): Box { + return x; +} +export function TupleGeneric2(x: [i32, T]): [i32, T] { + return x; +} + +export function TupleNullable1(x: [i32, i32] | null): [i32, i32] | null { + return x; +} +export function TupleNullable2(x: [] | null): [] | null { + return x; +} + +export function TupleTypeMismatch1(x: [i32, f32]): [f32, i32] { + return x; +} +export function TupleTypeMismatch2(x: [f64, f32]): [f32, f64] { + return x; +} diff --git a/tests/compiler/tuple-type.json b/tests/compiler/tuple-type.json new file mode 100644 index 0000000000..8a83de2d20 --- /dev/null +++ b/tests/compiler/tuple-type.json @@ -0,0 +1,7 @@ +{ + "asc_flags": [ + "--enable", "multi-value" + ], + "stderr": [ + ] +} diff --git a/tests/compiler/tuple-type.ts b/tests/compiler/tuple-type.ts new file mode 100644 index 0000000000..8cf62aeb86 --- /dev/null +++ b/tests/compiler/tuple-type.ts @@ -0,0 +1 @@ +// nothing yet just getting the parser working first diff --git a/tests/compiler/typealias-errors.json b/tests/compiler/typealias-errors.json new file mode 100644 index 0000000000..91a3ef17ac --- /dev/null +++ b/tests/compiler/typealias-errors.json @@ -0,0 +1,7 @@ +{ + "asc_flags": [ + ], + "stderr": [ + "TS2300: Duplicate identifier 'A'." + ] +} diff --git a/tests/compiler/typealias-errors.ts b/tests/compiler/typealias-errors.ts new file mode 100644 index 0000000000..988e058572 --- /dev/null +++ b/tests/compiler/typealias-errors.ts @@ -0,0 +1,4 @@ +export function DuplicateTypeAlias(): void { + type A = i32; + type A = i32; +} diff --git a/tests/compiler/typealias.debug.wat b/tests/compiler/typealias.debug.wat index 0e5a48657b..a32c177783 100644 --- a/tests/compiler/typealias.debug.wat +++ b/tests/compiler/typealias.debug.wat @@ -1,15 +1,334 @@ (module - (type $0 (func (param i32) (result 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)) - (memory $0 0) - (table $0 1 1 funcref) - (elem $0 (i32.const 1)) + (type $0 (func)) + (type $1 (func (param i32) (result i32))) + (type $2 (func (param i32 i32 i32 i32 i32) (result i32))) + (type $3 (func (param i32 i32 i32 i32))) + (type $4 (func (param i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (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 $~argumentsLength (mut i32) (i32.const 0)) + (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) ",\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)) (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/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 $typealias/outer_function~inner_function + (local $alias f64) + f64.const 1 + local.set $alias + i32.const 112 + i32.const 112 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 17 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + ) + (func $typealias/outer_function + (local $alias i64) + (local $inner_function i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i64.const 1 + local.set $alias + i32.const 32 + i32.const 32 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 13 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 144 + local.tee $inner_function + i32.store + local.get $inner_function + drop + i32.const 0 + global.set $~argumentsLength + local.get $inner_function + i32.load + call_indirect (type $0) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $typealias/generic_type_alias + i32.const 5 + i32.const 5 + i32.eq + drop + ) + (func $typealias/alias_in_type_arguments + i32.const 6 + i32.const 6 + i32.eq + drop + ) + (func $start:typealias + call $typealias/outer_function + call $typealias/generic_type_alias + call $typealias/alias_in_type_arguments + ) (func $typealias/alias (param $a i32) (result i32) local.get $a return ) + (func $~start + call $start:typealias + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 32944 + i32.const 32992 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/string/String.__eq (param $left i32) (param $right i32) (result i32) + (local $leftLength 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 $left + local.get $right + i32.eq + if + i32.const 1 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + local.get $left + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $right + i32.const 0 + i32.eq + end + if + i32.const 0 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + local.get $left + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/string/String#get:length + local.set $leftLength + local.get $leftLength + local.get $right + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/string/String#get:length + i32.ne + if + i32.const 0 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + local.get $left + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + i32.const 0 + local.get $right + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + local.get $leftLength + call $~lib/util/string/compareImpl + i32.eqz + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + ) ) diff --git a/tests/compiler/typealias.release.wat b/tests/compiler/typealias.release.wat index 1056cb7250..19dc83cfe9 100644 --- a/tests/compiler/typealias.release.wat +++ b/tests/compiler/typealias.release.wat @@ -1,8 +1,242 @@ (module - (type $0 (func (param i32) (result i32))) - (memory $0 0) + (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))) + (import "env" "abort" (func $~lib/builtins/abort (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) ",") + (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/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 1180 + i32.lt_s + if + i32.const 33968 + i32.const 34016 + 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 + if (result i32) + local.get $2 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + else + i32.const 1 + end + i32.eqz + if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $0 + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + block $__inlined_func$~lib/util/string/compareImpl$5 + loop $while-continue|1 + local.get $0 + local.tee $3 + i32.const 1 + i32.sub + local.set $0 + local.get $3 + if + local.get $2 + i32.load16_u + local.tee $5 + local.get $1 + i32.load16_u + local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 + i32.ne + br_if $__inlined_func$~lib/util/string/compareImpl$5 + local.get $2 + i32.const 2 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end + end + i32.const 0 + local.set $3 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.eqz + return + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 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 1180 + i32.lt_s + if + 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.store + i32.const 1056 + i32.const 1056 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 13 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1168 + i32.store + i32.const 1168 + i32.load + call_indirect (type $0) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $typealias/outer_function~inner_function + i32.const 1136 + i32.const 1136 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 17 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + ) (func $typealias/alias (param $0 i32) (result i32) local.get $0 ) diff --git a/tests/compiler/typealias.ts b/tests/compiler/typealias.ts index b6b1449047..a28013ffa6 100644 --- a/tests/compiler/typealias.ts +++ b/tests/compiler/typealias.ts @@ -6,3 +6,29 @@ export type alias = i32; export function alias(a: alias): alias { return a; } + +function outer_function(): void { + type alias = i64; + let alias: alias = 1; + assert(nameof(alias) == nameof()); + function inner_function(): void { + type alias = f64; + let alias: alias = 1; + assert(nameof(alias) == nameof()); + } + inner_function(); +} +outer_function(); + +function generic_type_alias(): void { + type V = Array; + assert(idof>() == idof>()); +} +generic_type_alias(); + + +function alias_in_type_arguments(): void { + type alias = i64; + assert(idof>() == idof>()); +} +alias_in_type_arguments(); diff --git a/tests/compiler/typeof.debug.wat b/tests/compiler/typeof.debug.wat index a91488290e..5d02f023cd 100644 --- a/tests/compiler/typeof.debug.wat +++ b/tests/compiler/typeof.debug.wat @@ -1760,14 +1760,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 @@ -2411,12 +2414,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -2625,27 +2624,17 @@ (func $start:typeof (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 + i32.const 0 + i32.store i32.const 1 drop i32.const 32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 i32.const 32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -2657,17 +2646,7 @@ unreachable end i32.const 112 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 i32.const 112 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -2679,17 +2658,7 @@ unreachable end i32.const 112 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 i32.const 112 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -2701,17 +2670,7 @@ unreachable end i32.const 112 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 i32.const 112 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -2723,17 +2682,7 @@ unreachable end i32.const 144 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 i32.const 144 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -2745,17 +2694,7 @@ unreachable end i32.const 144 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 i32.const 144 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -2769,17 +2708,7 @@ i32.const 1 drop i32.const 192 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 i32.const 192 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -2791,17 +2720,7 @@ unreachable end i32.const 112 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 i32.const 112 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -2815,17 +2734,7 @@ i32.const 1 drop i32.const 32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 i32.const 32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -2839,17 +2748,7 @@ f64.const 1 drop i32.const 32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 i32.const 32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -2863,17 +2762,7 @@ i64.const 1 drop i32.const 32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 i32.const 32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -2887,17 +2776,7 @@ i32.const 240 drop i32.const 272 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 i32.const 272 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -2917,11 +2796,6 @@ i32.store local.get $0 i32.const 192 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -2941,11 +2815,6 @@ i32.store local.get $0 i32.const 32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -2965,11 +2834,6 @@ i32.store local.get $0 i32.const 32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -2989,11 +2853,6 @@ i32.store local.get $0 i32.const 32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3013,11 +2872,6 @@ i32.store local.get $0 i32.const 32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3037,11 +2891,6 @@ i32.store local.get $0 i32.const 272 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3061,11 +2910,6 @@ i32.store local.get $0 i32.const 144 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3105,11 +2949,6 @@ i32.store local.get $0 i32.const 112 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3121,17 +2960,7 @@ unreachable end i32.const 144 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 i32.const 144 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3143,17 +2972,7 @@ unreachable end i32.const 736 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 i32.const 736 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3173,11 +2992,6 @@ i32.store local.get $0 i32.const 736 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3197,11 +3011,6 @@ i32.store local.get $0 i32.const 736 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3213,7 +3022,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/typeof.release.wat b/tests/compiler/typeof.release.wat index 2652ce4768..f2e06714bf 100644 --- a/tests/compiler/typeof.release.wat +++ b/tests/compiler/typeof.release.wat @@ -4,9 +4,9 @@ (type $2 (func (param i32 i32))) (type $3 (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) (result i32))) + (type $5 (func (param i32 i32) (result i32))) + (type $6 (func (param i32 i32 i64))) + (type $7 (func (result i32))) (import "env" "abort" (func $~lib/builtins/abort (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)) @@ -54,58 +54,167 @@ (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 1264 - call $~lib/rt/itcms/__visit - global.get $typeof/c - local.tee $0 + (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 1820 + i32.lt_s if - local.get $0 - call $~lib/rt/itcms/__visit + i32.const 34608 + i32.const 34656 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - i32.const 1552 - call $~lib/rt/itcms/__visit - i32.const 1360 - 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 + 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 - if - local.get $0 - i32.load offset=4 - i32.const 3 + 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 i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1424 - 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 + local.get $1 + i32.const 7 i32.and - local.set $0 - br $while-continue|0 + i32.or + else + i32.const 1 + end + i32.eqz + if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $0 + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + block $__inlined_func$~lib/util/string/compareImpl$78 + loop $while-continue|1 + local.get $0 + local.tee $3 + i32.const 1 + i32.sub + local.set $0 + local.get $3 + if + local.get $2 + i32.load16_u + local.tee $5 + local.get $1 + i32.load16_u + local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 + i32.ne + br_if $__inlined_func$~lib/util/string/compareImpl$78 + local.get $2 + i32.const 2 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end + end + i32.const 0 + local.set $3 end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.eqz + return end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 ) (func $~lib/rt/itcms/__visit (param $0 i32) (local $1 i32) @@ -651,119 +760,121 @@ 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 1696 - 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 1696 - 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 + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $typeof/SomeClass + 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> $typeof/SomeClass $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 1820 + i32.lt_s + if + 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 1696 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable + 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 - 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 + unreachable + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock + 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 $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1696 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + 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 + i32.const 0 + end + end ) (func $~lib/rt/tlsf/initialize (local $0 i32) @@ -845,353 +956,196 @@ i32.const 34592 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 + (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 1696 + 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 1696 + 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 - 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 + end + else + local.get $0 + i32.const 1572 + i32.add + local.get $1 + i32.gt_u + if 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 34588 - 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 + i32.const 1696 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + 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/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1264 + call $~lib/rt/itcms/__visit + global.get $typeof/c + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 1552 + call $~lib/rt/itcms/__visit + i32.const 1360 + 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 - 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.const 3 i32.ne if i32.const 0 i32.const 1424 - i32.const 229 - i32.const 20 + i32.const 160 + i32.const 16 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 34588 - 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.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/__new (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + 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 - global.set $~lib/rt/itcms/total - local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 34588 - 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.set $1 - 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 1696 - 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 $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (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 $2 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1696 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - 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 - 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) - 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 + 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold @@ -1203,8 +1157,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $1 - local.get $1 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1226,12 +1179,11 @@ local.tee $1 i32.eqz if - memory.size - local.tee $1 i32.const 4 local.get $2 i32.load offset=1568 - local.get $1 + memory.size + local.tee $1 i32.const 16 i32.shl i32.const 4 @@ -1244,7 +1196,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.set $3 + local.get $1 + local.get $3 local.get $1 local.get $3 i32.gt_s @@ -1399,251 +1353,280 @@ memory.fill local.get $0 ) - (func $~lib/rt/__visit_members (param $0 i32) + (func $~start + global.get $~started + if + return + end + i32.const 1 + global.set $~started + call $start:typeof + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) (local $1 i32) - block $invalid - block $typeof/SomeClass - 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> $typeof/SomeClass $invalid - end - return - end - return - end - return + (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 - i32.load - local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne if local.get $0 - call $~lib/rt/itcms/__visit + 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 - 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 1820 - i32.lt_s - if - i32.const 34608 - i32.const 34656 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 - i32.store - local.get $1 - local.get $0 - i32.store - local.get $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 - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + 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 34588 + 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 - return - end - unreachable - ) - (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 1820 - i32.lt_s - if - i32.const 34608 - i32.const 34656 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $0 - local.get $1 - i32.eq - if - local.get $2 - 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.tee $4 - local.tee $2 - 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 - local.get $2 - 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 - local.get $4 - local.get $0 - i32.store - local.get $0 - local.set $2 - local.get $4 - local.get $1 - i32.store offset=4 - local.get $3 + global.get $~lib/rt/itcms/iter local.tee $0 - i32.const 4 - i32.ge_u - if (result i32) - local.get $2 - i32.const 7 + 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 7 + i32.const 3 i32.and - i32.or - else - i32.const 1 - end - i32.eqz - if - loop $do-loop|0 - local.get $2 - i64.load - local.get $1 - i64.load - i64.eq + i32.ne + if + i32.const 0 + i32.const 1424 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34588 + 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 34588 + i32.ge_u if - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 + 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.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end - end - end - block $__inlined_func$~lib/util/string/compareImpl$78 - loop $while-continue|1 - local.get $0 - local.tee $3 - i32.const 1 - i32.sub - local.set $0 - local.get $3 - if + 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 1696 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.load16_u - local.tee $5 - local.get $1 - i32.load16_u - local.tee $4 - i32.sub - local.set $3 - local.get $4 - local.get $5 - i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$78 local.get $2 - i32.const 2 - i32.add - local.set $2 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end end - i32.const 0 - local.set $3 + i32.const 10 + return end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - i32.eqz - return + 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 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer i32.const 0 ) (func $start:typeof (local $0 i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -1652,15 +1635,8 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 1056 + i32.const 0 i32.store - local.get $0 - i32.const 1056 - i32.store offset=4 i32.const 1056 i32.const 1056 call $~lib/string/String.__eq @@ -1673,13 +1649,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1136 - i32.store - local.get $0 - i32.const 1136 - i32.store offset=4 i32.const 1136 i32.const 1136 call $~lib/string/String.__eq @@ -1692,13 +1661,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1136 - i32.store - local.get $0 - i32.const 1136 - i32.store offset=4 i32.const 1136 i32.const 1136 call $~lib/string/String.__eq @@ -1711,13 +1673,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1136 - i32.store - local.get $0 - i32.const 1136 - i32.store offset=4 i32.const 1136 i32.const 1136 call $~lib/string/String.__eq @@ -1730,13 +1685,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1168 - i32.store - local.get $0 - i32.const 1168 - i32.store offset=4 i32.const 1168 i32.const 1168 call $~lib/string/String.__eq @@ -1749,13 +1697,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1168 - i32.store - local.get $0 - i32.const 1168 - i32.store offset=4 i32.const 1168 i32.const 1168 call $~lib/string/String.__eq @@ -1768,13 +1709,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1216 - i32.store - local.get $0 - i32.const 1216 - i32.store offset=4 i32.const 1216 i32.const 1216 call $~lib/string/String.__eq @@ -1787,13 +1721,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1136 - i32.store - local.get $0 - i32.const 1136 - i32.store offset=4 i32.const 1136 i32.const 1136 call $~lib/string/String.__eq @@ -1806,13 +1733,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1056 - i32.store - local.get $0 - i32.const 1056 - i32.store offset=4 i32.const 1056 i32.const 1056 call $~lib/string/String.__eq @@ -1825,13 +1745,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1056 - i32.store - local.get $0 - i32.const 1056 - i32.store offset=4 i32.const 1056 i32.const 1056 call $~lib/string/String.__eq @@ -1844,13 +1757,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1056 - i32.store - local.get $0 - i32.const 1056 - i32.store offset=4 i32.const 1056 i32.const 1056 call $~lib/string/String.__eq @@ -1863,13 +1769,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1296 - i32.store - local.get $0 - i32.const 1296 - i32.store offset=4 i32.const 1296 i32.const 1296 call $~lib/string/String.__eq @@ -1883,12 +1782,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1216 i32.store - local.get $0 - i32.const 1216 - i32.store offset=4 i32.const 1216 i32.const 1216 call $~lib/string/String.__eq @@ -1902,12 +1797,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1056 i32.store - local.get $0 - i32.const 1056 - i32.store offset=4 i32.const 1056 i32.const 1056 call $~lib/string/String.__eq @@ -1921,12 +1812,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1056 i32.store - local.get $0 - i32.const 1056 - i32.store offset=4 i32.const 1056 i32.const 1056 call $~lib/string/String.__eq @@ -1940,12 +1827,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1056 i32.store - local.get $0 - i32.const 1056 - i32.store offset=4 i32.const 1056 i32.const 1056 call $~lib/string/String.__eq @@ -1959,12 +1842,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1056 i32.store - local.get $0 - i32.const 1056 - i32.store offset=4 i32.const 1056 i32.const 1056 call $~lib/string/String.__eq @@ -1978,12 +1857,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1296 i32.store - local.get $0 - i32.const 1296 - i32.store offset=4 i32.const 1296 i32.const 1296 call $~lib/string/String.__eq @@ -1997,12 +1872,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1168 i32.store - local.get $0 - i32.const 1168 - i32.store offset=4 i32.const 1168 i32.const 1168 call $~lib/string/String.__eq @@ -2056,19 +1927,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2077,13 +1947,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 call $~lib/rt/itcms/__new local.tee $0 @@ -2093,7 +1962,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -2105,9 +1973,6 @@ global.get $~lib/memory/__stack_pointer i32.const 1136 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1136 - i32.store offset=4 i32.const 1136 i32.const 1136 call $~lib/string/String.__eq @@ -2120,13 +1985,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1168 - i32.store - local.get $0 - i32.const 1168 - i32.store offset=4 i32.const 1168 i32.const 1168 call $~lib/string/String.__eq @@ -2139,13 +1997,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1760 - i32.store - local.get $0 - i32.const 1760 - i32.store offset=4 i32.const 1760 i32.const 1760 call $~lib/string/String.__eq @@ -2159,12 +2010,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1760 i32.store - local.get $0 - i32.const 1760 - i32.store offset=4 i32.const 1760 i32.const 1760 call $~lib/string/String.__eq @@ -2178,12 +2025,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1760 i32.store - local.get $0 - i32.const 1760 - i32.store offset=4 i32.const 1760 i32.const 1760 call $~lib/string/String.__eq @@ -2197,7 +2040,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer return diff --git a/tests/compiler/unary.release.wat b/tests/compiler/unary.release.wat index 202341c088..6c711e0cb2 100644 --- a/tests/compiler/unary.release.wat +++ b/tests/compiler/unary.release.wat @@ -8,8 +8,6 @@ (export "memory" (memory $0)) (start $~start) (func $~start - (local $0 i32) - (local $1 i64) global.get $unary/i i32.const 1 i32.add diff --git a/tests/compiler/unicode-identifier.debug.wat b/tests/compiler/unicode-identifier.debug.wat index 22481cd95a..7e69185a00 100644 --- a/tests/compiler/unicode-identifier.debug.wat +++ b/tests/compiler/unicode-identifier.debug.wat @@ -1,12 +1,12 @@ (module - (global $unicode-identifier/ÀÈ (mut i32) (i32.const 0)) - (global $unicode-identifier/变量 (mut i32) (i32.const 0)) - (global $unicode-identifier/𠜎𠜱 (mut i32) (i32.const 0)) + (global $"unicode-identifier/\c3\80\c3\88" (mut i32) (i32.const 0)) + (global $"unicode-identifier/\e5\8f\98\e9\87\8f" (mut i32) (i32.const 0)) + (global $"unicode-identifier/\f0\a0\9c\8e\f0\a0\9c\b1" (mut i32) (i32.const 0)) (memory $0 0) (table $0 1 1 funcref) (elem $0 (i32.const 1)) - (export "ÀÈ" (global $unicode-identifier/ÀÈ)) - (export "变量" (global $unicode-identifier/变量)) - (export "𠜎𠜱" (global $unicode-identifier/𠜎𠜱)) + (export "\c3\80\c3\88" (global $"unicode-identifier/\c3\80\c3\88")) + (export "\e5\8f\98\e9\87\8f" (global $"unicode-identifier/\e5\8f\98\e9\87\8f")) + (export "\f0\a0\9c\8e\f0\a0\9c\b1" (global $"unicode-identifier/\f0\a0\9c\8e\f0\a0\9c\b1")) (export "memory" (memory $0)) ) diff --git a/tests/compiler/unicode-identifier.release.wat b/tests/compiler/unicode-identifier.release.wat index 36d442b9c4..35ea64349a 100644 --- a/tests/compiler/unicode-identifier.release.wat +++ b/tests/compiler/unicode-identifier.release.wat @@ -1,10 +1,10 @@ (module - (global $unicode-identifier/ÀÈ (mut i32) (i32.const 0)) - (global $unicode-identifier/变量 (mut i32) (i32.const 0)) - (global $unicode-identifier/𠜎𠜱 (mut i32) (i32.const 0)) + (global $"unicode-identifier/\c3\80\c3\88" (mut i32) (i32.const 0)) + (global $"unicode-identifier/\e5\8f\98\e9\87\8f" (mut i32) (i32.const 0)) + (global $"unicode-identifier/\f0\a0\9c\8e\f0\a0\9c\b1" (mut i32) (i32.const 0)) (memory $0 0) - (export "ÀÈ" (global $unicode-identifier/ÀÈ)) - (export "变量" (global $unicode-identifier/变量)) - (export "𠜎𠜱" (global $unicode-identifier/𠜎𠜱)) + (export "\c3\80\c3\88" (global $"unicode-identifier/\c3\80\c3\88")) + (export "\e5\8f\98\e9\87\8f" (global $"unicode-identifier/\e5\8f\98\e9\87\8f")) + (export "\f0\a0\9c\8e\f0\a0\9c\b1" (global $"unicode-identifier/\f0\a0\9c\8e\f0\a0\9c\b1")) (export "memory" (memory $0)) ) diff --git a/tests/compiler/unify-local-flags.release.wat b/tests/compiler/unify-local-flags.release.wat index 25c3a2b4ca..7e2c3911fe 100644 --- a/tests/compiler/unify-local-flags.release.wat +++ b/tests/compiler/unify-local-flags.release.wat @@ -5,35 +5,35 @@ (export "testWhile" (func $unify-local-flags/testWhile)) (export "testDo" (func $unify-local-flags/testDo)) (export "memory" (memory $0)) - (func $unify-local-flags/testFor + (func $unify-local-flags/testWhile (local $0 i32) - loop $for-loop|0 + loop $while-continue|2 local.get $0 i32.const 255 + i32.and + i32.const 255 i32.lt_u if local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|0 + br $while-continue|2 end end ) - (func $unify-local-flags/testWhile + (func $unify-local-flags/testFor (local $0 i32) - loop $while-continue|2 + loop $for-loop|0 local.get $0 i32.const 255 - i32.and - i32.const 255 i32.lt_u if local.get $0 i32.const 1 i32.add local.set $0 - br $while-continue|2 + br $for-loop|0 end end ) diff --git a/tests/compiler/void-type-callback-param.json b/tests/compiler/void-type-callback-param.json new file mode 100644 index 0000000000..1d3032d9ea --- /dev/null +++ b/tests/compiler/void-type-callback-param.json @@ -0,0 +1,7 @@ +{ + "asc_flags": [], + "stderr": [ + "AS214: Type 'void' is illegal in this context.", + "EOF" + ] +} diff --git a/tests/compiler/void-type-callback-param.ts b/tests/compiler/void-type-callback-param.ts new file mode 100644 index 0000000000..533c766831 --- /dev/null +++ b/tests/compiler/void-type-callback-param.ts @@ -0,0 +1,7 @@ +class C1 { + then(cb: (value: T) => void): void {} +} + +new C1().then(function (): void {}); + +ERROR("EOF"); diff --git a/tests/compiler/while.debug.wat b/tests/compiler/while.debug.wat index f7c2a8c485..9bb3b1cbbb 100644 --- a/tests/compiler/while.debug.wat +++ b/tests/compiler/while.debug.wat @@ -2043,14 +2043,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 @@ -3166,12 +3169,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/while.release.wat b/tests/compiler/while.release.wat index cba8c845b8..90a58e5b7a 100644 --- a/tests/compiler/while.release.wat +++ b/tests/compiler/while.release.wat @@ -1,8 +1,8 @@ (module (type $0 (func)) - (type $1 (func (param i32))) - (type $2 (func (param i32 i32))) - (type $3 (func (result i32))) + (type $1 (func (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 i32 i32))) (type $6 (func (param i32 i32 i64))) @@ -34,132 +34,347 @@ (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 + (func $~lib/rt/itcms/step (result i32) (local $0 i32) (local $1 i32) - i32.const 1296 - call $~lib/rt/itcms/__visit - i32.const 1104 - 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 + (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 - i32.const 1168 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + 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 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - local.get $0 + 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 - 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 1168 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable + 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 - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$128 - local.get $1 + 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 - local.tee $0 - i32.eqz + i32.eq if - local.get $1 - i32.load offset=8 - i32.eqz - local.get $1 - i32.const 34280 - i32.lt_u + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 34280 + 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 - i32.eqz - if - i32.const 0 - i32.const 1168 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable + 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 - br $__inlined_func$~lib/rt/itcms/Object#unlink$128 + 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 - local.get $1 - i32.load offset=8 - local.tee $2 + 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 1168 - i32.const 132 - i32.const 16 + i32.const 229 + i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 + i32.const 34280 + 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 34280 + 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 1440 + 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) + (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 1168 + 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$128 + 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 34280 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1168 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$128 + end + local.get $1 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1168 + 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 @@ -231,6 +446,70 @@ global.set $~lib/rt/itcms/visitCount end ) + (func $while/Ref#constructor (result i32) + (local $0 i32) + (local $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 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 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + 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 1512 + i32.lt_s + br_if $folding-inner0 + 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 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 + return + end + i32.const 34304 + i32.const 34352 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -623,119 +902,90 @@ 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 1440 - 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 1440 - 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 + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $while/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 $while/Ref $invalid + end + return + end + return + end + return + end + local.get $0 i32.load - local.set $4 - local.get $5 - local.set $1 + call $~lib/rt/itcms/__visit + return end - else + return + end + unreachable + ) + (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 - i32.const 1572 - i32.add local.get $1 - i32.gt_u - if + 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 $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1440 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + 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 i32.const 0 - i32.const 1440 - 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) @@ -817,323 +1067,162 @@ i32.const 34288 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 + (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 1440 + 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 - 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 34280 - 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 + i32.const 1440 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq 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 1168 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 34280 - 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 34280 - 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.set $1 - 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 1440 - 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 $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return + local.get $3 + i32.load + local.set $4 + local.get $5 + local.set $1 end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 + else local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 1572 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1440 + 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/searchBlock (param $0 i32) (result i32) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) (local $1 i32) - (local $2 i32) - local.get $0 + i32.const 1296 + call $~lib/rt/itcms/__visit + i32.const 1104 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 i32.load offset=4 - i32.const -2 + i32.const -4 i32.and - local.tee $1 - if (result i32) + local.set $0 + loop $while-continue|0 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) + i32.ne + if local.get $0 - local.get $1 - i32.ctz - local.tee $2 - i32.const 2 - i32.shl - i32.add i32.load offset=4 - local.tee $1 - i32.eqz + i32.const 3 + i32.and + i32.const 3 + i32.ne if i32.const 0 - i32.const 1440 - i32.const 347 - i32.const 18 + i32.const 1168 + i32.const 160 + i32.const 16 call $~lib/builtins/abort unreachable end local.get $0 - local.get $1 - i32.ctz - local.get $2 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl + i32.const 20 i32.add - i32.load offset=96 - else - i32.const 0 + 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 ) @@ -1158,12 +1247,8 @@ i32.eqz if global.get $~lib/rt/itcms/total - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 + i32.const 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold @@ -1175,8 +1260,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $1 - local.get $1 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1198,12 +1282,11 @@ local.tee $1 i32.eqz if - memory.size - local.tee $1 i32.const 4 local.get $2 i32.load offset=1568 - local.get $1 + memory.size + local.tee $1 i32.const 16 i32.shl i32.const 4 @@ -1216,7 +1299,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.set $3 + local.get $1 + local.get $3 local.get $1 local.get $3 i32.gt_s @@ -1371,6 +1456,9 @@ memory.fill local.get $0 ) + (func $~start + call $start:while + ) (func $start:while (local $0 i32) (local $1 i32) @@ -1498,7 +1586,7 @@ local.set $0 i32.const 0 local.set $2 - loop $while-continue|02 + loop $while-continue|03 local.get $0 local.tee $1 i32.const 1 @@ -1513,7 +1601,7 @@ else i32.const 0 end - br_if $while-continue|02 + br_if $while-continue|03 end local.get $0 i32.const -1 @@ -1539,18 +1627,17 @@ end i32.const 0 local.set $0 - loop $while-continue|03 + loop $while-continue|05 local.get $0 i32.const 1 i32.add local.tee $0 i32.const 10 i32.ne - br_if $while-continue|03 + local.tee $1 + br_if $while-continue|05 end - local.get $0 - i32.const 10 - i32.ne + local.get $1 if i32.const 0 i32.const 1056 @@ -1561,18 +1648,17 @@ end i32.const 0 local.set $0 - loop $while-continue|04 + loop $while-continue|07 local.get $0 i32.const 1 i32.add local.tee $0 i32.const 10 i32.ne - br_if $while-continue|04 + local.tee $1 + br_if $while-continue|07 end - local.get $0 - i32.const 10 - i32.ne + local.get $1 if i32.const 0 i32.const 1056 @@ -1583,14 +1669,14 @@ end i32.const 10 local.set $0 - loop $while-continue|07 + loop $while-continue|013 local.get $0 if local.get $0 i32.const 1 i32.sub local.set $0 - br $while-continue|07 + br $while-continue|013 end end local.get $0 @@ -1606,24 +1692,24 @@ local.set $0 i32.const 10 local.set $1 - loop $while-continue|08 + loop $while-continue|015 local.get $0 if - loop $while-continue|110 + loop $while-continue|117 local.get $1 if local.get $1 i32.const 1 i32.sub local.set $1 - br $while-continue|110 + br $while-continue|117 end end local.get $0 i32.const 1 i32.sub local.set $0 - br $while-continue|08 + br $while-continue|015 end end local.get $0 @@ -1686,16 +1772,15 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store i32.const 0 local.set $1 - local.get $0 + global.get $~lib/memory/__stack_pointer call $while/Ref#constructor local.tee $0 i32.store - loop $while-continue|11 + loop $while-continue|15 local.get $0 if local.get $1 @@ -1713,7 +1798,7 @@ local.tee $0 i32.store end - br $while-continue|11 + br $while-continue|15 end end local.get $1 @@ -1749,19 +1834,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store i32.const 0 local.set $0 - local.get $1 + global.get $~lib/memory/__stack_pointer call $while/Ref#constructor local.tee $1 i32.store - loop $while-continue|09 + loop $while-continue|08 call $while/Ref#constructor if - block $while-break|08 + block $while-break|07 local.get $0 i32.const 1 i32.add @@ -1771,9 +1855,9 @@ if i32.const 0 local.set $1 - br $while-break|08 + br $while-break|07 end - br $while-continue|09 + br $while-continue|08 end end end @@ -1803,25 +1887,25 @@ global.set $~lib/memory/__stack_pointer i32.const 0 local.set $0 - loop $while-continue|0911 + loop $while-continue|019 local.get $0 i32.const 1 i32.add local.tee $0 i32.const 0 i32.le_s - br_if $while-continue|0911 + br_if $while-continue|019 end i32.const 0 local.set $0 - loop $while-continue|010 + loop $while-continue|021 local.get $0 i32.const 1 i32.add local.tee $0 i32.const 0 i32.le_s - br_if $while-continue|010 + br_if $while-continue|021 end i32.const 0 local.set $0 @@ -1849,23 +1933,23 @@ i32.const 0 i32.gt_s if - loop $while-continue|011 + loop $while-continue|023 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|011 + br $while-continue|023 end end end call $~lib/rt/itcms/step drop - loop $while-continue|113 + loop $while-continue|125 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|113 + br $while-continue|125 end end global.get $~lib/rt/itcms/total @@ -1887,107 +1971,4 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $while/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 $while/Ref $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - return - end - return - end - unreachable - ) - (func $~start - call $start:while - ) - (func $while/Ref#constructor (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 - global.get $~lib/memory/__stack_pointer - i32.const 1512 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1512 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - local.get $2 - 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 $1 - 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 - return - end - i32.const 34304 - i32.const 34352 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) ) diff --git a/tests/parser.js b/tests/parser.js index ec3d89f0d9..687059529a 100644 --- a/tests/parser.js +++ b/tests/parser.js @@ -6,7 +6,7 @@ import { globSync } from "glob"; import { diff } from "../util/text.js"; import { stdoutColors } from "../util/terminal.js"; import * as optionsUtil from "../util/options.js"; -import { Program, Options, ASTBuilder } from "../dist/assemblyscript.js"; +import { Program, Options, ASTBuilder, Feature } from "../dist/assemblyscript.js"; const dirname = path.dirname(fileURLToPath(import.meta.url)); @@ -54,6 +54,11 @@ if (argv.length) { } let failures = 0; +const parserTestFeatures = new Map([ + ["tuple.ts", [Feature.MultiValue]], + ["tuple-more.ts", [Feature.MultiValue]], + ["tuple-errors.ts", [Feature.MultiValue]] +]); for (const filename of tests) { if (filename.charAt(0) == "_" || filename.endsWith(".fixture.ts")) continue; @@ -61,9 +66,16 @@ for (const filename of tests) { console.log(stdoutColors.white("Testing parser/" + filename)); let failed = false; - const program = new Program(new Options()); - const parser = program.parser; + const options = new Options(); const sourceText = fs.readFileSync(basedir + "/" + filename, { encoding: "utf8" }).replace(/\r?\n/g, "\n"); + const features = parserTestFeatures.get(filename); + if (features) { + for (const feature of features) { + options.setFeature(feature); + } + } + const program = new Program(options); + const parser = program.parser; parser.parseFile(sourceText, filename, true); const serializedSourceText = ASTBuilder.build(program.sources[0]); const actual = serializedSourceText + parser.diagnostics.map(diagnostic => "// " + diagnostic +"\n").join(""); diff --git a/tests/parser/tuple-errors.ts b/tests/parser/tuple-errors.ts new file mode 100644 index 0000000000..ecfed92541 --- /dev/null +++ b/tests/parser/tuple-errors.ts @@ -0,0 +1,3 @@ +export type Loop = [Loop, i32]; +export type BadTuple = [i32, ]; +export function badReadonly(x: readonly): void {} diff --git a/tests/parser/tuple-errors.ts.fixture.ts b/tests/parser/tuple-errors.ts.fixture.ts new file mode 100644 index 0000000000..d4ae1a5762 --- /dev/null +++ b/tests/parser/tuple-errors.ts.fixture.ts @@ -0,0 +1,3 @@ +// ERROR 2456: "Type alias 'Loop' circularly references itself." in tuple-errors.ts(1,13+4) +// ERROR 1110: "Type expected." in tuple-errors.ts(2,30+1) +// ERROR 1110: "Type expected." in tuple-errors.ts(3,40+1) diff --git a/tests/parser/tuple.ts b/tests/parser/tuple.ts new file mode 100644 index 0000000000..562bc15093 --- /dev/null +++ b/tests/parser/tuple.ts @@ -0,0 +1,30 @@ +function tuple0(): [] { return []; } +function tuple1(): [i32, i32] { return [1, 2]; } +function tuple2(): [i32, [i32, i32]] { return [1, [2, 3]]; } +function tuple3(): [i32, string] { return [1, "a"]; } +function tuple4(): [Array, i32[]] { return [new Array(), [1, 2]]; } +function tuple5(): [i32] { return [1]; } +function tuple6(): [[i32[]]] { return [[[1, 2]]]; } +function tuple7(): [x: i32, y: i32] { return [1, 2]; } +function tuple8(): [head: i32, tail: [lo: i32, hi: i32]] { return [1, [2, 3]]; } + +function func0(x: []): [] { return []; } +function func1(x: i32, y: i32): [i32, i32] { return [y, x]; } +function func2(x: [i32, i32]): [i32, i32] { return x; } +function func3(x: [i32, [i32, i32]], y: i32): [i32, [i32, i32]] { return x; } +function func4(x: readonly [i32, string]): [void] { return [void(0)]; } +function func5(x: readonly [Array, i32[]]): readonly [i32] { return [x[1].length]; } +function func6(x: [i32, i32] | null): [i32, i32] | null { return x; } +function func7(x: readonly [[i32[]], [string]]): readonly [[i32[]], [string]] { return x; } +function func8(x: [left: i32, right: i32]): [first: i32, second: i32] { return x; } +function func9(x: [T, T, i32]): [T] { return x; } +function func10(x: [string | null, i32] | null): [string | null, i32] | null { return x; } + +type type0 = []; +type type1 = [i32, i32]; +type type2 = [i32, [i32, i32]]; +type type3 = readonly [i32, string]; +type type4 = [i32, i32] | null; +type type5 = [[i32, i32], [i32, i32]]; +type type6 = [Array, T[], T]; +type type7 = [start: i32, end: [lo: i32, hi: i32]]; diff --git a/tests/parser/tuple.ts.fixture.ts b/tests/parser/tuple.ts.fixture.ts new file mode 100644 index 0000000000..bf461f898e --- /dev/null +++ b/tests/parser/tuple.ts.fixture.ts @@ -0,0 +1,68 @@ +function tuple0(): [] { + return []; +} +function tuple1(): [i32, i32] { + return [1, 2]; +} +function tuple2(): [i32, [i32, i32]] { + return [1, [2, 3]]; +} +function tuple3(): [i32, string] { + return [1, "a"]; +} +function tuple4(): [Array, Array] { + return [new Array(), [1, 2]]; +} +function tuple5(): [i32] { + return [1]; +} +function tuple6(): [[Array]] { + return [[[1, 2]]]; +} +function tuple7(): [x: i32, y: i32] { + return [1, 2]; +} +function tuple8(): [head: i32, tail: [lo: i32, hi: i32]] { + return [1, [2, 3]]; +} +function func0(x: []): [] { + return []; +} +function func1(x: i32, y: i32): [i32, i32] { + return [y, x]; +} +function func2(x: [i32, i32]): [i32, i32] { + return x; +} +function func3(x: [i32, [i32, i32]], y: i32): [i32, [i32, i32]] { + return x; +} +function func4(x: [i32, string]): [void] { + return [void(0)]; +} +function func5(x: [Array, Array]): [i32] { + return [x[1].length]; +} +function func6(x: [i32, i32] | null): [i32, i32] | null { + return x; +} +function func7(x: [[Array], [string]]): [[Array], [string]] { + return x; +} +function func8(x: [left: i32, right: i32]): [first: i32, second: i32] { + return x; +} +function func9(x: [T, T, i32]): [T] { + return x; +} +function func10(x: [string | null, i32] | null): [string | null, i32] | null { + return x; +} +type type0 = []; +type type1 = [i32, i32]; +type type2 = [i32, [i32, i32]]; +type type3 = [i32, string]; +type type4 = [i32, i32] | null; +type type5 = [[i32, i32], [i32, i32]]; +type type6 = [Array, Array, T]; +type type7 = [start: i32, end: [lo: i32, hi: i32]]; diff --git a/tests/parser/union.ts b/tests/parser/union.ts new file mode 100644 index 0000000000..3d947fe09a --- /dev/null +++ b/tests/parser/union.ts @@ -0,0 +1,9 @@ +export function foo(a: aaa | bbb | ccc): i32 { + return 1; +} + +export function bar(a: i32 | u32 | f32): i32 { + return 1; +} + +export let a: i32 | u32 | f32 | null = 1; diff --git a/tests/parser/union.ts.fixture.ts b/tests/parser/union.ts.fixture.ts new file mode 100644 index 0000000000..b2fb8611bf --- /dev/null +++ b/tests/parser/union.ts.fixture.ts @@ -0,0 +1,4 @@ +export let a = 1; +// ERROR 100: "Not implemented: union types" in union.ts(1,36+3) +// ERROR 100: "Not implemented: union types" in union.ts(5,36+3) +// ERROR 100: "Not implemented: union types" in union.ts(9,27+10) diff --git a/tsconfig-base.json b/tsconfig-base.json index 10a2d884e4..9695cb47c4 100644 --- a/tsconfig-base.json +++ b/tsconfig-base.json @@ -8,7 +8,6 @@ "noEmitOnError": true, "strictNullChecks": true, "experimentalDecorators": true, - "preserveConstEnums": false, - "downlevelIteration": true + "preserveConstEnums": false } } diff --git a/util/options.js b/util/options.js index d0633b19e2..7b1c2de69a 100644 --- a/util/options.js +++ b/util/options.js @@ -150,6 +150,7 @@ function sanitizeValue(value, type) { case "f": return Number(value) || 0; case "s": { if (value === true) return ""; + if (value === false) return null; return String(value); } case "I": { diff --git a/util/text.js b/util/text.js index b7accf9f5a..7f3fa91b4b 100644 --- a/util/text.js +++ b/util/text.js @@ -105,7 +105,7 @@ export function diff(filename, expected, actual) { line.charAt(0) === "+" ? stdoutColors.green(line) : line.charAt(0) === "-" - ? line = stdoutColors.red(line) + ? stdoutColors.red(line) : line )); } diff --git a/util/web.js b/util/web.js index 1cddb1c355..5f9664866a 100644 --- a/util/web.js +++ b/util/web.js @@ -6,7 +6,7 @@ import { fs } from "./node.js"; var _fetch = typeof fetch === "function" ? fetch : - url => new Promise((resolve, reject) => { // eslint-disable-line no-global-assign + url => new Promise((resolve, reject) => { fs.readFile(url, (err, data) => { if (err) reject(err); resolve({